본문 바로가기

--Kloong--/Linux-Ubuntu 사용기

Linux-Ubuntu 사용기 5.5 - 마의 vsftp 설정

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요 Kloong 입니다.

드디어 마의 vsftp 설정이 등장했군요 ㅠㅠ

제가 고생 많이 해서 알아낸 것들(물론 네이버하고 구글의 도움도 받음 ㅋ)이에여 ㅋㅋ

시작!


vsftp 설정 파일은 /etc/vsftpd.conf 입니다.

대부분의 설정 파일들이 /etc 안에 있는 걸 기억해주세요.

설정파일을 수정할 때는 vi 편집기(?)를 사용합니다.

근데 vi보다 더 업그레이드 된 vim 이 있더라구요. 얘는 막 색깔로 구분도 해주고 문서를 보기 좋게 만들어줍니다.

혹시 다른 문서를 편집 할 일이 있으면 vi보다는 vim을 사용하세요 훨씬 편합니다.

암튼 vim 은 기본적으로 다운이 안되있을 거에요 그니까 다운받으시면 되요

#sudo apt-get -y install vim

하시고서

#vim /etc/vsftpd.conf

하면 vsftpd 설정파일이 등장!

설정파일의 구조는 아주 단순합니다.

일단 #은 주석을 의미합니다. # 뒤에 있는 내용들은 주석이므로 아무런 기능을 갖지 못하게 됩니다.

기본적으로 설정파일중에서 주석 처리 되어있는 것들이 있습니다. 그런 것들은 사용자 필요에 따라서 주석 처리를 해제하면 됩니다.

물론 주석처리가 안되어 있는 것들을 주석처리 해도 되구요 네

이제 설정파일의 해석을 들어가겠습니다!


listen=YES

이건 vsftp를 inetd, 즉 standalone으로 구동할껀지 xinetd로 구동할껀지 선택하는겁니다.

YES가 standalone, NO가 xinetd네요.

xinetd로 사용하려면 xinetd 디렉터리에다가 뭐 더 내용 추가해야되는데 저도 모름요 걍 YES로 둡시다 ㅋ


local_enable=YES

로컬 사용자의 접속을 허용합니다.

그러니까 리눅스에 Kloong 계정을 만들어 놓고서 Kloong으로 접속하면 Kloong의 홈 디렉터리로 ftp 접속이 가능한거죠.


write_enable=YES

파일이나 디렉터리의 쓰기를 허용합니다. NO라고 해두면 업로드가 안되요 다운로드밖에 안됨 ㅠ

근데 이거 허용해놓고서 홈디렉터리 퍼미션 설정에 쓰기를 못하게 해놓고 왜 안되냐고 찡찡 ㄴㄴ


chroot_local_user=YES

보안상의 이유로 사용자의 홈 디렉터리를 최상위 디렉터리로 만들어 상위 디렉터리로 나갈 수가 없습니다.

NO로 해놓으면 모든 디렉터리를 탐험 가능 올ㅋ 잘못하면 훅가요 ㅋ

근데 요게 또 골치아픕니다. 이거 안되서 한참 헤맸어요 ㅠ

이걸 YES로 해놓으면 접속할 사용자의 홈디렉터리의 소유자를 root로 해놓고서 퍼미션을 755로 설정해야만 접속이 가능합니다.

저는 그걸 모르고서 쓰기 가능하게 하려구 퍼미션 777로 해놨는데

자꾸 500 oops : 어쩌구 저쩌구 chroot() ~~ 막 이런게 뜨면서 접속이 안됩니다. 그래서 걍 NO로 해놨었거든요

그러니까 파일,디렉터리 쓰기 가능하게 하기+chroot_local_user=YES 로 하려면

ftp로 접속할 사용자의 홈 디렉터리 소유자,소유 그룹=root 퍼미션=755

홈 디렉터리 내부에 디렉터리를 하나 새로 만들고 퍼미션을 777로

이렇게 하면 접속도 가능하고 퍼미션이 777인 디렉터리 안에는 파일,디렉터리 쓰기도 가능!

-- 음 이게 사용자의 쓰기 권한을 없애면 되는거더라구요

그러니까 소유자를 그대로 놔두고 퍼미션만 555로 바꾸면 되는데 이러면 안되는거 아시죠? ㅋ 큰일나요 --


chroot_list_enable=YES

요고는 chroot 설정을 list에 적혀있는 사용자에게만 적용하는 겁니다. list의 위치는 밑에 줄로


chroot_list_file=/etc/vsftpd.chroot_list

/etc/vsftpd.chroot_list 요기에다가 원하는 사용자의 이름을 써놓으면 됩니당


anonymous_enable=YES

익명 사용자의 접속들 허용하면 YES 아니면 NO

익명 사용자의 홈 디렉터리는 /var/ftp가 아니라 /srv/ftp 입니다. (fedora에서는 안그랬었는데 /etc/passwd 파일을 열어보니 나옴;)

익명 사용자가 접속하면 /srv/ftp로 접속하게 되는거죠.

참고로 익명 사용자는 ftp 사용자로 접속됩니다.


anon_upload_enable=YES

익명 사용자의 업로드를 허용합니다.


anon_mkdir_write_enable=YES

익명 사용자의 디렉터리 만들기를 허용합니다.


dirmessage_enable=YES

ftp 접속시 메세지 출력을 허용합니다. 메세지 내용은 사용자의 홈 디렉터리에 .message 파일에 적어놓으면 됩니다.


xferlog_enable=YES

업로드/다운로드 로그를 기록합니다. 기록할 파일의 경로는 이 밑에


xferlog_file=/var/log/vsftpd.log

기록이 요기에 됩니다. 아마 주석처리 되어있는걸로 아는데 아무튼 기본값이 여기임 ㅇㅇ


connect_from_port_20=YES

ftp서버가 기본적으로 21번 포트를 사용하는데 20번 포트로도 접속이 가능합니다. 암튼 20번 포트로의 접속을 허용합니다.


idle_session_timeout=180

아무런 요청이 없을 시 접속을 끊을 대기 시간입니다.


data_connection_timeout=120

연결을 끊을 대기시간인데 이건 잘 모르겠어요 ㅋㅋ


ftpd_banner=Welcome to blah FTP service

이건 ftp에 접속하면 모든 사용자에게 출력되는 메세지입니다.


% 2월 18일 추가 내용

깜빡 잊고 /etc/ftpusers 를 포스팅을 안했네요

/etc/ftpusers 파일은 ftp를 통한 접속을 거부할 사용자의 목록입니다.

root 같은 경우는 보안문제로 추정되는 문제(저는 잘 모르겠음 ㅋ) 기본적으로 이 파일에 쓰여져서 접속을 막고있습니다.

아무튼 특별히 접속을 막고싶은 사용자는 이 파일에다가

#sudo vim /etc/ftpusers

로 입력해주시면 됩니다


와 드디어 다 됬네요 ㅠㅠ 힘들다

지금까지 Kloong 이였습니다!