1.1, zuborg (?), 16:29, 11/07/2008 [ответить]
| +/– |
cat /etc/block1.txt | xargs -n 1 ipfw table 1 add
| |
1.2, mummy (?), 18:41, 11/07/2008 [ответить]
| +/– |
Брехня, быстрее так - создаём файл /tmp/block1.txt
table 1 add 10.10.1.1
table 1 add 10.10.1.2
table 1 add 192.168.0.0/16
Затем сначала делается проверка синтаксиса, если правилно, то применяется
/sbin/ipfw -qn /tmp/block1.txt && /sbin/ipfw -q /tmp/block1.txt
| |
1.4, ыыыыыыыыыыыыыы (?), 23:05, 12/07/2008 [ответить]
| +/– |
to mummy:
если список ip не только для ipfw используецца? то зачем плодить "table 1 add "
| |
|
2.5, mummy (?), 11:24, 13/07/2008 [^] [^^] [^^^] [ответить]
| +/– |
Быстрее создать временный файл и один раз вызвать /sbin/ipfw на 1000 адресов, чем 1000 раз вызывать /sbin/ipfw для каждого адреса. Ну почти в 1000 раз быстрее ;)
# Создаем временный файл /tmp/block1.txt на основе /etc/block1.txt
echo "table 1 flush" > /tmp/block1.txt
cat /etc/block1.txt | awk '{print "table 1 add",$1}' >> /tmp/block1.txt
# Проверяем правильность и тогда применяем правила из файла
/sbin/ipfw -qn /tmp/block1.txt && /sbin/ipfw -q /tmp/block1.txt
# Удаляем временный файл
rm -f /tmp/block1.txt
| |
|
3.6, zyx (ok), 02:10, 14/07/2008 [^] [^^] [^^^] [ответить]
| +/– |
Молодец!
Хорошо но не отлично - можно обойтись без временных файлов:
echo "table 1 list" | ipfw /dev/stdin
| |
|
|
1.7, dm (ok), 16:26, 17/07/2008 [ответить]
| +/– |
а есть еще и такая тема в pf, очень удобно:
block quick from <badHosts>
pass in log quick on em0 proto tcp from any to <myIN> port 443 flags S/SA keep state \
(source-track rule, max-src-conn-rate 100/10, overload <badHosts> flush global)
---man pf.conf---
max-src-conn-rate <number> / <seconds>
Limit the rate of new connections over a time interval. The con-
nection rate is an approximation calculated as a moving average.
| |
1.8, Дмитрий Ю. Карпов (?), 22:35, 22/07/2008 [ответить]
| +/– |
${fwcmd} /dev/stdin <<_END_OF_RULESET_
# Разрешить общение через LoopBack (внутренний интерфейс) с любыми IP-номерами
add 100 pass all from any to any via lo0
# Запретить использование "127.*.*.*" как sourece и как destignation.
# Т.к. выше было разрешено общение через LoopBack, этот запрет фактически относится только ко внешним интерфейсам (к реальным сетевым картам, DialUp/VPN-соединениям и т.п.).
add 200 deny all from any to 127.0.0.0/8
add 210 deny all from 127.0.0.0/8 to any
...
# Очистить таблицу.
table 1 flush
# Создать таблицу для доступа наружу по тому же списку, что и Web-доступ:
# взять программой awk файл /etc/block1.txt;
# убрать из него комментарии: sub(/[;#].*/,"",$0);
# если первый аргумент похож на IP-номер (цифры, разделённые точками)
# то преобразовать его в команду "добавить в первую таблицу";
# всё это попадает в контекст выполнения, т.к. заключено в ''.
'awk '{ sub(/[;#].*/,"",$0); if ( $1 ~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ ) print "table 1 add " $1 }' /etc/block1.txt'
...
# все оставшееся разрешено/запрещено
add 65000 allow/deny all from any to any
_END_OF_RULESET_
| |
1.9, Дмитрий Ю. Карпов (?), 22:36, 22/07/2008 [ответить]
| +/– |
А я делаю так (комментарии для тех, кому надо будет разбираться без меня):
${fwcmd} /dev/stdin <<_END_OF_RULESET_
# Разрешить общение через LoopBack (внутренний интерфейс) с любыми IP-номерами
add 100 pass all from any to any via lo0
# Запретить использование "127.*.*.*" как sourece и как destignation.
# Т.к. выше было разрешено общение через LoopBack, этот запрет фактически относится только ко внешним интерфейсам (к реальным сетевым картам, DialUp/VPN-соединениям и т.п.).
add 200 deny all from any to 127.0.0.0/8
add 210 deny all from 127.0.0.0/8 to any
...
# Очистить таблицу.
table 1 flush
# Создать таблицу для доступа наружу по тому же списку, что и Web-доступ:
# взять программой awk файл /etc/block1.txt;
# убрать из него комментарии: sub(/[;#].*/,"",$0);
# если первый аргумент похож на IP-номер (цифры, разделённые точками)
# то преобразовать его в команду "добавить в первую таблицу";
# всё это попадает в контекст выполнения, т.к. заключено в ''.
'awk '{ sub(/[;#].*/,"",$0); if ( $1 ~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/ ) print "table 1 add " $1 }' /etc/block1.txt'
...
# все оставшееся разрешено/запрещено
add 65000 allow/deny all from any to any
_END_OF_RULESET_
| |
1.10, Murz (?), 16:31, 14/08/2008 [ответить]
| +/– |
А как можно задать таблицу с кучей подсетей в iptables? Для каждой подсети своё правило?
| |
|