[오늘은 공부중] FTP 설치하기

서버를 운영하다보면 FTP 접속 필요하기도 하고, 사실 편하다.
이를 위해서 써야하는 패키지가 vsftpd 패키지이다.
상세 설정은 힘든 부분이 있긴 하지만... 쓰면서 배워보면 나쁘지 않을지도...


설치법은 간단하다

yum install vsftpd

만 쳐주면 간단하게 설치가 된다.

바로 실행시키지 말고 우선 ftp 설정을 해주자.
vsftpd의 설정 경로는 /etc/vsftpd 이다.

cd /
cd etc
cd vsftpd


ls를 치면 폴더 안의 파일을 볼 수 있다.
vsftpd.conf 파일을 수정해줄건데, 혹시 모르니 사본을 하나 만들자.

cp vsftpd.conf vsftpd.conf.bak

을 치면 사본을 만들 수 있다.
사본이 만들어지면 곧바로 vi 에디터를 실행해 vsftpd 설정을 해보자.

에디터가 나오면

:/anonymous_enable

을 입력해 이동한 뒤, 맥락에서 YES를 NO로 바꿔준다.
FTP를 익명으로 접속하는 경우가 있는데, 보안상 이를 막기 위한 것이다.

 ** 이 부분은 해주지 않아도 되지만, 보안성을 높이기 위한 부분이다.

[ESC] 키를 누른 뒤 다시 한 번

:/chroot

를 입력해 'chroot_local_user'와 'chroot_list_enable', 'chroot_list_file' 파일의 주석을 제거해주자.
두 문맥은 허용된 계정만 FTP에 접속하도록 하는 부분이다.

하지만 이렇게만 할 경우, 500 에러가 발생할 수 있다. 원인은 폴더에 쓰기 권한이 부여돼 있어서 그런 것이다.
오류를 막기 위해 맨 마지막 문단에

allow_writeable_chroot=YES

을 입력해주자.



설정이 끝났다면 [ESC] 키를 누른 뒤 [:wq]를 눌러 저장을 해주자.
vi 에디터를 빠져나왔다면

vi chroot_list

chroot_list 파일을 생성하자.
[i]를 눌러 입력모드로 전환 후, 자신이 쓰는 계정 이름을 적어주자.

[ESC]키를 누른 뒤 [:wq]를 눌러 vi에디터를 빠져 나오자.
이후 설정값을 적용하기 위해 vsftpd를 재시작해주자.

systemctl restart vsftpd


여기까지는 괜찮지만, 문제는 SELINUX다. SELINUX는 보안상 FTP에 쓰기 권한을 주지 않는다.
일부 유저는 SELINUX를 해제시켜 사용하기도 하지만, 어디까지나 서버는 보안이 생명이다.

getsebool -a | grep ftp

명령어를 입력해 FTP 상태를 확인해보면
FTP 파일 접근 권한 문단인 ftpd_full_access와
패시브모드 설정 권한 문단인 'ftpd_use_passive_mode' 설정이 꺼져있는 것을 확인할 수 있다.
권한 변경을 위해

setsebool ftpd_full_access on
setsebool ftpd_use_passive_mode on

을 입력한 뒤, 다시 한 번 

getsebool -a | grep ftp

을 입력해 상태를 확인하자.


여기까지 했다면 큰 문제 없이 FTP를 이용해 서버에 접속할 수 있다.

댓글