2018년 10월 6일
먼저 설치하기 전에 설치하고자 하는 컴퓨터에 고정 IP 주서를 부여 해야 한다.
1. vsftpd 패키지 설치
1.1. vsftpd를 설치한다.
sudo apt update
sudo apt install vsftpd
1.2. /etc/vsftpd.conf 파일을 백업한다.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bk
2.1. /etc/vsftpd.conf 파일을 수퍼유저 권한으로 편집하여 다음 라인들을 주석에서 해제한다.
write_enable=YES
local_umask=022
chroot_local_user=YES
2.2. 다음을 가장 아래에 추가 한다.
allow_writeable_chroot=YES
pasv_min_port=40000
pasv_max_port=40100
2.3. vsftpd 서비스를 재시작 한다.
2.4. vsftpd 상태를 확인한다.
액티브되고 돌고 있으면 상태가 표시된다. 서비스 시작에 실패하였으면 다시 /etc/vsftpd.conf 를 정확히 편집하여 저장하고, 서비스를 다시 시작해 보시기 바란다.
2.5. FTP 서버에 테스트 사용자를 추가해 보겠다. /usr/sbin/nologin 를 접근 제한용도으로 사용하겠다.
비밀번호를 2회 입력하면 비밀번호가 설정된다.
2.6. /ett/shells 파일에 /usr/sbin/nologin을 추가하여 nologin shell을 사용하는 사용자에 대한 로그인 액세스를 활성화한다.
FTP 클라이언트를 사용하여 테스트 한다.
3. Secure FTP ( FTPS ) 구성하기
SSL 인증서를 사용하여 FTP 연결을 보호 할 수 있다. openssl 명령을 사용하여 자체 서명 된 SSL 인증서를 만들 수 있다.
3.1. 아래 명령을 사용하여 새 SSL 인증서를 만든다. 여기에 우리는 유효 기간이 365 일인 2048 비트 RSA 인증서를 만들 예정이다.
3.2. SSL을 활성화하고 구성하기 위해 /etc/vsftpd.conf 파일을 변경 한다. 인증서 위치에 따라 아래 라인을 찾아 수정하고 SSL을 활성화 한다.
3.3. vsftpd 서비스를 재시작 한다.
3.4. WinSCP를 사용하여 TLS/SSL explict encryption 옵션으로 FTP에 연결을 테스트 한다.
접속하면 경고가 표시될 것이다. 'Yes'를 선택하여 접속한다. 이제 암호화하여 파일을 전송할 수 있다.
SFTP는 다른 프로토콜을 사용한다. 데이터 전송에 있어 ssh 포트를 사용한 FTP보다 보안에 강한다.
4.1. OpenSSH 패키지를 설치한다.
4.2. SFTP 유저 그룹을 생성한다.
4.3. 수퍼유저 권한으로 /etc/ssh/sshd_config 파일을 편집하여 다음 라인을 주석으로 막습니다.
4.4. 다음 라인을 마지막에 추가한다.
4.5. ssh 서비스를 다시 시작한다. 서비스를 다시 시작하는 동안 SSH 연결을 느슨하게 할 수 있으므로 콘솔에서이 단계를 수행한다.
4.6. ftpaccess 그룹에 새 사용자를 추가 한다.
4.7. 사용자를 홈 디렉토리로 chroot 한다. 홈디렉토리 권한을 변경한다.
4.8. 홈 디렉토리에 upload디렉토리를 만들고 소유권을 수정한다. 이 디렉토리는 파일을 서버에 업로드하는 데 사용할 수 있다.
4.9. SFTP 클라이언트에서 접속이 되는지 확인 한다.
완료 되었다.
참조: Setup FTP server on ubuntu 16.04