허용된 IP 주소를 제외한 모든 트래픽을 차단합니다.

허용된 IP 주소를 제외한 모든 트래픽을 차단합니다.

화이트리스트에 있는 IP 주소를 제외하고 방화벽에서 들어오고 나가는 모든 연결을 차단해야 합니다. 현재 가상 머신에서 우분투를 사용하고 있습니다. 나는이 명령을 시도했다이것site: 하지만 이 사이트에 연결할 수 없습니다. Google이지만 ping은 작동합니다. Linux 사용 경험이 없으며 다른 사이트도 작동하지 않습니다.

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

답변1

iptables첫 번째 게임을 기반으로 합니다. 귀하의 예를 분석해 보겠습니다.

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

첫 번째 줄은 IP 주소에서 이러한 규칙이 적용되는 컴퓨터로 의 모든 트래픽이 iptables허용됨 을 나타냅니다. 172.217.23.206말 그대로 모든 트래픽은모든 트래픽. 따라서 소스가 일치하는 한 프로토콜, 포트, 옵션 등은 중요하지 않습니다 172.217.23.206.

두 번째 줄은 컴퓨터의 모든 트래픽을 허용합니다 172.217.23.206. 다시 말하지만, 프로토콜, 포트 등이 무엇인지는 중요하지 않습니다. 172.217.23.206대상이 일치하는 한 허용됩니다.

세 번째 줄이 iptables말해준다줄이다처음 두 규칙과 일치하지 않는 모든 수신 트래픽, 네 번째 및 마지막 줄은 iptables다음을 나타냅니다.줄이다위의 세 줄과 일치하지 않는 모든 나가는 트래픽.


트래픽이 몇 개의 웹사이트로만 이동하도록 허용하는 시나리오를 구축하고 싶다고 가정하겠습니다. 귀하가 작성한 규칙 세트는 이 상황에 적용되지 않습니다.

  • 귀하의 컴퓨터는 google.com이 어떤 문제를 해결할 것인지 알 수 없습니다 . 일반적으로 컴퓨터는 172.217.23.206DNS 서버나 로컬 항목을 쿼리하여 /etc/hosts이 정보를 얻을 수 있습니다.
  • iptables이 경우 연결을 추적하고 응답을 허용할 만큼 똑똑하기 때문에 들어오는 트래픽을 허용할 이유가 없습니다 . 이 프로세스를 상태 유지라고 합니다.
  • 단지 웹사이트를 얻기 위해 모든 종류의 트래픽을 허용하는 172.217.23.206것은 의미가 없습니다 .
  • ICMP 트래픽(포함 ping)은 특별한 종류의 트래픽입니다. 구체적으로 차단해야 합니다.

이 규칙 세트는 다음 상황에 적합합니다.

iptables -I INPUT 1 -i lo -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -d unix.stackexchange.com --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -d unix.stackexchange.com --dport 443 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P OUTPUT DROP

이 규칙 세트를 사용하면 컴퓨터가 포트 53/udp를 사용하여 DNS 서버에 쿼리할 수 있습니다. 그런 다음 unix.stackexchange.com, 포트 80(http) 및 443(https)에 대한 TCP 트래픽을 허용합니다. 연결을 추적하고 다른 모든 트래픽을 삭제합니다.

에서 일치하는 항목을 구성하는 한 DNS 쿼리를 허용하는 규칙을 삭제할 수 있습니다 /etc/resolv.conf.

관련 정보