Блокировка ip из файла
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
Блокировка ip из файла
Всем привет, требуется помощь в вопросе. Есть список ip который дополняется и хочется что бы при перезагрузке ipfw или шлюза в ipfw сразу добавлялось правило что бы из файла эти ip блочились.
Нашел в инете этот скрипт но он не отрабатывает ((((
PS Freebsd 7.4 + ipfw
ipfw table 1 flush
cat /etc/block1.txt | while read ip; do
# echo ipfw table 1 add $ip 1
ipfw table 1 add $ip 1
done
Привязка таблицы к правилу блокировки:
ipfw add 100 deny ip from "table(1)" to any via em1
Нашел в инете этот скрипт но он не отрабатывает ((((
PS Freebsd 7.4 + ipfw
ipfw table 1 flush
cat /etc/block1.txt | while read ip; do
# echo ipfw table 1 add $ip 1
ipfw table 1 add $ip 1
done
Привязка таблицы к правилу блокировки:
ipfw add 100 deny ip from "table(1)" to any via em1
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Блокировка ip из файла
Код: Выделить всё
cat /etc/ipfw/table_1.txt | { while read ip;
do
/sbin/ipfw table 1 add $ip;
done;
}
cat /etc/ipfw/table_2.txt | { while read ip;
do
/sbin/ipfw table 2 add $ip;
done;
}
cat /etc/ipfw/table_3.txt | { while read ip;
do
/sbin/ipfw table 3 add $ip;
done;
}
- Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Блокировка ip из файла
Код: Выделить всё
srv0# cat /root/scripts/ipfw/ipfw.sh
#!/bin/sh
# path
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
# бинариник файрволла
FwCMD="/sbin/ipfw -q"
# директория где живём
basedir="/root/scripts/ipfw"
# файлы локальных таблиц
basedir_local="/root/scripts/db"
# tmp file
tmp="/tmp/$$"
# файлы таблиц
table_list="`ls $basedir | grep table`"
table_list_local="`ls $basedir_local | grep table`"
# список портов
port_list="`ls $basedir | grep table | awk -F '.' '{print $2}'`"
port_list_local="`ls $basedir_local | grep table | awk -F '.' '{print $2}'`"
#echo $table_list
# отключаем файрволл
#${FwCMD} disable firewall
# скидываем правила
${FwCMD} flush
# разрешаем ходить самому на себя
${FwCMD} add allow all from me to me
# Запрещаем заблокированным хостам указанные порты - глобально
for port in $port_list
do
# строим временный файл для загрузки парвил
echo -n > $tmp.$port.global
for ip in `cat $basedir/table.$port.txt | grep -v ^# | grep -v ^\$ | sort | uniq`
do
echo "table $port add $ip" >> $tmp.$port.global
done
# очищаем таблицу
${FwCMD} table $port flush
# добавляем правило в файрволл
${FwCMD} add deny ip from "table($port)" to me $port
# заполняем таблицу из временного файла
${FwCMD} $tmp.$port.global &
done
# Запрещаем заблокированным хостам указанные порты - локально
for port in $port_list_local
do
# добавляем правило в файрволл - если такой таблицы нет локально
if test -f $basedir/table.$port.txt
then
# есть
else
${FwCMD} table $port flush
${FwCMD} add deny ip from "table($port)" to me $port
fi
# строим временный файл для загрузки прaвил
echo -n > $tmp.$port.local
for ip in `cat $basedir_local/table.$port.txt | grep -v ^# | grep -v ^\$ | sort | uniq`
do
echo "table $port add $ip" >> $tmp.$port.local
done
# заполняем таблицу из временного файла
${FwCMD} $tmp.$port.local &
done
# Запрет X-сканирования:
${FwCMD} add reject log tcp from any to any tcpflags fin, syn, rst, psh, ack, urg
# Запрет N-сканирования:
${FwCMD} add reject log tcp from any to any tcpflags !fin, !syn, !rst, !psh, !ack, !urg
# Запрет FIN-сканирования:
${FwCMD} add reject log tcp from any to any not established tcpflags fin
# Защита от спуфинга
${FwCMD} add deny log ip from any to any not verrevpath in
# прикрываем memcached снаружи
${FwCMD} add deny tcp from not me to me 11211
${FwCMD} add deny udp from not me to me 11211
# temporary - because change IP
#if [ `hostname -s` = "srv7" ]
#then
# ${FwCMD} add fwd 91.227.16.17,80 tcp from any to 77.73.29.17 80
#fi
#if [ `hostname -s` = "srv9" ]
#then
# ${FwCMD} add fwd 91.227.16.19,80 tcp from any to 77.73.29.19 80
#fi
#if [ `hostname -s` = "srv2" ]
#then
# ${FwCMD} add fwd 91.227.16.12,80 tcp from any to 77.73.29.12 80
#fi
#if [ `hostname -s` = "srv8" ]
#then
# ${FwCMD} add fwd 91.227.16.18,80 tcp from any to 77.73.29.18 80
#fi
#if [ `hostname -s` = "srv1" ]
#then
# ${FwCMD} add fwd 91.227.16.11,80 tcp from any to 77.73.29.11 80
#fi
# Ограничиваем кол-во подключений с одного IP
${FwCMD} add allow tcp from any to me 21 setup limit src-addr 8
${FwCMD} add allow tcp from any to me 80 setup limit src-addr 32
${FwCMD} add allow tcp from any to me 443 setup limit src-addr 16
if [ "`hostname -s`" != "srv0" ]
then
# limit all ports
${FwCMD} add allow tcp from any to me setup limit src-addr 32
# ограничиваем число одновременных соединений наружу с сервера на 25 порт других
# серверов, для всех кроме юзера mailnull
${FwCMD} add allow log logamount 100000 tcp from me to not me 25 not uid mailnull setup limit src-addr 1
else
# unlimit connects to mysql
${FwCMD} add allow tcp from any to me not 3306 setup limit src-addr 32
${FwCMD} add allow tcp from any to me 3306 setup limit src-addr 50
fi
# added by lissyara 2009-10-04 in 01:44
${FwCMD} add allow tcp from any to any
${FwCMD} add allow udp from any to any
${FwCMD} add allow all from any to any
# включаем файрволл
${FwCMD} enable firewall
/sbin/sysctl net.inet.ip.fw.enable=1
# удаляем врменный файл
sleep 5 && rm -f $tmp.* &
# удаляем кору, если она есть
rm -f ipfw.core
было бы колоссально удобно....
а так - подумываю что надо писать файлс соответсвиями, если понадобится номер порта больше 127
Убей их всех! Бог потом рассортирует...
-
- проходил мимо
Re: Блокировка ip из файла
Bayerische
что то не катит твой вариант, я добавляю ip потом запускаю скрипт но с того ip я все равно могу пинговать свой сервак что считаю скрипт не отработал
что то не катит твой вариант, я добавляю ip потом запускаю скрипт но с того ip я все равно могу пинговать свой сервак что считаю скрипт не отработал
-
- проходил мимо
Re: Блокировка ip из файла
Ау, люди, неужели все так плохо????





-
- капитан
- Сообщения: 1820
- Зарегистрирован: 2010-12-25 20:41:50
- Откуда: Хлебная столица
Re: Блокировка ip из файла
Вован
Отрывок скрипта, что я привёл, лишь заполняет таблицу нужными значениями из файла. По поводу правил фаервола вопрос должен быть совсем в другом ключе, я его даже не касался.
Отрывок скрипта, что я привёл, лишь заполняет таблицу нужными значениями из файла. По поводу правил фаервола вопрос должен быть совсем в другом ключе, я его даже не касался.
-
- проходил мимо
Re: Блокировка ip из файла
Bayerische
Расскажи пожалуйста подробно что нужно сделать. Потому как я еще пока нуб в этих вопросах и только всему учусь ((((
Расскажи пожалуйста подробно что нужно сделать. Потому как я еще пока нуб в этих вопросах и только всему учусь ((((
- Alex Keda
- стреляли...
- Сообщения: 35426
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
Re: Блокировка ip из файла
изучение, чтоит начать с хандбука, мануалов, изучения чужих скриптов
а ждать пока вам всё разжуют - можно бесконечно
а ждать пока вам всё разжуют - можно бесконечно
Убей их всех! Бог потом рассортирует...