잠시만 기다려 주세요

     '입만 나불거리고 행동하지 않는 야당을 규탄한다.'
전체검색 :  
이번주 로또 및 연금번호 발생!!   |  HOME   |  여기는?   |  바다물때표   |  알림 (16)  |  여러가지 팁 (1059)  |  추천 및 재미 (156)  |  자료실 (22)  |  
시사, 이슈, 칼럼, 평론, 비평 (613)  |  끄적거림 (136)  |  문예 창작 (716)  |  바람 따라 (75)  |  시나리오 (760)  |  드라마 대본 (248)  |  
살인!


    리눅스 서버

리눅스 서버 - [CentOS7] ProFTPD 설치 방법
이 름 : 바다아이   |   조회수 : 9891         짧은 주소 : https://www.bada-ie.com/su/?461591820488
안녕하세요 버섯돌이 유재성입니다.


최근에 CentOS 7에 간단히 사용할 업데이트 서버 구축을 위해 Apache Web Server와 FTP 데몬을 설치할 일이 있었는데

몇 년 만에 만지다 보니 바뀐 것도 많아서 엄청나게 삽질한 것 같군요.


초기에는 자주 사용하는 vsftpd를 사용하려 했으나 Passvie 기능 중 ls 명령어로 존재하지 않는 폴더를 요청하면

에러가 발생해야 하는데 에러를 발생하지 않아서 관련 부분을 해결하려고 며칠간 삽질하다 포기했네요.^^


ProFTPD의 경우 별다른 설정 없이 간단하게 설치가 가능해서 CentOS7에 설치하는 절차를 적어 봅니다.

참고로, ProFTPD의 경우 기능이 상당히 많지만 아래 설명한 방법 외에는 모르기 때문에 세부 내용은 구글링 하시기 바랍니다.^^


ProFTPD 설치

> yum install epel-release




> yum install -y proftpd proftpd-utils







   오늘자 기준으로 ProFTPD Version 1.3.5가 설치되었네요.


ProFTPD를 시작합니다.

> systemctl start proftpd.service


ProFTPD를 부팅 시 자동으로 실행 되도록 합니다. (필요 하신 분만)

> systemctl enable proftpd.service

   ln -s '/usr/lib/systemd/system/proftpd.service' '/etc/systemd/system/multi-user.target.wants/proftpd.service'



방화벽 설정

CentOS 7부터 방화벽이 firewall-cmd 방식으로 변경되었습니다.


방화벽에 ftp 서비스를 등록합니다.

> firewall-cmd --add-service=ftp --permanent


> firewall-cmd --reload





ProFTPD의 경우 여기까지만 진행하고 adduser  명령어로 사용자를 추가하면 FTP 사용이 가능합니다.


FTP 사용자 계정 추가

사용자 추가

> adduser mrm


비밀번호 설정

> passwd mrm



이후 과정은 필수는 아니지만 참고 하시면 다른 ftp 설정에도 도움이 될 듯싶어서 남겨 놓습니다.



FTP 계정의 홈 폴더 변경 (필요시)
usermod 명령으로 특정 계정의 홈 폴더를 변경할 수 있습니다.
FTP의 경우 보통 유닉스 계정을 이용해서 로그인 처리가 되므로 홈 폴더를 변경하면 FTP의 홈 폴더도 함께 변경 됨.

예를 들어, mrm 계정의 홈 폴더를 /home/newMrm으로 변경하고 싶은 경우
> usermod -d /home/newMrm mrm

ProFTPD의 경우 Unix 계정이 아닌 다른 방법으로 FTP 계정을 할당한 경우에는 해당 방법을 참고 하시길...


SELinux 관련 - 홈 디렉토 권한 설정 (옵션)
보통 chroot 관련해서 FTP 홈 디렉토리에는 쓰기 권한이 설정되면 안 되기 때문에 FTP 서버에 로그인 하면 에러가 발생하는 경우가 있는데 제 경우 ProFTPD는 SELinux 사용 시에도 홈 디렉토리 권한과 관련해서 아무런 문제가 없더군요.

향후 다른 FTP 등에서 필요할지 몰라서 관련 내용을 잊어버리고 삽질하기 전에 혹시나 싶어서 남겨 놓습니다.

> setsebool -P ftp_home_dir on
  FTP 데몬이 사용자의 홈 디렉토리를 읽거나 쓸 수 있도록 허용합니다.

> setsebool -P allow_ftpd_full_access on
  FTP 데몬이 시스템의 모든 파일을 읽거나 쓸 수 있도록 허용합니다.

참고 : SELinux 비활성 화 방법
/etc/selinux/config 파일의 내용 중 SELINUX 를 "SELINUX=disabled" 로 설정 후 재시작

SELinux 관련해서 복잡하고 보안이 중요하지 않다면 비활성화 시켜 보세요^^
또는 FTP 서버가 원하는 대로 동작하지 않는 경우에는 방화벽과 SELinux를 비활성화 시켜서 테스트해 보시면 될 듯싶습니다.
사용 가능한 옵션 및 상태 조회는 "getsebool -a"로 확인 가능합니다.


ProFTPD 환경 설정 (옵션)

기존 설정값 백업

> cp /etc/proftpd.conf /etc/proftpd.conf.orig


Passive 모드에서 사용할 포트 범위 제한(필수는 아님)

Passive 구조 특성상 랜덤하게 내부 포트가 오픈되므로 외부에 특정 포트만 오픈해서 방화벽에 등록하고자 할 때 이용 됨.

> vi /etc/proftpd.conf

   아래 내용 추가

   PassivePorts    6000    6900


> systemctl restart proftpd.service


[FTP 테스트]

테스트를 위해 FileZilla Client로 테스트를 진행했습니다.




ProFTPD에 TLS 설정을 하지 않았으므로 암호화는 Only use plain FTP를 선택합니다.


전송 모드는 방화벽과 관련이 있는데 ProFTPD는 기본적으로 Passive 모드로 동작합니다.




Passive를 지원하므로 "전송 설정" 탭에 가셔서 Passive Mode인 "수동형(P)" 를 선택합니다.


Active(능동형) 모드와 Passive(수동형) 모드에 대한 개념은 아래 글을 참고 하시면 도움이 되리라 봅니다.

https://documentation.cpanel.net/display/CKB/How+to+Enable+FTP+Passive+Mode


로그인 해 보시면 정상적으로 로그인 되는 걸 확인할 수 있습니다.





출처 : http://yoo7577.tistory.com/288


[참고 정보]
ProFTPD Homepage
http://www.proftpd.org/

ProFTPD Documentation Index
http://www.proftpd.org/docs/howto/index.html

ProFTPD Configuration Directive List
http://www.proftpd.org/docs/directives/configuration_full.html

CentoOS SELinux - Howoto
http://wiki.centos.org/HowTos/SELinux

How To Install EPEL Repo on a CentOS and RHEL 7.x
http://www.cyberciti.biz/faq/installing-rhel-epel-repo-on-centos-redhat-7-x/

How to Enable FTP Passive Mode
https://documentation.cpanel.net/display/CKB/How+to+Enable+FTP+Passive+Mode

 
| |





      1 page / 5 page
번 호 카테고리 제 목 이름 조회수
148 리눅스 서버 samba ... , ... 바다아이 517
147 리눅스 서버 postfix main.cf ... 바다아이 3584
146 리눅스 서버 /etc/crontab ... 바다아이 2303
145 리눅스 서버 - MEMTEST, , 바다아이 3466
144 리눅스 서버 top , top 바다아이 4293
143 리눅스 서버 , systemd-networkd, archlinux network setting 바다아이 5413
142 리눅스 서버 mirror .. ... 바다아이 5897
141 리눅스 서버 [Ubuntu] (swapfile) , ... 바다아이 5711
140 리눅스 서버 ufw , iptables 바다아이 7011
139 리눅스 서버 ... grub . submenu, grub-mkconfig 바다아이 5798
138 리눅스 서버 CentOS 7 Upgrade Kernel, centos 바다아이 7658
137 리눅스 서버 , dd , 바다아이 5720
136 리눅스 서버 ... ntp .. ... 바다아이 6757
135 리눅스 서버 archlinux netstat , netstat ... 바다아이 6500
134 리눅스 서버 ps , ps option 바다아이 6249
133 리눅스 서버 , swap , ... swap . 바다아이 6461
132 리눅스 서버 crontab , .... 바다아이 6427
131 리눅스 서버 ssh , ssh 바다아이 7494
130 리눅스 서버 SSH SSH , ssh-keygen rsa 바다아이 7078
129 리눅스 서버 , date : () , () , 바다아이 7270
128 리눅스 서버 aws lightsail, ssh .. .pem 바다아이 12286
127 리눅스 서버 , ubuntu generic kernel 바다아이 7645
126 리눅스 서버 .. apt ... 바다아이 7549
125 리눅스 서버 ... ubuntu kernel compile 바다아이 10185
124 리눅스 서버 nginx http2 , . 바다아이 8992
123 리눅스 서버 psql libreadline.so.7: cannot open shared object file: No such file or directory 바다아이 9357
122 리눅스 서버 ssh .bashrc , bash .. .bash_profile 바다아이 8681
121 리눅스 서버 , , 바다아이 7893
120 리눅스 서버 rc.local ... , 바다아이 8643
119 리눅스 서버 ? - IPv4 Subnetting, (Subnet Mask) 바다아이 8356
| |









Copyright ⓒ 2001.12. bada-ie.com. All rights reserved.
이 사이트는 리눅스에서 firefox 기준으로 작성되었습니다. 기타 브라우저에서는 다르게 보일 수 있습니다.
[ Ubuntu + GoLang + PostgreSQL + Mariadb ]
서버위치 : 오라클 클라우드 춘천  실행시간 : 0.05979
to webmaster... gogo sea. gogo sea.