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
prev 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