Задать вопрос
@symbyon1

Как корректно закрыть и открыть порты в iptables?

Помогите корректно настроить фаервол на ubuntu. суть проблемы какова, надо закрыть все порты но оставить открытые только избранные!
пример:
закрытые 1-65355

исключения:
apache2 tcp 80
dhclient tcp 56171 68 6782
dovecot tcp 110 143 993 995
exim4 tcp 587 465 25
ihttpd tcp 1500
mysqld tcp 3306
named tcp 53 953
ntpd tcp 123
proftpd tcp 21
sshd tcp 22
  • Вопрос задан
  • 2984 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
merryjane
@merryjane
Системный администратор
Если например для цепочки INPUT, то ставите политику по умолчанию DROP, разрешаем установленные соединения, а дальше список правил разрешающих вышеуказанное по списку:
iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
...
Ответ написан
insiki
@insiki
broken pipe
Пример из рабочего конфига:
#!/bin/sh
#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward

#Удалить все существующие правила
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X

#Политику по умолчанию устанавливаем на блокировку
iptables -P INPUT DROP
iptables -P FORWARD DROP

#Разрешаем входящие/исходящие пакеты на шлюз из локальной сети
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth1 -m conntrack --ctstate NEW -j ACCEPT

#Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT # HTTPS
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dport 25,110,143,465,587,993,995,2525 -m conntrack --ctstate NEW -j ACCEPT # Post
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dport 2041,2042 -m conntrack --ctstate NEW -j ACCEPT # mail.ru Agent
iptables -A FORWARD -i eth1 -o eth0 -p udp -m multiport --dport 500,4500 -m conntrack --ctstate NEW -j ACCEPT # VPN IPSec
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dport 5242,4244 -m conntrack --ctstate NEW -j ACCEPT # Viber
iptables -A FORWARD -i eth1 -o eth0 -p udp -m multiport --dport 5243,9785 -m conntrack --ctstate NEW -j ACCEPT # Viber
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dport 4433 -m conntrack --ctstate NEW -j ACCEPT # Sberbank
iptables -A FORWARD -i eth1 -o eth0 -p icmp --icmp-type echo-request -m conntrack --ctstate NEW -j ACCEPT

#Включаем NAT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

#Заворачивем  порты на порт прокси (делаем прозрачным)
iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.1.0/24 -p tcp -m multiport --dport 80,8080 -j REDIRECT --to-port 3128
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы