vsFTPd 설정
vsFTPd설정하다가 삽질한게 아까워서 남겨둡니다. 누군가에게는 도움이 될지도 모르겠네요...
혹시 틀린 부분이나 필요없는 부분이 있으면 댓글 부탁드립니다. :D
참고로, 다음 글에 대한 해법입니다.
http://kldp.org/node/134760
설정 목표: 두개의 계정을 만들어서, 하나는 읽기 전용, 다른 하나는 관리자용으로 설정한다.
FTP서버 및 버전: vsFTPd 2.3.5
안내: 이 문서는 Ubuntu 12.04 LTS 서버 버전을 기준으로 작성되었다.
안내: 명령어 앞의 #는 shell의 프롬프트를 의미한다.
안내: 명령어 뒤의 & 이후는 주석을 의미한다. 따라서 &를 포함한 &이후는 입력하지 않는다.
안내: 이 문서에 나온 모든 명령어는 대/소문자를 구분한다.
안내: 모든 명령어는 특별히 언급하지 않는 한 root 권한으로 실행한다.
1. 계정 생성
A. data 계정 생성
i. #adduser data & 계정을 만든다.
ii. #passwd data & 계정의 비밀번호를 바꾼다.
B. dataadmin 계정 생성
i. #adduser dataadmin & 계정을 만든다.
ii. #passwd dataadmin & 계정의 비밀번호를 바꾼다.
C. datauser 그룹 생성
i. #addgroup datauser & 그룹을 만든다.
ii. #gpasswd datauser & 그룹의 비밀번호를 바꾼다.
iii. #gpasswd -a data datauser & datauser 그룹에 data를 추가한다.
iv. #gpasswd -a dataadmin datauser & datauser 그룹에 dataadmin을 추가한다.
v. #gpasswd ?A dataadmin datauser & datauser 그룹의 관리자를 dataadmin으로 지정한다.
2. 디렉토리 설정
A. group 파일에서 그룹 인덱스를 확인한다.
i. #vi /etc/group
ii. 가장 마지막 부분에 datauser:x:1005:data,dataadmin 과 같은 부분이 있다. 여기서 1005라는 숫자를 확인해둔다. 이 수치는 바뀔 수 있다.
iii. 내용을 확인한 후 vi편집기를 종료한다.
B. passwd 파일의 내용을 수정한다.
i. #vi /etc/passwd
ii. vi 편집기에서 data가 있는 행과 dataadmin이 있는 다음의 두 행을 찾는다.
1. data:x:1003:1003:,,,:/home/data/:/bin/bash
2. dataadmin:x:1004:1004:,,,:/home/dataadmin/:/bin/bash
iii. data 행에 있는 1003:1003을 1003:1005로 수정한다. 1003, 1005등의 수치는 바뀔 수 있다.
iv. dataadmin 행에 있는 1004:1004를 1004:1005로 수정한다. 1004, 1005등의 수치는 바뀔 수 있다.
v. data 행에 있는 /home/data/ 를 /home/./data/ 로 수정한다. 이 과정은 data 계정의 접속후 root디렉토리가 /home/data가 되도록 하기 위하여 필요하다.
vi. dataadmin 행에 있는 /home/dataadmin/ 를 /home/./data/ 로 수정한다. 이 과정은 dataadmin 계정의 접속후 root디렉토리가 /home/data가 되도록 하기 위하여 필요하다.
vii. 참고사항: 수정이 끝나면 data 행과 dataadmin 행은 다음과 같을 것이다.
1. data:x:1003:1005:,,,:/home/./data/:/bin/false
2. dataadmin:x:1004:1005:,,,:/home/./dataadmin/:/bin/false
viii. 파일을 저장 하고 vi 편집기를 종료한다.
C. data 디렉토리의 소유와 권한을 수정한다.
i. #chown dataadmin:datauser /home/data & 이 과정은 data 디렉토리를 dataadmin의 소유로 바꾸고, datauser 그룹의 소유로 귀속시킨다.
ii. #chmod 755 /home/data & 이 과정은 dataadmin 계정에게는 data 디렉토리의 읽기, 쓰기, 실행 권한을 주고 그 외에는 읽기, 실행 권한만을 준다. 디렉토리에 접근하기 위해서는 실행 권한이 필요하다.
3. vsFTPd 데몬 설치
A. #apt-get install vsftpd & 우분투의 경우이며, 다른 리눅스 배포판의 경우 적절한 명령어를 사용한다.
4. vsFTPd 데몬 설정
A. vsftpd.conf 파일을 수정한다.
i. #vi /etc/vsftpd.conf & vsftpd의 환경설정 파일을 편집한다.
ii. 다음의 옵션을 모두 활성화 시킨다.
1. listen=YES & 서버가 외부 접속에 응답하기 위하여 필요하다.
2. anonymous_enable=NO & 익명 로그인을 거부하기 위하여 필요하다.
3. local_enable=YES & 로컬에서 접속하기 위하여 필요하다.
4. write_enable=YES & 쓰기가 가능해야 하므로 필요하다.
5. local_umask=022 & 업로드 후 권한을 자동설정하기 위하여 필요하다. 777-umask=자동설정된 권한이다.
6. chroot_list_enable=YES & chroot_list 파일에 등록된 사용자는 passwd파일에서 지정된 디렉토리보다 상위로 올라갈 수 없다.
7. chroot_list_file=/etc/vsftpd.chroot_list & chroot_list 파일의 경로를 지정한다.
8. passwd_chroot_enable=YES & passwd 파일에 등록된 대로 chroot를 실행할지 결정한다.
9. local_root=/home/ & chroot를 위해 로컬 root디렉토리를 설정하는 부분이다.
10. 참고사항: vsFTPd에서는 기본적으로 chroot된 이후의 루트 디렉토리에 쓰기를 금지하고 있다. 따라서, local_root는 vsFTPd에서 실행된 chroot이고, 이때의 루트는 /home/ 으로 설정한다. passwd 파일에서는 /./ 이후에 지정된 디렉토리가 접속후 chroot의 root로 지정되고, 따라서 /home/./data/ 로 설정한다.
11. 나머지 옵션은 그대로 두어도 무방하다.
iii. 파일을 저장하고 vi 편집기를 종료한다.
B. vsftpd.chroot_list 파일을 수정한다.
i. #vi /etc/vsftpd.chroot_list & chroot를 해줄 계정을 설정하기 위하여 이 파일을 편집해야 한다.
ii. 첫번째 줄에 data 를 입력한다.
iii. 두번째 줄에 dataadmin 를 입력한다.
iv. vi 편집기를 종료한다.
v. 참고사항: 이 파일에 등록되지 않은 계정은 FTP접속이 차단된다.
5. 변경된 환경설정을 다시 불러오기 위하여 vsFTPd를 재시작한다.
A. #service vsftpd restart
B. 접속이 잘 되는지 테스트 한다.
6. 추가 설정
A. ssh 접속을 차단하고 싶은 경우 passwd 파일을 수정한다.
B. passwd 파일에서, ssh 접속을 차단하고 싶은 계정이 있는 행에서, /bin/bash 부분을 /bin/false 로 수정한다.
C. 특정 FTP 클라이언트의 경우 ssh 접속이 차단되면 아예 접속할 수 없는 경우도 있으므로 유의한다.
pdf도 첨부합니다.
pdf도 첨부합니다.
피할 수 있을때 즐겨라! http://melotopia.net/b
댓글 달기