리눅스 - FTP서버

로커스트·2021년 6월 9일
0

Linux 중급

목록 보기
3/4
post-thumbnail

FTP란 무엇인지 대해 살펴보자

FTP란 ?


FTP ( File Transfer Protocol ) : TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜이다.

port 넘버는 TCP접속 21, TCP데이터 20를 사용하며 21번은 세션을 유지하고 20번은 데이터 전송할때만 사용한다.

ID와 Passwork가 있어야 원격으로 접속이 가능하며 익명사용자(anonymous)도 접속이 가능하도록 설정할 수 있다.

  • vsftpd (Very Secure FTPD) 페도라에서 기본적으로 제공하며 보안성과 성능이 우수한 FTP서버이며 vsftpd의 자체 보안 문제로 보안 권고가 나온 적이 없다.

FTP 종류

  • serv-u , G6 : 유료 FTP서버

  • FileZilla : 무료 FTP서버

  • FileZilla, 알FTP, WS FTP, CuteFTP : FTP 클라이언트


FTP 사용빈도가 줄어든 이유 ..

  1. 공유폴더 사용을 많이 해서
  2. 웹상에서 파일업로드 및 다운이 가능해서
  3. 요즘은 그룹웨어를 많이들 사용해서
  4. N드라이브,구글드라이브 같은 클라우드 스토리지를 이용해서

FTP 장점 & 단점

  • 장점
  1. 동작 방식이 대단히 단순하고 직관적이기 때문에 사용법도 간단하다
  2. WWW 방식보다 파일을 빠른 속도로 한꺼번에 주고 받을 수 있다.
  • 단점
  1. 사진이나 동영상등 멀티미디어 콘텐츠는 내려받기가 완료된 후에 확인이가능하다 (WWW환경에서는 내려받으면서 재생이 가능하다)
  2. 명령어 기반의 통신 서비스이기에 FTP Client 프로그램을 사용하지 않으면 사용이 복잡하고 어려울 수가 있다.


FTP 서버 구축에 대하여 살펴보자

FTP 서버 구축

  1. vsftpd 설치 유무확인후 없으시 설치한다
rpm -qa | grep vsftpd

yum -y install vsftpd
  1. 설치후 vsftpd 시작 및 서비스 등록
systemctl start vsftpd

systemctl enable vsftpd  # centOS7버전 명령어 
chkconfig on vsftpd # centOS6버전 명령어
  1. FTP 클라이언트를 통하여 익명사용자(anonymous)로 접속확인
    방화벽을 꺼둔 상태로 진행했다면 문제없이 FTP서버에 접속이 된다
    일반사용자계정을 만들어도 접속이 가능하다
    단, root는 접속이 불가능하다 ( 보안상문제로 기본값이 접속 불가능이다 )
# netstat -nt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp6       0      0 192.168.1.10:20         192.168.1.1:62843       TIME_WAIT  
tcp6       0      0 192.168.1.10:21         192.168.1.1:62841       ESTABLISHED

현제 사용중인 네트워크를 확인해보면 20,21번 포트가 사용하고 있는걸 확인할 수 있다.


FTP 서버 환경설정

/etc/vsftpd/vsftpd.conf : FTP 서버 환경설정파일이다.

FTP 보안에 대해서 ..

  1. 익명의 사용자 문제
    익명의 사용자는 접근에 대해서는 서버관리자의 재량이지만.. 업로드 및 디렉토리 생성은 불가능하게 설정해야한다. 왜냐하면 익명의사용자가 바이러스나 악성코드를 업로드할 위험이 있기 때문이다.
  1. 로컬 사용자가 디렉토리 이동문제
    기본설정일 경우에 로컬 사용자는 서버 전체의 디렉토리를 볼 수 있고 권한이 없는곳이면 어디든 이동이 가능하다. 이 또한 보안상 좋지 않기에 가상의 루트디렉토리를 설정하여 문제를 해결할 수 있다.

  2. 특정 사용자 접근금지
    FTP서버는 특정 사용자에 대하여 접근금지가 가능하다. 특정 사용자에 관한 리스트를 만들면 해당 사용자의 접근을 막을 수 있다.

profile
늦은 개발자의 길

0개의 댓글