dd-wrt의 iptables를 통해 외부 프록시를 통해 로컬을 제외한 모든 트래픽을 리디렉션하는 방법은 무엇입니까?

dd-wrt의 iptables를 통해 외부 프록시를 통해 로컬을 제외한 모든 트래픽을 리디렉션하는 방법은 무엇입니까?

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

여기:

  1. 10.21.33.61/32전달에서 제외하려는 IP입니다.
  2. 10.21.33.61:5432트래픽을 전달하려는 IP:포트입니다.
  3. 5432트래픽을 전달하려는 포트입니다.
  4. '!' -s소스를 제외하는 데 사용됩니다.

관련 정보