![](http://habrastorage.org/getpro/habr/post_images/74e/ffb/4e1/74effb4e1ed5a2941ebacb099437b4bf.png)
В одно прекрасное утро я просматривал логи и задал себе ряд вопросов:
- А жду ли я письма из Юго-Восточной Азии? ( когда смотрел логи почты )
- И с какого перепугу ко мне стучаться ssh брутфорсеры из Штатов?
- Мне надо терпеть сетевые сканеры из Австралии?
- Кто мне звонит из Африки? (когда разглядывал логи asterisk)
- С какой стати к моему POP-серверу обращаются из Латинской Америки?
Почему бы не забанить по континентам? Оставив только нужный континент(ы)?
Получился вот такой маленький скрипт, который банит полмира:
#!/bin/sh # AFRINIC - Африка # APNIC - Азия, Океания и Австралия # ARIN - Северная Америка # LACNIC - Центральная и Южная Америка # RIPE NCC - Европпа и Ближний Восток # Подставьте континенты, которые надо забанить с разделителем | BAN_CONT='AFRINIC|APNIC|LACNIC' # Получаем список Ipv4 адресов с официального сайта iana.org и приводим к каноническому виду list=`curl -s http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.csv \ | egrep $BAN_CONT \ | cut -d "," -f 1 \ | sed 's!/8!.0.0.0/8!g' ` # Баним for ip in $list; do iptables -I INPUT -s $ip -j DROP # Здесь можно и порт указать и протокол. Все по вкусу. done
Результат. Список забаненых сетей
0 0 DROP all — * * 223.0.0.0/8 0.0.0.0/0
2 80 DROP all — * * 222.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 221.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 220.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 219.0.0.0/8 0.0.0.0/0
1 40 DROP all — * * 218.0.0.0/8 0.0.0.0/0
2 120 DROP all — * * 211.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 210.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 203.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 202.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 201.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 200.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 197.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 196.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 191.0.0.0/8 0.0.0.0/0
2 150 DROP all — * * 190.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 189.0.0.0/8 0.0.0.0/0
3 144 DROP all — * * 187.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 186.0.0.0/8 0.0.0.0/0
1 68 DROP all — * * 183.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 182.0.0.0/8 0.0.0.0/0
3 180 DROP all — * * 181.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 180.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 179.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 177.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 175.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 171.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 163.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 154.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 153.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 150.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 133.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 126.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 125.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 124.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 123.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 122.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 121.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 120.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 119.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 118.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 117.0.0.0/8 0.0.0.0/0
1 40 DROP all — * * 116.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 115.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 114.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 113.0.0.0/8 0.0.0.0/0
3 180 DROP all — * * 112.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 111.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 110.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 106.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 105.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 103.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 102.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 101.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 49.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 48.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 35.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 34.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 33.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 30.0.0.0/8 0.0.0.0/0
36 2160 DROP all — * * 23.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 12.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 1.0.0.0/8 0.0.0.0/0
2 80 DROP all — * * 222.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 221.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 220.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 219.0.0.0/8 0.0.0.0/0
1 40 DROP all — * * 218.0.0.0/8 0.0.0.0/0
2 120 DROP all — * * 211.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 210.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 203.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 202.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 201.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 200.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 197.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 196.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 191.0.0.0/8 0.0.0.0/0
2 150 DROP all — * * 190.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 189.0.0.0/8 0.0.0.0/0
3 144 DROP all — * * 187.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 186.0.0.0/8 0.0.0.0/0
1 68 DROP all — * * 183.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 182.0.0.0/8 0.0.0.0/0
3 180 DROP all — * * 181.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 180.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 179.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 177.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 175.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 171.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 163.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 154.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 153.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 150.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 133.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 126.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 125.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 124.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 123.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 122.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 121.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 120.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 119.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 118.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 117.0.0.0/8 0.0.0.0/0
1 40 DROP all — * * 116.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 115.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 114.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 113.0.0.0/8 0.0.0.0/0
3 180 DROP all — * * 112.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 111.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 110.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 106.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 105.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 103.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 102.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 101.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 49.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 48.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 35.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 34.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 33.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 30.0.0.0/8 0.0.0.0/0
36 2160 DROP all — * * 23.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 12.0.0.0/8 0.0.0.0/0
0 0 DROP all — * * 1.0.0.0/8 0.0.0.0/0
После этого в логах наступило умиротворение и спокойствие.
А для остального есть fail2ban.
Такого рода баны по континентам приносят дополнительную безопасность, уменьшают трафик, уменьшают размер логов
и при правильном использовании облегчают ситуацию при ддос атаке.
P.S.
Бан по континентам — лезвие обоюдоострое.
Например, забанили ARIN (Северную Америку) и если gmail забирает у вас почту с POP сервера, то после бана забирать уже не сможет и т.д.
Будьте внимательны!
P.S.2
Почему я не использую geoip?
- Попадал в конфузные ситуации, когда IP адрес добавился к России, а в базе geoip он еще не обновился
- Его надо везде устанавливать, а если серверов много, то можно запарится этим заниматься
ссылка на оригинал статьи http://habrahabr.ru/post/214055/
Добавить комментарий