iptables openSuse 12.3 (Система из коробки)
Модераторы: SLEDopit, Модераторы разделов
-
leksstav
- Сообщения: 331
iptables openSuse 12.3
Стоит OpenSuse 12.3 из коробки в правилах iptables система ругается
iptables: No chain/target/match by that name
Вот на эти 4 правила:
IPTABLES -A OUPUT -p tcp -s 192.168.100.8 -d 80.80.80.80 --dport 80 -j ACCEPT
PTABLES -A OUPUT -p tcp -s 192.168.100.9 -d 90.90.90.90 --dport 25 -j ACCEPT
PTABLES -A OUPUT -p tcp -s 192.168.100.9 -d 90.90.90.90 --dport 110 -j ACCEPT
IPTABLES -A OUPUT -p tcp -s 192.168.99.2 -d 192.168.100.210 --dport 21 -j ACCEPT
Что тут может быть ?
iptables: No chain/target/match by that name
Вот на эти 4 правила:
IPTABLES -A OUPUT -p tcp -s 192.168.100.8 -d 80.80.80.80 --dport 80 -j ACCEPT
PTABLES -A OUPUT -p tcp -s 192.168.100.9 -d 90.90.90.90 --dport 25 -j ACCEPT
PTABLES -A OUPUT -p tcp -s 192.168.100.9 -d 90.90.90.90 --dport 110 -j ACCEPT
IPTABLES -A OUPUT -p tcp -s 192.168.99.2 -d 192.168.100.210 --dport 21 -j ACCEPT
Что тут может быть ?
-
Bizdelnick
- Модератор
- Сообщения: 21498
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: iptables openSuse 12.3
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
leksstav
- Сообщения: 331
Re: iptables openSuse 12.3
Понимаю, что проблема с OUPUT
Може подсказать, что именно подправить ?
-
Bizdelnick
- Модератор
- Сообщения: 21498
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: iptables openSuse 12.3
Странная тенденция - все как будто читать разучились...
P. S. Да и я сам сегодня с полчаса тупил, вбивая вместо подчёркивания дефис и удивляясь - почему это файл не найден? Пока hexdump'ы не сравнил - не заметил...
Пишите правильно:
| в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
-
leksstav
- Сообщения: 331
Re: iptables openSuse 12.3
Bizdelnick писал(а): ↑20.03.2014 21:59
Странная тенденция - все как будто читать разучились...
P. S. Да и я сам сегодня с полчаса тупил, вбивая вместо подчёркивания дефис и удивляясь - почему это файл не найден? Пока hexdump'ы не сравнил - не заметил...
Тьфу ты емае, спасибо Bizdelnick :-)
-
leksstav
- Сообщения: 331
Re: iptables openSuse 12.3
Может подскажете, что дописать в мой конфиг чтобы пк из локалки могли в инет ходить.
Имею следующий конфиг, и ни один пк из локалки не имеет выхода в инет.
Имею следующий конфиг, и ни один пк из локалки не имеет выхода в инет.
Код: Выделить всё
#!/bin/sh
#####################################
IPTABLES="/usr/sbin/iptables"
#podcluchayu modyl
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_nat_ftp
######################################
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp
###########################
INET_IP="192.168.0.20"
INET_IFACE="eth0"
INET_BROADCAST="192.168.0.255"
####################################
LAN_IP="192.168.1.1"
LAN_IP_RANGE="192.168.1.0/24"
LAN_IFACE="eth1"
######################################
LAN_VPN_RANGE="192.168.99.0/24"
######################################
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
#######################################
iptables -F
iptables -F -t nat
######################################
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
######################################
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
iptables -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
iptables -I INPUT -p icmp -f -j DROP
######################################
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
######################################
iptables -A INPUT -i lo -j ACCEPT
##########################################################
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
########################################
#80 port:
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.2 -j ACCEPT #
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.3 -j ACCEPT #
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.4 -j ACCEPT #
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.5 -j ACCEPT #
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.6 -j ACCEPT #
#443 port:
iptables -A INPUT -p tcp --dport 443 -s 192.168.1.2 -j ACCEPT #
iptables -A INPUT -p tcp --dport 443 -s 192.168.1.3 -j ACCEPT #
iptables -A INPUT -p tcp --dport 443 -s 192.168.1.4 -j ACCEPT #
iptables -A INPUT -p tcp --dport 443 -s 192.168.1.5 -j ACCEPT #
iptables -A INPUT -p tcp --dport 443 -s 192.168.1.6 -j ACCEPT #
#3128 port:
iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.2 -j ACCEPT #
iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.3 -j ACCEPT #
iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.4 -j ACCEPT #
iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.5 -j ACCEPT #
iptables -A INPUT -p tcp --dport 3128 -s 192.168.1.6 -j ACCEPT #
#25 port:
iptables -A INPUT -p tcp --dport 25 -s 192.168.1.2 -j ACCEPT #
iptables -A INPUT -p tcp --dport 25 -s 192.168.1.3 -j ACCEPT #
iptables -A INPUT -p tcp --dport 25 -s 192.168.1.4 -j ACCEPT #
iptables -A INPUT -p tcp --dport 25 -s 192.168.1.5 -j ACCEPT #
iptables -A INPUT -p tcp --dport 25 -s 192.168.1.6 -j ACCEPT #
#110 port:
iptables -A INPUT -p tcp --dport 110 -s 192.168.1.2 -j ACCEPT #
iptables -A INPUT -p tcp --dport 110 -s 192.168.1.3 -j ACCEPT #
iptables -A INPUT -p tcp --dport 110 -s 192.168.1.4 -j ACCEPT #
iptables -A INPUT -p tcp --dport 110 -s 192.168.1.5 -j ACCEPT #
iptables -A INPUT -p tcp --dport 110 -s 192.168.1.6 -j ACCEPT #
############################################
iptables -A INPUT -p tcp --dport 25 -s 192.168.1.7 -j ACCEPT #
iptables -A INPUT -p tcp --dport 110 -s 192.168.1.7 -j ACCEPT #
#############################################
iptables -A OUTPUT -p tcp -s 192.168.1.8 -d 80.80.80.80 --dport 80 -j ACCEPT
############################################
#допустим крутится почта по адресу 90.90.90.90
iptables -A OTUPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 110 -j ACCEPT
#############################################
iptables -A INPUT -p tcp -s 192.168.1.10 -j ACCEPT
######################################################
iptables -A INPUT -p tcp -s 192.168.0.25 -j ACCEPT
#######################################################
iptables -A INPUT -p tcp --dport 1194 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
#######################################################
iptables -A INPUT -p tcp -s 192.169.99.5 -j ACCEPT
#######################################################
iptables -A OUTPUT -p tcp -s 192.168.99.2 -d 192.168.100.210 --dport 21 -j ACCEPT
#######################################################-
Alexxx
- Сообщения: 892
- Статус: --==XXX==--
- ОС: Archlinux current
Re: iptables openSuse 12.3
Может подскажете, что дописать в мой конфиг чтобы пк из локалки могли в инет ходить.
Как минимум это:
Код: Выделить всё
$IPTABLES -A FORWARD -s $LAN_IP_RANGE -j ACCEPTи может быть ещё это:
Код: Выделить всё
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IPпысы
И тут у вас стопудово опечатка:
Код: Выделить всё
iptables -A OTUPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 110 -j ACCEPT
-
leksstav
- Сообщения: 331
Re: iptables openSuse 12.3
Alexxx писал(а): ↑21.03.2014 07:43Может подскажете, что дописать в мой конфиг чтобы пк из локалки могли в инет ходить.
Как минимум это:Код: Выделить всё
$IPTABLES -A FORWARD -s $LAN_IP_RANGE -j ACCEPT
и может быть ещё это:Код: Выделить всё
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
пысы
И тут у вас стопудово опечатка:
Код: Выделить всё
iptables -A OTUPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 110 -j ACCEPT
Спасибо, вечером попробую, а опечатка в чем ?
Что то я невижу.
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: iptables openSuse 12.3
В первой строке буквы местами перепутаны.iptables -A OTUPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 110 -j ACCEPT
Дисграф?
Каким редактором пользуетесь для написания скриптов/правил?
Используйте редактор с подсветкой синтаксиса.
И поищите (или создайте свою) схему подсветки для iptables под этот редактор.
Тогда ключевые слова будут выделены цветом, а неверно написанные - не будут. Сразу увидите.
Сам пользуюсь - здорово облегчает жизнь.
А так, вообще, iptables ругнется, конечно, если ему непотребную команду скормить...
-
leksstav
- Сообщения: 331
Re: iptables openSuse 12.3
leksstav писал(а): ↑21.03.2014 09:26Alexxx писал(а): ↑21.03.2014 07:43Может подскажете, что дописать в мой конфиг чтобы пк из локалки могли в инет ходить.
Как минимум это:Код: Выделить всё
$IPTABLES -A FORWARD -s $LAN_IP_RANGE -j ACCEPT
и может быть ещё это:Код: Выделить всё
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
пысы
И тут у вас стопудово опечатка:
Код: Выделить всё
iptables -A OTUPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 25 -j ACCEPT iptables -A OUTPUT -p tcp -s 192.168.1.9 -d 90.90.90.90 --dport 110 -j ACCEPT
Спасибо, вечером попробую, а опечатка в чем ?
Что то я невижу.
Добавил, как советивали строки перед
iptables -A FORWARD -s $LAN_IP_RANGE -j ACCEPT
iptables -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
#80 port:
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.2 -j ACCEPT #
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.3 -j ACCEPT #
iptables -A INPUT -p tcp --dport 80 -s 192.168.1.4 -j ACCEPT #
и так далее
Из нутри пробовал пропинговать яндекс, глухо.
Вот вывод
Код: Выделить всё
iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
DROP icmp -f 0.0.0.0/0 0.0.0.0/0
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate NEW tcp flags:!0x17/0x02
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID,NEW tcp flags:0x12/0x12 reject-with tcp-reset
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x04 limit: avg 1/sec burst 5
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8
ACCEPT tcp -- 192.168.1.2 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 192.168.1.3 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 192.168.1.4 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 192.168.1.5 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 192.168.1.6 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 192.168.1.2 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 192.168.1.3 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 192.168.1.4 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 192.168.1.5 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 192.168.1.6 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 192.168.1.2 0.0.0.0/0 tcp dpt:3128
ACCEPT tcp -- 192.168.1.3 0.0.0.0/0 tcp dpt:3128
ACCEPT tcp -- 192.168.1.4 0.0.0.0/0 tcp dpt:3128
ACCEPT tcp -- 192.168.1.5 0.0.0.0/0 tcp dpt:3128
ACCEPT tcp -- 192.168.1.6 0.0.0.0/0 tcp dpt:3128
ACCEPT tcp -- 192.168.1.2 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.168.1.3 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.168.1.4 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.168.1.5 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.168.1.6 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.168.1.2 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 192.168.1.3 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 192.168.1.4 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 192.168.1.5 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 192.168.1.6 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 192.168.1.7 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.168.1.7 0.0.0.0/0 tcp dpt:110
ACCEPT all -- 192.168.1.10 0.0.0.0/0
ACCEPT tcp -- 192.168.0.25 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1194
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 192.169.99.5 0.0.0.0/0
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- 192.168.1.0/24 0.0.0.0/0
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 192.168.1.8 80.80.80.80 tcp dpt:80
ACCEPT tcp -- 192.168.1.9 90.90.90.90 tcp dpt:25
ACCEPT tcp -- 192.168.1.9 90.90.90.90 tcp dpt:110
ACCEPT tcp -- 192.168.99.2 192.168.100.210 tcp dpt:21Заметил ещё такой факт, что при этом конфиге операционка оч долго грузится.
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: iptables openSuse 12.3
Включите логирование что ли...
А то вслепую можно очень долго с этим возиться.
-
leksstav
- Сообщения: 331
Re: iptables openSuse 12.3
Если, я не ошибаюсь надо сделать так :
И так, что бы наши логи писались в отдельный файл, открываем /etc/syslog.conf и добавляем:
kern.warning /var/log/iptables.log
Записываем и перезапускаем syslog:
Эта строка логирует ssh
-A OUTPUT -p tcp -m tcp --dport 22 -j LOG --log-prefix "outgoing ssh:"
В моем случае как должна выглядеть эта строка ?
-
Hephaestus
- Сообщения: 3728
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
Re: iptables openSuse 12.3
Во-первых, хочу напомнить, как работают правила.
Если пакет подпадает под какое-то правило, он этим правилом обрабатывается и остальные правила к нему не применяются. Если же пакет прошел через все правила и ни одному правилу он не соответствует, то применяется политика по умолчанию. Исключение составляют правила логирования - после них другие правила могут применяться.
Учитывая это, необходимо правила логирования ставить перед основными правилами.
Советую сделать по не слишком сложной схеме:
У вас есть некий скрипт, устанавливающий правила.
В этом скрипте перед каждым правилом ставите ещё одно - такое же, только в качестве действия ставите LOG (а лучше использовать ULOG) с префиксом. Чтобы различать правила, можно каждому правилу в комментарии присвоить номер, а в логе использовать этот номер в качестве префикса. У Вас должны получиться парные правила.
Например:
Правило из Вашего скрипта:
Код: Выделить всё
iptables -A OUTPUT -p icmp -j ACCEPTВместе с логированием будет выглядеть примерно так:
Код: Выделить всё
iptables -A OUTPUT -p icmp -j ULOG --prefix "OUTPUT ACCEPT 9:"
iptables -A OUTPUT -p icmp -j ACCEPT #9Как видите, основному правилу в комментарии присвоен номер, а в логе этот номер отображается.
Итак, перед каждым фильтрующим правилом нужно поставить дублирующее правило логирования.
В префиксе желательно указывать имя цепочки и имя действия, а поскольку у Вас в одной цепочке несколько правил с одинаковым действием, я предложил указывать ещё и номер правила.
Внимание!!! Правило логирования обязательно ставить прямо перед соответствующим фильтрующим правилом, а не где-то в начале скрипта. Иначе, один и тот же пакет обработается несколькими логирующими правилами, что создаст неверную картину происходящего.
Что даёт такая схема.
Поскольку правила логирования совпадают с фильтрующими правилами, то пакеты, попадающие под правила логирования, попадут и под фильтрующие правила.
То есть, если пакет отразился в логе, значит он обработался соответствующим правилом логирования, а значит и аналогичным фильтрующим правилом обработался тоже.
В конце, после всех остальных правил, нужно добавить логирующее правило для политик по умолчанию (по одному на каждую политику) с соответствующими префиксами.
Схема немного громоздкая, но она нужна только на время отладки и правила логирования несложные - они совпадают с фильтрующими правилами.
Когда всё это сделано, проверяете работу.
Например, пингуете какой-либо адрес. Ищете в логе этот адрес, например, при помощи grep.
Смотрите, какими правилами (или политиками) этот пакет обработался.
Делаете выводы, на предмет того, обработался ли пакет правильно или застрял где-то.
В Вашем примере с пингом яндекса либо исходящий пакет не ушёл по назначению, либо ответный не пришёл.
Вот в логах и увидите, по каким правилам болтается этот пакет.
Кстати, у Вас там на пинг стоит запрещающее правило в цепочке INPUT. Из-за этого может не пинговаться.
Но логирующие правила всё-таки рекомендую использовать на время отладки, чтобы с каждым новым правилом не гадать на кофейной гуще.