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