☞ 리눅스에서 vsftpd 사용시 상위 디렉토리 이동을 제한하는 방법 (CENTOS 7)
지금 보게될 셋팅은 CENTOS 7 을 기준으로 작성되었다.
리눅스의 경우 FTP 서버로는 vsftpd 와 sftp 를 많이 사용한다. 하지만 sftp 같은경우 많은이들의 정신건강을 괴롭히는 관계로 사용을 꺼려하는 사람들이 많다. 아직 포스팅은 않했지만, 나중에 시간이 나면 ssh 와 vsftpd 의 사용법에 대해서도 올릴 생각이다. 아래는 vsftpd 설정 방법이다.
1> /etc/vsftpd/vsftpd.conf 파일열기
$ vi /etc/vsftpd/vsftpd.conf
2> 아래와 같은 구문을 찾아서 똑같이 수정
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
각 학목에 대한 설명
- chroot_local_user : 루트 디렉토리 이동을 제한 하는 설정이다. 일반적으로 이 값만 YES 로 할 시 모든 사용자는 상위 디렉토리로 이동할 수 없다.
- chroot_list_enable : 바로 위의 설정만으로 상위 디렉토리 이동을 제한 할 수 있지만, 그렇게 될경우, 관리자 조차도 상위로 갈 수 없기 때문에, 예외처리 를 하기 위한 설정을 해주어야한다. 이값을 YES 로 할경우 기본적으로 아래의 설정값을 지정해줘야 한다.
- chroot_list_file : 이 값을 지정하게되면 지정된 경로의 파일에 예외처리가 될 유저아이디를 설정해 놓아야한다. 대부분 기본값으로 위와같은 경로가 설정이되어있다. 특별한 경우가 아니면 그대로 사용하는게 좋다.
3> /etc/vsftpd/chroot_list 파일 생성하기
$ vi /etc/vsftpd/chroot_list
예외처리할 유저목록 작성하기
유저1 유저2 유저3 유저4 .....
4> vsftpd 재실행
$ systemctl restart vsftpd
혹시 위의 설정 파일을 외부에서 설정하여 내부의 원본파일로 붙여넣기한다면, 조심해야한다. 그 이유는 vsftpd 데몬이 실행이 안될 수 있기때문이다. 또한 설정파일은 다른 곳에 설정된 것들을 모두 가져다가 쓰는게 아닌 필요한 부분만 변경하는 것이 좋다. 그이유는 위와 비슷하다. vsftpd 데몬이 실행이 안될 수 있다. 그러니 항상 설정파일은 bakup 본을 만들어 두고 작업하는게 정신건강에 좋다.
만약 아무이유없이 아래와 같이 vsftpd 데몬이 실행이 안된다면 bakup 파일을 덮어씌워 주거나, bakup 파일이 없을 시 다시 설치하는 수밖에 없다.
(외부에서 파일을 수정할 시 생길 수 있는 오류)
사실 리눅스 같은경우 버전도 많고, 리눅스 전문가가 아닌이상 다루기가 까다롭기 때문에 애초당시 블로그 메뉴에서 제외 시켰었다. 하지만, 앞으로 리눅스를 셋팅하면서 헤매지 않기 위해, 메뉴에 추가시키게 되었다. 뭐 나를 위한것도 있고, 많은 사람들과 삽질의 아픔을 공유하고 싶은것도 있다.
대부분 내가 오류들을 검색하면, 사람들은 나와 같은 마음으로 하소연을 한다. 하지만 그중에서 얄미운 사람이 있다. 바로, 9명이 안되는데 1명이 난 되는데? 하는것이다. 뭐 되는건 좋은데, 확실한 방법을 알려주지 않는다. 혹시나 알려주더라도 그 방법은 전부 해봤던 방법들이다.
또한 어떤 블로그는 방법을 올려놓는척 하면서 마지막에 결국실패하였다 라는 글을 마지막으로 끝낸 경우도 있다. 이럴경우 정말 화난다. 열심히 보고 셋팅했는데, 결국 안된다니?? 그럼 처음부터 방법을 올려놓지 말던가... 암튼 사람의 마음은 똑같아서, 내 글을 읽고 안되는 사람들도 똑같은 하소연을 할 것같다.
위에서도 말했지만, 리눅스는 버전도 많고, 다루기가 까다롭기 때문에, 누군 되고 누군 안되는건 리눅스 종류와 버전의 차이 일 수 있고, 기본설정의 차이 일 수 있으니 그점을 명심하는게 정신건강에 좋을것이다.
'웹서버 > Linux' 카테고리의 다른 글
리눅스에서 ssh 는 사용하고 sftp 는 사용중지 시키기 (230) | 2015.04.15 |
---|---|
리눅스 vsftpd 에러 - 500 OOPS : vsftpd: refusing to run with writable root inside chroot() (234) | 2015.04.15 |