취약점 개요 | |
점검 내용 | 익명 FTP 접속 허용 여부 점검 |
점검 목적 | 실행중인 FTP 서비스에 익명 FTP 접속이 허용되고 있는지 확인하여 접속허용을 차단하는 것을 목적으로 함 |
보안 위협 | Anonymous FTP(익명 FTP)를 사용 시 anonymous 계정으로 로그인 후 디렉터리에 쓰기 권한이 설정되어 있다면 악의적인 사용자가 local exploit을 사용하여 시스템에 대한 공격을 가능하게 함 |
참고 | ※ Anonymous FTP(익명 FTP): 파일 전송을 위해서는 원칙적으로 상대방 컴퓨터를 사용할 수 있는 계정이 필요하나 누구든지 계정 없이도 anonymous 또는 ftp라는 로그인 명과 임의의 비밀번호를 사용하여 FTP를 실행할 수 있음 |
점검대상 및 판단 기준 | |
대상 | LINUX |
판단기준 | 양호 : Anonymous FTP (익명 ftp) 접속을 차단한 경우 |
취약 : Anonymous FTP (익명 ftp) 접속을 차단하지 않은 경우 | |
조치 방법 | Anonymous FTP를 사용하지 않는 경우 Anonymous FTP 접속 차단 설정 적용 |
점검 및 조치 | |
점검 | /etc/passwd 파일에 ftp 계정 존재 여부 확인 #cat /etc/passwd | grep "ftp" |
“passwd" 파일 내 ftp 계정이 존재하는 경우 아래의 보안설정방법에 따라 서비스 접속 제한 |
|
조치 | Case 1) 일반 FTP - Anonymous FTP 접속 제한 설정 방법 “/etc/passwd” 파일에서 ftp 또는, anonymous 계정 삭제 ∎ SOLARIS, LINUX, HP-UX 설정: #userdel ftp ∎ AIX 설정: #rmuser ftp Case 2) ProFTP - Anonymous FTP 접속 제한 설정 방법 conf/proftpd.conf 파일의 anonymous 관련 설정 중 User, Useralias 항목 주석처리 (proftpd.conf 파일의 위치는 운영체제 종류별로 상이함) <Anonymous ~ftp> <- Anonymous 설정 구간 # User ftp <- anonymous로 사용되는 계정 Group ftp # UserAlias anonymous ftp <- 별칭으로 사용되는 계정 ~~이하생략~~ </Anonymous> Case 3) vsFTP - Anonymous FTP 접속 제한 설정 방법 vsFTP 설정파일(“/etc/vsftpd/vsftpd.conf” 또는, “/etc/vsftpd.conf”)에서 anonymous_enable=NO 설정 |
점검 스크립트
#!/bin/bash
. function.sh
BAR
CODE [U-20] Anonymous FTP 비활성화
cat << EOF >> $RESULT
[양호]: Anonymous FTP (익명 ftp) 접속을 차단한 경우
[취약]: Anonymous FTP (익명 ftp) 접속을 차단하지 않은 경우
EOF
BAR
VALUE=0
FILE=/etc/proftpd.conf
FILE2=/etc/vsftpd/vsftpd.conf
cat /etc/passwd | grep -i ^ftp >/dev/null 2>&1
if [ $? = 0 ] ; then
WARN "일반 FTP - ftp 사용자를 제거하십시오."
VALUE=1
fi
cat /etc/passwd | grep -i ^anonymous >/dev/null 2>&1
if [ $? = 0 ] ; then
WARN "일반 FTP - anonymous 사용자를 제거하십시오."
VALUE=1
fi
if [ $VALUE = 0 ] ; then
OK "Anonymous FTP (익명 ftp) 접속을 차단한 경우 - 일반 FTP"
else
VULN "Anonymous FTP (익명 ftp) 접속을 차단하지 않은 경우 - 일반 FTP"
fi
BAR
INFO "PROFTP - 수동 점검을 진행하십시오."
INFO $FILE2 "의 anonymous 관련 설정 중 User, Useralias 항목을 주석처리하십시오."
BAR
CHECK=$(cat $FILE2 | grep ^anonymous | awk -F= '{print $2}')
VALUE2=0
if [ $CHECK == 'YES' ] ; then
VULN "VSFTP - "$FILE2 "의 anonymous_enable 값을 NO 로 설정하십시오."
VALUE2=1
fi
if [ $VALUE2 = 0 ] ; then
OK "Anonymous FTP (익명 ftp) 접속을 차단한 경우 - VSFTP"
else
VULN "Anonymous FTP (익명 ftp) 접속을 차단하지 않은 경우 - VSFTP"
fi
cat $RESULT
'Hacking > infra 진단' 카테고리의 다른 글
[Linux] U-22 (상) crond 파일 소유자 및 권한 설정 (0) | 2021.09.01 |
---|---|
[Linux] U-21 (상) r 계열 서비스 비활성화 (0) | 2021.09.01 |
[Linux] U-19 (상) Finger 서비스 비활성화 (0) | 2021.09.01 |
[Linux] U-18 (상) 접속 IP 및 포트 제한 (0) | 2021.09.01 |
[Linux] U-17 (상) $HOME/.rhosts, hosts.equiv 사용 금지 (0) | 2021.08.23 |