Это интересная задачка. Обычно для перезаписи адресов используется таблица NAT PREROUTING
, но здесь это не сработает. Вы не можете использовать DNAT
в таблице PREROUTING
, потому что трафик не поступает на исходный веб-сервер, а DNAT
не разрешен в POSTROUTING
. Вместо этого это один из редких случаев, когда DNAT
следует поместить в цепочку OUTPUT
(, хотя и в таблицу NAT ).
iptables -t nat -I OUTPUT -o eth0 --dst 192.168.4.23 -j DNAT --to 192.168.4.28
Это берет все выходные заголовки через интерфейс eth0
(, который вам, возможно, потребуется настроить для вашей среды CentOS ), предназначенный для 192.168.4.23, и перезаписывает для перехода на 192.168.4.28. Номера портов должны оставаться без изменений. Возвращаемые пакеты должны быть автоматически перезаписаны, если в вашем ядре есть модуль conntrack.
Чтобы получить список iptables
правил, вам нужно запустить пять отдельных команд (существует пять наборов правил ), но на практике в основном первых двух достаточно для правил, которыми вы будете управлять.
iptables -nvL # Blocking and permitting packets ("-t filter")
iptables -t nat -nvL # Rewriting packets, eg different destinations
iptables -t mangle -nvL # Not used so often
iptables -t raw -nvL # Used rarely
iptables -t security -nvL # SELinux
Чтобы удалить правило, вы можете повторить его, изменив-I
(вставить )или-A
(добавить )вместо-D
(удалить ).
Существует множество руководств по iptables
. Вы можете обнаружить, что, поскольку вы используете CentOS, вам стоит изучить инструмент брандмауэра более высокого -уровня firewalld
(, см. man firewalld
для отправной точки, и, конечно же, множество Google -fu ).