공식 및 권장 설명서 에 대한 링크 는 Netfilter 웹 사이트에 있습니다.
이것은 새로운 주제가 아니며 자원은 무한 합니다.
대부분의 기본 명령은 매우 직관적이며 맨 페이지 를 쉽게 참조 할 수 있습니다 .
패킷 필터링을 가능하게하는 커널 레벨 기술인 netfilter는 상당히 발전되었습니다. 패킷을 엉망으로 만들거나 패킷을 변환하거나 라우팅에 영향을 줄 수있는 추가 테이블이 있습니다. 이 iptables
유틸리티는 netfilter와 상호 작용하기위한 사용자 도구입니다. 고급 기능에 대해 배우려면 위에서 언급 한 설명서를 참조하십시오. 기본 기능에 대한 소개는 추가 정보를 참조하십시오.
모든 기존 규칙을 나열하려면
iptables -L -n
-n
iptables가 ip를 해석하지 못하게하여 더 빠른 출력을 생성합니다.
기본 테이블은 filter
테이블이며 기본 방화벽 규칙을 세 개의 체인에 적용하는 데 사용됩니다. 의 세 가지 기본 체인 filter
테이블은 INPUT
, OUTPUT
하고 FORWARD
.
사슬은 대부분 설명이 필요합니다. INPUT 체인은 들어오는 패킷에 영향을 미치고 OUTPUT 체인은 로컬로 생성 된 패킷에 영향을 미치며 마지막으로 시스템을 통해 라우팅되는 모든 패킷에 대해 앞으로 전달됩니다.
지정할 수있는 대상 중에서 DROP
패킷을 무시할 수 있습니다 . 즉, 무시하고 응답하지 않습니다. REJECT
icmp 응답이 거부 소스로 전송되는 패킷을 사용할 수 있습니다 . 마지막으로 ACCEPT
패킷 라우팅을 계속할 수 있습니다.
외부 방화벽을 사용하는 경우 인터넷에서 네트워크의 가시적 인 설치 공간이 줄어들 기 때문에 기본 선택은 DROP
반대 REJECT
입니다. 예를 들어 서비스를 특정 호스트로 제한하는 IP의 경우 가시성이 떨어집니다 DROP
.
참고 -A
수단은 상기 체인의 마지막에 추가. 상단에 삽입하려면을 사용할 수 있습니다 -I
. 모든 규칙은 위에서 아래로 처리됩니다. -D
삭제합니다.
에 DROP
로부터 오는 들어오는 패킷 192.168.235.235
:
iptables -A INPUT -s 192.168.235.235 -j DROP
이것은 DROP
해당 IP에서 오는 모든 프로토콜 의 대상으로 이동합니다 .
수락하려면 :
iptables -A INPUT -s 192.168.235.235 -j ACCEPT
로컬 서버 또는 네트워크에서 해당 IP에 액세스하지 못하게하려면
iptables -A OUTPUT -d 192.168.235.235 -j DROP
당신은 지정할 수 있습니다 -p
프로토콜의 -s
패킷의 소스는 -d
패킷, 목적지 포트 목적지 --dport
, 소스 포트 --sport
패킷이 규칙에 의해 처리하는 방법에 영향을, 그리고 많은 다른 플래그.
기본 INPUT
정책이 DROP
있고 192.168.123.0/24
서브넷의 모든 사용자가 서버의 SSH에 액세스 할 수 있도록 하려면 다음 예를 참조하십시오.
iptables -A INPUT -s 192.168.123.0/24 -p tcp --dport 22 -j ACCEPT
맞습니다. CIDR 표기법 도 사용할 수 있습니다 !
일반적으로 가장 좋은 기본 정책은 DROP
모든 체인에 적용됩니다. 모든 체인에는 -P
플래그 로 지정된 기본 정책이 있습니다. 정책을 기본값으로 설정하더라도 DROP
체인의 최종 항목을 유지하는 것이 좋습니다 DROP
.
예를 들어, DROP
INPUT, FORWARD 및 OUTPUT 체인 에 대한 정책을 변경하려면 다음 을 수행하십시오.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
주의 먼저 자신에게 SSH 액세스를 허용하지 않고 원격 시스템에 입력을 DROP의 기본 정책을 지정하는 경우, 당신은 시스템에 액세스로부터 자신을 방지 할 수 있습니다. 원격 시스템에있는 경우 5 분마다 모든 규칙을 안전 장치로 플러시하도록 임시 crontab을 지정할 수 있습니다.
모든 규칙을 삭제하고 모든 트래픽을 허용하려면
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -X
iptables -F
참고 -X
생성 된 모든 사슬을 제거합니다. -F
모든 규칙을 플러시합니다.
규칙을 저장하고 복원하는 기본 도구가 있습니다. 특히, iptables-save
과 iptables-restore
. 대부분의 최신 리눅스 배포판이 save
와 restore
iptables에 내 기능은 시스템과 함께 제공 파일을 초기화하기.
잘못된 패킷 삭제 및 다른 유형의 원하지 않는 트래픽과 같은 다른 방화벽 모범 사례가 있습니다. Shorewall 과 같은 프런트 엔드 유틸리티를 사용하면 기본적으로 이러한 많은 정책을 구현할 수 있으므로 이점이 있습니다. 그럼에도 불구하고, 나는 귀하의 접근 방식에 동의하며 직접 규칙을 직접 유지하는 것을 선호하며 이러한 모범 사례는 프런트 엔드없이 구현할 수 있습니다.