[2026 주요정보통신기반시설] U-28 접속 IP 및 포트 제한

허용할 호스트에 대한 접속 IP 주소 제한 및 포트 제한 설정 여부 점검

U-28 접속 IP 및 포트 제한

가이드라인 원문

항목내용
항목코드U-28
점검내용허용할 호스트에 대한 접속 IP 주소 제한 및 포트 제한 설정 여부 점검
점검대상SOLARIS, LINUX, AIX, HP-UX 등
양호기준접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정한 경우
취약기준접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정하지 않은 경우
조치방법OS에 기본으로 제공하는 방화벽 애플리케이션이나 TCP Wrapper를 사용하여 접근 허용 IP 등록 설정

상세 설명

1. 판단 기준

기본 판단 기준

  • 양호: TCP Wrapper(/etc/hosts.allow, /etc/hosts.deny)를 사용하거나 IPtables/Firewalld 등 호스트 방화벽을 사용하여 접근 통제를 설정한 경우
  • 취약: 위와 같은 접근 통제 설정이 적용되어 있지 않은 경우

경계 케이스 (Edge Case) 처리 방법

상황판단 기준설명
/etc/hosts.allow에 ALL:ALL취약모든 접속 허용 - 제한 없음
/etc/hosts.deny에만 ALL:ALL주의기본 차단이나 hosts.allow에 허용 규칙 필요
/etc/hosts.allow가 비어있음취약허용 규칙이 없으면 모두 차단됨
sshd:192.168.1.100만 있음양호특정 IP만 SSH 허용
방화벽에 DROP 정책만 있음취약모든 트래픽 차단 - 서비스 불가
INPUT ACCEPT만 있는 iptables취약모든 접속 허용
firewalld public zone취약 (기본값)모든 IP에서 SSH 등 허용
rich rule로 IP 제한양호특정 IP만 접속 허용

권장 설정값

도구설정 파일/명령권장 설정비고
TCP Wrapper/etc/hosts.denyALL: ALL기본 모두 차단
TCP Wrapper/etc/hosts.allowsshd: 192.168.1.100특정 IP만 허용
iptablesINPUT 체인기본 정책 DROP, 필요한 서비스만 ACCEPTWhitelist 방식
firewalldzone특정 IP에만 서비스 허용 (rich rule)RHEL 7+
SSHPort 변경22번 포트가 아닌 다른 포트 사용포트 스캔 방지

2. 점검 방법

TCP Wrapper 설정 확인 (Linux, Solaris, AIX, HP-UX)

1
2
3
4
5
6
7
# /etc/hosts.deny 확인
cat /etc/hosts.deny
# 내용에 'ALL:ALL'이 있어야 함

# /etc/hosts.allow 확인
cat /etc/hosts.allow
# 허용할 서비스와 IP가 명시되어 있는지 확인

양호 출력 예시 (hosts.deny):

1
ALL: ALL

양호 출력 예시 (hosts.allow):

1
2
sshd: 192.168.1.100 192.168.1.0/24
vsftpd: 192.168.1.50

취약 출력 예시 (hosts.allow):

1
2
ALL: ALL
# 또는 비어있음

IPtables 설정 확인 (Linux)

1
iptables -L -n -v

양호 출력 예시:

1
2
3
4
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  100  8000 ACCEPT     tcp  --  *      *       192.168.1.100        0.0.0.0/0           tcp dpt:22
   50  4000 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80

취약 출력 예시:

1
2
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

(기본 정책이 ACCEPT이고 제한 규칙 없음)

Firewalld 설정 확인 (RHEL 7+)

1
firewall-cmd --list-all

양호 출력 예시:

1
2
3
public (active)
  rich rules:
    rule family="ipv4" source address="192.168.1.100" service name="ssh" accept

취약 출력 예시:

1
2
3
public (active)
  services: ssh dhcpv6-client
# 모든 IP에서 SSH 허용됨

3. 조치 방법

TCP Wrapper 설정 (Linux, Solaris, AIX, HP-UX)

  1. /etc/hosts.deny (모두 차단)

    1
    2
    3
    
    vi /etc/hosts.deny
    
    ALL: ALL
    
  2. /etc/hosts.allow (필요한 IP 허용)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    vi /etc/hosts.allow
    
    # SSH는 관리자 IP(192.168.1.100)만 허용
    sshd: 192.168.1.100
    
    # 또는 대역 허용
    sshd: 192.168.1.
    
    # 여러 서비스 허용
    in.ftpd, in.telnetd: 192.168.1.50
    

IPtables 설정 (Linux)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 1. 기본 정책을 DROP으로 설정
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 2. 관리자 IP만 SSH 허용
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

# 3. Web 서비스 허용 (모든 IP에서)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 4. established 연결 허용
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 5. loopback 허용
iptables -A INPUT -i lo -j ACCEPT

# 6. 설정 저장
service iptables save
# 또는
iptables-save > /etc/sysconfig/iptables

Firewalld 설정 (RHEL 7+)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 1. 기존 ssh 서비스 제거
firewall-cmd --permanent --remove-service=ssh

# 2. Rich Rule 추가 (특정 IP만 SSH 허용)
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'

# 3. 설정 적용
firewall-cmd --reload

# 4. 확인
firewall-cmd --list-all

4. 참고 자료

  • CIS Benchmarks: 4.2.1, 4.2.2 Configure iptables/firewall
  • NIST 800-53: SC-7 (Network Protection), SC-8 (Transmission Confidentiality)
  • TCP Wrapper: Wietse Venema가 개발한 호스트 기반 ACL 시스템
  • man page: man hosts.allow, man iptables, man firewalld

5. 스크립트

  • 취약점 점검 스크립트
    • 이 스크립트는 KISA 주요정보통신기반시설 기술적 취약점 분석·평가 가이드라인(2026)을 준수하여 제작된 자동 점검 도구입니다. 복잡한 단일 파일 방식이 아닌 모듈화된 구조로 설계되어 유지보수가 쉽고 확장이 용이합니다.
    • 다양한 환경에서 테스트를 진행했으나, 혹시 점검 로직에 이슈가 발견되거나 개선이 필요한 경우 적극적인 제보를 부탁드립니다.
Hugo로 만듦
JimmyStack 테마 사용 중