Назад | Перейти на главную страницу

Iptables: маскарадинг и маршрутизация

У меня есть маршрутизатор 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-адресами.