Вероятно, это самый простой вариант, но я разработчик и у меня нет опыта работы с iptbles.
Единственные соединения, которые мне нужно открыть:
eth0 (наружу)
eth1(локальная подсеть)
Все остальное нужно заблокировать. Мои текущие попытки, похоже, оставляют все остальные порты открытыми. Интересно, что это дает.
Спасибо serverfault!
# Block incoming on eth0
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8443 -j ACCEPT
# Block incoming on eth1
iptables -A INPUT -i eth1 -p tcp --dport 5432 -j ACCEPT
# Block everything by default
iptables -j INPUT -i eth0 -j DROP
iptables -j INPUT -i eth1 -j DROP
# NAT
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
Примечание: я сделал то, что вы сказали, но вы можете разрешить все пакеты icmp, иногда они полезны.
Примечание 2: я предполагаю, что «сервер postgres» - это тот же хост.
Попробуйте этот сайт для чистой конфигурации запуска: http://www.mista.nu/iptables/
Нам нужно знать, что у вас уже есть.
И мы не собираемся выписывать вам эти правила. Если вы хотите, чтобы кто-то написал за вас правила iptables, наймите консультанта.
Итак, посмотрим, что у вас уже есть.
Если это CentOS, как я думаю, вы предлагаете, вы можете показать нам либо / etc / sysconfig / iptables, либо вывод обоих
iptables -L -vn
И
iptables -L -vn -t nat
попробуйте программу linux ufw, она значительно упрощает настройку iptables
После того, как вы установили эти правила, вам нужно либо ввести правило, которое переходит к REJECT или DROP, либо вам нужно изменить политику цепочки по умолчанию (-P
).
iptables -P INPUT DROP # drop will be default policy
iptables -i eth0 -A INPUT -p tcp --dport 22 -j ACCEPT # ssh
iptables -i eth0 -A INPUT -p tcp --dport 443 -j ACCEPT # delete this if prerouting works
iptables -i eth0 -A INPUT -p tcp --dport 8443 -j ACCEPT # 8443
iptables -i eth0 -A INPUT -p icmp --icmp-type 8 -j ACCEPT # ping
iptables -i eth1 -A INPUT -j ACCEPT # all from eth1
#route port 443 to 8443 from eth0
iptables -t nat -i eth0 -A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443