FTP (File Transfer Protocol) 서버 구현
파일을 전송하기 위한 서비스로 파일 전송 자체를 위해서는 웹보다 성능이 뛰어나다.
CentOS에서 기본으로 제공하는 vsftpd와 외부 제공인 pure-ftpd를 설치해본다.
vsftpd 설치
-
dnf -y install vsftpd 명령으로 vsftpd 패키지를 설치한다.
-
/var/ftp/pub/ 디렉터리에 샘플 파일을 넣는다. (pub 디렉터리가 없다면 생성하고 넣는다.)
-
systemctl restart/enable vsftpd 명령어로 서비스를 재시작/상시가동 한다.
-
systemctl stop firewalld 로 방화벽을 꺼둔다. (실제 사용시에는 해당 포트만 연다.)
-
/etc/vsfptd/vsftpd.conf 파일에서 Anonymous_enable=YES 로 수정 후 저장한다.
- systemctl restart/enable vsftpd 로 서비스를 재시작/상시가동 한다.
vsfptd에서 특별한 인증 없이 외부에서 접속할 경우 기본적으로 anonymous다. 접근을 허용하는 경우이고 실제 사용 시에는 보안을 위해 허용하지 않기도 한다.
위 과정으로 서버에서 ftp 설치와 설정은 되었고 클라이언트 측에서 FileZilla를 이용해 FTP서버에 접속해 파일을 업/다운로드 해본다.
-
Filezilla 설치파일을 받고 설치를 진행한다.
-
호스트에 서버IP 사용자명에 anonymous와 비밀번호를 입력하고 빠른연결을 한다.
-
서버에서 필요한 파일을 받을 수 있다. 업로드를 원하면 아래 과정을 진행한다.
-
/etc/vsftpd/vsftpd.conf 파일을 아래와 같이 수정한다.
-
19행 write_enable=YES로 수정
-
29행 anon_upload_enable=YES 로 수정 (주석 처리 제거)
-
33행 anon_mkdir_write_enable=YES 로 수정(주석 처리 제거)
-
chown ftp.ftp /var/ftp/pub/ 명령어로 소유주를 변경한다.
-
systemctl restart vsftpd 로 서비스를 재시작한다.
Pure-FTPd 설치
-
wget또는 브라우저로 pre-ftpd 설치파일을 다운로드 하고 dnf -y install pure*.rpm 으로 패키지를 설치한다.
-
/etc/pure-ftpd/pure-ftpd.conf 를 아래와 같이 수정한다.
-
77행 NoAnonymous no 로 수정
-
279행 AnonymousCantUpload no 로 수정
-
systemctl restart/enable pure-ftpd 명령어로 서비스를 재시작/상시기동한다.
-
/var/ftp/ 디렉터리로 이동해 upload, download 디렉터리를 생성한다.
-
chown ftp.ftp upload download 로 소유권을 변경하고
-
chmod 333 upload 로 upload 디렉터리는 쓰기만 가능하도록 변경한다.
-
클라이언트에서 Filezilla로 위 vsftpd와 동일하게 접속한다.