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가 시작되지 않는다는 내 의견)