да, я только что так и сделал, iptables работает в соответствие с моими правилами
шлюз на slackware12.0 (настройка)
Модератор: Модераторы разделов
-
andreas90
- Сообщения: 158
- ОС: Bluewhite64 12.2
Re: шлюз на slackware12.0
да, я только что так и сделал, iptables работает в соответствие с моими правилами
"Ubuntu" is an ancient African word, that means "I can't configure Slackware"
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
Ок, машин 250 и они все в разных сетях? Опять такие же правила писать будете?
И Вы не ответили на вопрос, что будет с пакетами машин, чей source IP не попадает в указанный Вами список?
P.S. Кстати /255.255.255.0 - это не 50 машин
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
По поводу state. смотрите.
Для начала обнулил все счётчики. Картина следующая:
Потом залез на свой сервак, посмотреть конференцию. Результат теперь такой:
Обратите внимание на порядок правил и на каком правиле больше всего пакетов сработало? Теперь делайте выводы где надо писать правила 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. Пока я все это тут писал, стало вот так:
P.P.P.S. Если хотите узнать больше, приходите ко мне на курсы, я вам еще кое чего интересного расскажу. В том числе какие стратегические ошибки были допущены в том примере настройки firwall, который тут все дружно обсуждают
Для начала обнулил все счётчики. Картина следующая:
Код: Выделить всё
# 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:443P.P.P.S. Если хотите узнать больше, приходите ко мне на курсы, я вам еще кое чего интересного расскажу. В том числе какие стратегические ошибки были допущены в том примере настройки firwall, который тут все дружно обсуждают
-
landgraf
- Сообщения: 2142
- Статус: *бунту ненавистник
- ОС: linux
Re: шлюз на slackware12.0
BigKAA
какие курсы? я тоже хочу
какие курсы? я тоже хочу
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
Тут типа рекламу давать нельзя
Хотя, внизу, в подписи, тоже есть ссылки
-
leksstav
- Сообщения: 331
Re: шлюз на slackware12.0
Попробуй конфиг такого содержания, только адресочки свои поставь,
Код:
#!/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
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
leksstav писал(а): ↑18.07.2008 16:17
Попробуй конфиг такого содержания, только адресочки свои поставь,
Код:
#!/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, почитайте, может поможет. (это не вычитанный материал и в нем могут быть различные ошибки)
-
andreas90
- Сообщения: 158
- ОС: Bluewhite64 12.2
Re: шлюз на slackware12.0
Ладно, с 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
что мне сделать, где искать чтобы задержек не было?
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
$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.*.*.*
Это что за бред? Сделай так
$IPTABLES -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 81.*.*.*
-
andreas90
- Сообщения: 158
- ОС: Bluewhite64 12.2
Re: шлюз на slackware12.0
Уважаемый 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
andreas90
Зачем так заморачиваться ?
RELATED,ESTABLISHED в FORWARD-е принимаем и все дела.
Зачем так заморачиваться ?
RELATED,ESTABLISHED в FORWARD-е принимаем и все дела.
Сомнительно доброе привидение
-
andreas90
- Сообщения: 158
- ОС: Bluewhite64 12.2
Re: шлюз на slackware12.0
А этого достаточно с точки зрения безопасности?
Хорошо, тогда ко всем такой вопрос. Предположим, нужно разрешить просмотр 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
andreas90 писал(а): ↑13.08.2008 15:46
Уважаемый 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 пропускаем, а исходящие как же?
Просьба дать исчерпывающий и аргументированный ответ.
Долго объяснять
Сорри, это черновик. Чуствую, что придется его закончить и выложить у себя на wiki.
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
Уфф, сделал первую часть дистанционного курса по Linux. Прогнал тестовый курс на живом неангажированном пользователе. Отдыхаю. Материал, показанный выше - это как раз типа часть учебника к курсу.
Спадет жара, сяду писать продолжение, а то сейчас мозги совсем поплавленные
Чувствую надо будет еще один сервер арендовать под обучающие виртуалки.
Спадет жара, сяду писать продолжение, а то сейчас мозги совсем поплавленные
Чувствую надо будет еще один сервер арендовать под обучающие виртуалки.
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
andreas90 писал(а): ↑13.08.2008 16:03
А этого достаточно с точки зрения безопасности?
Хорошо, тогда ко всем такой вопрос. Предположим, нужно разрешить просмотр 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 не осилить.
Еще раз сорри.
-
TuLiss
- Сообщения: 1611
- Статус: 01100
- ОС: Gentoo,Ubuntu,MacOS X
Re: шлюз на slackware12.0
От себя скажу, что надо продолжить проект по iptables для начинающих (скрипт который лежит в раздели проекты форума)
Только его отладить надо, так как там так же багов хватает.
На вопрос зачем ? для наглядности/примеров и понимание определенных вещей в iptables.
Надо будет этим занятся,а то я уже что то сам забыл iptables
P.S Артур планируется ли курс по Snort ? Хотя я наверно тебя в IM быстрее спрошу
Только его отладить надо, так как там так же багов хватает.
На вопрос зачем ? для наглядности/примеров и понимание определенных вещей в iptables.
Надо будет этим занятся,а то я уже что то сам забыл iptables
P.S Артур планируется ли курс по Snort ? Хотя я наверно тебя в IM быстрее спрошу
Чтение man'нов в слух ещЁ никому не помогало!...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
kernel 4.2
chmod -x `which chmod`
War, war never changes...
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
Могу прислать тебе мои заметки по iptables, там же есть пример скрипта, который сразу можно использовать и в дальнейшем просто расширять.
Про снорт планирую, но он у меня в самом конце списка. В данный момент почти готово продолжение курса, посвященное системе электронной почты sendmail+cyrus imap+clam av+dspam+dnsbl (optional +graylist) в результе готовый почтовый сервак. Жара спадет, оформлю красиво и добавляю в курс.
-
(asper
- Бывший модератор
- Сообщения: 1661
- Статус: nano vi sed awk !
- ОС: Работает как часы !
Re: шлюз на slackware12.0
Ребята тут такая каша с этой темой получилась, даже не знаю как её разделить (
Может вы это, продолжите беседу где-нибудь в разговорах, а то нехорошо получается: в чужой теме начинать личную переписку.
Или ув. BigKAA откройте свою тему в проектах с ссылкой на ваш черновик, там можно будет и немного по теме поболтать, как вам идея ?
Может вы это, продолжите беседу где-нибудь в разговорах, а то нехорошо получается: в чужой теме начинать личную переписку.
Или ув. BigKAA откройте свою тему в проектах с ссылкой на ваш черновик, там можно будет и немного по теме поболтать, как вам идея ?
Сомнительно доброе привидение
-
BigKAA
- Сообщения: 292
Re: шлюз на slackware12.0
(asper писал(а): ↑15.08.2008 16:35Ребята тут такая каша с этой темой получилась, даже не знаю как её разделить (
Может вы это, продолжите беседу где-нибудь в разговорах, а то нехорошо получается: в чужой теме начинать личную переписку.
Или ув. BigKAA откройте свою тему в проектах с ссылкой на ваш черновик, там можно будет и немного по теме поболтать, как вам идея ?
Легко
-
(asper
- Бывший модератор
- Сообщения: 1661
- Статус: nano vi sed awk !
- ОС: Работает как часы !
Re: шлюз на slackware12.0
BigKAA
Я не могу за вас, от вашего имени открыть тему, придётся вам это сделать.
Я не могу за вас, от вашего имени открыть тему, придётся вам это сделать.
Сомнительно доброе привидение