티스토리 뷰

네트워크

[Unix/Linux] FTP 서버 실습

금전 2018. 4. 10. 13:38

FTP는 파일 전송 프로토콜을 의미한다.

대용량의 파일 전송 서비스에 적합하다.

데몬으로 실행되는데, xinetd보다는 standalone 형태로 운영된다.

standalone 형태로 운영되는 FTP는 시스템의 자원을 많이 차지하는 서비스다.


[Unix/Linux] FTP 서버 실습


1. vsftpd 설치 확인

ftp 서버를 구축하기 위해 필요한 vsftpd 패키지를 설치해야 한다.

ftp 서버를 구축할 수 있는 데몬은 여러가지가 있지만

그 중에서 vsftpd는 성능과 보안 면에서 다른 ftp 서버에 비해 탁월하므로 vsftpd를 사용해서 FTP 서버를 실습하겠다.


rpm -qa | grep vsftpd 

명령어로 설치여부를 확인한다.


[root@apache vsftpd]# rpm -qa | grep vsftpd

vsftpd-2.0.5-13.SUL2


2. FTP 서버 설정


/etc/vsftpd/vsftpd.conf 파일로 FTP 서버 설정을 할 수 있다.

익명 사용자 관련 설정/ chroot 설정 / 제한 설정 등


* 익명 사용자 관련 설정

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

 - banned_email_file 경로 지정

 #non_anon_password=NO

 - 익명 사용자 패스워드 입력 여부 

 #anon_root=/var/ftp (d:/var/ftp)

 - 익명 사용자의 root 디렉터리 경로 설정

 #ftp_username=ftp (d:ftp)

 - ftp username 지정


 * chroot 설정

 #chroot_local_user=YES (d:No)

 전체 사용자에게 홈디렉토리를 각각의 root로 인식 시킨다.

 #chroot_list_enable=YES

 1) chroot_local_user = NO 인 경우

chroot_list_file에 지정된 사용자만 chroot 설정 적용

 2) chroot_local_user = YES 인 경우

chroot_list_file에 지정된 사용자만 chroot 설정 적용하지 않음

 #chroot_list_file=/etc/vsftpd/chroot_list

 - Default 값 : /etc/vsftpd/chroot_list


* 제한 설정 -> 접속 수 제한

 #max_clients=30

 최대 접속 가능한 클라이언트 수 설정

 #max_per_ip=3 (0은 무제한)

 ip당 최대 접속 가능한 수 

 #ls_recurse_enable=YES

 (ls –R 명령은 부하가 크다)



tcp_wrappers = YES
접근을 제한하는 방법 중 하나로, ip로 접근을 제한한다.
YES로 설정하고
/etc/hosts/allow , /etc/hosts/deny 파일 설정을 통해 접근 제한을 할 수 있다.
tcp_wrappers 값은 /etc/vsftpd.conf 파일에서 설정한다.
iptables 방화벽보다 쉽고 단순해서 많이 사용되는 접근 제한 방식이다.


3. FTP 설정 - standalone일 때만 사용되는 항목
FTP 서버는 주로 standalone 방식으로 운영된다고 했다.
standalone 방식인 경우에만 사용되는 항목이 따로 있다.

listen=YES
- vsftpd 데몬 동작 방식 지정
YES : standalone 
NO : xinetd


4. 실제 실습 - ip주소로 접근 제한

tcp_wrappers 설정을 통해 모든 ip의 접속을 차단하되, 192.168.10.228 주소의 접근만 허용해봤다.

[root@apache etc]# cat hosts.deny
vsftpd:ALL

[root@apache etc]# cat hosts.allow
vsftpd:192.168.10.228

[root@apache etc]# service vsftpd restart
vsftpd를 종료 중:                                          [  OK  ]
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]


FTP 서버에서 설정을 마치고 접속을 시도하면, 접속이 확인된다. 

[root@DNS ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B7:50:2D
          inet addr:192.168.10.228  Bcast:192.168.10.255  Mask:255.255.255.0

[root@DNS ~]# ftp 192.168.10.227
Connected to 192.168.10.227.
220 (vsFTPd 2.0.5)



/etc/hosts.allow에 등록했던 192.168.10.228을 지우고 접속을 다시 시도해봤다.


[root@DNS ~]# ftp 192.168.10.227

Connected to 192.168.10.227.

421 Service not available.



5. 실제 실습 - 익명 사용자 설정

6. 실제 실습 - 홈 디렉터리 설정 



'네트워크' 카테고리의 다른 글

[Web] 0. 웹이란? + 이더넷(LAN)  (0) 2018.07.06
FTP 이론.  (0) 2018.04.10
데몬이란?  (0) 2018.04.10
[네트워크] 데이터 통신 기본구조  (1) 2018.03.10
[네트워크] 네트워크 주소 체계 - IP address 1(서브넷팅)  (3) 2018.03.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함