ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
From: "Michael A. Kangin" <mak@rsmu.ru>
To: ALT Linux Sisyphus discussions <sisyphus@lists.altlinux.org>
Subject: Re: [sisyphus] Q: Куда сейчас идейно правильно вписывать маскарадинг?
Date: Wed, 6 Aug 2008 10:51:18 +0400
Message-ID: <200808061051.18761.mak@rsmu.ru> (raw)
In-Reply-To: <6c7be88d0808052253s22ca8582i67baf7dc72e05202@mail.gmail.com>

В сообщении от Wednesday 06 August 2008 09:53:42 Dmitriy Kruglikov написал(а):

> > А у меня на всех рутерах традиционно файрвол поднимается скриптом. Ибо
> > очень
> > много правил генерится в циклах, с подстановками переменных...
>
> Однажды, когда я начал заблуждаться в своих скриптах с кучей подстановок,
> я взял огромный рашпиль, маны, трубку-воскурку для манов и задумался ...
> Как оказалось, масса правил заменилась одной строкой...
> Например, вместо обработки каждого нового PPP соединения
> я написал правила типа
> -i ppp+ и далее по тексту ...

Да, где можно, это используется, но когда для каждого ppp требуется 
индивидуальный подход? Реальный случай: в зависимости от юзера, стучащегося в 
VPN, давать доступ на разные машины в сети и порты.

> И все работало точно так же, но управлялось гораздо проще ...
> Опять же, много правил можно убрать, если применить
> -p icmp -m state --state RELATED,ESTABLISHED

Без этого ни куда, да...

> для уже открытых соединений ...
> И быстрее, и проще для глаз и мозга ...

Избранное: 
--------------
[ -r $ADDR_FILE ] && {
        grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}[[:space:]]*([0-9a-fA-F]{2}\:){5}
[0-9a-fA-F]{2}" $ADDR_FILE | \
        tr -s ';\t' '# \n' | cut -f1 -d '#' | cut -f1,2,4 -d " " |grep " 1$" | 
\
        while read ALLOWED_ADDR
            do
                ALLOWED_ADDR_MAC=`echo $ALLOWED_ADDR | cut -f2 -d' '`
                ALLOWED_ADDR_IP=`echo $ALLOWED_ADDR | cut -f1 -d' '`
                ${IPT} -I check_allowed -s $ALLOWED_ADDR_IP -m 
mac --mac-source $ALLOWED_ADDR_MAC -j RETURN
                ${IPT} -t mangle -A traf_out -s $ALLOWED_ADDR_IP -j RETURN
                ${IPT} -t mangle -A traf_in -d $ALLOWED_ADDR_IP -j RETURN
            done
} || {
        echo "WARNING! Can't read ${ADDR_FILE}, access closed for all."
}
---------------------
читаем пару IP/MAC из файла клиентов, и, у кого разрешён выход в интернет, 
ставим правило соответствия IP/MAC и правила для подсчета трафика на mangle


-------------------
for IFACE in $INT_IFACE; do
        for NET in `get_subnets_by_iface $IFACE`; do
                ${IPT} -A check_addr -i $IFACE -s $NET -j RETURN
                for EIFACE in $EXT_IFACE; do
                        ${IPT} -A check_addr -i $EIFACE -s $NET -j mism_addr
                done
        done
done
-----------------
Боремся со спуфингом;

ну и банальное
for NET in $OUR_NETS; do
        ${IPT} -A tcp_packets -p tcp -s $NET --dport 22 -j ACCEPT
done


Как это реализовать на уровне статической таблицы правил? Абсолютно 
непереносимой к тому же между рутерами.

-- 
wbr, Michael A. Kangin

      parent reply	other threads:[~2008-08-06  6:51 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-05 14:26 Michael Pozhidaev
2008-08-05 14:34 ` Michael Shigorin
2008-08-05 15:51   ` Michael Pozhidaev
2008-08-05 15:55     ` Alexey Shabalin
2008-08-05 16:22       ` Michael Pozhidaev
2008-08-05 18:29     ` Michael Shigorin
2008-08-06  5:22       ` Michael A. Kangin
2008-08-06  6:51           ` Michael A. Kangin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200808061051.18761.mak@rsmu.ru \
    --to=mak@rsmu.ru \
    --cc=sisyphus@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Sisyphus discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/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 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
		sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
	public-inbox-index sisyphus

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sisyphus


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git