FTP: 서버와 클라이언트 사이에 파일을 전송할 때 사용하는 프로토콜
최근에는 FTPS, SFTP등 암호화 통신을 지원하는 파일 전송 프로토콜이 등장하며 보안이 많이 강화됨
FTP 전송 방식은 액티브모드와 패시브모드 두개로 나뉨
일반적으로 액티브 모드를 하면 서버에서 클라이언트로 연결하는 과정에서 클라이언트 장치의 방화벽에 FTP 연결이
이루어 지지 않는 경우가 존재하여, 패시브 모드를 통해 FTP를 연결
우분투 리눅스에서 FTP 서버 지원 패키지는 vsftpd, Pure-FTPd
주로 vsftpd 사용하며, 익명모드이고 암호화 통신 프로토콜인 SSL/TLS 프로토콜을 활용한 FTPS 서비스를 지원
암호화 되지 않은 기본 FTP 프로토콜을 사용하면 공격자가 ARP 스푸핑 공격이나 네트워크 스니핑을 통해 공격이 가능해진다.
ARP 스푸핑: 근거리 통신망에서 ARP 프로토콜 메시지를 이용해 상대방 데이터 패킷을 중간에서 가로채는 해킹
네트워크 스푸핑: 네트워크에서 송/수신자가 교환하는 데이터 패킷을 분석해 계정, 비밀번호 같은 정보를 해킹
FTP 서버를 운영할 때 무차별 공격도 위험에 노출됨. 공격자가 네트워크를 스캔해 FTP 통신 포트가 열려있는 상태를 확인하고, Hydra를 이용해 무차별 공격을 하여 계정의 비밀번호를 탈취할 수 있음
안전한 FTP 서버 구축(vsftpd 패키지 활용)
1. FTP 서버 설치
2. 외부에서 접솔할 수 있도록 방화벽 정책 수정
3. 파일 편집기를 통해 /etc/vsftpd 파일에서 기본 FTP 보안 환경 설정을 아래의 표와 같이 수정
환경 설정 항목 | 설명 | 기본값 | 추천값 |
anonymous_enable | FTP 익명 사용자 허용 여부 | NO | NO |
local_enable | 로컬 사요자 로글인 허용 여부 | YES | YES |
xferlog_enable | FTP 업로드/다운로드 로그 기록 여부 | YES | YES |
xferlog_file | FTP 로그 저장 위치 | /var/log/xferlog.log | 기본값 |
chroot_local_user | 사용자 홈 디렉터 격리 로컬 사용자 사용 여부 | NO | YES |
chroot_list_enable | 격리할 사용자 정보 제공 여부 | NO | YES |
chrrot_list_file | chroot 사용자 저장 파일 위치 | /etc.vsftpd.chroot_list | 기본값 |
userlist_enable | FTP 사용자 제한 기능 사용 여부 | YES | YES |
userlist_deny | FTP 사용자 로그인 제한 범위 설정 ▶YES: list에 기록된 사용자 로그인 금지 ▶NO: list에 기록된 사용자만 로그인 허용 |
YES | NO |
pasv_min_port | 패시브 모드 데이터 통신 포트 | 1024번 이상 | 임의 포트 |
pasv_max_port | 패시브 모드 데이터 통신 포트 | 1024번 이상 | 임의 포트 |
사용자 격리(chroot jail): 해당 사용자가 상위 디렉터리로 이동할 수 없는 것을 의미
4. FTP 프로토콜은 암호화 되지 않은 상태이기 때문에 공격에 취약함. 따라서 SSL/TLS 암호화가 적용된 FTP 서비스인 FTPS 프로토콜을 설정하여 보안 강화 필요함. 리눅스 기본 제공 FTP 클라이언트는 FTPS 프로토콜을 지원하지 않기 때문에 FTPS 접속을 하려면 FTPS 프로토콜을 지원하는 LFTP 혹은 Filezila 등의 프로그램 활용
'Security' 카테고리의 다른 글
Security_메일 서버 보안 (1) | 2025.02.04 |
---|---|
Security_ 파일 공유 서버 해킹 (0) | 2025.01.23 |
Security_원격 접속 해킹 (0) | 2025.01.23 |
Security_데이터베이스 해킹 & 보안 (1) | 2025.01.13 |
Security_웹 서버(리눅스) 보안 구축 (0) | 2025.01.08 |