리눅스 - FTP서버

OS/Linux 2015. 12. 22. 18:36

<FTP>

File Transfer Protocol로 파일을 전송하기 위한 서비스이다. 요즘은 웹 환경에서 ftp의 기능인 파일 전송을 편리하게 사용할 수 있어서 과거보다는 인기가 많이 떨어졌다.

 

<실습>

1. ftp를 설치해보자.

rpm -qa | grep vsftpd로 ftp가 설치되어있는지 확인 후, 설치되어 있지 않다면 yum -y install vsftpd를 사용해 설치하도록 하자


2. SELinux기능을 꺼줘야한다.

ftp설치 후, system-config-firewall에서 FTP를 체크해주자.

ftp데몬 vsftpd를 restart시켜주자

 

3. /etc/vsftpd/vsftpd.conf에 대해서 알아보자.

anonymous_enable : 익명 사용자가 접속을 허가할지 설정

local_enable : 로컬사용자의 접속 허가 설정

- write_enable : 로컬사용자가 ftp 명령어 중에 접속해서 write명령어를 허용할 것인가를 결정하는 것이다.

- local_umask : 파일들의 기본값을 설정하는 값을 지정해줌

- anon_upload_enable : 익명 사용자의 파일 업로드 허가를 설정

- anon_mkdir_write_enable : 익명 사용자의 디렉토리 생성 허가를 설정

- download_enable : 다운로드의 허가를 설정

- dirmessage_enable=YES : ftp 접속한 사용자가 특정디렉토리로 이동하였을 때 개별 디렉토리의 메시지를 보여주도록 허용할 것인가 허용하지 않을 것인가를 설정하는 부분이다. 주로 pwd를 지정해놓는다. (위치를 출력하게끔...)

- xferlog_enable=YES : 로그 기록을 저장하겠다. 어디에? /var/log/xferlog에

- connect_from_port_20=YES : ftp서비스는 접속과 명령어에 사용되는 포트는 21번이며 실제 데이터 전송에 사용되는 기본포트는 20번이다. 20번 포트의 데이터 전송 연결을 허용할 것인가 아닌가를 설정하는 것이다.

- idle_session_timeout=600 : ftp연결에서 idle 타임에 대한 타임아웃값을 설정한다. ftp 접속후에 600초동안 아무런 작업 없이 놀고있다면 강제 로그아웃시켜버린다.

- data_connection_timeout=120 : ftp 연결시 큰 파일을 업로드 or 다운로드 할 때에 전송도중 접속이 끊기는 상황이 발생한다면 이 설정을 주석처리 하거나 값을 늘리면 된다.

- ftpd_banner : ftp베너 부분을 바꾸는 부분

- max_clients=30

max_per_ip=3 : 동시 ftp 접속자수를 30명까지만 허용하고, 한 ip에서의 동시 접속을 3번까지만 허용하는 것이다.

- listen_port : FTP의 포트번호를 설정 (default=21)

- deny_file : 업로드를 금지할 파일을 지정

ex) deny_file={*.jpg,*.avi}

 

4. /etc/vsftpd/vsftpd.conf로 들어가서 anonymous_enable, local_enable, write_enable, anon_upload_enable, anon_mkdir_write_enable의 주석을 제거한다.

그 후, 데몬을 restart시켜준다.

 

5. ftp명령어 후에, 서버에 접속해보자.



6. 디렉토리를 이동해보자.



7. 디렉토리 이동 후, ftp서버에 있는 c.txt파일을 받아보자.

받을 때 사용하는 명령어는 get [파일명]이고, 한꺼번에 많은 파일을 받고 싶을때는 mget[파일명]이다.


--------------------------------------------------------------------

ftp서버에 접속했을때 사용하면 유용한 명령어

binary mod : 바이너리 파일 전송 모드로 전환(원래는 ascii 모드)

cd : 디렉토리를 변경

디렉토리를 한꺼번에 이동하는 방법은 !cd /home/fedora처럼 맨 앞에 !를 써준다.

dir : 원격 디렉토리의 목록을 출력

get [파일명] : 파일을 내려받음

open : 원격 ftp서버로 접속

put [파일명]: 로컬의 파일을 ftp서버로 전송(업로드)

pwd : 원격 서버의 작업 디렉토리 위치 출력

 

<ftp 접속 제한>

- /etc/vsftpd/user_list파일을 이용하는 방법 -

 

user_list파일에 한 행에 한 계정씩만 등록하는 것이다.

/etc/vsftpd/vsftpd.conf파일에서 userlist_enable=YES로 설정하였을 경우에 이 파일의 설정내용이 활성화됨을 의미하며 이것은 이 파일에 등록된 사용자들은 모두 접속이 거부된다는 것을 말한다.

역으로 /etc/vsftpd/vsftpd.conf파일에서 userlist_enable=NO라고 되면 user_list파일에 등록된 사용자들은 접속이 허가되는 것이다.

 

user_list파일을 보도록 하자.


여기에 보면 많은 사용자들이 있는데 /etc/vsftpd/vsftpd.conf파일에 userlist_enable=YES로 되어있어서 여깄는 사용자들은 전부 접속이 거부된것이다.


'OS > Linux' 카테고리의 다른 글

리눅스 - DNS 서버 개념  (0) 2015.12.23
리눅스 - 부팅 순서 정리  (0) 2015.12.23
리눅스 - OpenSSH 서버  (0) 2015.12.22
리눅스 - Telnet(텔넷) 서버  (0) 2015.12.22
리눅스 - 환경변수  (0) 2015.12.22
posted by 경원구