* [Comm] iptables: покритикуйте правила
@ 2004-05-13 9:19 Eugene Prokopiev
2004-05-13 11:01 ` Alexey Morsov
0 siblings, 1 reply; 5+ messages in thread
From: Eugene Prokopiev @ 2004-05-13 9:19 UTC (permalink / raw)
To: community
Здравствуйте!
Покритикуйте, пожалуйста, следующий набор правил iptables на предмет
возможных проблем:
#!/bin/sh
# Переменные
EXTERNAL_DEVICE="eth0"
EXTERNAL_ADDRESS=some_ip
INTERNAL_DEVICE="eth1"
LOCAL_DEVICE="lo"
IPTABLES="/sbin/iptables"
# Сбрасываем все в 0
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
$IPTABLES -t nat -X
# Правила по умолчанию
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# Биллинг
$IPTABLES -A FORWARD -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50
--ulog-prefix forward
$IPTABLES -A INPUT -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50
--ulog-prefix input
$IPTABLES -A OUTPUT -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 50
--ulog-prefix output
# Цепочки - цели всех правил. То, что отвергается, пишется в лог
$IPTABLES -N inet_input_allowed
$IPTABLES -A inet_input_allowed -j ACCEPT
$IPTABLES -N inet_input_rejected
$IPTABLES -A inet_input_rejected -m limit --limit 3/minute --limit-burst
6 -j LOG --log-prefix "INET INPUT REJECTED: "
$IPTABLES -A inet_input_rejected -j DROP
$IPTABLES -N forward_allowed
$IPTABLES -A forward_allowed -j ACCEPT
$IPTABLES -N forward_rejected
$IPTABLES -A forward_rejected -m limit --limit 3/minute --limit-burst 6
-j LOG --log-prefix "FORWARD REJECTED: "
$IPTABLES -A forward_rejected -j DROP
# То, что открыто для входящих пакетов. Разрешены все TCP-пакеты, не
пытающиеся открыть новое соединение (кроме ssh), все ICMP и некоторые
UDP (для dns и time)
$IPTABLES -A INPUT ! -i $EXTERNAL_DEVICE -j inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP ! --syn -m state --state
NEW -j inet_input_rejected
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP --syn --dport 22 -j
inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p TCP -m state --state
ESTABLISHED,RELATED -j inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --dport 53 -j
inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --sport 53 -j
inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --dport 123 -j
inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p UDP --sport 123 -j
inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -p ICMP -j inet_input_allowed
$IPTABLES -A INPUT -i $EXTERNAL_DEVICE -j inet_input_rejected
# Перебираем всех, кому разрешен NAT
for i in `/opt/scripts/make_ldap_filter.pl allowNat`
do
# Для них разрешаем все исходящие пакеты и все входящие, кроме
# ТCP-пакетов, пытающихся открыть новое соединение.
# Еще запрещаем ICMP request
$IPTABLES -t nat -A POSTROUTING -s $i -j SNAT --to-source
$EXTERNAL_ADDRESS
$IPTABLES -A FORWARD -s $i -j forward_allowed
$IPTABLES -A FORWARD -p TCP --syn -d $i -j forward_rejected
$IPTABLES -A FORWARD -p ICMP --icmp-type 8 -d $i -j forward_rejected
$IPTABLES -A FORWARD -d $i -j forward_allowed
#$IPTABLES -A FORWARD -j forward_rejected
done
# Перенаправляем всех, кого надо, на squid
for i in `/opt/scripts/make_ldap_filter.pl forceProxy`
do
$IPTABLES -t nat -A PREROUTING -s $i -p TCP --dport 80 -j REDIRECT
--to-port 3128
done
Нет ли каких-нибудь глупых ошибок?
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] iptables: покритикуйте правила
2004-05-13 9:19 [Comm] iptables: покритикуйте правила Eugene Prokopiev
@ 2004-05-13 11:01 ` Alexey Morsov
2004-05-14 4:20 ` Eugene Prokopiev
0 siblings, 1 reply; 5+ messages in thread
From: Alexey Morsov @ 2004-05-13 11:01 UTC (permalink / raw)
To: community
Eugene Prokopiev wrote:
> # Перенаправляем всех, кого надо, на squid
> for i in `/opt/scripts/make_ldap_filter.pl forceProxy`
> do
> $IPTABLES -t nat -A PREROUTING -s $i -p TCP --dport 80 -j REDIRECT
> --to-port 3128
> done
http only, т.е. все ftp, https, icq, irc_шки и потоковое
мультимедиа идут мимо прокси...
Если устраивает - тады ой...
>
> Нет ли каких-нибудь глупых ошибок?
>
Глупых не вижу --- но от LOG в глазах темнеет... чем будете
рулить статистику?
--
Всего наилучшего,
Системный Администратор ЗАО "ИК "РИКОМ-ТРАСТ"
Алексей Морсов
http://www.ricom.ru
http://www.fondmarket.ru
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] iptables: покритикуйте правила
2004-05-13 11:01 ` Alexey Morsov
@ 2004-05-14 4:20 ` Eugene Prokopiev
2004-05-14 5:53 ` Alexey Morsov
0 siblings, 1 reply; 5+ messages in thread
From: Eugene Prokopiev @ 2004-05-14 4:20 UTC (permalink / raw)
To: community
Alexey Morsov пишет:
>
> Eugene Prokopiev wrote:
>
>> # Перенаправляем всех, кого надо, на squid
>> for i in `/opt/scripts/make_ldap_filter.pl forceProxy`
>> do
>> $IPTABLES -t nat -A PREROUTING -s $i -p TCP --dport 80 -j REDIRECT
>> --to-port 3128
>> done
>
> http only, т.е. все ftp, https, icq, irc_шки и потоковое мультимедиа
> идут мимо прокси...
> Если устраивает - тады ой...
буду добавлять
>>
>> Нет ли каких-нибудь глупых ошибок?
>>
>
> Глупых не вижу --- но от LOG в глазах темнеет... чем будете рулить
> статистику?
для ULOG собрал ulog-acctd - аналог сизифовского ulogd, который умеет
делать только одно дело, но лучше чем ulogd
LOG - скорее всего обрежу потом еще сильнее, может когда загляну в
/var/log/messages да почитаю.
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] iptables: покритикуйте правила
2004-05-14 4:20 ` Eugene Prokopiev
@ 2004-05-14 5:53 ` Alexey Morsov
2004-05-18 4:55 ` Eugene Prokopiev
0 siblings, 1 reply; 5+ messages in thread
From: Alexey Morsov @ 2004-05-14 5:53 UTC (permalink / raw)
To: community
Eugene Prokopiev wrote:
> Alexey Morsov пишет:
>
>>
>> Eugene Prokopiev wrote:
>>
>>> # Перенаправляем всех, кого надо, на squid
>>> for i in `/opt/scripts/make_ldap_filter.pl forceProxy`
>>> do
>>> $IPTABLES -t nat -A PREROUTING -s $i -p TCP --dport 80 -j
>>> REDIRECT --to-port 3128
>>> done
>>
>>
>> http only, т.е. все ftp, https, icq, irc_шки и потоковое мультимедиа
>> идут мимо прокси...
>> Если устраивает - тады ой...
>
>
> буду добавлять
Чего? transparent proxy у squid-а только для http протокола... но
может icq и загонишь, а вот ftp однозначно нет...
А что - так много машинок в офисе?
>
>>>
>>> Нет ли каких-нибудь глупых ошибок?
>>>
>>
>> Глупых не вижу --- но от LOG в глазах темнеет... чем будете рулить
>> статистику?
>
>
> для ULOG собрал ulog-acctd - аналог сизифовского ulogd, который умеет
> делать только одно дело, но лучше чем ulogd
>
> LOG - скорее всего обрежу потом еще сильнее, может когда загляну в
> /var/log/messages да почитаю.
>
ИМХО все эти LOG нужны (хороши и обязательны) в целях отладки - а
в эксплуатации они ИМХО не оч. удобны... я лично просто сделал
набор цепочек типа TCP_IN, TCP_OUT и загоняю соответствующие
пакеты туда... а с них данных потом закидываю в mysql
(ежеминутно)... очень симпатишно получаеться и точно... а
прогулки юзеров по логам прокси наблюдаем...
--
Всего наилучшего,
Системный Администратор ЗАО "ИК "РИКОМ-ТРАСТ"
Алексей Морсов
http://www.ricom.ru
http://www.fondmarket.ru
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] iptables: покритикуйте правила
2004-05-14 5:53 ` Alexey Morsov
@ 2004-05-18 4:55 ` Eugene Prokopiev
0 siblings, 0 replies; 5+ messages in thread
From: Eugene Prokopiev @ 2004-05-18 4:55 UTC (permalink / raw)
To: community, samurai
Alexey Morsov пишет:
>
> Eugene Prokopiev wrote:
>
>> Alexey Morsov пишет:
>>
>>>
>>> Eugene Prokopiev wrote:
>>>
>>>> # Перенаправляем всех, кого надо, на squid
>>>> for i in `/opt/scripts/make_ldap_filter.pl forceProxy`
>>>> do
>>>> $IPTABLES -t nat -A PREROUTING -s $i -p TCP --dport 80 -j
>>>> REDIRECT --to-port 3128
>>>> done
>>>
>>>
>>>
>>> http only, т.е. все ftp, https, icq, irc_шки и потоковое мультимедиа
>>> идут мимо прокси...
>>> Если устраивает - тады ой...
>>
>>
>>
>> буду добавлять
>
> Чего? transparent proxy у squid-а только для http протокола... но может
> icq и загонишь, а вот ftp однозначно нет...
> А что - так много машинок в офисе?
А чего тогда дразнишься? http only, http only ... :)
Машинок не много, около 30, так что обойдемся transparent proxy для
http, раз остальные принудительно не загнать. Хотя поэкспериментировать
можно.
>>>>
>>>> Нет ли каких-нибудь глупых ошибок?
>>>>
>>>
>>> Глупых не вижу --- но от LOG в глазах темнеет... чем будете рулить
>>> статистику?
>>
>>
>>
>> для ULOG собрал ulog-acctd - аналог сизифовского ulogd, который умеет
>> делать только одно дело, но лучше чем ulogd
>>
>> LOG - скорее всего обрежу потом еще сильнее, может когда загляну в
>> /var/log/messages да почитаю.
>>
> ИМХО все эти LOG нужны (хороши и обязательны) в целях отладки - а в
> эксплуатации они ИМХО не оч. удобны... я лично просто сделал набор
> цепочек типа TCP_IN, TCP_OUT и загоняю соответствующие пакеты туда... а
> с них данных потом закидываю в mysql (ежеминутно)... очень симпатишно
> получаеться и точно... а прогулки юзеров по логам прокси наблюдаем...
Ты случаем LOG и ULOG не путаешь? Последний именно для учета трафика в
первую очередь и предназначен. Его основное преимущество перед
счетчиками на цепочках iptables (для меня) - возможность разделить мух
(правила firewall) и котлеты (биллинг). Ну и как следствие упростить
написание и сопровождение скриптов и т.д.
Я вплоть до недавнего времени использовал твой подход, но уже достало.
Есть, например, в одном офисе еще необходимость учета не только по
пользователям, но и по сервисам (мыло, веб, dns) - стартовый скрипт
iptables выглядит жутко, правила учета и разрешения/запрещения друг на
друга накладываются. Меняя одно, приходиться перепроверять, не сломал ли
ты другое.
Решил начать новую жизнь :) Вот и написал сюда, может я и в firewall по
привычке неправильно правила пишу :)
--
С уважением, Прокопьев Евгений
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-05-18 4:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-13 9:19 [Comm] iptables: покритикуйте правила Eugene Prokopiev
2004-05-13 11:01 ` Alexey Morsov
2004-05-14 4:20 ` Eugene Prokopiev
2004-05-14 5:53 ` Alexey Morsov
2004-05-18 4:55 ` Eugene Prokopiev
ALT Linux Community general discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
public-inbox-index community
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.community
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git