본문 바로가기
인프라 진단/전자금융기반시설(서버) - Linux

SRV-027 서비스 접근 IP 및 포트 제한 미비

by 49 BLOCK 2024. 1. 1.

notice

SRV-027 서비스 접근 IP 및 포트 제한 미비

【 상세설명 】
서비스로의 접근이 통제되지 않을 경우 악의적인 사용자의 공격 목표가 될 수 있기 때문에 보안상 접근통제가 필요함. 방화벽, 3rd-party 제품 또는 tcpwrapper를 활용하여 서비스에 대한 IP 및 포트 접근제어를 수행하고 있는지 점검

【 판단기준 】
- 양호 : 시스템 서비스로의 접근통제가 적절하게 수행되고 있을 경우 (방화벽, tcp-wrapper, 3rd-party 제품 등을 활용)
- 취약 : 시스템 서비스로의 접근통제가 적절하게 수행되고 있지 않을 경우

【 판단방법 】
1. 서비스 접근 IP 및 포트 제한 설정 확인

  ■ TCP Wrapper
      # cat /etc/hosts.deny
      # cat /etc/hosts.allow

      ※ TCP Wrapper 접근제어 가능 서비스 : SYSTAT, FINGER, FTP, TELNET, RLOGIN, RSH, TALK, EXEC, TFTP, SSH
      ※ TCP Wrapper 는 다음 두 파일에 의해 접근이 제어됨
          - /etc/hosts.deny : 시스템 접근을 제한할 IP 설정 
          - /etc/hosts.allow : 시스템 접근을 허용할 IP 설정 
          - /etc/hosts.allow, /etc/hosts.deny 파일 둘 다 미존재 : 모든 접근 허용
      ※ 최초 설치 상태에서는 각 파일 안에 설정 값이 없고 hosts.allow 파일이 없는 경우도 있음(파일 생성 후 설정)

  ■ IPfileter
      # cat /etc/ipf/ipf.conf
          pass in quick on hme0 proto tcp from any to any port=22 keep state
          pass in quick on hme0 proto udp from any to any port=22 keep state
          block in quick all
          pass out on hme0 proto tcp from any to any keep state
          pass out on hme0 proto udp from any to any keep state
          pass out on hme0 proto icmp from any to any keep state
          ...

  ■ IPtables
      # iptables -nL --line-number
          Chain INPUT (policy ACCEPT)
          num  target     prot opt source               destination
          1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
          2    ACCEPT     all  --  192.168.0.10         0.0.0.0/0            /* admin */
          3    ACCEPT     tcp  --  192.168.0.11         0.0.0.0/0            state NEW tcp dpt:21
          4    DROP       icmp --  0.0.0.0/0            0.0.0.0/0
          5    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0
          ...

  ■ firewalld
      # firewall-cmd --list-all
          public (active)
            target: default
            icmp-block-inversion: no
            interfaces: enp0s3
            sources:
            services: cockpit dhcpv6-client ftp ssh
            ports:
            protocols:
            forward: yes
            masquerade: no
            forward-ports:
            source-ports:
            icmp-blocks:
            rich rules:
                rule family="ipv4" source address="192.168.0.10" port port="21" protocol="tcp" accept

      ※ "firewall-cmd --list-all" 은 현재 활성화되어 있는 Zone 을 확인하는 명령어로  "firewall-cmd --list-all-zones" 명령어로 전체 Zone 설정 확인 가능
      ※ RHEL 8 버전 이상부터 TCP Wrapper 가 firewalld 로 완전히 대체 되었으며 /etc/hosts.allow, /etc/hosts.deny 파일도 삭제되었음
      ※ firewalld 는 기본적으로 차단 정책(All Deny)이 적용되어 있으며 허용 정책만 등록
      ※ firewalld 는 "interfaces" 가 특정 Zone 에 할당되지 않은 경우 "Default Zone" 정책 사용
         - 현재 Default Zone 확인 : firewall-cmd --get-default-zone
         - Default Zone 변경 : firewall-cmd --set-default-zone <zone_name>
      ※ firewalld 는 특정 "interfaces" 에 정책 설정 가능하면 설정 시 "Active Zone" 으로 "Default Zone" 과 다른 정책 사용
         - 현재 Active Zone 확인 : firewall-cmd --get-active-zones
         - Active Zone 해제 : firewall-cmd --zone=<zone_name> --remove-interface=<interface_name>   
         - Active Zone 에 할당되어 있는 "interfaces" 변경 : firewall-cmd --zone=<zone_name> --change-interface=<interface_name>
      ※ firewall 접근제어 가능 서비스 : firewall-cmd --get-services 명령어로 확인 가능
      ※ "firewall-cmd --list-all" 은 현재 활성화되어 있는 Zone 을 확인하는 명령어로  "firewall-cmd --list-all-zones" 명령어로 전체 Zone 설정 확인 가능 Linux 2(RHEL 8 버전 기반) 에는 TCP Wrapper 가 패키지에 포함되어 있지만 Amazon Linux 2023 에서는 미포함

  ■ HP-UX
      # cat /var/adm/inetd.sec
          <service_name> deny *.*.*.*
          <service_name> allow <allow_ip>

【 조치방법 】
1. 서비스 접근 IP 및 포트 제한 설정 : 불필요한 정책 삭제 및 필요한 정책 등록

2024-01-13 : (조치과정 삭제)