점검 내용
- 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 계정 접속을 허용한 경우
조치 방법
- FTP 서비스가 필요없는 경우
- vsftpd 패키지의 설치 여부 점검하여 설치되어 있지 않으면 “양호”로 판정
[root@rocky9u2 ~]# dnf list installed vsftpdError: No matching Packages to list
- vsftpd 패키지가 설치되어 있으나 vsftpd 데몬이 비활성화 상태면 “양호”로 판정
[root@rocky9u2 ~]# systemctl status vsftpdvsftpd.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/ftpdisable = yes
- 필요없는 FTP 서비스가 활성화되었으면 “취약”으로 판단하고, vsftpd 패키지를 삭제하거나 서비스를 비활성화시킴
[root@rocky9u2 ~]# systemctl disable --now vsftpd [root@rocky9u2 ~]# dnf -y remove vsftpd [root@rocky9u2 ~]# vi /etc/xinetd.d/ftpservice ftp { socket_type = stream wait = no user = root server = /usr/sbin/vsftpd server_args = /etc/vsftpd/vsftpd.conf nice = 10 disable = yes flags = IPv4 }
- vsftpd 패키지의 설치 여부 점검하여 설치되어 있지 않으면 “양호”로 판정
- FTP 서비스가 필요한 경우
- ftp 계정은 로그인이 필요없도록 shell 제한
– ftp 계정에 로그인 쉘이 등록된 경우usermod -s /sbin/nologin ftp
명령어 실행[root@rocky9u2 ~]# grep "^ftp" /etc/passwdftp: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
- ftp 계정은 로그인이 필요없도록 shell 제한
◁ DoS 공격에 취약한 서비스 비활성화 | | | NFS 서비스(nfs-server) 점검 ▷ |
---|