Linux/서버 서비스 / / 2023. 3. 22. 14:09

[FTP]FTP 서버 구축 방법(vsfpd), 파일질라(FileZilla) 사용법

반응형

 

 

 

 

FTP파일 전송 프로토콜(File Transfer Protocol)의 약자로

 

 TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이의 대용량 파일 전송을 하는데 사용됩니다.

 

 

 

FTP는 파일 전송을 위한 포트 2가지를 사용합니다.

 

 

인증 및 제어포트 21번 포트
data 전송포트 active mode 클라이언트가 포트를 지정해서 서버에 통보하면 서버가 데이터를 전송한다.
클라이언트 측 방화벽에 20번 포트를 열려있어야 전송 가능하다
(그래서 잘 사용하지 않는다)
passive mode 서버가 데이터 전송 포트를 지정해서 클라이언트에게 통보하면
클라이언트가 서버에 접속해서 데이터를 가져간다.
20번 포트 사용 안하고 임의의 포트를 사용한다.

 

 

 

이번 포스팅은 vsftpd 패키지를 사용해서

 

passive mode로 FTP 서버를 구축하고 파일질라로 확인해보겠습니다.

 

 

 

1. vsftpd 설치

 

dnf install -y vsftpd

 

 

2. vsftpd 설정

 

 

vsftpd를 설치하고 설정파일(/etc/vsftpd/vsftpd.conf)로 들어가서 몇 가지 작업을 할겁니다.

 

 

 

vi /etc/vsftpd/vsftpd.conf

 

:se nu 로 넘버링 작업까지 완료

 

 

원본 수정 의미
12 anonymous_enable=NO #anonymous_enable=NO 익명사용자 허용/거부
42 connect_from_port_20=YES #connect_from_port_20=YES 데이터전송포트 사용/거부
52 #xferlog_file=/var/log/xferlog xferlog_file=/ftp/xferlog 39번줄 xferlog_enable 옵션이 YES인 경우 저장할 경로 지정
59 #idle_session_timeout=600 idle_session_timeout=120 idle 상태가 ~초가 넘으면 세션 종료
62 #data_connection_timeout=120 data_connection_timeout=60 파일 업/다운로드 시 연결 유지시간
86 #ftpd_banner=Welcome to blah FTP service. banner_file=/ftp/banner FTP 접속 성공 시 출력 메세지
101 #chroot_list_enable=YES chroot_list_enable=YES chroot에서 제외할 사용자 목록 사용/거부
103 #chroot_list_file=/etc/vsftpd/chroot_list chroot_list_file=/ftp/chroot chroot_list_enable 옵션이 YES인 경우 해당 목록 파일 지정
이하
내용
추가
(없음) allow_writeable_chroot=YES chroot 사용자에게 쓰기 권한 추가
pasv_enable=YES passive mode 사용
pasv_min_port=65000 passive mode에서 사용할 시작 포트
pasv_max_port=65100 passive mode에서 사용할 마지막 포트

 

 

위 표를 참고해서 설정 파일을 수정합니다.

 

 

12번째 줄: 사용자를 따로 만들어서 FTP 통신을 할거라 익명사용자 사용은 #주석 처리를 했습니다.

 

42번째 줄: passive mode를 사용하니 데이터전송포트도 #주석 처리를 합니다.

 

 

 

파란색으로 표시한 경로는 따로 /ftp 디렉토리를 만들어서 관리하는게 편해서 mkdir로 만들어둔 상태입니다.

 

 


(이하 파란색 표시한 부분 디렉토리 설정입니다 참고 해주세요)

 

 

mkdir /ftp
vi /ftp/chroot
vi /ftp/banner

 

FTP 접근을 허용할 사용자 a를 만들어서 비밀번호를 a로 설정한다. /ftp/chroot 파일 안에 a를 저장한다.

 

/ftp/banner 파일 내부

 


 

 

파일 설정이 끝났다면 vsftpd를 실행시킵니다.

 

 

systemctl enable --now vsftpd

 

 

 

3. 방화벽 열기

 

 

파일 전송을 위해 20번, 21번 포트와

 

passive mode에서 사용할 포트 65000-65100 구간을 열어줘야 합니다.

 

 

포트를 열어주고 방화벽과 vsftpd를 재구동 시킵니다.

 

 

firewall-cmd --permanent --zone=public --add-port={20,21}/tcp
firewall-cmd --permanent --zone=public --add-port=65000-65100/tcp

firewall-cmd --reload
systemctl restart vsftpd

 

 

 

프트가 잘 열렸는지 확인도 해봅시다.

 

 

 

firewall-cmd --list-all

 

 

 

 

3. 파일질라(filezilla 확인)

 

 

이제 사용자 a로 FTP 연결을 시도해봅시다.

 

파일질라를 설치하고 파일 > 사이트 관리자 탭을 엽니다.

 

 

 

 

호스트(H)에는 리눅스 서버의 IP주소를 넣고

 

사용자는 아까 만들었던 사용자 a를 넣습니다.

 

비밀번호 설정을 했기 때문에 로그온 유형은 비빌번호 묻기로 합니다.

 

 

전송 실행 탭에서는 수동형으로 합니다.

 

 

 

 

 

비밀번호 입력 탭에서 아까 설정한 비밀번호 a를 입력합니다.

 

 

 

 

 

연결에 성공했을겁니다.

 

 

 

 

 

 

 

 

 

 


+ vsftpd를 삭제할 때 디렉토리도 삭제해줘야합니다.

 

dnf remove -y vsftpd
rm -rf /etc/vsftpd

 

 

 

 

 

 

반응형

'Linux > 서버 서비스' 카테고리의 다른 글

[DHCP]DHCP DORA란? 리눅스 DHCP 서버 구성 방법  (0) 2023.03.21
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유