iptables의 체인이란 무엇입니까?

iptables의 체인이란 무엇입니까?

Iptables는 Linux 커널에서 IPv4 패킷 필터링 규칙 테이블을 설정, 유지 관리 및 확인하는 데 사용됩니다. 여러 가지 다른 테이블을 정의할 수 있습니다. 각 테이블에는 여러 내장 체인이 포함되어 있으며 사용자 정의 체인도 포함될 수 있습니다.

체인패킷 집합과 일치할 수 있는 규칙 목록입니다. 각 규칙은 일치하는 패킷을 처리하는 방법을 지정합니다. 이를 "대상"이라고 하며, 동일한 테이블의 사용자 정의 체인으로의 점프일 수 있습니다.

체인의 개념을 어떻게 이해하나요?

체인은 고정된 규칙 목록인가요?

체인을 어떻게 정의/지정하고 사용합니까? 예를 들어,

-A, --append chain rule-specification

선택한 체인의 끝에 하나 이상의 규칙을 추가합니다. 소스 및/또는 대상 이름이 여러 주소로 확인되면 가능한 각 주소 조합에 대한 규칙이 추가됩니다.

다음 명령에 체인 이름이 있습니까 INPUT? 이 이름은 내가 부르고 싶은 대로 부를 수 있는 이름인가요? 이 체인에는 정확히 두 가지 규칙이 있습니까? 감사해요.

iptables -A INPUT -p tcp -s localhost --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j DROP

답변1

iptables 체인은 단순히 순차적으로 처리되는 규칙 목록입니다. 고정된 내장 기능(기본 테이블에 있는 것 INPUT, OUTPUT테이블에 있는 다른 것) 중 하나일 수도 있고, 사용자가 정의한 다음 다른 테이블에서 호출할 수도 있습니다.FORWARDfilternat

-A(추가), -I(삽입) 및 (삭제) 명령에서 알 수 있듯이 -D체인의 규칙은 자유롭게 편집할 수 있으며 고정되지 않습니다.

아래 명령에 체인 이름이 있나요 INPUT?

예.

이 이름은 내가 부르고 싶은 대로 부를 수 있는 이름인가요?

그렇지 않고 시스템으로 들어오는 패킷에 대한 규칙을 포함하는 내장 체인입니다(대상은 호스트에서 실행되는 프로세스입니다). 기본 테이블의 다른 두 개는 (분명히 시스템에서 들어오는 패킷) 및 (라우팅된 패킷) filter입니다 .OUTPUTFORWARD

이것매뉴얼 페이지iptables(8)테이블과 해당 내장 링크에 대한 설명이 있습니다(아래 TABLES).

물론 사용자 정의 체인에 들어오는 패킷에 대한 규칙을 배치한 다음 INPUT해당 체인을 참조하는 규칙을 추가하기만 하면 됩니다. (예를 들어 거기에 있는 모든 규칙은 iptables -A INPUT -j mychain점프되어 처리됩니다 .)mychain

이 체인에는 정확히 두 가지 규칙이 있습니까?

우리는 이것을 모릅니다. 이 두 명령추가의체인에는 두 가지 규칙이 있습니다. 그러나 이러한 명령을 실행하기 전에 이미 다른 명령이 있을 수 있습니다.

이 두 규칙 앞에 첫 번째 명령이 있으면 iptables -F INPUT결과적으로 이 두 규칙만 남게 됩니다.

또한보십시오:iptables 테이블과 체인을 통과하는 방법여기에는 다음과 같이 알 필요가 없는 모든 것에 대한 링크가 포함되어 있습니다. https://stuffphilwrites.com/2014/09/iptables-processing-flowchart/. ( 처음에는 raw및 표가 자주 필요하므로 무시해도 됩니다 .)mangle

관련 정보