У меня есть сервер с 2-мя интерфейсами. небольшая сеть подключается к eth0 и выходит в интернет по eth1. Чтобы разрешить 1 ip для nat, я использую
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.23 -j SNAT --to-source=23.x.x.x
Я хотел бы добавить правило, которое позволяет одному ip делать нат и блокировать другие, уже существующие в iptables (без их удаления)
iptables -t nat -A POSTROUTING -o OUT_IF \! -s ip_sursa -j SNAT --to-source=x3.xxx.1xx.1xx -j DROP
должно сработать?
Или, чтобы разрешить только 1 IP-адрес для передачи через eth0 на eth1 и выполнить nat.
Не рекомендуется использовать DROP
в таблице NAT. Лучше это сделать в таблице фильтров, если вы хотите запретить доступ к этим IP-адресам.
В противном случае вы можете использовать другое правило для NAT этих IP-адресов на другой общедоступный IP-адрес.
Обновить
Вот правила, которые вам нужно разрешить только для одного IP (192.168.0.100)
iptables -A FORWARD -o eth1 -s 192.168.0.100 -j ACCEPT
iptables -A FORWARD -o eth1 -s 192.168.0.0/24 -j DROP
iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.100 -j SNAT --to-source=23.x.x.x