У меня есть маршрутизатор WAN, который подключен к ISP через /30
Подсеть WAN. Но он также служит маршрутизатором для /29
локальная общедоступная подсеть WAN, которая подключена к нескольким моим серверам. Трафик из /29
перенаправляется к провайдеру через /30
подсеть. По проводной причине я хочу замаскировать (NAT) интерфейс, который имеет /30
ip. Итак, интерфейс с /30
ip должен отображаться как замаскированный для моего 192.168.1.0/24
сеть, и он также должен действовать как обычный маршрутизатор без NAT для моей общедоступной подсети WAN /29
. Можно ли это сделать с помощью iptables на машине Linux?
РЕДАКТИРОВАТЬ1: Как сейчас у меня правила брандмауэра:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#WAN Security
iptables -A INPUT -d 1.2.3.3 -m state --state INVALID -j DROP
iptables -A INPUT -d 1.2.3.3 -m state --state ESTABLISHED,RELATED -j ACCEPT
#NAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
#FORWARD
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A INPUT -d 1.2.3.3 -j DROP
Да, это сработает. Настройте фильтрацию пакетов и маршрутизацию, как если бы вы вообще не использовали NAT, а затем добавьте что-нибудь вроде:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
(Предполагая, что ваш интернет-провайдер подключен к eth0, а ваш публичный IP-адрес - 1.2.3.3.)
Это применит NAT только к пакетам, поступающим из вашей локальной сети с частными IP-адресами.