iptables openSuse 12.3 (Система из коробки)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

leksstav
Сообщения: 331

iptables openSuse 12.3

Сообщение leksstav »

Стоит 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

Что тут может быть ?

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables openSuse 12.3

Сообщение Bizdelnick »

leksstav писал(а):
19.03.2014 23:16
OUPUT

OUTPUT
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
leksstav
Сообщения: 331

Re: iptables openSuse 12.3

Сообщение leksstav »

Bizdelnick писал(а):
19.03.2014 23:45
leksstav писал(а):
19.03.2014 23:16
OUPUT

OUTPUT



Понимаю, что проблема с OUPUT

Може подсказать, что именно подправить ?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21498
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: iptables openSuse 12.3

Сообщение Bizdelnick »

leksstav писал(а):
20.03.2014 21:47
Може подсказать, что именно подправить ?

Странная тенденция - все как будто читать разучились...
Bizdelnick писал(а):
19.03.2014 23:45
OUTPUT


P. S. Да и я сам сегодня с полчаса тупил, вбивая вместо подчёркивания дефис и удивляясь - почему это файл не найден? Пока hexdump'ы не сравнил - не заметил...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
leksstav
Сообщения: 331

Re: iptables openSuse 12.3

Сообщение leksstav »

Bizdelnick писал(а):
20.03.2014 21:59
leksstav писал(а):
20.03.2014 21:47
Може подсказать, что именно подправить ?

Странная тенденция - все как будто читать разучились...
Bizdelnick писал(а):
19.03.2014 23:45
OUTPUT


P. S. Да и я сам сегодня с полчаса тупил, вбивая вместо подчёркивания дефис и удивляясь - почему это файл не найден? Пока hexdump'ы не сравнил - не заметил...



Тьфу ты емае, спасибо Bizdelnick :-)
Спасибо сказали:
leksstav
Сообщения: 331

Re: iptables openSuse 12.3

Сообщение leksstav »

Может подскажете, что дописать в мой конфиг чтобы пк из локалки могли в инет ходить.

Имею следующий конфиг, и ни один пк из локалки не имеет выхода в инет.

Код: Выделить всё

#!/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

Сообщение Alexxx »

Может подскажете, что дописать в мой конфиг чтобы пк из локалки могли в инет ходить.

Как минимум это:

Код: Выделить всё

$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

Сообщение leksstav »

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

Сообщение Hephaestus »

leksstav писал(а):
21.03.2014 09:26
Спасибо, вечером попробую, а опечатка в чем ?
Что то я невижу.


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 »

leksstav писал(а):
21.03.2014 09:26
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



Спасибо, вечером попробую, а опечатка в чем ?
Что то я невижу.


Добавил, как советивали строки перед

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

Сообщение Hephaestus »

leksstav писал(а):
22.03.2014 12:04
Из нутри пробовал пропинговать яндекс, глухо.
Включите логирование что ли...
А то вслепую можно очень долго с этим возиться.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
leksstav
Сообщения: 331

Re: iptables openSuse 12.3

Сообщение leksstav »

fflatx писал(а):
22.03.2014 14:31
leksstav писал(а):
22.03.2014 12:04
Из нутри пробовал пропинговать яндекс, глухо.
Включите логирование что ли...
А то вслепую можно очень долго с этим возиться.


Если, я не ошибаюсь надо сделать так :
И так, что бы наши логи писались в отдельный файл, открываем /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

Сообщение Hephaestus »

leksstav писал(а):
22.03.2014 17:23
В моем случае как должна выглядеть эта строка ?


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

Советую сделать по не слишком сложной схеме:
У вас есть некий скрипт, устанавливающий правила.
В этом скрипте перед каждым правилом ставите ещё одно - такое же, только в качестве действия ставите 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. Из-за этого может не пинговаться.
Но логирующие правила всё-таки рекомендую использовать на время отладки, чтобы с каждым новым правилом не гадать на кофейной гуще.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали: