шлюз на slackware12.0 (настройка)

SLAX, Deep Style, ZenWalk

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

Аватара пользователя
andreas90
Сообщения: 158
ОС: Bluewhite64 12.2

Re: шлюз на slackware12.0

Сообщение andreas90 »

(asper писал(а):
10.07.2008 10:45
andreas90 писал(а):
10.07.2008 10:40
не подскажете, если машин действительно 50, чем можно заменить 50 таких строчек?

Например маской: 192.168.1.0/255.255.255.0

да, я только что так и сделал, iptables работает в соответствие с моими правилами
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

(asper писал(а):
10.07.2008 10:45
andreas90 писал(а):
10.07.2008 10:40
не подскажете, если машин действительно 50, чем можно заменить 50 таких строчек?

Например маской: 192.168.1.0/255.255.255.0

Ок, машин 250 и они все в разных сетях? Опять такие же правила писать будете?

И Вы не ответили на вопрос, что будет с пакетами машин, чей source IP не попадает в указанный Вами список?

P.S. Кстати /255.255.255.0 - это не 50 машин :)
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

По поводу state. смотрите.

Для начала обнулил все счётчики. Картина следующая:

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

# iptables -L -vn
Chain INPUT (policy DROP 10 packets, 1341 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
   16  1056 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 DROP       all  --  !lo    *       127.0.0.1            0.0.0.0/0
    0     0 DROP       all  --  !lo    *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       127.0.0.1            0.0.0.0/0
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 recent: UPDATE seconds: 20 name: DEFAULT side: source
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 recent: SET name: DEFAULT side: source
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,143,993
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443


Потом залез на свой сервак, посмотреть конференцию. Результат теперь такой:

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

# iptables -L -vn
Chain INPUT (policy DROP 102 packets, 16362 bytes)
 pkts bytes target     prot opt in     out     source               destination
    1    40 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
  278 62738 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 DROP       all  --  !lo    *       127.0.0.1            0.0.0.0/0
    0     0 DROP       all  --  !lo    *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       127.0.0.1            0.0.0.0/0
    4   112 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 recent: UPDATE seconds: 20 name: DEFAULT side: source
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 recent: SET name: DEFAULT side: source
    1    42 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53
    5   333 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
    1    48 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,143,993
   10   516 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443


Обратите внимание на порядок правил и на каком правиле больше всего пакетов сработало? Теперь делайте выводы где надо писать правила state, в начале таблицы или в конце.

Для непонятливых расшифрую. По правилу iptables -A INPUT -p tcp --dport 80 -j ACCEPT сработало 10 пакетов, все остальные пакеты, принадлежащие этим соединениям проходили по правилу модуля state.

Развиваем мысль дальше. Если правило сработало, остальные правила в цепочке не рассматриваются.

Мысль течет дальше. Проверка каждого правила - это временные затраты, тормозящие прохождения пакета по сетевому стеку вашего роутера.

Вывод - написание правила state в начале цепочки увеличивает, или скажем так - не замедляет, быстродействие вашего роутера.

Я ясно описал проблему? ;)

P.S. Кстати правило iptables -A INPUT -m state --state INVALID -j DROP, за те пару секунд, пока я заходил на сайт, отбросили один неправильный пакет :)

P.P.S. Пока я все это тут писал, стало вот так:

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

# iptables -L -vn
Chain INPUT (policy DROP 1377 packets, 215K bytes)
 pkts bytes target     prot opt in     out     source               destination
   10   400 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           state INVALID
 1488  184K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    0     0 DROP       all  --  !lo    *       127.0.0.1            0.0.0.0/0
    0     0 DROP       all  --  !lo    *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            127.0.0.1
    0     0 ACCEPT     all  --  *      *       127.0.0.1            0.0.0.0/0
   36  1008 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 recent: UPDATE seconds: 20 name: DEFAULT side: source
    1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 recent: SET name: DEFAULT side: source
   14   588 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:1194
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53
   12   808 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
    5   236 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           multiport dports 25,143,993
   29  1512 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443


P.P.P.S. Если хотите узнать больше, приходите ко мне на курсы, я вам еще кое чего интересного расскажу. В том числе какие стратегические ошибки были допущены в том примере настройки firwall, который тут все дружно обсуждают ;)
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
landgraf
Сообщения: 2142
Статус: *бунту ненавистник
ОС: linux

Re: шлюз на slackware12.0

Сообщение landgraf »

BigKAA
какие курсы? я тоже хочу :rolleyes:
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

landgraf писал(а):
11.07.2008 23:07
BigKAA
какие курсы? я тоже хочу :rolleyes:

Тут типа рекламу давать нельзя :) Поэтому даю ссылку на мой блог. Если там порыться, то можно найти доки, в том числе и как правильно iptables пользоваться, ну и где я сейчас курсы читаю :)

Хотя, внизу, в подписи, тоже есть ссылки :)
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
leksstav
Сообщения: 331

Re: шлюз на slackware12.0

Сообщение leksstav »

andreas90 писал(а):
02.07.2008 17:29
очень нужно.
Дано:
два компьютера, причем на машине (1) установлена slackware12.0. и две сетевые карты. На машине (1) ставлю шлюз. машина (2) - windows xp.
...


Попробуй конфиг такого содержания, только адресочки свои поставь,

Код:

#!/bin/sh INET_IP="ip что пров дал" INET_IFACE="eth1" INET_BROADCAST="БРОДКАСТ" LAN_IP="192.168.100.1" LAN_IP_RANGE="192.168.100.0/24" LAN_IFACE="eth0" LO_IFACE="lo" LO_IP="127.0.0.1" IPTABLES="/usr/sbin/iptables" ##/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 $IPTABLES -F $IPTABLES -X $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -N bad_tcp_packets $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -j ACCEPT #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT ##$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 21 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 21 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 22 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 22 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 80 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 80 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 139 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 139 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 3306 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 3306 -j DROP #$IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 34324 -j ACCEPT #$IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 34324 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 445 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 445 -j DROP $IPTABLES -A INPUT -p tcp -j bad_tcp_packets $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i ppp0 -j ACCEPT $IPTABLES -A INPUT -p ALL -i ppp1 -j ACCEPT $IPTABLES -A INPUT -p ALL -i ppp2 -j ACCEPT $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets #$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT #Trust $IPTABLES -A FORWARD -i $LAN_IFACE -s 192.168.100.99 -j ACCEPT #USER1 #Modems $IPTABLES -A FORWARD -s 192.168.0.2 -j ACCEPT # # # All other useful stuff # $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: " $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: " # # NAT # $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


Кто из знающих подскажет какую и куда строчку дописать чтобы можно было по выделенке из вне попасть ??
Пробывал такие строки

1)$IPTABLES -A INPUT -p tcp -s <удалённый IP> -i $INET_IP --dport 22 -j ACCEPT
2)$IPTABLES -A INPUT -p tcp -s <удалённый IP> --dport 22 -i $INET_IP -j ACCEPT

при команде iptables -L показывает
ACCEPT tcp -- <удалённый IP> anywhere tcp dpt:ssh #видно что открыт, а зайти немогу
Спасибо сказали:
Аватара пользователя
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !

Re: шлюз на slackware12.0

Сообщение (asper »

leksstav писал(а):
18.07.2008 16:17
Кто из знающих подскажет какую и куда строчку дописать чтобы можно было по выделенке из вне попасть ??
Пробывал такие строки

1)$IPTABLES -A INPUT -p tcp -s <удалённый IP> -i $INET_IP --dport 22 -j ACCEPT
2)$IPTABLES -A INPUT -p tcp -s <удалённый IP> --dport 22 -i $INET_IP -j ACCEPT

при команде iptables -L показывает
ACCEPT tcp -- <удалённый IP> anywhere tcp dpt:ssh #видно что открыт, а зайти немогу

Эти два правила идентичны и содержут ошибку (или опечатку) в -i $INET_IP, ключ -i означает интерфейс, т.е. eth0, eth1 и т.д.
У вас эта переменная ($INET_IP) содержит ip адресс
Если внимательно посмотреть на ваши правила то можно найти такие строки:
$IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 22 -j DROP
$IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 22 -j DROP

что говорит о том, что одно из первых правил в цепочке INPUT отбрасывает все пакеты предназначенные $INET_IP приходящие на 22 порт.
Сомнительно доброе привидение
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

leksstav писал(а):
18.07.2008 16:17
andreas90 писал(а):
02.07.2008 17:29
очень нужно.
Дано:
два компьютера, причем на машине (1) установлена slackware12.0. и две сетевые карты. На машине (1) ставлю шлюз. машина (2) - windows xp.
...


Попробуй конфиг такого содержания, только адресочки свои поставь,

Код:

#!/bin/sh INET_IP="ip что пров дал" INET_IFACE="eth1" INET_BROADCAST="БРОДКАСТ" LAN_IP="192.168.100.1" LAN_IP_RANGE="192.168.100.0/24" LAN_IFACE="eth0" LO_IFACE="lo" LO_IP="127.0.0.1" IPTABLES="/usr/sbin/iptables" ##/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 $IPTABLES -F $IPTABLES -X $IPTABLES -P INPUT DROP $IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -N bad_tcp_packets $IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets $IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m state --state NEW -j REJECT --reject-with tcp-reset $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:" $IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP $IPTABLES -A allowed -p TCP --syn -j ACCEPT $IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A allowed -p TCP -j DROP #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed #$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 53 -j ACCEPT #$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 53 -j ACCEPT ##$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 21 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 21 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 22 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 22 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 80 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 80 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 139 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 139 -j DROP $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 3306 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 3306 -j DROP #$IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 34324 -j ACCEPT #$IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 34324 -j ACCEPT $IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 445 -j DROP $IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 445 -j DROP $IPTABLES -A INPUT -p tcp -j bad_tcp_packets $IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i ppp0 -j ACCEPT $IPTABLES -A INPUT -p ALL -i ppp1 -j ACCEPT $IPTABLES -A INPUT -p ALL -i ppp2 -j ACCEPT $IPTABLES -A INPUT -p UDP -i $LAN_IFACE --dport 67 --sport 68 -j ACCEPT $IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets $IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT INPUT packet died: " $IPTABLES -A FORWARD -p tcp -j bad_tcp_packets #$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT #Trust $IPTABLES -A FORWARD -i $LAN_IFACE -s 192.168.100.99 -j ACCEPT #USER1 #Modems $IPTABLES -A FORWARD -s 192.168.0.2 -j ACCEPT # # # All other useful stuff # $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: " $IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets $IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT $IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: " # # NAT # $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -s 192.168.0.2 -j MASQUERADE $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP


Кто из знающих подскажет какую и куда строчку дописать чтобы можно было по выделенке из вне попасть ??
Пробывал такие строки

1)$IPTABLES -A INPUT -p tcp -s <удалённый IP> -i $INET_IP --dport 22 -j ACCEPT
2)$IPTABLES -A INPUT -p tcp -s <удалённый IP> --dport 22 -i $INET_IP -j ACCEPT

при команде iptables -L показывает
ACCEPT tcp -- <удалённый IP> anywhere tcp dpt:ssh #видно что открыт, а зайти немогу

Меня всегда удивляет, почему многие думают: "чем больше правил и цепочек в firewall, тем лучше он работает"?

Краткость сестра таланта! (с) великие классики!
Это относится и к firewall.

Особенно "порадовал" набор правил типа

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

$IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 21 -j DROP
$IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 21 -j DROP

$IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 22 -j DROP
$IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 22 -j DROP

$IPTABLES -A INPUT -p tcp -s 0/0 -d $INET_IP --dport 80 -j DROP
$IPTABLES -A INPUT -p udp -s 0/0 -d $INET_IP --dport 80 -j DROP

У вас же есть правило:

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

$IPTABLES -P INPUT DROP

Остается только разрешать необходимый трафик.

Кроме всего прочего, запрещать udp на 22 и 80 порты - это вообще нонсенс. Там такой транспорт не используется!

Вот ссылка на мой блог, где есть возможность скачать материалы по дистанционному курсу по Linux. Там есть такая фраза: Предварительный результат вы можете скачать тут. Этот результат весит 5М, но там кроме прочего хлама есть рассказ про firewall, почитайте, может поможет. (это не вычитанный материал и в нем могут быть различные ошибки)
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
andreas90
Сообщения: 158
ОС: Bluewhite64 12.2

Re: шлюз на slackware12.0

Сообщение andreas90 »

Ладно, с iptables более-менее ясно. Шлюз работает как надо, но появилась другая проблема. Дело в том, что на шлюзе под управлением Slackware появились задержки пакетов (подключал без шлюза, задержек не было), если с каждой машины локальной сети пинговать к примеру ya.ru то из для 100 пакетов 5 теряются. Я даже не знаю где копать. Так как на форуме телепатов нет, то прилагаю мои рабочие настройки
eth0 81.*.*.* mask 255.255.255.192 gateway 81.*.*.3 - смотрит в интернет
eth1 192.168.0.1 mask 255.255.255.0 - локальная сеть.
Таблица маршрутизации:
Destination Gateway Genmask Flags MSS Window irtt Iface
81.*.*.0 0.0.0.0 255.255.255.192 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 81.*.*.3 0.0.0.0 UG 0 0 0 eth0

iptables выглядит вот как
IPTABLES="/usr/sbin/iptables"
#default policy
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
# end of default policy

$IPTABLES -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j SNAT --to-source 81.*.*.*

ifconfig:
th0 Link encap:Ethernet HWaddr 00:80:48:48:F4:C0
inet addr:81.*.* Bcast:81.*.*.* Mask:255.255.255.192
inet6 addr: fe80::280:48ff:fe48:f4c0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12776 errors:0 dropped:0 overruns:0 frame:0
TX packets:7310 errors:23 dropped:0 overruns:0 carrier:46
collisions:71 txqueuelen:1000
RX bytes:2815206 (2.6 MiB) TX bytes:1207063 (1.1 MiB)
Interrupt:11 Base address:0xd400

eth1 Link encap:Ethernet HWaddr 00:1A:92:90:F5:39
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21a:92ff:fe90:f539/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7791 errors:0 dropped:0 overruns:0 frame:0
TX packets:7143 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1334007 (1.2 MiB) TX bytes:2419279 (2.3 MiB)
Interrupt:7

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:76 (76.0 b) TX bytes:76 (76.0 b)
сетевая карта eth1 инициализировалась ядром, но фактически не работала, пришлось добавлять в rc.inet1 строчки
ifconfig eth0 down
ifconfig eth1 down
ifconfig eth1 up
ifconfig eth0 up
после этого eth1 работает
кроме того, в таблице маршрутизации не было пути к шлюзу провайдера 81.*.*.3, пришлось добавлять route add ( через rc.local)
в rc.local находится вот что
/etc/rc.d/rc.firewall start - iptables
/etc/rc.d/rc.route start - добавление статического маршрута к шлюзу провайдера 81.*.*.3
/usr/sbin/dhcpd start eth1 - это dhcpd для LAN
что мне сделать, где искать чтобы задержек не было?
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

$IPTABLES -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j SNAT --to-source 81.*.*.*

Это что за бред? Сделай так

$IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 81.*.*.*
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
andreas90
Сообщения: 158
ОС: Bluewhite64 12.2

Re: шлюз на slackware12.0

Сообщение andreas90 »

BigKAA писал(а):
07.08.2008 22:26
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j SNAT --to-source 81.*.*.*

Это что за бред? Сделай так

$IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 81.*.*.*

Уважаемый BigKAA, еше такой вопрос. В настоящий момент я просматриваю скрипты для Iptables на opennet.ru. Вот, к примеру есть такие строчки
#
# Accept the packets we actually want to forward
#

$IPTABLES -A FORWARD -p tcp --dport 21 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 80 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 110 -i $LAN_IFACE -j ACCEPT

мне вот что непонятно: почему нет строчек
#
# Accept the packets we actually want to forward
#

$IPTABLES -A FORWARD -p tcp --sport 21 -o$INET_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -o$INET_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 110 -o $INET_IFACE -j ACCEPT

ведь траффик идет в обоих направлениях. Иначе получается, что пакеты, которые входят в $LAN_IFACE и имеют порт назначения 21,80,110 пропускаем, а исходящие как же?
Просьба дать исчерпывающий и аргументированный ответ.
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
Спасибо сказали:
Аватара пользователя
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !

Re: шлюз на slackware12.0

Сообщение (asper »

andreas90
Зачем так заморачиваться ?
RELATED,ESTABLISHED в FORWARD-е принимаем и все дела.
Сомнительно доброе привидение
Спасибо сказали:
Аватара пользователя
andreas90
Сообщения: 158
ОС: Bluewhite64 12.2

Re: шлюз на slackware12.0

Сообщение andreas90 »

(asper писал(а):
13.08.2008 15:52
andreas90
Зачем так заморачиваться ?
RELATED,ESTABLISHED в FORWARD-е принимаем и все дела.

А этого достаточно с точки зрения безопасности?
Хорошо, тогда ко всем такой вопрос. Предположим, нужно разрешить просмотр web-страниц по http
Я добавляю в rc.firewall следующие строки:
$IPTABLES -A FORWARD -p tcp --dport 80 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 80 -s 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -s 192.168.0.0/24 -j ACCEPT
Вопрос: все ли я правильно сделал, нет ли чего лишнего?
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

andreas90 писал(а):
13.08.2008 15:46
BigKAA писал(а):
07.08.2008 22:26
$IPTABLES -t nat -A POSTROUTING -s 192.168.0.1/24 -o eth0 -j SNAT --to-source 81.*.*.*

Это что за бред? Сделай так

$IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 81.*.*.*

Уважаемый BigKAA, еше такой вопрос. В настоящий момент я просматриваю скрипты для Iptables на opennet.ru. Вот, к примеру есть такие строчки
#
# Accept the packets we actually want to forward
#

$IPTABLES -A FORWARD -p tcp --dport 21 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 80 -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 110 -i $LAN_IFACE -j ACCEPT

мне вот что непонятно: почему нет строчек
#
# Accept the packets we actually want to forward
#

$IPTABLES -A FORWARD -p tcp --sport 21 -o$INET_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -o$INET_IFACE -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 110 -o $INET_IFACE -j ACCEPT

ведь траффик идет в обоих направлениях. Иначе получается, что пакеты, которые входят в $LAN_IFACE и имеют порт назначения 21,80,110 пропускаем, а исходящие как же?
Просьба дать исчерпывающий и аргументированный ответ.


Долго объяснять :( почитайте это. Про модуль state.

Сорри, это черновик. Чуствую, что придется его закончить и выложить у себя на wiki.
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

Уфф, сделал первую часть дистанционного курса по Linux. Прогнал тестовый курс на живом неангажированном пользователе. Отдыхаю. Материал, показанный выше - это как раз типа часть учебника к курсу.
Спадет жара, сяду писать продолжение, а то сейчас мозги совсем поплавленные :(

Чувствую надо будет еще один сервер арендовать под обучающие виртуалки.
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

andreas90 писал(а):
13.08.2008 16:03
(asper писал(а):
13.08.2008 15:52
andreas90
Зачем так заморачиваться ?
RELATED,ESTABLISHED в FORWARD-е принимаем и все дела.

А этого достаточно с точки зрения безопасности?
Хорошо, тогда ко всем такой вопрос. Предположим, нужно разрешить просмотр web-страниц по http
Я добавляю в rc.firewall следующие строки:
$IPTABLES -A FORWARD -p tcp --dport 80 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -d 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --dport 80 -s 192.168.0.0/24 -j ACCEPT
$IPTABLES -A FORWARD -p tcp --sport 80 -s 192.168.0.0/24 -j ACCEPT
Вопрос: все ли я правильно сделал, нет ли чего лишнего?


Судя по написанным правилам могу сделать два вывода, или один вывод но в двух частях:

1. Либо вы не понимаете как работает стек TCP/IP (что скорее всего)
2. Либо вы не прочитали то, что я вам порекомендовал прочитать.

Ну плиз, почитайте то что лежит по сслыке, и сразу поймете, что написали полную ерунду :(
Кстати, заодно изучите основы TCP/IP, тоже очень надо, иначе не поймете что в firewall писать надо.

Простите, ничего личного, но TCP/IP знать надо, не поверхностно а именно знать, иначе firewall не осилить.
Еще раз сорри.
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
TuLiss
Сообщения: 1611
Статус: 01100
ОС: Gentoo,Ubuntu,MacOS X

Re: шлюз на slackware12.0

Сообщение TuLiss »

От себя скажу, что надо продолжить проект по iptables для начинающих (скрипт который лежит в раздели проекты форума)
Только его отладить надо, так как там так же багов хватает.
На вопрос зачем ? для наглядности/примеров и понимание определенных вещей в iptables.

Надо будет этим занятся,а то я уже что то сам забыл iptables :)

P.S Артур планируется ли курс по Snort ? Хотя я наверно тебя в IM быстрее спрошу :)
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

TuLiss писал(а):
15.08.2008 01:55
Надо будет этим занятся,а то я уже что то сам забыл iptables :)

P.S Артур планируется ли курс по Snort ? Хотя я наверно тебя в IM быстрее спрошу :)

Могу прислать тебе мои заметки по iptables, там же есть пример скрипта, который сразу можно использовать и в дальнейшем просто расширять.

Про снорт планирую, но он у меня в самом конце списка. В данный момент почти готово продолжение курса, посвященное системе электронной почты sendmail+cyrus imap+clam av+dspam+dnsbl (optional +graylist) в результе готовый почтовый сервак. Жара спадет, оформлю красиво и добавляю в курс.
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !

Re: шлюз на slackware12.0

Сообщение (asper »

Ребята тут такая каша с этой темой получилась, даже не знаю как её разделить (
Может вы это, продолжите беседу где-нибудь в разговорах, а то нехорошо получается: в чужой теме начинать личную переписку.
Или ув. BigKAA откройте свою тему в проектах с ссылкой на ваш черновик, там можно будет и немного по теме поболтать, как вам идея ?
Сомнительно доброе привидение
Спасибо сказали:
Аватара пользователя
BigKAA
Сообщения: 292

Re: шлюз на slackware12.0

Сообщение BigKAA »

(asper писал(а):
15.08.2008 16:35
Ребята тут такая каша с этой темой получилась, даже не знаю как её разделить (
Может вы это, продолжите беседу где-нибудь в разговорах, а то нехорошо получается: в чужой теме начинать личную переписку.
Или ув. BigKAA откройте свою тему в проектах с ссылкой на ваш черновик, там можно будет и немного по теме поболтать, как вам идея ?

Легко :) открывайте в проектах. С удовольствием отвечу на вопросы и выслушаю замечания.
Удачи, Артур Крюков
--
CentOS 5.x | Fedora Core
Home милый wikihome и мой блог
Спасибо сказали:
Аватара пользователя
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !

Re: шлюз на slackware12.0

Сообщение (asper »

BigKAA
Я не могу за вас, от вашего имени открыть тему, придётся вам это сделать.
Сомнительно доброе привидение
Спасибо сказали: