사용자 도구
관리
로그인
추적:
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== FTP ====== 파일 전송을 위한 프로토콜 ===== 설치 ===== <code bash> $ sudo apt-get install vsftpd $ sudo vim /etc/vsftpd.conf </code> 아래 세군데 주석해제 후 아래와 같이 수정 <code bash> anonymous_enable = NO local_enable = YES write_enable = YES </code> 그 뒤 vsftpd 재시작 <code bash> $ sudo /etc/init.d/vsftpd restart </code> ===== 설정 ===== ==== FTP 접속 시 폴더 변경 ==== /etc/vsftpd.conf 에서 다음 부분 수정 <code bash> local_root=/home/ </code> ==== 설정 예 ==== 다음 글에 대한 해법이다.((http://kldp.org/node/134897 참고)) http://kldp.org/node/134760 **설정 목표** : 두개의 계정을 만들어서, 하나는 읽기 전용, 다른 하나는 관리자용으로 설정한다. * FTP서버 및 버전: vsFTPd 2.3.5 * 안내: Ubuntu 12.04 LTS 서버 버전 기준. * 안내: 명령어 앞의 #는 shell의 프롬프트를 의미. * 안내: 명령어 뒤의 & 이후는 주석을 의미한다. 따라서 &를 포함한 &이후는 입력하지 않는다. * 안내: 이 문서에 나온 모든 명령어는 대/소문자를 구분한다. * 안내: 모든 명령어는 특별히 언급하지 않는 한 root 권한으로 실행한다. === 1. 계정 생성 === == A. seminar 계정 생성 == 계정을 만든 후 계정의 비밀번호를 바꾼다. <code bash> $ adduser seminar $ passwd seminar </code> == B. seminaradmin 계정 생성 == 마찬가지 <code bash> $ adduser seminaradmin $ passwd seminaradmin </code> == C. seminaruser 그룹 생성 == <code bash> $ addgroup seminaruser $ gpasswd seminaruser $ gpasswd -a seminar seminaruser // seminaruser 그룹에 seminar를 추가한다. $ gpasswd -a seminaradmin seminaruser // seminaruser 그룹에 seminaradmin을 추가한다. $ gpasswd –A seminaradmin seminaruser // seminaruser 그룹의 관리자를 seminaradmin으로 지정한다. </code> === 2. 디렉토리 설정 === == A. group 파일에서 그룹 인덱스 확인 == <code bash> $ vi /etc/group </code> 가장 마지막 부분의 다음 내용 확인 <code bash> seminaruser:x:1005:seminar,seminaradmin </code> 여기서 1005라는 숫자를 확인해둔다. 이 수치는 바뀔 수 있다. 내용을 확인한 후 vi편집기를 종료한다. == B. passwd 파일 내용 수정 == <code bash> $ vi /etc/passwd </code> seminar가 있는 행과 seminaradmin이 있는 다음의 두 행을 찾는다. <code bash> seminar:x:1003:1003:,,,:/home/seminar/:/bin/bash seminaradmin:x:1004:1004:,,,:/home/seminaradmin/:/bin/bash </code> 그 후 아래와 같이 수정한다. * seminar 행에 있는 1003:1003을 1003:1005로 수정한다. 1003, 1005등의 수치는 바뀔 수 있다. * seminaradmin 행에 있는 1004:1004를 1004:1005로 수정한다. 1004, 1005등의 수치는 바뀔 수 있다. * seminar 행에 있는 /home/seminar/ 를 /home/./seminar/ 로 수정한다. 이 과정은 seminar 계정의 접속후 root디렉토리가 /home/seminar가 되도록 하기 위하여 필요하다. * seminaradmin 행에 있는 /home/seminaradmin/ 를 /home/./seminar/ 로 수정한다. 이 과정은 seminaradmin 계정의 접속후 root디렉토리가 /home/seminar가 되도록 하기 위하여 필요하다. **참고사항** : 수정이 끝나면 seminar 행과 seminaradmin 행은 다음과 같을 것이다. <code bash> seminar:x:1003:1005:,,,:/home/./seminar/:/bin/false seminaradmin:x:1004:1005:,,,:/home/./seminaradmin/:/bin/false </code> 파일을 저장 하고 vi 편집기를 종료한다. == C. seminar 디렉토리의 소유, 권한 수정 == seminar 디렉토리를 seminaradmin의 소유로 바꾸고, seminaruser 그룹의 소유로 귀속시킨다. <code bash> $ chown seminaradmin:seminaruser /home/seminar </code> 그 후 seminaradmin 계정에게는 seminar 디렉토리의 읽기, 쓰기, 실행 권한을 주고 그 외에는 읽기, 실행 권한만을 준다. 디렉토리에 접근하기 위해서는 실행 권한이 필요하다. <code bash> $ chmod 755 /home/seminar </code> === 3. vsFTPd 데몬 설치 === <code bash> $ apt-get install vsftpd </code> === 4. vsFTPd 데몬 설정 === == A. vsftpd.conf 파일 수정 == <code bash> $ vi /etc/vsftpd.conf </code> 그 후 다음의 옵션을 모두 활성화 시킨다. <code bash> listen=YES // 서버가 외부 접속에 응답하기 위하여 필요하다. anonymous_enable=NO // 익명 로그인을 거부하기 위하여 필요하다. local_enable=YES // 로컬에서 접속하기 위하여 필요하다. write_enable=YES // 쓰기가 가능해야 하므로 필요하다. local_umask=022 // 업로드 후 권한을 자동설정하기 위하여 필요하다. 777-umask=자동설정된 권한이다. chroot_list_enable=YES // chroot_list 파일에 등록된 사용자는 passwd파일에서 지정된 디렉토리보다 상위로 올라갈 수 없다. chroot_list_file=/etc/vsftpd.chroot_list // chroot_list 파일의 경로를 지정한다. passwd_chroot_enable=YES & passwd 파일에 등록된 대로 chroot를 실행할지 결정한다. local_root=/home/ // chroot를 위해 로컬 root디렉토리를 설정하는 부분이다. </code> **참고사항** : vsFTPd에서는 기본적으로 chroot된 이후의 루트 디렉토리에 쓰기를 금지하고 있다. 따라서, local_root는 vsFTPd에서 실행된 chroot이고, 이때의 루트는 /home/ 으로 설정한다. passwd 파일에서는 /./ 이후에 지정된 디렉토리가 접속후 chroot의 root로 지정되고, 따라서 /home/./seminar/ 로 설정한다. 나머지 옵션은 그대로 두어도 무방하다. 편집을 마친 후 파일을 저장하고 vi 편집기를 종료한다. == B. vsftpd.chroot_list 파일 수정 == chroot를 해줄 계정을 설정하기 위한 편집. <code bash> $ vi /etc/vsftpd.chroot_list </code> 다음 내용을 가장 위에 입력 후 저장한다. <code bash> seminar seminaradmin </code> 이 파일에 등록되지 않은 계정은 FTP접속이 차단된다. === 5. vsFTPd 재시작 === <code bash> $ service vsftpd restart </code> 접속이 잘 되는지 테스트 한다. === 6. 추가 설정 === * ssh 접속을 차단하고 싶은 경우 passwd 파일을 수정한다. * passwd 파일에서, ssh 접속을 차단하고 싶은 계정이 있는 행에서, /bin/bash 부분을 /bin/false 로 수정한다. * 특정 FTP 클라이언트의 경우 ssh 접속이 차단되면 아예 접속할 수 없는 경우도 있으므로 유의한다. ===== 문제 해결 ===== ==== 21번 포트로 접속이 안되는 경우 ==== 방화벽 문제일수도 있으나 처음 우분투 서버 설치 후 vsftpd를 설치한 경우라면 그럴리 없다. ''apt-get --purge remove''로 vsftpd 지우고 다시 설치했더니 되더라. 처음엔 왜 접속이 안됐던거지?
문서 도구
문서 보기
이전 판
역링크
PDF로 내보내기
맨 위로
PDF Export
내용으로 건너뛰기
OBG WiKi
사이트 도구
검색
최근 바뀜
미디어 관리자
사이트맵