2010년 2월 19일 금요일

CentOS에 Proftpd 설치하기

PROFTP 설치하기

proftpd 최신 소스 배포 파일을 받아 온다.
적절한 곳에 압축을 풀고 그 폴더 속으로 들어간다.

최신리눅스 부터는 passwd파일을 별도로 shadowing하여 저장하므로 FTP설치시 이것을 고려하여 적절한 옵션을 주어야 한다. 아니면 FTP 서버 설치후 유저 로그인시 인증이 안됨을 발견할 수 있다.

./configure --prefix=/usr/local/proftpd \
--enable-autoshadow \
--enable-shadow \
make && make install

기본적인 설정을 해주자.

 vi /usr/local/proftpd/etc/proftpd.conf

아래와 같은 부분을 찾아 바꿔준다.
User nobody
Group nogroup

 
User nobody
Group nobody
nogroup라는 그룹은 없기 때문에 안바꿔주면 대몬을 실행할 수 없다.
위 방법과 달리 nogroup이라는 그룹을 새로 생성해도 된다. 하지만 FTP에서만 사용하는 이런 좀비 그룹을 만들어도 크게 의미가 없으므로 첫자를 택했다.

conf 파일 안에는 DefaultRoot라는 항목의 주석을 제거하면 자신이 위치한 홈 디렉토리에서 벗어나지 못한다. FTP가 SFTP보다 좀 더 나아보이는 점이라고 볼 수 있겠다. SFTP는 자신의 홈디렉토리에서 벗어나는걸 막어 보려면 아주 삽질을 많이 해야 한다.

UseReverseDNS                off
IdentLookups                    off
이러면 기본 설치 및 설정이 끝난 상태이고, 보다 싶게 서비스를 start / stop 하기 위하여 별도 스크립트를 init.d에 등록해야겠다. 풀었던 소스 디렉토리 밑에 contrib/dist/rpm/proftpd.init.d 파일을 /etc/rc.d/init.d/ 밑으로 복사한다.
그리고 vi로 열고 PATH부분을 아래와 같이 수정해준다.

다음과 같이 PATH 수정

PATH="$PATH:/usr/local/proftpd/sbin"

chmod 755 /etc/rc.d/init.d/proftpd

퍼미션도 적절히 설정하는 것 잊지 말아야 한다.

/etc/rc.d/init.d/proftpd start
OK라고 나오면 설치 완료!

혹시 아주 엄격한 방화벽 룰을 설정하고 방화벽을 운영하고 있다면

vi /etc/sysconfig/iptables

iptables 파일을 열고 아래 내용 추가한다. 아래 iptable룰은 대체적으로 21포트로 들오오는 모든 tcp 새로운 상태의 request를 받아들이겠다는 것이다.

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

iptable을 재시동 한다.

/etc/rc.d/init.d/iptables restart
or
service iptables restart

서버 재시동후에 자동으로 시동되게 하고 싶으면 chkconfig에 등록을 해야겠다.

/sbin/chkconfig --add proftpd

방화벽설정을 위에서 처럼 했음에도 불구하여 자주 끊기거나 디렉토리 목록 못가져오면 passive 모드 관련 문제인데 이때 별도 passive port를 명시해준다.

PassivePorts 60000 62000

그리고 iptable에 다음과 같이 포트를 허용하도록 한다.

-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 60000:62000 --tcp-flags SYN,RST,ACK SYN -j ACCEPT

댓글 없음:

댓글 쓰기