iptables : 특정 포트를 통해 하나의 IP 만 허용하는 방법은 무엇입니까?


답변:


48

짧막 한 농담:

iptables -I INPUT \! --src 1.2.3.4 -m tcp -p tcp --dport 777 -j DROP  # if it's not 1.2.3.4, drop it

보다 우아한 솔루션 :

iptables -N xxx # create a new chain
iptables -A xxx --src 1.2.3.4 -j ACCEPT  # allow 1.2.3.4
iptables -A xxx --src 1.2.3.5 -j ACCEPT  # allow 1.2.3.5
iptables -A xxx --src 1.2.3.6 -j ACCEPT  # allow 1.2.3.6
iptables -A xxx -j DROP  # drop everyone else
iptables -I INPUT -m tcp -p tcp --dport 777 -j xxx  # use chain xxx for packets coming to TCP port 777

이것을 OUTPUT에도 추가해야하는지 알고 있습니까?
Anonymous12345

@Camran : 좀 더 구체적이어야합니다. 이 특정한 경우에, 당신은 대체하는 경우 INPUTOUTPUT당신이 어떤 패킷이 서버 자체 (및 / 전달 라우팅되지) 일부 주소를 사용하여 전송 차단하는 것입니다. 특정 인터페이스에 바인딩되는 프로그램을 차단하고 싶지 않다면 이것이 의미가 없다고 생각합니다.
Cristian Ciupitu

1
다음과 같은 체인으로 소스를 지정할 수도 있습니다.--src 1.2.3.4/30
deed02392

나중에 새로운 허용 IP를 체인에 추가하려면 어떻게해야합니까? DROP를 먼저 제거한 다음 새 사용자를 입력하고 DROP을 다시 삽입해야합니까? 아니면 더 나은 솔루션이 있습니까?
maddo7 2016 년

2
@Matthias :iptables -I xxx --src 7.8.9.10 -j ACCEPT
Cristian Ciupitu

0

다음은 CentOS 시스템 중 하나의 예입니다 (주소가 난독 화되었습니다).

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 1.2.3.4 -d 5.6.7.8 --dport 22 -j ACCEPT

centos에서이 구성을 영구적으로 만들려면? (우분투에서는 /etc/network/if-up.d/anyfile을 사용할 수 있습니다)
Kokizzu

CentOS에서는 다음과 같습니다 service iptables save.
Martin Zeitler 2016 년

0

shorewall을 사용하여 IP 테이블을 구성합니다. 한 호스트에서 포트 123으로 수락하는 규칙을 사용하십시오.

수락 순 : 192.0.2.1 $ FW tcp 1234

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.