차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
tech:proftpd [2012/10/03 12:11] – 새로 만듦 14.32.18.124 | tech:proftpd [2016/07/12 09:26] (현재) – 바깥 편집 127.0.0.1 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======Proftpd====== | ||
+ | |||
+ | ProFTPD는 보안과 기능에 중심을 둔 FTP서버로 wu-ftpd와 함께 널리 사용된다. | ||
+ | |||
+ | [[vsftpd]] 설치 후 로긴이 안되어서 삽질 하다가 알게된 것... | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | sudo apt-get install proftpd | ||
+ | |||
+ | |||
+ | 하면 끝 | ||
+ | |||
+ | 복잡한 설정 필요없슴. | ||
+ | |||
+ | sudo nano / | ||
+ | |||
+ | =====설정===== | ||
+ | |||
+ | <code bash> | ||
+ | ServerName | ||
+ | # 서버 네임을 적어 줍니다. 아무거나 적어도 상관 없습니다. | ||
+ | |||
+ | ServerType | ||
+ | # Server Tyre을 가리키는 지시자입니다. | ||
+ | # 서버 유형에는 inetd와 standalone 모드를 선택할 수 있습니다. | ||
+ | |||
+ | DefaultServer | ||
+ | # 주 IP address 또는 < | ||
+ | # connection이 있을때 기본으로 사용되어질 서버 설정을 조절한다 | ||
+ | |||
+ | Port 21 | ||
+ | # Proftpd가 사용할 기본 포트를 지정하는 지시자로 기본 포트 변경시에 " | ||
+ | # ADSL이나 케이블 같은 유동 아이피 환경에서는 ISP업체에서 21번 23번 25번 80번 포트등을 필터링 하기 떄문에 ftp 기본 | ||
+ | # 포트를 변경해 줘야지 외부에서 접속할 수 있습니다. | ||
+ | |||
+ | Umask 022 | ||
+ | # umask를 설정해주는 지시자로 새로 생성되는 파일이나 디렉토리의 기본 퍼미션을 결정합니다. | ||
+ | # umask 022는 644의 퍼미션을 가진 파일과 755의 퍼미션을 가진 디렉토리를 생성합니다. | ||
+ | # umask에 대한 자세한 내용은 리눅스 기초 강좌 편을 보기 바랍니다. | ||
+ | |||
+ | MaxInstances | ||
+ | # Proftpd가 standalone 모드로 작동할 때 최대로 생성할 수 있는 자식 프로세스를 정의합니다. | ||
+ | # DoS 공격에 대한 보호 목적이므로 적당한 값을 설정해서 사용하기 바랍니다. | ||
+ | |||
+ | User nobody | ||
+ | # Proftpd가 실행 될 때 User지시자로 정의된 사용자명으로 실행됩니다. | ||
+ | # 보안상 절대 root로 실행되게 해서는 안됩니다. | ||
+ | |||
+ | Group | ||
+ | # 이것 또한 User지시자와 마찬가지고 Proftpd가 실행 될 떄 Group지시자로 정의된 Group 명으로 실행됩니다. | ||
+ | |||
+ | UseReverseDNS | ||
+ | # 접속자의 IP 주소를 Reverse Mapping을 하지 않겠다는 설정이다. | ||
+ | # Reserver Mapping이란 IP 주소를 도메인으로 변경하는 것을 말한다. | ||
+ | |||
+ | IdentLookups | ||
+ | # 일반적으로, | ||
+ | # 사용된다. 이것은 IdentLookups 지시자를 통해 조절된다 (proftpd.oops.org의 번역분) | ||
+ | |||
+ | AuthPAMAuthoritative | ||
+ | # PAM이 인증에 있어서 최종 단계의 권한을 가지게 합니다. | ||
+ | # 즉 PAM 인증이 실패할 경우 클라이언트와의 연결을 거부합니다. | ||
+ | |||
+ | RootLogin | ||
+ | # ftp로의 root 로그인을 허락 또는 거부 하기 위한 지시자입니다. | ||
+ | |||
+ | < | ||
+ | AllowOverwrite | ||
+ | # 모든 디렉토리내의 파일에 대해 같은 이름의 파일을 전송할 때 | ||
+ | # 덮어 쓰기를 허락 또는 거부하기 위한 지시자. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ################## | ||
+ | # anonymous 섹션 | ||
+ | ################## | ||
+ | |||
+ | < | ||
+ | # anonymous 설정을 시작합니다. | ||
+ | # anonymous설정은 </ | ||
+ | User ftp | ||
+ | Group ftp | ||
+ | # anonymous접속의 경우 Proftpd가 실행 할 때 사용자명 " | ||
+ | |||
+ | UserAlias | ||
+ | # anonymous로 ftp에 접속한 사용자들에 대해 접속자명을 ftp로 alias해 줍니다. | ||
+ | # 즉 anonymous로 접속한 사용자들은 사용자명 " | ||
+ | |||
+ | MaxClients | ||
+ | # 동시 접속자수를 정의하는 지시자로 정의한 수를 초과할 때 " " 안의 문자열을 사용자에게 출력합니다 | ||
+ | |||
+ | MaxClientsPerHost | ||
+ | # 하나의 호스트당 최대 접속수를 정의하는 지시자로 정의한 수를 초과 했을 때 | ||
+ | # " " 안의 | ||
+ | |||
+ | DisplayLogin | ||
+ | # ftp로그인 때 보여지는 메시지 파일 이름을 정의합니다. | ||
+ | |||
+ | DisplayFirstChdir | ||
+ | # 각 서브 디렉토리로 이동할 경우 보여줄 메시지 파일을 정의합니다. | ||
+ | |||
+ | RequireValidShell | ||
+ | # / | ||
+ | # 특별한 이유가 없다면 off로 설정해서 쓰기 바랍니다. | ||
+ | |||
+ | HideUser | ||
+ | # HideUser로 설정된 유저 소유의 파일은 보이지 않는다. | ||
+ | # 하지만 anonymous에게 일긱 권한이 있으면 아무런 소용이 없다. | ||
+ | |||
+ | # Anonymous' | ||
+ | # 업로드 디렉토리에 대한 설정입니다. | ||
+ | # 만약 업로드 디렉토리 이름을 변경하고 싶으면 아래의 uploads를 적당한 이름으로 변경해야 됩니다. | ||
+ | |||
+ | < | ||
+ | AllowOverwrite | ||
+ | # 덮어 쓰기를 허용합니다. | ||
+ | |||
+ | AllowRetrieveRestart | ||
+ | |||
+ | AllowStoreRestart | ||
+ | < | ||
+ | | ||
+ | # 디렉토리 삭제(RMD) 권한을 주지 않습니다. | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # 파일 읽기(READ), | ||
+ | # 읽기(READ)권한은 다운로드를 의미합니다. | ||
+ | # 와우 리눅스 7.0에는 MKD가 MDK로 잘못 설정되어 있습니다. | ||
+ | |||
+ | | ||
+ | # 읽기(READ), | ||
+ | # 하지만 특정 권한에 DENY 설정을 하지 않는 이상 AllowAll 설정을 하지 않아도 | ||
+ | # | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | # Anonymous' | ||
+ | # pub디렉토리에 대한 설정입니다. | ||
+ | < | ||
+ | <Limit READ> | ||
+ | AllowAll | ||
+ | # 읽기(READ)권한을 허락합니다. | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | DenyAll | ||
+ | # 업로드(STOR), | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 1. Order를 이용한 권한 제어 | ||
+ | 위에서 다루었던 proftpd.conf는 단순히 AllowAll 과 DenyAll만을 사용해 권한 제어를 했는데 Order 명령을 이용해서 | ||
+ | 접근제어와 권한 제어를 할 수 있습니다. | ||
+ | |||
+ | 특정 호스트만 로그인을 허용할 때 | ||
+ | <Limit LOGIN> | ||
+ | Order | ||
+ | Allow from 203.241.205., | ||
+ | Deny from all | ||
+ | </ | ||
+ | |||
+ | Order 명령에서 Allow 와 Deny는 공백 문자가 아닌 쉼표(, | ||
+ | Allow 와 Deny의 대상을 입력할 때도 대상들의 구분은 공백이 아닌 쉼표(, | ||
+ | 위의 설정은 203.241.205의 네트워크 주소를 가지거나 rootman.co.kr을 포함해 하위 호스트들만 접근이 가능하고 그외 호스트에 대해서는 Login을 받아 들이지 않습니다. | ||
+ | |||
+ | 예) | ||
+ | 203.241.205.97 | ||
+ | 203.241.202.16 | ||
+ | linux.rootman.co.kr | ||
+ | microsoft.com | ||
+ | order명령은 LOGIN외에 READ, MKD, DELE, RMD, STOR등에도 적용할 수 있습니다. | ||
+ | |||
+ | 2. 그외 설정 | ||
+ | 2-1 ftp 루트( / ) 디렉토리 지정 | ||
+ | DefaultRoot | ||
+ | 사용자가 fpt로 접속해서 자신의 홈 디렉토리 외에 다른 곳에는 접근하지 못하게 합니다. | ||
+ | ~(물결표시)는 사용자의 홈 디렉토리를 가리킵니다. 즉 자신의 홈 디렉토리가 루트( / ) 디렉토리가 됩니다. | ||
+ | 이 지시자를 설정 하지 않으면 기본적으로 DefaultRoot는 /로 설정되어 있기 때문에 사용자는 최상위 경로( / ) 까지 접근 할 수 있습니다. | ||
+ | |||
+ | 예) | ||
+ | DefaultRoot | ||
+ | --> aaa, bbb, ccc 그룹에 속하는 ftp 접속 떄 자신의 홈 디렉토리가 루트( / ) 디렉토리가 된다. | ||
+ | |||
+ | | ||
+ | --> mine 그룹에 속하는 사용자들을 제외한 나머지 접속자들은 자신의 홈 디렉토리가 루트 ( / ) 디렉토리가 된다. | ||
+ | |||
+ | 2-2 심볼릭 링크 파일 보여주기 | ||
+ | ShowSymlinks | ||
+ | 디렉토리에서 심볼릭 링크가 된 파일을 보여 주는냐, 보여 주지 않느냐에 대한 설정입니다. | ||
+ | 이 설정이 안 되어 있을 때에는 기본적으로 계정 사용자 접속의 경우에는 심볼릭 링크파일이 보여지고 anonymous사용자 접속의 경우는 심볼릭 링크 파일을 보여주지 않습니다. | ||
+ | 전체 사용자에게 On 또는 Off를 설정하고 싶다면 Global 섹션에 포함 시키면 됩니다. | ||
+ | |||
+ | 2-3 숨김파일 보여주기 | ||
+ | LsDefaultOption | ||
+ | 이 설정을 함으로써 점( . ) 으로 시작하는 파일 또는 디렉토리명을 보여 줍니다. 즉 숨김 파일에 대한 설정입니다. 하지만 요즘 사용하는 ftp클라이언트에서도 이 기능을 제공합니다. | ||
+ | |||
+ | 3. welcome.msg 파일에 사용할 수 있는 유용한 것들 | ||
+ | 호스트명 : %L | ||
+ | 남은 용량 : %f | ||
+ | 현재 접속자 수 : %N | ||
+ | 최대 접속자 수 : %M | ||
+ | 리모트 호스트 : %R | ||
+ | 사용자명 : %U | ||
+ | 관리자 메일 : %E | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | * | ||
+ | |||
+ | |||
+ | ^ 누구나 수정하실 수 있습니다. | ||
+ | |||