the walking dead
차례:
- 전제 조건
- 데비안 9에 vsftpd 설치
- vsftpd 구성
- 1. FTP 액세스
- 2. 업로드 활성화
- 3. root 루트
- 4. 수동 FTP 연결
- 5. 사용자 로그인 제한
- 6. SSL / TLS를 통한 전송 보안
- vsftpd 서비스를 다시 시작하십시오.
- 방화벽 열기
- FTP 사용자 생성
- 쉘 액세스 비활성화
- 결론
FTP (File Transfer Protocol)는 원격 네트워크와 파일을 전송하는 데 사용되는 표준 네트워크 프로토콜입니다. 보다 안전하고 빠른 데이터 전송을 위해서는 SCP 또는 SFTP를 사용하십시오.
Linux에 사용 가능한 많은 오픈 소스 FTP 서버가 있습니다. 가장 널리 사용되고 널리 사용되는 것은 PureFTPd, ProFTPD 및 vsftpd입니다.
이 튜토리얼은 데비안 9에서 vsftpd (Very Secure Ftp Daemon)를 설치하고 구성하는 방법을 설명합니다. vsftpd는 안전하고 빠른 FTP 서버입니다. 또한 사용자를 홈 디렉토리로 제한하고 SSL / TLS로 전체 전송을 암호화하도록 vsftpd를 구성하는 방법을 보여줍니다.
전제 조건
로그인 한 사용자는 패키지를 설치할 수있는 sudo 권한이 있어야합니다.
데비안 9에 vsftpd 설치
vsftpd 패키지는 데비안 리포지토리에서 사용할 수 있습니다. 설치는 매우 간단합니다.
sudo apt update
sudo apt install vsftpd
설치 프로세스가 완료되면 vsftpd 서비스가 자동으로 시작됩니다. 서비스 상태를 인쇄하여 확인하십시오.
sudo systemctl status vsftpd
출력 결과는 아래와 같으며 vsftpd 서비스가 활성화되어 실행되고 있음을 보여줍니다.
● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2018-12-10 11:42:51 UTC; 53s ago Main PID: 1394 (vsftpd) CGroup: /system.slice/vsftpd.service └─1394 /usr/sbin/vsftpd /etc/vsftpd.conf
vsftpd 구성
vsftpd 서버는
/etc
디렉토리에있는
vsftpd.conf
파일을 수정하여 구성 할 수 있습니다.
대부분의 설정은 구성 파일에 잘 설명되어 있습니다. 사용 가능한 모든 옵션을 보려면 공식 vsftpd 페이지를 방문하십시오.
다음 섹션에서는 보안 vsftpd 설치를 구성하는 데 필요한 몇 가지 중요한 설정을 살펴 보겠습니다.
vsftpd 구성 파일을 열어 시작하십시오.
1. FTP 액세스
anonymous_enable
및
local_enable
지시문을 찾아 구성이 아래 행과 일치하는지 확인하십시오.
anonymous_enable=NO local_enable=YES
이렇게하면 로컬 사용자 만 FTP 서버에 액세스 할 수 있습니다.
2. 업로드 활성화
파일 업로드 및 삭제와 같은 파일 시스템 변경을 허용하려면
write_enable
설정을 주석 해제하십시오.
3. root 루트
FTP 사용자가 홈 디렉토리 외부의 파일에 액세스하지 못하게하려면
chroot
설정을 주석 해제하십시오.
chroot_local_user=YES
보안 취약성을 방지하기 위해 기본적으로 chroot가 활성화 된 경우 사용자가 잠겨있는 디렉토리가 쓰기 가능한 경우 vsftpd는 파일 업로드를 거부합니다.
chroot가 활성화 된 경우 업로드를 허용하려면 아래 방법 중 하나를 사용하십시오.
-
방법 1-업로드를 허용하는 권장 방법은 chroot를 활성화하고 FTP 디렉토리를 구성하는 것입니다. 이 학습서에서는 사용자 홈 내에
/etc/vsftpd.confftp
디렉토리를 작성하여 파일을 업로드하기위한 chroot 및 쓰기 가능한uploads
디렉토리로 사용합니다.user_sub_token=$USER local_root=/home/$USER/ftp
방법 2- 또 다른 옵션은 vsftpd 구성 파일에 다음 지시문을 추가하는 것입니다. 사용자에게 홈 디렉토리에 대한 쓰기 가능한 액세스 권한을 부여해야하는 경우이 옵션을 사용하십시오.
/etc/vsftpd.confallow_writeable_chroot=YES
4. 수동 FTP 연결
vsftpd는 수동 FTP 연결에 모든 포트를 사용할 수 있습니다. 포트의 최소 및 최대 범위를 지정하고 나중에 방화벽에서 범위를 엽니 다.
구성 파일에 다음 행을 추가하십시오.
/etc/vsftpd.conf
pasv_min_port=30000 pasv_max_port=31000
5. 사용자 로그인 제한
특정 사용자 만 FTP 서버에 로그인 할 수있게하려면 파일 끝에 다음 줄을 추가하십시오.
userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
이 옵션이 활성화되면 사용자 이름을
/etc/vsftpd.user_list
파일 (한 줄에 한 명씩)에 추가하여 로그인 할 수있는 사용자를 명시 적으로 지정해야합니다.
6. SSL / TLS를 통한 전송 보안
SSL / TLS로 FTP 전송을 암호화하려면 SSL 인증서가 있어야하며이를 사용하도록 FTP 서버를 구성해야합니다.
신뢰할 수있는 인증 기관에서 서명 한 기존 SSL 인증서를 사용하거나 자체 서명 된 인증서를 만들 수 있습니다.
이 학습서에서는
openssl
명령을 사용하여 자체 서명 된 SSL 인증서를 생성합니다.
다음 명령은 10 년 동안 유효한 2048 비트 개인 키 및 자체 서명 인증서를 작성합니다. 개인 키와 인증서는 모두 동일한 파일에 저장됩니다.
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
SSL 인증서가 작성되면 vsftpd 구성 파일을여십시오.
sudo nano /etc/vsftpd.conf
rsa_cert_file
및
rsa_private_key_file
지시문을 찾아서 값을
pam
파일 경로로 변경 한 후
ssl_enable
지시문을
YES
설정하십시오.
rsa_cert_file=/etc/ssl/private/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem ssl_enable=YES
다르게 지정하지 않으면 FTP 서버는 보안 연결을 위해 TLS 만 사용합니다.
vsftpd 서비스를 다시 시작하십시오.
편집이 끝나면 vsftpd 구성 파일 (주석 제외)은 다음과 같아야합니다.
/etc/vsftpd.conf
listen=NO listen_ipv6=YES anonymous_enable=NO local_enable=YES write_enable=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=YES user_sub_token=$USER local_root=/home/$USER/ftp pasv_min_port=30000 pasv_max_port=31000 userlist_enable=YES userlist_file=/etc/vsftpd.user_list userlist_deny=NO
변경 사항을 적용하려면 파일을 저장하고 vsftpd 서비스를 다시 시작하십시오.
방화벽 열기
포트
21
(FTP 명령 포트), 포트
20
(FTP 데이터 포트) 및
30000-31000
(수동 포트 범위)을 열려면 다음 명령을 실행하십시오.
sudo ufw allow 20:21/tcp
sudo ufw allow 30000:31000/tcp
잠기지 않도록 포트
22
열 것입니다.
sudo ufw allow OpenSSH
UFW를 비활성화했다가 다시 활성화하여 UFW 규칙을 다시로드하십시오.
sudo ufw disable
sudo ufw enable
변경 사항을 확인하려면 다음을 수행하십시오.
sudo ufw status
Status: active To Action From -- ------ ---- 20:21/tcp ALLOW Anywhere 30000:31000/tcp ALLOW Anywhere OpenSSH ALLOW Anywhere 20:21/tcp (v6) ALLOW Anywhere (v6) 30000:31000/tcp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6)
FTP 사용자 생성
FTP 서버를 테스트하기 위해 새 사용자를 만듭니다.
- FTP 액세스 권한을 부여 할 사용자가 이미있는 경우 1 단계를 건너 뛰고 구성 파일에서
allow_writeable_chroot=YES
를 설정 한 경우 3 단계를 건너 뛰십시오.
-
newftpuser
라는 새 사용자를 작성하십시오.sudo adduser newftpuser
허용 된 FTP 사용자 목록에 사용자를 추가하십시오.
echo "newftpuser" | sudo tee -a /etc/vsftpd.user_list
FTP 디렉토리 트리를 작성하고 올바른 권한을 설정하십시오.
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/upload
sudo chown -R newftpuser: /home/newftpuser/ftp
이전 섹션에서 설명한 것처럼 사용자는 파일을
ftp/upload
디렉토리에ftp/upload
.
이 시점에서 FTP 서버는 완벽하게 작동하며 FileZilla와 같은 TLS 암호화를 사용하도록 구성 할 수있는 FTP 클라이언트를 사용하여 서버에 연결할 수 있어야합니다.
쉘 액세스 비활성화
기본적으로 사용자를 만들 때 명시 적으로 지정하지 않으면 사용자는 서버에 대한 SSH 액세스 권한을 갖습니다.
쉘 액세스를 비활성화하기 위해 계정이 FTP 액세스로만 제한되어 있음을 알리는 메시지를 인쇄하는 새 쉘을 만듭니다.
/bin/ftponly
쉘을 작성하고 실행 가능하게하십시오.
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
echo -e '#!/bin/sh\necho "This account is limited to FTP access only."' | sudo tee -a /bin/ftponly
sudo chmod a+x /bin/ftponly
/etc/shells
파일의 유효한 쉘 목록에 새 쉘을 추가하십시오.
echo "/bin/ftponly" | sudo tee -a /etc/shells
사용자 쉘을
/bin/ftponly
로 변경하십시오.
sudo usermod newftpuser -s /bin/ftponly
FTP 액세스 권한 만 부여하려는 모든 사용자의 쉘을 변경하려면 동일한 명령을 사용하십시오.
결론
이 튜토리얼에서는 데비안 9 시스템에서 안전하고 빠른 FTP 서버를 설치하고 구성하는 방법을 배웠습니다.
ftp 데비안데비안 9에서 openvpn 서버를 설정하는 방법
VPN을 사용하면 원격 VPN 서버에 연결하여 트래픽 데이터를 비공개로 유지하여 연결을 암호화하고 안전하게 웹에서 서핑 할 수 있습니다. 이 튜토리얼은 OpenVPN을 설치하고 구성하여 자체 VPN 서버를 설정하는 과정을 안내합니다.
데비안 9에서 ufw로 방화벽을 설정하는 방법
UFW (Uncomplicated Firewall)는 iptables 방화벽 규칙을 관리하기위한 사용자에게 친숙한 프런트 엔드이며 주요 목표는 iptables 관리를보다 쉽게 또는 이름이 복잡하지 않은 것처럼 말합니다. 이 튜토리얼에서는 데비안 9에서 UFW로 방화벽을 설정하는 방법을 보여줍니다.
데비안 9에서 아파치 가상 호스트를 설정하는 방법
Apache Virtual Hosts를 사용하면 단일 컴퓨터에서 둘 이상의 도메인을 호스팅 할 수 있습니다. 이 튜토리얼에서는 데비안 9에서 Apache 가상 호스트를 설정하는 방법을 안내합니다.