Comments 67
Решение интересное, но зависит от конкретной ситуации. К примеру, по поводу:
И с какого перепугу ко мне стучаться ssh брутфорсеры из Штатов?


Я по роду деятельности могу находиться в разных уголках света. И в любом из них мне может потребоваться безопасный доступ к своему серверу по SSH. Этот вопрос решается применением port knocking, срабатывание которого добавляет правило в iptables на разрешение доступа с этого IP. А в 12 ночи карета превращается в тыкву правило удаляется. Дабы не загромождать список правил всеми местами где побывал. да и вообще, для пущей безопасности.

Хотя, я так полагаю, мой подход вполне можно подружить с Вашим, и сосуществовать они должны оба мирно
Спасибо за комментарий!
port knocking — штука отличная, только я вот лентяй.
И конечно, можем дружить :)
Просто правила ssh и port knocking — выносим наверх iptables, а потом баним по континентам все остальное.

UFO landed and left these words here
А потом скажут, что железный занавес начали поднимать сами граждане, государство лишь поддержало их инициативу.
Прочитав заголовок, решил, что это инициатива Роскомнадзора.
Опускать. В том смысле, в котором Вы хотели использовать это понятие, занавес опускают :-)
UFO landed and left these words here
Рекомендую (да и не только я) IPSet для большого количества правил. Работать будет быстрее.
Спасибо за коммент.
А на сколько это оправданно в случае бана по /8?
Там же правил iptables с гулькин нос получается.
В вашем случае, наверное, проще действительно использовать iptables, т.к. 63 правила — ничто, но когда речь идет, например, о 500 правилах, то тут лучше сразу IPSet использовать.
А там написано, что оно только для 2.4 и 2.6? 3+ пролетают или тоже поддерживаются?
Поддерживается. Все современные ядра поддерживаются. Это официальный модуль, в ядре.
Кстати, бенчмарки производительности по сравнению с iptables имеются? Интересно было бы посмотреть.
63 правила только для фильтрации географической. А ведь однозначно есть ещё какие-нибудь.

Хотя, при INPUT трафике в личных целях особо разницы нет, это ж не FORWARD на провайдерском маршрутизаторе :)
Похоже, это решение каждый изобретает самостоятельно и заново :)

Когда на Флибусту шел очередной DDOS, заклинание «щит третьего мира» было всегда первой мерой противодействия. Только в списке еще + Ближний Восток (Иран, Аравия, Ирак, Палестина...). Количество ботов сбивало процентов на 95.
UFO landed and left these words here
Очень плохой метод. Очевидные примеры из недавнего, крупная Китайская компания офису в США назначила IP из своего APNIC диапазона, немецкий провайдер выдает IP из RIPE блока клиентам в Африке. Тот же гугл практически везде по миру пользуется блоком из ARIN диапазона независимо где находится датацентр. Что делать в случае CDN и anycast случаев — вообще не понятно. Про биржи IP уже даже на хабре писали. Вобщем — не делайте так.
Интересно, что так можно ненароком забанить нужные регионы.

Мы делали подобный бан на периметре нашей сети. И вот при бане Америки ушла в бан 192.0.0.0/8 подсеть. Посмотрели в IANA — да, есть такая проблема. Разрешили из частной сети ходить куда нужно. Но возникла проблемы с удаленной компанией. Оказалось что у ребят адрес из диапазона 192.162.0.0/16 который передали RIPE и кусок из него оказался в Украине.

Так что с данной схемой поосторожнее. Делайте так только если у вас просто нет другого выхода, или если вы знаете на 100% что из этого выйдет.
Расскажу вам один интересный случай из своей практики. Один достаточно известный русский хостер забанил внешний трафик к своему DNS. Сервера компании, в которой я прежде работал, располагались в Германии. В результате ряд достаточно крупных клиентов просто не получил важную информацию. Это нарушило работу нескольких филиалов компании, компания понесла убытки. Боритесь с роботами, а не блокируйте вслепую.
Имхо, результат не стоит потраченного времени

Сервисы как были открыты, так и остаются, пусть для меньшей части интернета, но все же огромной если считать хосты.
Вероятность взлома меньше, да, но не кардинально на порядки, а всего лишь в разы.
Ну, если результат был получен за 10-15 минут, принёс в жизнь немного фана, ничем особо не мешает — то почему бы и нет?
Акцент в статье на то, что:
После этого в логах наступило умиротворение и спокойствие.


Т.е. человек хотел добиться уменьшения записи в логах, чтоб глаза не отвелкало от действительно важных вещей. И, в какой-то степени, малой кровью ему это удалось. Он нигде не пишет, что этот мини скрипт делает его unhackable на 100%
UFO landed and left these words here
Если есть желание открыть для всего мира 80-ый порт и вебсервер.
То откройте, никто не мешает.

UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
Открыл статью и первая мысль — " Неужели правительство России забанило весь мир"
прочитал и отлегло.
У нас все не спокойно, но хаотичное создание законов о интернете в России меня просто поражает.
А таки все гениальное просто.
Попробовал из Англии разместить объявление на Авито, старшее поколение попросило. Ничего не вышло именно из-за IP-адреса, написал поддержке, та сделала строгое каменное лицо и сказала «не положено».
Если уж и дискриминировать по географическому принципу, то лучше капчу добавьте, а не просто блокируйте.
Использовал подобное решение для университетского хостинга веб-страничек, ограничив доступ к ftp-серверу для заливки файлов сетями одного города. Работало :) Лог fail2ban был пуст.
Как-то это противоречит принципам интернета и сетевой нейтральности. Про ssh я вообще не понимаю проблемы, сделайте аутентификацию по ключам и все боты будут с носом. В от DDOS вы так всё равно не защититесь.
UFO landed and left these words here
но когда стоит вопрос о безопасности, наверное, можно пересмотреть свои взгляды на правила.


Ох, как много в этой фразе! Она в себе содержит причины и следствия всех тех проблем, которые безопасность должна как-бы решать. И всегда любой, наделенный хоть каплей власти, обязательно водружает эту фразу себе на знамена :-)

А по сути, подход-то неверный. Надо не запрещать африки, а разрешать не-африки, ведь стоит вопрос о безопасности.
UFO landed and left these words here
Понадобилось одному нашему клиенту как-то отправить письмо в одну европейскую компанию. А там админ оказался такой же придурок и забанил просто все русские адреса, типа, «там одни спаммеры». И всё, не смогли отправить почту с корпоративного сервера, который расположен в датацентре в Москве и естественно оказался забанен.

Видите ли, какое дело… Вы всех американцев объявили брутфорсерами, а всех жителей Юго-Восточной Азии — спаммерами. А это даже не ошибка… Это ещё хуже, чем использовать спамхаус.
Один главный инженер у провайдера как-то заявил, что почта у него принимается только с .ru
Так и не смог ему с gmail.com отправить письмо.
Вот я поэтому думаю, что надо законодательно запретить такие статьи, как эта. То есть, запретить запрещать.
Мне кажется наиболее целесообразно использовать активную IDS
Очень давно была такая история: админ ICQ не разбираясь забанил одну /8 сеть, и так у половины наших провайдеров перестала работать аська.
Плохие вы даете советы, никуда не годные. В то время как почти каждое государство подумывает, как бы ему отгородить себе кусочек собственного интернета, вы огораживаетесь сами, добровольно и с песней ;)
Тот самый скрипт который будет сорить между собой людей…
Пример: Россия «Dont like» Украину и наоборот…
Оружие в бой!

Я немножко закритикую вас с вашего разрешения и с уважением, просто мысли в слух…
А вдруг кто то пользуеться анонимайзером или просто хочет из АОЕ зайти к вам на сайт во время курорта… Сами ограничиваете свой контингент!
У автора скорее всего не сайт, а сервер почты и sip поэтому веб не пострадает.
Хех… У нас на форуме наблюдалась не раз большая рассылка спама с адресов, которые, судя по whois, были закреплены за одним из штатовских дата-центров. Когда начал разгребать логи, пришёл к выводу, что адреса, принадлежащие дата-центрам, надо пускать по ограниченному белому списку, остальные банить: это был не единственный дата-центр, на котором серверы рассылают спам.
Для форума не лучший вариант т.к. в дата-центре могут купить VPS и заходить через прокси.
Думаю, ещё и от форума зависит. У нас форум посещают, как правило, по рабочим делам, и анонимизацию нормальные посетители не используют. В любом случае блокируем только подсети, с которых шёл спам (адреса видны в логах). Часто находили по нескольку серверов в подсети. Если считать чисто по IP-адресам, то их мой самописный антиспам-автобан для vBulletin за примерно два месяца своей работы набрал и заблочил с помощью iptables порядка 4000 адресов, некоторые из которых сильно выделяются из массы остальных объёмами заблокированного трафика. В основном эти выделяющиеся адреса были именно в пространстве дата-центров. На одном из серверов-спамеров удалось выявить винду (предположительно Server 2012). Может, взломан был.
Я пошёл другим путём. Меня доставали только ssh-сканеры. В один прекрасный день, я собрал за сутки все IP с которых сканили, проанализировал двухстрочным скриптом об geoip и обнаружил, что почти все сканеры из Китая. Нормализовал сетки и получил всего несколько сеток с которых действительно идёт активная деятельность:
правила IPTABLES
-A BLCHINA -s 58.192.0.0/11 -j DROP
-A BLCHINA -s 60.160.0.0/11 -j DROP
-A BLCHINA -s 61.128.0.0/10 -j DROP
-A BLCHINA -s 115.224.0.0/12 -j DROP
-A BLCHINA -s 117.21.0.0/16 -j DROP
-A BLCHINA -s 117.40.0.0/14 -j DROP
-A BLCHINA -s 189.128.0.0/9 -j DROP
-A BLCHINA -s 218.0.0.0/11 -j DROP
-A BLCHINA -s 222.168.0.0/13 -j DROP
-A BLCHINA -s 222.176.0.0/12 -j DROP
-A BLCHINA -s 222.192.0.0/11 -j DROP
После этого тривиального действия сканеров стало приходить в десятки раз меньше и на 15-20 сканирований в сутки я забиваю, их быстро режет port knocking.
UFO landed and left these words here
Автор явно не имел в виду публичный сервис. Если круг людей которые стучатся в SSH и забирают почту с сервера никак не могут оказаться на другом континенте, то почему нет?
С чисто технической точки зрения данный вопрос лучше решать через xtables и ipset.
Пример как делать andrey.org/iptables-geoip-centos/

А проблему брута ssh решают denyhosts / fail2ban, без всяких банов сетей
fail2ban это анализ логов, а кому будет приятно вычищать постоянно пополняемые логи из-за одних и тех же парней? Затем и банят подсети регионов/дата-центров/учебных учреждений, чтобы не засоряло.
а теперь другой вопрос, как теперь можно удалить страны например Северную америку из правил iptables?))
Как вариант с помощью geoip добавить США в список разрешенных стран и вынести это правило наверх iptables.

И кстати, в данной статье указан скрипт.
Северной Америки там и так нет, по умолчанию.

BAN_CONT='AFRINIC|APNIC|LACNIC'

Здесь банится только Африка, Азия-Океания и Латинская Америка.

Если решите забанить Северную Америку, то добавьте |ARIN

так вот и добавил с горяча)))
а кстати про то что можно добавить в список разрешённых и наверх правил добавить не подумал,
спасибо
написал скрипт unban.sh чтоб разблокировать Северную Америку
#!/bin/sh

#
BAN_CONT='ARIN'

#

list=`curl -s 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 -D INPUT -s $ip

done

только перед выполнением делаем следующеее
service iptables stop
Only those users with full accounts are able to leave comments. Log in, please.