loader

리눅스에서 iptables 사용하기

Anonim

이 가이드는 이해하기 쉬운 언어로 리눅스에서 iptables를 사용하는 방법을 설명하려고합니다.

내용

[숨는 장소]

  • 1. 개요
  • 2 사용법
    • 2.1 단일 IP 주소 차단
    • 2.2 IP 주소에서 모든 트래픽 허용
    • 2.3 모든 주소에서 포트 차단
    • 2.4 단일 IP에서 단일 포트 허용
    • 2.5 현재 규칙보기
    • 2.6 현재 규칙 지우기
  • 3 배포판 관련
    • 3.1 젠투

개요

iptables는 룰 기반 방화벽으로서, 일치하는 규칙을 찾을 때까지 각 룰을 순서대로 처리합니다.

Todo : 여기에 예제를 포함하십시오.

용법

iptables 유틸리티는 일반적으로 리눅스 배포판에 사전 설치되어 있지만 실제로 어떤 규칙도 실행하지 않습니다. 대부분의 배포판에서이 유틸리티를 찾을 수 있습니다.

 / sbin / iptables 

단일 IP 주소 차단

-s 매개 변수를 사용하여 10.10.10.10을 차단하려는 주소로 바꾸면 IP를 차단할 수 있습니다. 이 예제에서 append 대신 -I 매개 변수 (또는 -insert가 너무 효과적)를 사용했음을 주목할 것입니다. 왜냐하면 allow 규칙 전에이 규칙이 먼저 나타나기를 원하기 때문입니다.

 / sbin / iptables -I INPUT -s 10.10.10.10 -j DROP 

IP 주소에서 모든 트래픽 허용

위와 동일한 명령을 사용하여 DROP를 ACCEPT로 바꾸면 IP 주소에서 모든 트래픽을 허용 할 수 있습니다. DROP 규칙보다 먼저이 규칙이 먼저 나타나는지 확인해야합니다.

 / sbin / iptables -A INPUT -s 10.10.10.10 -j ACCEPT 

모든 주소에서 포트 차단

the -dport 스위치를 사용하고 차단하려는 서비스의 포트를 추가하여 네트워크를 통해 포트에 대한 액세스를 완전히 차단할 수 있습니다. 이 예제에서는 mysql 포트를 차단할 것이다.

 / sbin / iptables -A INPUT -p tcp --dport 3306 -j DROP 

단일 IP에서 단일 포트 허용

-s 명령을 -dport 명령과 함께 추가하여 규칙을 특정 포트로 더 제한 할 수 있습니다.

 / sbin / iptables -A INPUT -p tcp -s 10.10.10.10 --dport 3306 -j ACCEPT 

현재 규칙보기

다음 명령을 사용하여 현재 규칙을 볼 수 있습니다.

 / sbin / iptables -L 

이렇게하면 다음과 비슷한 결과가 나타납니다.

 체인 INPUT (정책 ACCEPT) 대상 prot 선택 출처 대상 모두 192.168.1.1/24 ACCEPT all - 10.10.10.0/24 어디서든 DROP tcp - 어디서나 tcp dpt : ssh DROP tcp - 어디서나 tcp dpt : MySQL 

물론 실제 출력은 조금 더 길어질 것입니다.

현재 규칙 지우기

flush 매개 변수를 사용하여 현재 규칙을 모두 지울 수 있습니다. 이는 규칙을 올바른 순서로 넣거나 테스트 할 때 매우 유용합니다.

 / sbin / iptables - 플래시 

배포판 관련

대부분의 Linux 배포판에는 iptables의 형태가 포함되어 있지만 일부에는 관리가 좀 더 쉽게 이루어지는 래퍼가 포함되어 있습니다. 대부분의 경우 이러한 "애드온"은 시작할 때 iptables를 초기화하는 init 스크립트의 형태를 취하지 만 일부 배포판에는 일반적인 경우를 단순화하려는 본격적인 래퍼 응용 프로그램이 포함되어 있습니다.

젠투

Gentoo의 iptables init 스크립트는 많은 일반적인 시나리오를 처리 할 수 ​​있습니다. 우선 iptables를 시작할 때로드하도록 구성 할 수 있습니다 (일반적으로 원하는 내용).

 rc-update iptables 기본값 추가 

init 스크립트를 사용하면 기억하기 쉬운 명령으로 방화벽을로드하고 지울 수 있습니다.

 /etc/init.d/iptables start /etc/init.d/iptables stop 

init 스크립트는 시작 / 중지시 현재 방화벽 구성을 유지하는 세부 사항을 처리합니다. 따라서 방화벽은 항상 퇴사 한 상태입니다. 새 규칙을 수동으로 저장해야하는 경우 init 스크립트가이를 처리 할 수 ​​있습니다.

 /etc/init.d/iptables save 

또한 방화벽을 이전 저장된 상태로 복원 할 수 있습니다 (규칙을 실험하고 이전 작업 구성을 복원하려는 경우).

 /etc/init.d/iptables reload 

마지막으로, init 스크립트는 iptables를 "패닉 (panic)"모드로 설정할 수 있습니다.이 모드에서는 모든 수신 및 발신 트래픽이 차단됩니다. 왜이 모드가 유용한 지 잘 모르겠지만 모든 리눅스 방화벽에는이 모드가있는 것 같습니다.

 /etc/init.d/iptables 공황 

경고 : SSH를 통해 서버에 연결되어있는 경우 패닉 모드를 시작하지 마십시오. 연결이 끊어집니다! iptables를 패닉 모드로 전환해야하는 유일한 시간은 실제로 컴퓨터 앞에있는 동안입니다.

에디터의 선택