LinuxForum.Fans
Тема

Помогите с конфигурацией iptables

Автор: Vert01et 13 сообщений 4885 просмотров
#101024

Доброго времени суток, товарищи! Посмотрите пожалуйста мой конфиг для восстановления настроек iptables, команда iptables-restore не принимает его, ругается мол:

'ptables-restore v1.4.2: iptables-restore: unable to initialize table 'filter

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

Конфиг выглядит так (eth0 - локалка, адрес 192.168.1.5; eth1 - инет):

Показать
#Политика по умолчанию запрет всего
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
#INPUT - Разрешены входящие пакеты c локалки и пинги с любого интерфейса, в будущем планируется с локалки разрешать только проксю, правило пока закаментено
[0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[0:0] -A INPUT -i eth0 -j ACCEPT
[0:0] -A INPUT -p icmp -j ACCEPT
#[0:0] -A INPUT -p tcp -i eth0 --dport 3128 -j ACCEPT #Squid
#OUTPUT - исходящие запросы разрешены в локалку, а также пинг, веб и днс по всем интерфейсам
[0:0] -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[0:0] -A OUTPUT -o eth0 -j ACCEPT
[0:0] -A OUTPUT -p icmp -j ACCEPT
[0:0] -A OUTPUT -p tcp --dport 80 -j ACCEPT
[0:0] -A OUTPUT -p udp --dport 53 -j ACCEPT
[0:0] -A OUTPUT -p tcp --dport 53 -j ACCEPT
#FORWARD - транзит пакетов разрешён из локалки на внешние порты 25,110,995 и 465 и в локалку на кучу портов из второго правила
[0:0] -A FORWARD -p tcp -m multiport --sports 25,110,995,465 -i eth0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.0/24 -p tcp -m multiport --dports 2120,2111,2112,2125,2126,2127,3110,3125,4110 -o eth0 -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#Далее настроено перенаправление пакетов для почты:
#spaceweb.ru - 192.168.1.5:2110<->pop3.spaceweb.ru:110 и 192.168.1.5:2125<->smtp.spaceweb.ru:25 (они неправильные, в обратных правилах нужно только порт указать, но я пока не разобрался как, точнее только сейчас писав это сообщение понял ошибку, но сейчас не это главное, надо понять почему конфиг не принимается)
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 2110 -j DNAT --to-destination pop3.spaceweb.ru:110
[0:0] -A PREROUTING -p tcp -s pop3.spaceweb.ru --dport 110 -j DNAT --to-destination 192.168.1.5:2110
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 2125 -j DNAT --to-destination smtp.spaceweb.ru:25
[0:0] -A PREROUTING -p tcp -s smtp.spaceweb.ru --dport 25 -j DNAT --to-destination 192.168.1.5:2125
#timeweb.ru
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 2111 -j DNAT --to-destination pop3.timeweb.ru:110
[0:0] -A PREROUTING -p tcp -s pop3.timeweb.ru --dport 110 -j DNAT --to-destination 192.168.1.5:2111
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 2126 -j DNAT --to-destination smtp.timeweb.ru:25
[0:0] -A PREROUTING -p tcp -s smtp.timeweb.ru --dport 25 -j DNAT --to-destination 192.168.1.5:2126
#gmail.com
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 2112 -j DNAT --to-destination pop.gmail.com:995
[0:0] -A PREROUTING -p tcp -s pop.gmail.com --dport 995 -j DNAT --to-destination 192.168.1.5:2112
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 2127 -j DNAT --to-destination smtp.gmail.com:465
[0:0] -A PREROUTING -p tcp -s smtp.gmail.com --dport 465 -j DNAT --to-destination 192.168.1.5:2127
#inbox.ru
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 3110 -j DNAT --to-destination pop.inbox.ru:110
[0:0] -A PREROUTING -p tcp -s pop.inbox.ru --dport 110 -j DNAT --to-destination 192.168.1.5:3110
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 3125 -j DNAT --to-destination smtp.inbox.ru:25
[0:0] -A PREROUTING -p tcp -s smtp.inbox.ru --dport 25 -j DNAT --to-destination 192.168.1.5:3125
#tula.net
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 4110 -j DNAT --to-destination mail.tula.net:110
[0:0] -A PREROUTING -p tcp -s mail.tula.net --dport 110 -j DNAT --to-destination 192.168.1.5:4110
[0:0] -A PREROUTING -p tcp -d 192.168.1.5 --dport 4125 -j DNAT --to-destination mail.tula.net:25
[0:0] -A PREROUTING -p tcp -s mail.tula.net --dport 25 -j DNAT --to-destination 192.168.1.5:4125
COMMIT

Вот... Сразу говорю, что это мой первый сервер и первый конфиг, так что любителей указывать глумиться попрошу не тратить зря силу, я и сам знаю, что "нуб и опозорился". Жду мнений по существу - как скормить конфиг серверу?

#101026

Error occurred at line: 2
Try `iptables-restore -h' or 'iptables-restore --help' for more information.
Поставь за место *filter вот так #filter
И ещё совет выкладывай сам скрипт а не save

#101030
Kettler написал:
Поставь за место *filter вот так #filter

нет, не стоит это делать... Тогда iptables-restore не поймёт, какую таблицу лопатит...

#101032

Кстати - правильно ли я переписал правила? Вот:

[0:0] -A PREROUTING -p tcp -i eth0 --dport 2110 -j DNAT --to-destination pop3.spaceweb.ru:110
[0:0] -A PREROUTING -p tcp -s pop3.spaceweb.ru --dport 110 -j DNAT --to-port 2110
[0:0] -A PREROUTING -p tcp -i eth0 --dport 2125 -j DNAT --to-destination smtp.spaceweb.ru:25
[0:0] -A PREROUTING -p tcp -s smtp.spaceweb.ru --dport 25 -j DNAT --to-port 2125

Все пакеты приходяшие на eth0 на порты 2110 и 2125 будут перенаправлены на pop3.spaceweb.ru:110 и smtp.spaceweb.ru:25 соответственно, а все ответные пакеты с pop3.spaceweb.ru предназначеные 110 порту и с smtp.spaceweb.ru предназначеные 25 порту будут отправлены в локалку на порт 2110 и порт 2125, опять же соответственно.

Что по поводу каментирования #filter - пробовал, действительно не прокатывает.

#101035

Кажется понял почему ругается, конфиг первоначально редактировался под виндой и хоть и был в нано перекопипастен, точнее вставлен, всёравно сохранял виндовые признаки кодировки... сейчас через мауса пропустил и сьел конфиг, только на нат-секцию заругался:

iptables-restore v1.4.2: Bad IP address `pop3.spaceweb.ru'

Error occurred at line: 28

Я просто новичёк, наверно надо не адреса а айпишники прописать, этож всё видать происходит на уровне ниже работы днс, завтра перепишу с адресами и выложу конфиг, подскажите тогда что поправить и оптимизировать?

P.S. Проснулся с мыслью о файле hosts. Хотя если iptables-restore не умеет работать с доменными именами, то и с файлом hosts видимо тоже... Ещё не гуглил, мысли вслух. Просто я эти правила из виндового юзергейта переношу, там было можно именами прописать и всё. Мало ли у почтовика поменяется айпи. А если у меня будут 800 правил по работе с ним? Что тогда придётся все 800 переписывать? Какой механизм используется в таком случае? Ладно, погуглю наработе как приеду.

#101056

Сам скрипт в студию.

#101092

Конфиг тут - http://2u.ifolder.ru/20396420

рестор этого конфига ругается:
iptables-restore v1.4.2: Bad IP address `pop3.spaceweb.ru'

Error occurred at line: 28
Try `iptables-restore -h' or 'iptables-restore --help' for more information.

#101111

Вот пример не тестил не знаю будет ли правильно работать

text

#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/ip_dynaddr
modprobe iptable_nat
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -F -t nat
iptables -F -t mangle

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth0 -j ACCEPT iptables -A OUTPUT -o eth0 -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -p tcp -m multiport --ports 2110,2125,2111,2126,2112,995,2127,465,3110,110,3125,25,4110,4125 -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --ports 2110,2125,2111,2126,2112,995,2127,465,3110,110,3125,25,4110,4125 -j ACCEPT iptables -A INPUT -i eth1 -p tcp -m multiport --ports 2110,2125,2111,2126,2112,995,2127,465,3110,110,3125,25,4110,4125,53 -j ACCEPT iptables -A OUTPUT -i eth1 -p tcp -m multiport --ports 2110,2125,2111,2126,2112,995,2127,465,3110,110,3125,25,4110,4125,53 -j ACCEPT iptables -A INPUT -i eth1 -p udp --sport 53 -j ACCEPT iptables -A OUTPUT -o eth1 -p udp --dport 53 -j ACCEPT

#1 ток пример iptables -A PREROUTING -t nat -p tcp -s 192.168.1.5 --dport 2110 -j DNAT --to-destination 77.222.41.9:110 iptables -A PREROUTING -t nat -p tcp -s 77.222.41.9 --dport 110 -j DNAT --to-destination 192.168.1.5:2110 iptables -A PREROUTING -t nat -p tcp -s 192.168.1.5 --dport 2125 -j DNAT --to-destination 77.222.41.9:25 iptables -A PREROUTING -t nat -p tcp -s 77.222.41.9 --dport 25 -j DNAT --to-destination 192.168.1.5:2125 #конец примера

#nat iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

#101142

Спасибо, попробую потестить, по результату отпишу, а как мне его кстати теперь серверу скормить по культурнее, кроме как через cat с последующим сейвом?

#101153

nano /home/nat
кидаешь всё туда
chmod +x /home/nat
sh /home/nat

всё из под root

#101710

Угу, хорошо, а потом просто если надо редактирую его так? В какой момент изменения этого файла принимаются системой?

И ещё вопрос:
iptables -A PREROUTING -t nat -p tcp -s 192.168.1.5 --dport 2110 -j DNAT --to-destination 77.222.41.9:110
iptables -A PREROUTING -t nat -p tcp -s 77.222.41.9 --dport 110 -j DNAT --to-destination 192.168.1.5:2110
iptables -A PREROUTING -t nat -p tcp -s 192.168.1.5 --dport 2125 -j DNAT --to-destination 77.222.41.9:25
iptables -A PREROUTING -t nat -p tcp -s 77.222.41.9 --dport 25 -j DNAT --to-destination 192.168.1.5:2125

А как быть, если адрес на который отправляется пакет - динамический. Например в этом примере у вас адрес 77.222.41.9, а завтра он станет по DNS-ответу 77.222.41.25. Сейчас pop3.spaceweb.ru пингуется именно по такому адресу. Конечно это понятно, что там ряд айпишников может отвечать скорее всего от имени одного домена, всётаки почтовик серьёзный, но всётаки. Я так понимая исходя из-за невозможности указания в параметре --ti-destination доменного имени - никак? Как-то странно тогда, то что для виндового юзергейта проще простого линуксовый айпитейблс не умеет?

#102115

Доменное хз но проблематично, а насчёт ип DNAT покурю по внимательнее можно задать область пул адресов.

#102367

Попробовал конфиг, сначало вообще ничего не работало. Сначала добавил строки на работу сквида. Прокся заработала. А вот с почтой так и голяк. Видать перенаправление пашетнеправильно всётаки...

Войдите или зарегистрируйтесь, чтобы ответить.