iptables: 특정 IP는 허용하고 다른 모든 연결은 차단합니다.

iptables: 특정 IP는 허용하고 다른 모든 연결은 차단합니다.

iptables에서 특정 IP를 허용하고 다른 모든 연결을 차단하는 방법은 무엇입니까?

답변1

나는 썼다데스크톱 사용자를 위한 기본 Iptables 규칙에 대한 블로그 게시물오래 전에 당신은 아마 그것을 읽어야 할 것입니다. 그리고 그에 연결된 기사상태 저장 방화벽 설계. 그러나 커널 2.6.39 이전 버전( ipset화이트리스트에 10개 이상의 IP가 있는 경우(그 중 10개는 임의임) IP를 화이트리스트에 추가하는 데 이 기능을 사용할 수 있음)

먼저 수락하거나 폐기하려는 상태와 인터페이스를 처리합니다.

iptables -P FORWARD DROP # we aren't a router
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP # Drop everything we don't accept

IP로만 허용하려는 경우에는 상태가 필요하지 않습니다.

iptables -A INPUT -s 192.168.1.1 -j ACCEPT
iptables -A OUTPUT -d 192.168.1.1 -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

그러나 이 작업을 수행하는 데 문제가 발생할 수 있으므로 상태를 사용하여 생활을 더 쉽게 만드는 것이 좋습니다. 예를 들어, 이는 허용되지 않으며 -i lo일부 -o lo응용 프로그램에서는 확실히 문제를 일으킬 것입니다.

답변2

다음은 차단하는 (테스트되지 않은!) 예입니다.들어오는연결만 하세요. 루프백 인터페이스를 통해 192.168.3.x, ICMP 또는 SSH 포트에서의 연결을 허용합니다. 다른 모든 연결은 거부됩니다.

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 192.168.3.0/24 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT

답변3

다음 규칙은 귀하의 IP만 허용하고 포트 22 또는 SSH를 통해 다른 모든 IP를 차단합니다. 연결을 끊기 전에 새 터미널을 사용하여 테스트하십시오.

iptables -I INPUT -p tcp ! -s yourIPaddress --dport 22 -j DROP

답변4

다음은 전체 작업 예입니다.
또한 앱이 작동하게 합니다. (re: keepass가 시작되지 않는다는 내 의견)

https://github.com/skironDotNet/linux-allow-only-single-ip

관련 정보