Linux 에서 네트워크 패킷 필터 활성 여부 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 Linux 에서 네트워크 패킷 필터가 활성화되어 있는지 확인하는 방법을 배우게 됩니다. iptables를 사용하여 방화벽 규칙을 나열하는 전통적인 방법과 규칙 집합을 나열하여 새로운 nftables 프레임워크를 탐구할 것입니다. 마지막으로, /proc/sys/net 디렉토리 내의 관련 파일을 검사하여 필터 설정을 확인하여 Linux 시스템에서 네트워크 패킷 필터링 상태를 결정하는 방법에 대한 포괄적인 이해를 얻을 것입니다.

iptables -L 로 iptables 규칙 나열

이 단계에서는 iptables 명령을 사용하여 현재 방화벽 규칙을 보는 방법을 배우게 됩니다. iptables는 Linux 커널 방화벽을 구성하는 데 사용되는 전통적인 명령줄 유틸리티입니다.

방화벽은 네트워크 보안에 필수적입니다. 방화벽은 일련의 규칙에 따라 들어오고 나가는 네트워크 트래픽을 제어합니다. 이러한 규칙은 특정 연결을 허용할지 또는 차단할지 결정합니다.

현재 iptables 규칙을 나열하려면 -L 옵션을 사용합니다. 이 옵션은 iptables에게 지정된 체인에 있는 규칙을 나열하도록 지시합니다.

아직 터미널을 열지 않았다면 터미널을 엽니다. 다음 명령을 입력하고 Enter 키를 누릅니다.

sudo iptables -L

방화벽 규칙을 보려면 관리자 권한이 필요하므로 sudo를 사용해야 합니다.

다음과 유사한 출력을 보게 됩니다.

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

이 출력은 세 가지 기본 체인인 INPUT, FORWARD, OUTPUT에 대한 규칙을 보여줍니다.

  • INPUT: 로컬 시스템으로 향하는 트래픽을 제어합니다.
  • FORWARD: 시스템을 통과하는 트래픽을 제어합니다 (라우팅에 사용됨).
  • OUTPUT: 로컬 시스템에서 시작되는 트래픽을 제어합니다.

policy ACCEPT는 기본적으로 특정 규칙과 일치하는 규칙이 없으면 이러한 체인에서 트래픽이 허용됨을 의미합니다.

특정 규칙이 구성되어 있다면 각 체인 아래에 나열되어 대상 (예: ACCEPT, DROP), 프로토콜 (예: tcp, udp), 소스 및 대상 IP 주소, 포트와 같은 세부 정보를 표시합니다.

지금은 기본 구성이 간단하지만, iptables를 사용하여 현재 규칙을 성공적으로 보았습니다.

다음 단계로 진행하려면 계속을 클릭하십시오.

nft list ruleset 으로 nftables 확인

이 단계에서는 iptables의 후속 버전인 nftables를 탐구합니다. iptables가 여전히 널리 사용되고 있지만, nftables는 패킷 필터링 및 네트워크 주소 변환 (NAT) 을 위한 더 유연하고 효율적인 프레임워크를 제공합니다.

nftablesnft 명령줄 유틸리티를 사용하여 규칙 집합을 관리합니다. 규칙 집합은 네트워크 트래픽을 처리하는 방법을 정의하는 테이블, 체인 및 규칙의 모음입니다.

현재 nftables 규칙 집합을 보려면 list ruleset 명령을 사용합니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

sudo nft list ruleset

다시, 방화벽 규칙을 보려면 관리자 권한이 필요하므로 sudo가 필요합니다.

다음과 유사한 출력을 보거나, nftables 규칙이 구성되지 않은 경우 비어 있을 수 있습니다.

table ip filter {
 chain INPUT {
  type filter hook input priority 0; policy accept;
 }

 chain FORWARD {
  type filter hook forward priority 0; policy accept;
 }

 chain OUTPUT {
  type filter hook output priority 0; policy accept;
 }
}

이 출력은 ip 주소 패밀리에 대한 filter라는 테이블이 있는 기본 nftables 규칙 집합을 보여줍니다. 이 테이블 내에는 iptables와 유사하게 INPUT, FORWARD, OUTPUT의 세 가지 체인이 있습니다.

  • table ip filter: IPv4 트래픽에 대한 filter라는 테이블을 정의합니다.
  • chain INPUT { ... }: 입력 체인을 정의합니다.
  • type filter hook input priority 0;: 우선순위가 0 인 입력 네트워크 경로에 연결된 필터 체인임을 지정합니다.
  • policy accept;: 이 체인의 기본 정책을 트래픽 허용으로 설정합니다.

특정 규칙이 정의되어 있다면 체인 블록 내에 나열됩니다.

iptables -Lnft list ruleset의 출력을 비교하면 어떤 방화벽 시스템이 시스템에서 규칙을 활발하게 관리하고 있는지, 또는 둘 다 있는지 알 수 있습니다. 최신 시스템에서는 nftables가 기본값으로 자리 잡고 있습니다.

이제 nft를 사용하여 현재 nftables 규칙 집합을 성공적으로 보았습니다.

계속 진행하려면 계속을 클릭하십시오.

/proc/sys/net 에서 필터 설정 확인

이 단계에서는 /proc/sys/net 디렉토리의 파일을 검사하여 일부 커널 수준 네트워크 필터링 설정을 탐구합니다. /proc 파일 시스템은 프로세스 및 기타 시스템 정보에 대한 정보를 제공하는 가상 파일 시스템입니다. /proc/sys 디렉토리에는 런타임에 커널 매개변수를 보고 수정할 수 있는 파일이 포함되어 있습니다.

특히, 네트워크 필터링 및 전달과 관련된 설정을 살펴보겠습니다.

cd 명령을 사용하여 관련 디렉토리로 이동합니다.

cd /proc/sys/net/ipv4/conf/all/

/proc/sys/net/ipv4/conf/all/ 디렉토리에는 모든 네트워크 인터페이스에 적용되는 구성 파일이 포함되어 있습니다.

이제 전달과 관련된 파일의 내용을 살펴보겠습니다. cat 명령을 사용하여 forwarding 파일의 내용을 표시합니다.

cat forwarding

출력은 0 또는 1일 것입니다.

0
  • 0: IP 전달이 비활성화되었음을 나타냅니다. 즉, 시스템은 서로 다른 네트워크 인터페이스 간에 패킷을 전달하지 않습니다.
  • 1: IP 전달이 활성화되었음을 나타냅니다. 이는 라우터 또는 게이트웨이 역할을 하는 시스템에 필요합니다.

다음으로, 소스 라우트 옵션으로 들어오는 패킷을 필터링하는 설정에 대해 살펴보겠습니다. 이 옵션은 때때로 악의적인 방식으로 사용될 수 있습니다. accept_source_route 파일의 내용을 봅니다.

cat accept_source_route

출력은 0일 것입니다.

0
  • 0: 시스템이 소스 라우트 옵션이 있는 패킷을 무시함을 나타냅니다. 이는 일반적인 보안 조치입니다.
  • 1: 시스템이 소스 라우트 옵션이 있는 패킷을 허용함을 나타냅니다.

/proc/sys/net의 이러한 파일은 커널이 네트워크 트래픽을 처리하도록 구성되는 방식에 대한 낮은 수준의 보기를 제공합니다. iptablesnftables는 필터링 규칙을 관리하는 반면, 이러한 커널 매개변수는 전달 및 특정 패킷 옵션 처리 방식과 같은 기본적인 네트워크 동작을 제어합니다.

이제 /proc 파일 시스템을 사용하여 커널 네트워크 필터링 설정을 성공적으로 검사했습니다.

랩을 완료하려면 계속을 클릭하십시오.

요약

이 랩에서는 일반적인 방화벽 도구의 구성을 검사하여 Linux 에서 네트워크 패킷 필터가 활성 상태인지 확인하는 방법을 배웠습니다. 먼저, 전통적인 iptables 유틸리티로 구성된 현재 규칙을 나열하기 위해 iptables -L 명령을 사용하여 기본 체인 (INPUT, FORWARD, OUTPUT) 과 해당 정책을 이해했습니다.

다음으로, nft list ruleset 명령을 사용하여 구성을 확인하여 iptables의 현대적인 대체품인 nftables를 탐구했습니다. 마지막으로, 커널 네트워크 구성을 노출하는 /proc/sys/net 디렉토리 내의 관련 매개변수를 확인하여 더 낮은 수준에서 필터 설정을 확인하는 방법을 배웠습니다.