[Linux] FTP 서버 구축
programming/os

[Linux] FTP 서버 구축


17. FTP 서버 구축


17.1 FTP


1) File Transfer Protocol

2) 서버와 클라이언트 사이의 파일 전송을 하기 위한 프로토콜

3) 1971년 FTP 서비스에 대한 표준이 발표됨


17.2 vsftp 설치


17.2.1 리눅스에서 사용하는 대표적인 오픈소스 FTP 서버 프로그램으로서 보안, 성능, 안정성이 뛰어남


17.2.2 설치

yum -y install vsftpd


17.2.3 vsftp 서비스 시작
systemctl start vsftpd


17.2.4 vsftp 서비스 자동시작

systemctl enable vsftpd


17.2.5 FTP 서비스 제공을 위한 방화벽 개방

포트 - 20(데이터용) 21(ftp기본포트)

firewall-cmd    --permanent    --add-service=ftp

firewall-cmd    --reload

또는

firewall-config

설정 - 영구적

public이 선택된 상태에서 오른쪽 서비스 ftp 체크

옵션 / firewall 다시 불러오기


17.2.6 윈도우에 ftp 클라이언트 프로그램 설치

FileZilla(파일질라) 다운로드 및 설치


기본 설정만으로도 계정이 없는 게스트도 ftp 사용이 가능함

(var/ftp 디렉토리 사용)


/var/ftp 디렉토리에 파일을 복사하여 테스트

cp a.txt /var/ftp


17.2.7 vsftp 설정 파일 편집

편집 전 설정 파일 백업

cp    /etc/vsftpd/vsftpd.conf    /etc/vsftpd/vsftpd_old.conf


vsftpd.conf

gedit /etc/vsftpd/vsftpd.conf

12번 : anonymous_enable=NO (익명 사용자의 로그인 금지)

16번 : local_enable=YES (홈디렉토리 사용)

/home/사용자계정이 ftp 서비스의 홈디렉토리로 설정됨

19번 : write_enable=YES (업로드 가능)

100번 : chroot_local_user=NO (chroot_list에 기록된 계정은 홈디렉토리의 상위 디렉토리에 대한 접근을 금지시킴)

참고로 YES로 하게 되면 chroot_list에 기록된 계정은 홈디렉토리의 상위 디렉토리에 대한 접근이 가능함

101번 : chroot_list_enable=YES (홈디렉토리의 파일도 표시됨)

102번에 추가 : allow_writeable_chroot=YES (홈디렉토리에도 파일을 업로드할 수 있음)


17.2.8 설정 파일 변경 후 서비스 재시작

systemctl restart vsftpd

에러가 날 경우 설정 파일이 잘못된 것이므로 다시 확인해야 함


17.2.9 chroot_list 파일을 생성하여 centos 계정 추가

일반 사용자가 상위폴더에 접근하지 못하게 하기 위하여 설정

gedit /etc/vsftpd/chroot_list


17.2.10 vsftp 서비스 재시작

systemctl restart vsftpd


17.2.11 home 디렉토리에 읽기/쓰기 권한 부여

-R : 하위 디렉토리에 모두 적용

777 : 모든 권한 부여

-rwx                rwx            rwx

현재사용자    그룹사용자    기타


r : 읽기, 4

w : 쓰기, 2

x : 실행, 1

chmod -R 777 /home


17.2.12 리눅스 보안 설정 변경

ftp에서 사용자의 홈디렉토리를 사용할 수 있도록 설정

setsebool -P ftpd_full_access on


ftp에서 쓰기 권한 부여(파일 업로드 가능)

setsebool -P allow_ftpd_full_access on


ftp 재시작

systemctl restart vsftpd


17.2.13 윈도우즈에서 FIleZilla를 실행하여 테스트