나는 iptables와 Windows를 사용하여 다음과 같이 구성된 eth0: 192.168.1.1(인터넷 액세스), eth1: 192.168.10.1(로컬 네트워크 액세스)이라는 2개의 네트워크 인터페이스 Linux 상자를 가지고 있습니다.
sudo iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-N LOG_ACCEPT
-N LOG_DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j LOG_ACCEPT
-A INPUT -j LOG_DROP
-A FORWARD -i eth0 -o eth1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j LOG_ACCEPT
-A OUTPUT -j LOG_DROP
-A LOG_ACCEPT -j LOG --log-prefix "IPTABLES ACCEPT : "
-A LOG_ACCEPT -j ACCEPT
-A LOG_DROP -m limit --limit 2/min -j LOG --log-prefix "IPTABLES DROP : " --log-level 7
-A LOG_DROP -j DROP
sudo iptables -t nat -S
-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
windows
static ip : 192.168.10.2
mask : 255.255.255.0
gateway : 192.168.10.1
dns : 192.168.10.1
왜 작동하지 않는지 이해할 수 없습니다. Windows 상자에 시스템을 통해 실행되는 패킷이 있는 것 같지만 인터넷을 검색할 수 없고 인터넷에 핑을 보낼 수도 없습니다.
감사해요
답변1
Windows 시스템에서는 iptables 구성 정보를 기반으로 ISP의 DNS 서버를 사용해야 한다고 생각합니다. Linux 서버 컴퓨터에 DHCP 서버가 있는 경우 다음과 같이 ISP의 이름 서버 할당을 사용해야 합니다.
option domain-name-servers ISP-DNS1.example, ISP-DNS2.example;
이렇게 하면 문제가 해결될 수 있습니다.