주요정보통신기반시설가이드/LINUX 취약점 점검

[U-18(상)] 2. 파일 및 디렉토리 관리 > 2.14 접속 IP 및 포트 제한

JITSU 2025. 4. 29. 22:19

작업 환경

  • VMware Workstation Pro (17.6.2 ver)
  • Server 
    • Rocky_Linux(8.10 ver) : NAT
U-17 (상)2. 파일 및 디렉토리 관리 > 2.14 접속 IP 및 포트 제한
취약점 개요
점검 내용허용할 호스트에 대한 접속 IP 주소 제한 및 포트 제한 설정 여부 점검
점검 목적허용한 호스트만 서비스를 사용하게 하여 서비스 취약점을 이용한 외부자 공격을 방지하기 위함
 보안 위협허용할 호스트에 대한 IP 및 포트제한이 적용되지 않은 경우, Telnet, FTP같은
보안에 취약한 네트워크 서비스를 통하여 불법적인 접근 및 시스템 침해 사고가 발생할 수 있음
판단 기준

양호 :  접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정한 경우
취약 : 접속을 허용할 특정 호스트에 대한 IP 주소 및 포트 제한을 설정하지 않 은 경우
참고※ 접속 IP 및 포트제한 애플리케이션 종류 예시
TCP Wrapper : 네트워크 서비스에 관련한 트래픽을 제어하고 모니터링 할 수 있는 UNIX 기반의 방화벽 툴
IPtables: 리눅스 커널 방화벽이 제공하는 테이블들과 그것을 저장하는 체인, 규칙들을 구성할 수 있게 해주는 응용프로그램
IPFilter : 유닉스 계열에서 사용하는 공개형 방화벽 프로그램으로써 Packet Filter로 시스템 및 네트워크 보안에 아주 강력한 기능을 보유한 프로그램

 

파일 확인법
1. TCP Warrper 사용할 경우
All deny 적용 확인 및 접근 허용 IP 적절성 확인

cat /etc/hosts.deny
cat /etc/hosts.allow

 
2. IPtables 사용할 경우(Linux)

iptables -L

 
3. IPfilter 사용할 경우(SOLARIS) - 생략
 

LINUX
1. TCP Wrapper 사용하는 경우

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

 

2. 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

참고

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

 

📢 IPtables 란

→ 리눅스에서 네트워크 패킷을 필터링하거나 제어하기 위해 사용하는 방화벽 도구
 
용어 정의

용어기능
체인(Chain)패킷 흐름 경로(INPUT, OUTPUT, FORWARD)
Rule특정 조건에 대해 허용/차단 등을 수행
Target조치(ACCEPT, DROP, REJECT 등)
Table어떤 역할을 하는 규칙 모임(filter, nat, mangle, raw)

 
 
1. 체인

체인(Chain)기능
INPUT이 시스템으로 들어오는 트래픽 제어
OUTPUT이 시스템에서 나가는 트래픽 제어
FORWARD이 시스템을 거쳐가는 트래픽 제어

 

2. Rule

Rule기능
-A (--append)규칙 추가
-P (--policy)기본 정책을 변경
-F (--flush)chain으로부터 규칙을 모두 삭제
-D (--delete)규칙 삭제
-C (--check)패킷을 테스트
-R (--replace)새로운 규칙으로 교체한다
-I (--insert)새로운 규칙을 삽입
-L (--list)규칙 출력
-Z (--zero)모든 chain의 패킷과 바이트 카운터 값을 0으로 만듦
-N (--new)새로운 chain을 만듦
-X (--delete-chain)chain을 삭제

 
 

3. 장치 및 상태 옵션

옵션
기능
-s (--source)출발지 IP주소/네트워크
-d (--destination)목적지 IP주소/네트워크
-p (--protocol)프로토콜
-m (--match)--state <연결상태>
<연결상태 목록>
ESTABLISHED : 연결이 되어있는 패킷
NEW : 새로운 연결을 요청하는 패킷
RELATED : 기존 연결 외에 다른 새로운 연결요청
|INVALID : 어디에도 속하지 않는 패킷

-i (--in-interface)입력장치(내부장치)
-i (--out-interface)출력장치(외부장치)
-m tcp--dport
--sport
-j (--jump)규칙 적용
ACCEPT : 허가
REJECT : 반송
DROP : 폐기
LOG : 로그기록
RETURN : 룰 연계

 

IPtables 적용 순서

먼저 적용된 것이 무조건 우선된다!
 

IPtables 예

# SSH 연결 허용 정책
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
  • -A : 규칙추가
  • INPUT : 이 시스템으로 들어오는 트래픽 제어
  • -p tcp : 프로토콜 tcp
  • --dport 22 : 도착지포트 22(SSH)
  • -m state --state NEW,ESTABLISHED : 새로운 연결을 요청하거나, 연결이 되어있는 패킷
  • -j ACCEPT : 허용 규칙 적용