FTP 서비스(vsftpd) 점검

점검 내용
  • FTP 서비스가 활성화 되어있는지 점검
  • FTP 기본 계정에 쉘 설정 여부 점검
  • FTP 접근제어 설정파일에 관리자 외 비인가자들이 수정 제한 여부 점검
  • FTP 서비스를 사용할 경우 ftpusers 파일 root 계정이 포함 여부 점검
점검 목적
  • 취약한 서비스인 FTP서비스를 가급적 제한함을 목적으로 함
  • FTP 서비스 설치 시 기본으로 생성되는 ftp 계정은 로그인이 필요하지 않은 계정으로 쉘을 제한하여 해당 계정으로의 시스템 접근을 차단하기 위함
  • 비인가자들의 ftp 접속을 차단하기 위해 ftpusers 파일 소유자 및 권한을 관리해야 함
  • root의 FTP 직접 접속을 방지하여 root 패스워드 정보를 노출되지 않도록 하기 위함
보안 위협
  • FTP 서비스는 통신구간이 평문으로 전송되어 계정정보(아이디, 패스워드) 및 전송 데이터의 스니핑이 가능함
  • 불필요한 기본 계정에 쉘(Shell)을 부여할 경우, 공격자에게 해당 계정이 노출되어 ftp 기본 계정으로 시스템 접근하여 공격이 가능해짐
  • ftpusers 및 user_list 파일에 인가되지 않은 사용자를 등록하여 해당 계정을 이용, 불법적인 FTP 서비스에 접근이 가능함
  • FTP 서비스는 아이디 및 패스워드가 암호화되지 않은 채로 전송되어 스니핑에 의해서 관리자 계정의 아이디 및 패스워드가 노출될 수 있음
점검 대상
  • Linux : Rocky 9
판단 기준
  • 양호 :
    – FTP 서비스가 필요없어 비활성화 되어 있는 경우
    – FTP 서비스 활성화 시 ftp 계정에 /sbin/nologin 쉘이 부여되어 있는 경우
    – FTP 서비스 활성화 시 ftpusers 파일의 소유자가 root이고, 권한이 640 이하인 경우
    – FTP 서비스 활성화 시 root 계정 접속을 차단한 경우
  • 취약 :
    – FTP 서비스가 필요없는데도 활성화 되어 있는 경우
    – ftp 계정에 /sbin/nologin 쉘이 부여되어 있지 않은 경우
    – ftpusers 파일의 소유자가 root가 아니거나, 권한이 640 이하가 아닌 경우
    – root 계정 접속을 허용한 경우
조치 방법
  1. FTP 서비스가 필요없는 경우
    • vsftpd 패키지의 설치 여부 점검하여 설치되어 있지 않으면 “양호”로 판정
      [root@rocky9u2 ~]# dnf list installed vsftpd
      Error: No matching Packages to list
    • vsftpd 패키지가 설치되어 있으나 vsftpd 데몬이 비활성화 상태면 “양호”로 판정
      [root@rocky9u2 ~]# systemctl status vsftpd
      vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; preset: disabled) Active: inactive (dead)
    • xinetd 슈퍼 데몬을 사용하는 경우, ftp service 파일(/etc/xinetd.d/ftp)의 disable 지시자값이 “yes”로 설정되어 있으면 “양호” 판정
      [root@rocky9u2 ~]# grep "disable" /etc/xinetd.d/ftp
      disable = yes
    • 필요없는 FTP 서비스가 활성화되었으면 “취약”으로 판단하고, vsftpd 패키지를 삭제하거나 서비스를 비활성화시킴
      [root@rocky9u2 ~]# systemctl disable --now vsftpd [root@rocky9u2 ~]# dnf -y remove vsftpd [root@rocky9u2 ~]# vi /etc/xinetd.d/ftp
      service ftp { socket_type = stream wait = no user = root server = /usr/sbin/vsftpd server_args = /etc/vsftpd/vsftpd.conf nice = 10 disable = yes flags = IPv4 }
  2. FTP 서비스가 필요한 경우
    • ftp 계정은 로그인이 필요없도록 shell 제한
      – ftp 계정에 로그인 쉘이 등록된 경우 usermod -s /sbin/nologin ftp 명령어 실행
      [root@rocky9u2 ~]# grep "^ftp" /etc/passwd
      ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    • /etc/vsftpd/ftpusers, /etc/vsftpd/user_list 파일의 소유자(root) 및 권한(600) 확인
      – 소유자와 권한이 아래와 다른 경우, chown root:root 파일명 명령어와 chmod 600 파일명 명령어로 변경
      [root@rocky9u2 ~]# ls -l /etc/vsftpd/ftpusers /etc/vsftpd/user_list
      -rw-------. 1 root root 125 Apr 27 2023 /etc/vsftpd/ftpusers -rw-------. 1 root root 361 Apr 27 2023 /etc/vsftpd/user_list
    • root 계정의 FTP 서비스 접속 제한 확인
      – 조건: PAM 인증을 위해 /etc/pam.d/vsftpd 파일에서 sense=deny 설정 확인
      – 조건: /etc/vsftpd/vsftpd.conf 파일에서 userlist_deny=NO 설정이 없어야 함
      – root 계정이 없거나 주석 처리된 경우에는 등록
      [root@rocky9u2 ~]# grep "root" /etc/vsftpd/ftpusers /etc/vsftpd/user_list
      /etc/vsftpd/ftpusers:root /etc/vsftpd/user_list:root
◁ DoS 공격에 취약한 서비스 비활성화 | NFS 서비스(nfs-server) 점검 ▷