* MissFlash의 리눅스 유용 명령어 목록
- proftpd 서버 설치 순서
- 디렉토리 생성 : mkdir /usr/local/src/ftpd
- 디렉토리 이동 : cd /usr/local/src/ftpd
- 배포파일 다운로드 : lftpget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0a.tar.gz (최신버전 확인은 http://www.proftpd.org 에서 가능)
- 다운로드한 파일의 압축 해제 : tar -xvzf [proftpd소스파일명.tar.gz]
- proftpd를 설치할 디렉토리 생성 : mkdir /usr/local/server/proftpd
- 소스파일 압축 해제 : tar -xzf proftpd-1.3.0a.tar.gz
- 디렉토리 이동 : cd proftpd-1.3.0a
- 환경설정 체크 스크립트 실행 : ./configure --prefix=/usr/local/server/proftpd --enable-autoshadow -enable-shadow
- 실행파일 생성 : make
- 실행파일 및 라이브러리 인스톨 : make install
- 환경설정 파일 수정 : /usr/local/server/proftpd/etc/proftpd.conf
- 데몬 시작 : /usr/local/server/proftpd/sbin/proftpd &
- 클라이언트 접속 : FileZilla 등의 클라이언트 프로그램 이용
- (접속 불가능시) iptables 방화벽 설정 파일에서 21번 포트를 오픈 (포트 오픈 여부 확인 : iptables -L)
- 패키지 설치 명령
- yum install [패키지명] : CentOS 배포사이트의 원격 업데이트 서버에서 패키지명을 찾은 후 설치
- yum update [패키지명] : CentOS 배포사이트의 원격 업데이트 서버에서 패키지명을 찾은 후 업데이트
- yum remove [패키지명] : 리눅스 서버에 설치된 패키지명 삭제
- proftpd 폴더 구조
- bin : 일반 실행 파일
- etc : 환경설정 파일
- libexec : 라이브러리 파일
- man : 메뉴얼 파일
- sbin : root(수퍼유저)가 실행할 수 있는 파일
- var : 로그 파일, 프로세스 ID를 저장하는 파일
- FTP 접속 오류 발생시 확인사항
- 아이디와 비밀번호
- 포트 번호 : 기본포트는 21입니다.
- Passive 모드 : 위 정보가 맞는데도 접속할 수 없을때는 클라이언트 프로그램의 환경설정(혹은 접속시 입력하는 정보)에서 Passive 모드(수동적인 모드)에 체크를 해제해보시기 바랍니다.
- 캐릭터셋 : 한글로 된 폴더나 파일명을 정상 출력하기 위해서는 UTF-8 모드로 체크해야 합니다.
- proftpd 서버 시작스크립트 생성
- 원본 소스파일로 이동 : cd /usr/local/src/ftpd/proftpd-1.3.0a
- 디렉토리 이동 : cd contrib/dist/rpm/
- proftpd.init.d : standalone 서비스, 독립서비스를 위한 부팅시 실행파일
- xinetd : xinetd 수퍼데몬 서비스를 위한 부팅시 실행파일
- ftp.pamd : pam 인증 사용시 필요한 파일
- proftpd.logrotate : 로그를 일정기간 단위로 잘라서 보관하는 작업을 위해 필요한 파일
- proftpd.init.d 파일 수정 : PATH="$PATH:/실행파일경로" 로 수정
- proftpd로 이름을 변경한 후, /etc/rc.d/init.d/ 디렉토리로 복사 : cp proftpd.init.d /etc/rc.d/init.d/proftpd
- 755로 퍼미션 변경 : chmod 755 /etc/rc.d/init.d/proftpd
- 런레벨 5에 활성화 후, 부팅시 실행하도록 설정 : chkconfig --add proftpd (chkconfig --level 35 proftpd on)
- 활성화 여부 확인 : chkconfig --list | grep proftpd
- proftpd.conf 파일 설정
- ServerName : FTP 서버 이름 및 텍스트 메시지
- ServerType : 실행방식 설정(inetd / xinetd / standalone로 설정)
- DefaultServer : Primary IP 또는 가상 FTP 서비스로부터의 연결 요청이 있을 때, 기본으로 응답할 서버
- Port : FTP 서비스의 포트
- Umask : 클라이언트 사용자가 생성하거나 업로드하는 디렉토리 혹은 파일의 퍼미션(디렉토리 퍼미션=777-Umask값, 파일 퍼미션=666-Umask값)
- MaxInstances : standalone 서비스 중 하나로 proftpd 데몬을 실행할 때, 최대 자식 프로세서 생성 개수 지정
- User, Group : 권한을 가지는 사용자와 그룹
- DefaultRoot : 계정 사용자별 루트 디렉토리 설정(~ 설정시 루트 디렉토리 상위로 접속 불가, !wheel 설정시 wheel그룹은 예외)
- AllowOverwrite : 업로드한 파일에 덮어쓰기를 허용할 것인지 설정(on / off로 설정)
- <Limit SITE_CHMOD>DenyAll</Limit> : 업로드한 파일에 대한 퍼미션 조정 가능여부 설정(DenyAll / AllowAll로 설정)
- 익명 FTP 서비스를 위한 설정
- <Anonymous ~anonyuser></Anonymous> : 시작, 종료 지시자
- User, Group : 익명 FTP 서비스를 할 때 할당받는 사용자와 그룹명
- UserAlias [접속자들의 사용자명] [매핑시킬 사용자 계정명] : UserAlias anonymous anonyuser
- MaxClients : 최대 동시접속 클라이언트 수
- DisplayLogin : 접속자에게 전달할 메시지 파일명(예 : welcome.msg)
- DisplayFirstChdir : .message라고 입력시 /var/anonyuser 하위의 디렉토리마다 .message파일을 만들고 사용자가 디렉토리 접속시 해당 메시지를 출력
- %T : 현재시간
- %F : 사용가능한 디스크 용량
- %C : 현재 디렉토리
- %R : 원격 호스트네임
- %L : 로컬 호스트네임
- %u : ident 프로토콜에 의해 작성된 사용자명
- %U : 로그인 사용자명
- %M : 최대 접속자수
- %N : 현재 접속자수
- %E : 서버 관리자 이메일
- %i : 현재 세션에서 업로드된 파일 수
- %o : 현재 세션에서 다운로드된 파일 수
- %t : 현재 세션에서 업로드, 다운로드된 파일 수
- %x : 사용자 클래스명
- %y : 사용자 클래스로부터 최대 접속자 수
- %z : 사용자 클래스로부터 최대 사용자 수
- <Limit WRITE>DenyALL</Limit> : 익명 접속자들의 쓰기 권한 설정(DenyAll / AllowAll로 설정)
- MaxClientsPerHost [최대 접속자 수] "[메시지]" : 호스트당 최대 허용 가능한 접속자 수 초과시 해당 메시지 출력
- MaxClientsPerUser [최대 접속자 수] "[메시지]" : 사용자당 최대 허용 가능한 접속자 수 초과시 해당 메시지 출력
- TimeoutIdle : idle 상태로 접속을 유지할 수 있는 시간
- TimeoutNoTransfer : 파일 전송이 없는 상태로 접속을 유지할 수 있는 시간
- TimeoutLogin : 로그인 인증을 유지할 수 있는 시간
- UpTime 10 service : proftpd 서비스 시작 시간, 오전 10시부터 시작한다는 옵션
- DownTime 23 service : proftpd 서비스 종료 시간, 오후 11시에 종료한다는 옵션
- ShowSymlinks : 심볼릭 링크 파일을 보여줄 것인지 설정(on / off로 설정)
- PassivePorts [MinPort] [MaxPort] : 패시브모드 포트 설정
- <Limit [명령어|명령어그룹]...> : 여러 명령어를 이용해 명령어 사용권한 제어
- CWD : 디렉토리 변경
- DELE : 파일 삭제
- MKD : 디렉토리 생성
- RNFR : 디렉토리 이름 변경
- RMD : 디렉토리 삭제
- RETR : 서버에서 클라이언트로 파일 전송
- STOR : 클라이언트에서 서버로 파일 전송
- ALL : 모든 FTP 명령에 대한 제한 적용
- DIRS : 디렉토리 목록과 관련된 FTP 명령 포함
- READ : 파일 읽기와 관련된 FTP 명령 포함, 디렉토리 목록은 포함 안됨
- WRITE : 디렉토리, 파일 쓰기, 생성, 삭제와 관련된 FTP 명령 포함
- LOGIN : 로그인 초기화 허용 또는 제한에 사용
- AnonRequirePassword : 익명 접속시 사용자 접속을 매칭시키는 FTP 계정의 패스워드가 필요(on / off로 설정)
- RootLogin : root 계정으로 FTP 접속을 하지 못하도록 설정(on / off로 설정)
- AuthPAM : FTP 접속자를 제한하는 인증 방법으로 PAM 모듈 사용여부 설정(on / off로 설정)
- AuthPAMConfig proftpd : PAM 인증시 /etc/pam.d 디렉토리 아래에 저장할 파일 이름 지정, /etc/ftpusers 파일에 접속을 제한할 사용자 아이디 입력
- MaxStoreFileSize 3 Mb user missflash : missflash 사용자에 한해 파일 하나당 업로드 최대 용량을 3MB로 제한
- MaxRetrieveFileSize 3 Mb user missflash : missflash 사용자에 한해 파일 하나당 다운로드 최대 용량을 3MB로 제한
- TransferRate RETR,STOR 1024000 : 업로드 및 다운로드 전송률(byte/sec) 설정
- ServerAdmin : 서버 관리자의 이메일 주소 입력
- DeferWelcome : 접속을 정상적으로 마친 후 서버이름 및 IP주소를 보여주도록 설정(on / off로 설정)
- UseReverseDNS : 접속자의 IP주소를 이용해 DNS Lookup을 실행할 것인지 설정(on / off로 설정)
- IdentLookups : ident 프로토콜을 이용해 접속자를 확인(on / off로 설정)
- HideUser, HideGroup : 특정 사용자와 그룹 소유의 파일들이 보이지 않도록 설정
- 제한 지시자 사용예
- <Limit LOGIN>
Order deny, allow
Deny from 192.168.1.200, .deny.com
Allow from all
< /Limit>
- 패스워드와 그룹 파일 편집 : vipw
- 출력 예 : anonyuser:x:510:510:FTP User:/var/anonyuser:/sbin/nologin
- proftpd 로그파일 관리 : cp proftpd.logrotate /etc/logrotate.d/proftpd
- 가상 FTP 서버 운영
- mkdir /var/vftp/incoming : 가상 디렉토리 생성
- chown anonyuser.anonyuser -R /var/vftp/ : 소유자, 소유그룹 변경
- -A RH-Firewall-1-1INPUT -m state --state NEW -m tcp -p tcp --dport 2121 -J ACCEPT : 2121포트 추가(/etc/sysconfig/iptables 파일 수정)
- 설정 예
- <VirtualHost 192.168.1.100>
... 기본 설정 ...
<Anonymous /var/vftp>
<Directory incoming>
<Limit WRITE>
AllowAll
</Limit>
</Directory>
</Anonymous>
< /VirtualHost>
|