모든 iptables 규칙보기 내가 사용할

iptables규칙을 좀 더 자세히 볼 수있는 방법이 있습니까?

최근에 다양한 IP에 가장 무도회를 추가했습니다.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
service iptables save
service iptables restart

내가 원하는 것을했지만, 내가 사용할 때 :

iptables -L

나는 일반적으로 얻는 것과 같은 결과를 얻습니다.

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

추가 한 규칙을 포함하여 규칙을 어떻게 볼 수 있습니까? (시스템은 CentOS 6입니다)



답변

사용하는 경우 -L, --list현재 방화벽 규칙을 나열하는 옵션을, 당신은 또한 적절한 넷 필터 테이블을 지정해야합니다 (중 하나를 filter, nat, mangle, raw또는 security). 따라서 nat테이블 에 대한 규칙을 추가 한 경우 -t, --table옵션을 사용하여이 테이블을 명시 적으로 지정해야합니다 .

iptables --table nat --list

또는 옵션 짧은 형식을 사용하십시오.

iptables -t nat -L

특정 테이블을 지정하지 않으면 filter테이블이 기본값으로 사용됩니다.


더 빠른 결과를 얻으려면 호스트 이름 대신 숫자 IP 주소를 인쇄 하는 -n, --numeric옵션 도 포함하여 DNS 역방향 조회를 기다릴 필요가 없도록하는 것이 좋습니다.

-v, --verbose옵션 을 포함하여 더 많은 정보를 얻을 수 있습니다 .


답변

iptables: 다섯 개 가지 다른 테이블 제어 filter, nat, mangle, rawsecurity. 주어진 호출 iptables에서 옵션에 대한 인수로 지정된 이러한 테이블 중 하나만 표시하거나 수정합니다 -t(기본값은 filter). 방화벽의 완전한 상태를 보려면 iptables각 테이블을 연속적 으로 호출해야합니다 .

또한 규칙을 정확하게 표현하려면 옵션을 전달해야합니다 -v. 그렇지 않으면 필터 규칙의 인터페이스와 같은 일부 중요한 기준이 생략됩니다 (예 :“모두 수락”이라고하는 규칙 및“루프백 인터페이스에서 모든 것을 수락”하는 규칙은로만 구분할 수 있음 -v).

따라서 넷 필터 규칙을 완전히 표현하려면 다음이 필요합니다.

iptables -vL -t filter
iptables -vL -t nat
iptables -vL -t mangle
iptables -vL -t raw
iptables -vL -t security

또는 iptables-save모든 테이블의 모든 규칙을 파싱 할 수있는 형식으로 표시 하는 프로그램을 호출 할 수 있습니다 iptables-restore. 이 형식은 또한 사람이 읽을 수있는 합리적입니다 ( iptables테이블 작성 명령에 대한 일련의 호출과 매우 유사 합니다).


답변

iptables -S나를 위해 트릭을 수행합니다. 서비스가 꺼져있는 경우에도 모든 활성 규칙을 나열하는 것 같습니다.

매뉴얼 페이지에서 :

-S, –list-rules [chain] 선택한 체인의 모든 규칙을 인쇄합니다. 체인을 선택하지 않으면 모든 체인이 iptables-save와 같이 인쇄됩니다. 다른 모든 iptables 명령과 마찬가지로 지정된 테이블에 적용됩니다 (필터가 기본값 임).


답변

내가하는 일은 iptables-save > iptables_bckp모든 레이어를 백업 한 다음 파일을 편집하고 iptables를 복원하는 것입니다.iptables-restore < iptables_bckp

# iptables-save > iptables_bckp
# vim iptables_bckp
# iptables-restore < iptables_bckp

당신은 당신의 과거 iptables를 잃지 않고 그들 중 하나를 수정할 수 있도록 이중 백업을 만들 수 있습니다.

이것은 개인적인 관행이며, 이것이 최선의 방법이라고 말하지는 않지만 나를 위해 훌륭하게 작동합니다.

한 번 해봐


답변

iptables명령은 또한 테이블을 지정해야하며, 그렇지 않으면 기본적으로 테이블을 필터링합니다. 그래서 시도하십시오 :

iptables -t nat -L


답변

당신이 사용할 수있는:

# lsmod | grep ip_tables
ip_tables              13193  4 iptable_raw,iptable_mangle,iptable_nat,iptable_filter

모든 테이블을 찾고 테이블에 특정 규칙을 표시합니다.


답변

정말 도움이된다면 bash 스크립트를 작성하여 경로가 참조하는 폴더에 넣거나 ~ / .bashrc 파일의 별칭을 통해 참조하십시오.

AllRules.sh

#!/bin/bash

 echo "Filter table:"
 iptables -t filter -vL

 echo "Nat table:"
 iptables -t nat -vL

 echo "Mangle table:"
 iptables -t mangle -vL

 echo "Raw table:"
 iptables -t raw -vL

 echo "Security table:"
 iptables -t security -vL

 echo
 echo "All rules in all tables printed"

새 bash 스크립트에 다음을 사용하여 실행 권한을 부여하십시오. chmod

권한이 문제인 경우 모든 iptables명령 앞에 sudo를 추가해야 할 수도 있습니다 .