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

Базовые iptables для веб-сервера: SSL Tomcat, postgres, ssh и все

Вероятно, это самый простой вариант, но я разработчик и у меня нет опыта работы с iptbles.

Единственные соединения, которые мне нужно открыть:

eth0 (наружу)

  1. ssh
  2. пинг
  3. SSL для tomcat (перенаправить порт 443 на 8443)

eth1(локальная подсеть)

  1. подключение к серверу postgres

Все остальное нужно заблокировать. Мои текущие попытки, похоже, оставляют все остальные порты открытыми. Интересно, что это дает.

Спасибо 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