dd-wrt가 있는 라우터가 있습니다. 외부 프록시를 통해 모든 트래픽을 전달하기 위해 방화벽을 실행합니다. 로컬 IP를 리디렉션하고 프록시가 Ips를 허용하지 않아 라우터 웹 관리에 액세스할 수 없다는 점을 제외하면 훌륭하게 작동합니다.
내가 실행 중인 방화벽은 다음과 같습니다.
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 80 -j DNAT --to 218.108.168.73:82
iptables -t nat -A PREROUTING -i br0 -p tcp --dport 443 -j DNAT --to 218.108.168.73:82
내 라우터 IP에 액세스하려면 무엇을 추가할 수 있나요?
답변1
! -s or -d
다음을 사용하여 특정 IP/네트워크를 제외 할 수 있습니다.
iptables 사람들로부터
[!] -s, --source address[/mask][,...]
Source specification. Address can be either a network name, a hostname, a
network IP address (with /mask), or a plain IP address. Hostnames will be
resolved once only, before the rule is submitted to the kernel. Please
note that specifying any name to be resolved with a remote query such as
DNS is a really bad idea. The mask can be either a network mask or a
plain number, specifying the number of 1's at the left side of the network
mask. Thus, a mask of 24 is equivalent to 255.255.255.0. A "!" argument
before the address specification inverts the sense of the address. The
flag --src is an alias for this option. Multiple addresses can be speciâ
fied, but this will expand to multiple rules (when adding with -A), or
will cause multiple rules to be deleted (with -D).
[!] -d, --destination address[/mask][,...]
Destination specification. See the description of the -s (source) flag
for a detailed description of the syntax. The flag --dst is an alias for
this option
따라서 규칙은 특정 IP를 제외해야 합니다.
iptables -t nat -A PREROUTING -i br0 '!' -d IPAddrOfyourRouter/32 -p tcp --dport 80 -j DNAT --to 218.108.168.73:82
답변2
이런 요청을 하는 사람들이 많이 보입니다.
사용 사례: 특정 포트의 모든 트래픽을 특정 IP로 전달할 수 있어야 합니다.
해결책
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A PREROUTING -p tcp --dport 5432 -j DNAT --to-destination 10.21.33.61:5432
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -L -n
.
새로운 사용 사례: 특정 포트의 모든 트래픽을 특정 IP로 전달하고 1개의 IP를 제외할 수 있어야 합니다.
해결책
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A PREROUTING '!' -s 10.21.33.61/32 -p tcp --dport 5432 -j DNAT --to 10.21.33.61:5432
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -L -n
여기:
10.21.33.61/32
전달에서 제외하려는 IP입니다.10.21.33.61:5432
트래픽을 전달하려는 IP:포트입니다.5432
트래픽을 전달하려는 포트입니다.'!' -s
소스를 제외하는 데 사용됩니다.