dd-wrtを持つルーターがあります。外部プロキシを介してすべてのトラフィックを転送するためにファイアウォールを実行します。ローカルIPをリダイレクトし、プロキシがIpsを許可していないため、ルーターのWeb管理にアクセスできないことを除いて、これはうまく機能します。
私が実行しているファイアウォールは次のとおりです。
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
ソースを除外するために使用されます。