Ubuntu vsftpd 보안 설정 | FTPS + 포트 변경 + IP 화이트리스트
// vsftpd · FTPS · TLS · IP Whitelist · Port
기본 설치 그대로 운영하면 안 된다 — 실무에서 쓰는 보안 설정 3가지
기본 vsftpd가 왜 문제냐면
기본 설치 상태에서 FTP는 평문 전송이다.
"같은 네트워크에서 패킷 캡처하면 ID, 패스워드, 파일 내용이 그대로 보인다."
내부망이라고 안전한 게 아니다. 포트 21은 스캐너가 제일 먼저 두드리는 포트고, IP 제한 없으면 누구든 시도할 수 있다. 세 가지만 막아도 공격 표면이 확 줄어든다.
기본 vsftpd 취약점
평문 전송 → 스니핑으로 크레덴셜 탈취 가능
포트 21 오픈 → 자동화 스캐너가 바로 감지
IP 제한 없음 → 외부에서 무제한 접근 시도
이 세 가지를 막는다. 구성 항목:
✓
FTPS — TLS 암호화
openssl 자체 서명 인증서 + 전송/로그인 암호화 강제
✓
포트 변경 — 21 → 비표준 포트
자동화 스캐너, 스크립트 공격 회피
✓
IP 화이트리스트 — 허용 IP 명시
등록된 IP 외 접근 차단 (tcp_wrappers / ufw)
기술 스택
ENCRYPTION
TLS 1.2 / 1.3
openssl 자체 서명 인증서
PORT
21 → 2121
비표준 포트로 변경
ACCESS CONTROL
IP Whitelist
tcp_wrappers + ufw
BASE
WSL2 Ubuntu
vsftpd 기본 설치 완료 상태
구조
TLS 인증서 생성
openssl로 자체 서명 인증서를 만든다. RSA 2048bit, 유효기간 10년.
💡
자체 서명 vs 공인 인증서
자체 서명은 암호화는 되지만 신뢰 체계가 없다. WinSCP에서 경고창이 뜨는데 내부망이면 수락하면 된다. 외부에 오픈하는 서버라면 Let's Encrypt 공인 인증서로 교체해야 한다.
vsftpd.conf — TLS + 포트 변경
기존 vsftpd.conf 아래에 추가한다. 포트는 listen_port로 바꾼다. 여기선 2121로 설정한다.
⚠️
삽질 포인트 — require_ssl_reuse
require_ssl_reuse=NO 빠지면 WinSCP에서 접속은 되는데 파일 전송 시 "426 Failure writing network stream" 오류 난다. 반드시 넣을 것.IP 화이트리스트 설정
등록된 IP만 접속 허용한다. tcp_wrappers로 설정한다. hosts.allow에 허용 IP 넣고, hosts.deny에서 나머지 전부 차단하는 방식이다.
⚠️
순서가 중요하다
tcp_wrappers는
hosts.allow 먼저 확인 → 없으면 hosts.deny 확인 순서다. hosts.deny에만 쓰고 hosts.allow를 빠뜨리면 본인도 못 들어간다.
💡
ufw로 추가 잠금 (선택)
tcp_wrappers와 별개로 ufw에서도 포트 레벨로 막을 수 있다.
두 레이어를 같이 쓰면 더 안전하다.
sudo ufw allow from 192.168.1.100 to any port 2121sudo ufw deny 2121두 레이어를 같이 쓰면 더 안전하다.
WinSCP FTPS 접속 설정
TLS + 포트 변경 후 WinSCP 설정을 바꿔야 접속된다. SFTP 모드가 아니다.
💡
인증서 경고창 뜰 때
자체 서명 인증서라 WinSCP가 신뢰할 수 없다는 경고를 띄운다. 내부망이면 수락하면 된다. 수락 후 인증서 정보가 저장돼서 다음부터는 안 뜬다.
전체 흐름 요약
보안 체크리스트
기본 FTP 대비 공격 표면이 확 줄어든다. TLS로 평문 차단, 포트 변경으로 스캐너 회피, IP 화이트리스트로 접근 자체를 막는다. 이 세 개가 실무 최소 기준이다.
// 결론
기본 FTP 그대로 운영하는 건 없다.
TLS + 포트 변경 + IP 화이트리스트, 세 개가 최소다.
TLS + 포트 변경 + IP 화이트리스트, 세 개가 최소다.
Tags:
#vsftpd보안
#FTPS
#TLS
#IP화이트리스트
#포트변경
#Ubuntu
#서버보안






