[리눅스/파일 및 디렉토리 관리] 접속 IP 및 포트 제한 (U-18)

접속 IP 및 포트 제한

취약점 개요


■ 위험도
- 상

■ 점검 목적
- 허용한 호스트만 서비스를 사용하게 하여 서비스 취약점을 이용한 외부자 공격을 방지하기 위함

■ 보안 위협
- 허용할 호스트에 대한 IP 및 포트제한이 적용되지 않은 경우, Telnet, FTP 같은 보안에 취약한 네트워크 서비스를 통하여 불법적인 접근 및 시스템 침해사고가 발생할 수 있음


점검 및 조치 방법

■ 판단 기준
- 양호 : 접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정한 경우
- 취약 : 접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정하지 않은 경우

■ 조치 방법
- OS에 기본으로 제공하는 방화벽 애플리케이션이나 TCP Wrapper와 같은 호스트별 서비스 제한 애플리케이션을 사용하여 접근 허용 IP 등록


- Iptables 사용하는 경우
Step 1) iptables 명령어를 통해 접속할 IP 및 포트 정책 추가
(예) SSH 서비스 제한
# iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP
Step 2) iptables 설정 저장
# /etc/rc.d/init.d/iptables save

- Ipfilter 사용하는 경우
Step 1) vi 편집기를 이용하여 "/etc/ipf/ipf.conf" 파일 열기
Step 2) 접속할 IP ᅟ및 포트 정책 추가
(예) SSH 서비스 제한
Pass in quick proto tcp from 192.168.1.0/24 to any port =22 keep state
Block in quick proto tcp from any to any port = 22 keep state

- TCP Wrapper 사용하는 경우
Step 1) vi 편집기를 이용하여 "/etc/hosts.deny" 파일 열기 (해당 파일이 없을 경우 새로 생성)
Step 2) 아래와 같이 수정 또는, 신규 삽입 (ALL Deny 설정)
(수정 전) 설정 없음
(수정 후) ALL:ALL
Step 3) vi 편집기를 이용하여 "/etc/hosts.allow" 파일 열기 (해당 파일이 없을 경우 생성)
(수정 전) 설정 없음
(수정 후) sshd : 192.168.0.189, 192.168.0.7
(다른 서비스도 동일한 방식으로 설정)

<TCP Wrapper 접근제어 가능 서비스>
SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, TALK, EXEC, TFTP, SSH
<TCP Wrapper 는 다음 두 파일에 의해 접근이 제어됨>
/etc/hosts.deny --> 시스템 접근을 제한할 IP 설정
/etc/allow.deny --> 시스템 접근을 허용할 IP 설정
Not in either --> 모든 접근 허용

- HP-UX
HP-UX 서버의 경우 "/var/adm/inetd.sec" 파일을 이용하여 서버 자체적으로 접근제어를 할 수 있으며, 해당 파일이 존재하지 않을 경우 "/usr/newconfig/var/adm/inetd.sec" 샘플 파일을 복사하여 사용함
Step 1) vi 편집기를 이용하여 "/var/adm/inetd.sec" 파일 열기
(해당 파일이 없을 경우 새로 생성)
Step 2) 아래와 같이 수정 또는, 신규 삽입 (ALL Deny 설정)
○ Telnet 으로의 모든 접속 차단 => telnet deny *.*.*.*
○ Telnet 접속을 허용할 IP 등록 => telnet allow [접속을 허용할 IP]
(다른 서비스들도 위와 같은 방법으로 설정)


■ 스크립트

echo "U-18 START"
echo "[ U-18 접속 IP 및 포트 제한 ]"																	>>	$COMPUTERNAME 2>&1
echo "[ /etc/hosts.allow 권한 설정 ]"																>>	$COMPUTERNAME 2>&1
if [ -f $HOSTS_ALLOW ]
then
	ls -al $HOSTS_ALLOW																				>>	$COMPUTERNAME 2>&1
	echo " "																						>>	$COMPUTERNAME 2>&1
	cat $HOSTS_ALLOW																				>>	$COMPUTERNAME 2>&1
else
	echo "해당 파일이 없습니다."                                                                       >>	$COMPUTERNAME 2>&1
fi
echo " "																							>>	$COMPUTERNAME 2>&1
echo "[ /etc/hosts.deny 권한 설정 ]"																	>>	$COMPUTERNAME 2>&1
if [ -f $HOSTS_DENY ]
then
	ls -al $HOSTS_DENY																				>>	$COMPUTERNAME 2>&1
	echo " "																						>>	$COMPUTERNAME 2>&1
	cat $HOSTS_DENY																					>>	$COMPUTERNAME 2>&1
else
	echo "해당 파일이 없습니다."                                                                       >>	$COMPUTERNAME 2>&1
fi
echo " "																							>>	$COMPUTERNAME 2>&1
echo "U-29 END"																						>>	$COMPUTERNAME 2>&1
echo "======================================================================================"



■ 용어 설명 / 팁
TCP Wrapper : 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링 할 수 있는 UNIX 기반의 방화벽 툴
IPFilter : 유닉스 계열에서 사용하는 공개형 방화벽 프로그램으로써 Packet Filter로 시스템 및 네트워크 보안에 아주 강력한 기ᄂᆖᆼ을 보유한 프로그램
Iptables : 리눅스 커널 방화벽이 제공하는 테이블과 그것을 저장하는 체인, 규칙들을 구성할 수 있게 해주는 응용프로그램

댓글

Designed by JB FACTORY