ALT Linux Community general discussions
 help / color / mirror / Atom feed
* [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