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.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를 실행하여 테스트