FTP

- 대용량의 파일 전송 서비스에 적합
- 웹 서비스의 일부로 통합 운영되는 추세
- xinetd보다는 standalone 형태로 운영

 (xinetd : 슈퍼데몬- 스스로 listen 하지 않음 / standalone : 스스로 listen, 메모리에 상주)
시스템에 리소스를 많이 차지하는 서비스
- Out of band
 • 21 : control connection
 • 20 : data connection(Active mode)
  - Passive mode : 임의의 포트를 이용 (1024 이후것으로)

get - ftp 파일 받기

put - ftp 파일 올리기

 

접속및 전송 과정
1. FTP client는 21번 port를 통해서 서버와 control connection을
설정한다.
2. 이 제어연결을 통해 사용자 계정과 비밀번호를 전송한다.
3. Client는 제어연결을 통해 원격지의 디렉토리 변경과 같은 명령을 전
송한다.
4. 서버측은 제어연결을 통해 파일 전송을 위한 명령을 받으면 TCP data
connection을 초기화 한다.
5. 하나의 파일 전송이 끝나면 data연결은 close된다.
6. 다음 파일 전송을 위해서는 새로운 TCP connection을 생성한다.

 

관련 파일
• 데몬 : /usr/sbin/vsftpd
• 설정 파일 : /etc/vsftpd/vsftpd.conf
• PAM 모듈 : /etc/pam.d/vsftpd
• 접근 제한 파일 : /etc/vsftpd/ftpusers
/etc/vsftpd/user_list

 

Active mode(액티브 모드)
클라이언트가 데이터를 수신 받을 임의의 포트를 서버에 알려주면 서
버는 20번 포트를 통해 클라이언트에게 데이터를 전송함
• Client에서 Server로 FTP 제어 연결 요청
• Client에서 제어 연결을 통해 자신의 Data 전송 Port(Random Port)
를 Server 측에 알려줌
• Server에서 Client로 Data 전송 연결 요청


Passive mode(패시브 모드)
서버가 데이터를 송신할 임의의 포트를 클라이언트에 알려주어 클라이
언트가 서버의 임의의 포트에 접속하여 데이터를 가져감
• Client에서 제어 연결을 통해 Server 측에 Passive 연결요청
• Server에서 제어 연결을 통해 자신의 Data 전송 Port(Random
Port)를 Client 측에 알려줌
• Client에서 Server로 Data 전송 연결 요청

 

 

실습 전 컴퓨터 구성

st04.sec

192.168.10.130 - win

192.168.10.131 - ns (로컬네임서버)

192.168.10.133 - www (ftp, smb)

 

192.168.10.133을 ftp 서버로 설정할 것이다.

 

vi /var/named/st04.zone

$TTL    1D
@   IN   SOA  ns.st04.sec.   root.ns.st04.sec. (
                                   1         ; Serial
                                   1D        ; Refresh
                                   1H        ; Retry
                                   1W        ; Expire
                                   3H )      ; Minimum
; Name Server
   IN   NS      ns.st04.sec.
; Host address
          IN     A       192.168.10.131
ns        IN     A       192.168.10.131
win       IN     A       192.168.10.130
www       IN     A       192.168.10.133
ftp       IN     A       192.168.10.133
smb       IN     A       192.168.10.133

 

192.168.10.133 컴퓨터의 ip주소와 DNS 설정이다. (vmware 에서 centos7_5)

 

FTP 실습

1. ftp 정상작동 여부

vsftp 설치 확인

# yum list vsftpd

 

vsftpd 설치

# yum install –y vsftpd

 

vsftpd 서버 실행

# systemctl start vsftpd

 

사용자 생성

 

192.168.10.130 컴퓨터에서 테스트

사용자 st 계정은 로그인이 되는 것을 볼 수 있다.

 

/etc/vsftp/vsftpd.conf 파일에서 설정한다.

 

Active mode 설정

pasv_enable=NO(default : YES)
• 클라이언트에서 passive 모드로 접속을 요청해도 active 모드로 접속
된다.

 

Passive mode 설정

pasv_enable=YES (default : YES)
pasv_min_port=0 (default : 0, any port)
pasv_max_port=0 (default : 0, any port)
방화벽이나 공유기 사용시에 passive mode에서 사용하는 port 번
호를 등록해줘야 하기 때문에 범위를 반드시 지정한다.

 

익명 사용자 관련 설정

anonymous_enable=YES
#anon_upload_enable=YES (d:NO)
#anon_mkdir_write_enable=YES (d:NO)
#deny_email_enable=YES (d:NO banned_email_file )
- banned 파일에 지정된 메일 계정은 접속이 불허된다.
#banned_email_file=/etc/vsftpd.banned_emails
#non_anon_password=NO
#anon_root=/var/ftp (d:/var/ftp)
#ftp_username=ftp (d:ftp)

 

제한 설정

#max_clients=30
#max_per_ip=3 (0은 무제한)
#ls_recurse_enable=YES (ls –R 명령은 부하가 크다)

 

2. FTP 서비스 제한 (chroot 설정)

 

FTP 실습 1 - FTP 서비스 제한 (chroot 실습)

FTP 서비스 제한 (chroot 실습) chroot 설정 ** chroot : 사용자 계정의 home 디렉토리를 root로 변경 #chroot_local_user=YES (d:No) #chroot_list_enable=YES - chroot_local_user가 NO일 때 chroot_list_..

lemonandgrapefruit.tistory.com

 

3. ip별로 접속 제한

 

FTP 실습 2 - IP 별로 접속 제한

IP 별로 접속 제한 standalone 인 경우만 사용 listen=YES > standalone 사용 tcp_wrappers=YES > 접근제어 사용 여부 - /etc/hosts.deny, /etc/hosts.allow 파일에 정의 - hosts.allow 파일의 보안 등급이 높..

lemonandgrapefruit.tistory.com

 

4. FTP 사용자 제한 users user_list

 

FTP 실습 3 - FTP 사용자 제한

FTP 사용자 제한 user_list를 이용한 사용자 제한 설정 - userlist_file(/etc/vsftpd/user_list)에 등록된 계정에 대한 접속 제어는 userlist_enable과 userlist_deny에 따라 결정. userlist_enable=YES => /etc..

lemonandgrapefruit.tistory.com

 

+ Recent posts