iptables-save
Сам почитай для начала.
Сравни с примером в https://forum.ubuntu.ru/index.php?topic=99586.0
Да какая разница как его ставить в автозагрузку? тем unix и хорош, что дает разные пути решения.
Пользователь решил продолжить мысль 09 Января 2011, 12:13:59:
Здравствуйте ! Ситуация следующая : имеется комп с двумя сетевухами eth0-внешка eth1-локальная сеть аипишники статические, dns от провайдера, инет раздается в локалку через nat , на этой же машине крутится почтовый сервер. под спойлером конфиг iptables #!/bin/sh
#
#очищаем настройки
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
#
#Подгрузка необходимых модулей
#
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
#
#политика по умолчанию
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -p OUTPUT DROP
#
#раздаём инет в локалку четез nat:
#
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward="1"
iptables -t nat -A POSTROUTING --source 192.168.0.0/24 -o eth0 -j SNAT --to-source 213.148.xxx.xxx
#
#Разрешим входящие соединения на маршрутизатор из локальной сети :
#
iptables -A INPUT -i eth1 --source 192.168.0.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
#
#Разрешим маршрутизатору отвечать компьютерам в локальной сети:
#
iptables -A OUTPUT -o eth1 --destination 192.168.0.0/24 --match state --state NEW,ESTABLISHED -j ACCEPT
#
#Разрешим перенаправление пакетов из локальной сети в инет для установки соединений и установленных соединений:
#
iptables -A FORWARD -i eth1 --source 192.168.0.0/24 --destination 0.0.0.0/0 --match state --state NEW,ESTABLISHED -j ACCEPT
#
#Разрешим перенаправление пакетов из интернета в локальную сеть только для установленных соединений:
#
iptables -A FORWARD -i eth0 --destination 192.168.0.0/24 --match state --state ESTABLISHED -j ACCEPT
#
#открываем порт для торрент-клиента на отдельной машине:
#
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 29670 -j DNAT --to-destination 192.168.0.77
iptables -A FORWARD -p tcp -i eth0 --dport 29670 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#
#разрешаем трассировку udp
#
iptables -A FORWARD -p udp -j ACCEPT
#
#Почта_smtp
#
iptables -A FORWARD -o eth0 -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT
#
#Почта_pop3
#
iptables -A FORWARD -o eth0 -m state --state NEW -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT
#
проблема в том, что клиенты не могут авторизоваться на сервере, так же нет доступа по https если поставить INPUT и FORWARD в ACCEPT все работает без поблем. Это мой первый опыт в настройке iptables, пожалуйста помогите найти ошибки в конфиге.
Непонятно зачем их удалять, по-моему если не создавать кучи новых цепочек, то достаточно только очищать?
iptables -X
iptables -t nat -X
iptables -t mangle -X
Вместо -m state --state более актуальный вариант -m conntrack --ctstate разработчик советуте, но можно и так оставить
Это: echo 1 > /proc/sys/net/ipv4/ip_forward и это: sysctl -w net.ipv4.ip_forward="1" - в принципе дествия ведущие в р-те к одному результату, так что можно одно убрать.
По-моему запись вида iptables -A FORWARD -o eth0 не верна изначально, что значит мы форвардим с исходящего интерфейса eth0? форвард - это форвард, на него попадаем через интерфейс, значит должно быть -i eth0 и далее эти же правила допустим с -i:
iptables -A FORWARD -i eth0 -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state NEW -p tcp --dport 110 -j ACCEPT
что они должны давать? зачем нам форвардить эти порты? отправка то должно происходить с сервера и прием тоже на сервеp т.е. цепочки INPUT и OUTPUT
В цепочках iptables -A INPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT и iptables -A INPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT видимо надобно указать внешний интерфейс т.к. изнутри вы итак все разрешили.
А в остальном все должно работать, выход на внутренний интерфейс с локалки и обратно открыты,
На каком интерфейсе висит apache и почта? смотрят ли эти сервисы в локалку?, может просто сервисы настроены на внешний IP? из нутри сети есть пинг на внешний IP? если пинга нет, то возможно надо дописать правила входа/выхода на данный IP