LINUX.ORG.RU
ФорумAdmin

Просветите по nftables dynamic blacklist

 ,


2

4

Привет специалистам по фаерволам (т.е. всем присутствующим)!

Допустим, есть сервер с очень ограниченным набором открытых портов. Само собой в закрытые порты постоянно дОлбятся дятлы. Не очень мешают, но они же могут и в открытые начать стучать после закрытых. Просветите, пожалуйста, имеет-ли право на жизнь такой вариант:
при первой же попытке коннекта к закрытому порту засовывать ip в блеклист на пару минут, например так:

table inet filter {
  set blackhole {
    type ipv4_addr
    size 65536
    flags timeout
  }

  chain input {
    ip saddr @blackhole counter drop

    ... тут полезное accept ...

    add @blackhole { ip saddr timeout 2m } counter drop
  }
}

Какие подводные камни у такого вараинта?

1. Обычно долбят по вполне конкретной причине и перебор портов там вряд ли будет. Во всяком случае я такого не замечал.
2. Всё зависит от сервиса. Но 2 минуты имхо это вообще не о чем. Например на почтарях, особо настойчивых я отправляю в пожизненный бан.

anc ★★★★★
()
Ответ на: комментарий от anc

Целенаправленности не видно, есть регулярная рандом-долбёжка. Сначала отсеять тех, кто лезет не зная броду порта.
А с теми, кто интересуется работающими сервисами разбираться отдельно.

Хотелось понять разумность такого способа изначального удаления совсем лишних прихожан.

Brillenschlange
() автор топика

Просветите, пожалуйста, имеет-ли право на жизнь такой вариант:

Можешь использовать fail2ban, оно умеет работать с nftables и есть правила на все случаи жизни. Минус - оно на питоне.

Meyer ★★★★★
()
Ответ на: комментарий от Brillenschlange

Хотелось понять разумность такого способа изначального удаления совсем лишних прихожан.

Вполне разумно, зачем вам отвечать всяким ботам?

anc ★★★★★
()
Ответ на: комментарий от Meyer

Это следующая стадия, для работающих сервисов. Не хотелось бы питон (эх…) заставлять первичную фильтрацию недругов делать.

Brillenschlange
() автор топика
Ответ на: комментарий от Brillenschlange

Не хотелось бы питон (эх…) заставлять первичную фильтрацию недругов делать.

Оно просто парсит логи с помощью регулярок на предмет соответствия правилу, вытаскивает из лога IP адрес (если это возможно) и банит средствами iptables/nftables. Короче, можно и самому на баше что-нибудь наколхозить.

Meyer ★★★★★
()
Ответ на: комментарий от Meyer

Логично. Но чтобы логи парсить эти логи уже должны быть, а заставлять nftsbles сначала эти логи писать, а потом их питоном парсить не хочется. В случае с «фаервол сначала» получается логов меньше.

@anc

Кстати, в основном последнее время с 445 порта начинают долбиться. Это теперь только мода такая пошла на проверку MS дыр или я отстал от трендов?

Brillenschlange
() автор топика
Ответ на: комментарий от Brillenschlange

Fail2ban смотрит логи сервисов, а не nftables / iptables.

Т.е. если у тебя вдруг открыт ssh порт и fail2ban видит ошибки авторизации в auth.log много раз с определенного ip, то добавляет этот ip в бан.

С почтой maillog смотрит и так далее.

anonymous
()
Ответ на: комментарий от anc

Ну может и правильно. А я вот последил.
В итоге блеснул, как обычно, искромётной мыслью и не только свой nftables задействовал, а ещё и провайдерский фаервол заставил блочить то, что в основном лезло.

Brillenschlange
() автор топика

Чот я не понимаю сакрального смысла бросить тех, кто стучится в закрытые порты. Ты хочешь это делать что бы что?

CaveRat ★★
()
Ответ на: комментарий от CaveRat

Пример: 22 закрыт, ssh не там. Проверил 22 - получил час отдыха. А мне логов меньше писать и проверять потом. Мелочь, а приятно.
Или так неправильно?

Brillenschlange
() автор топика
Ответ на: комментарий от Brillenschlange

имхо норм. только по запаре сам не забудь что порт нестандартный))

Anoxemian ★★★★★
()

Про фэйл2бан тебе уже сказали. Под беспокоящие порты подложи порт кнокинг. Далее, анализируй сетевую активность. Смотри логи. В крайнее время стало модно син флудом бить. Крути соответствующие параметры в сисктл. На упреждение исесн.

anonymous
()
Ответ на: комментарий от anonymous

Если файл2бан для тебя религиозно неприемлем из-за пистона (а в пистоне для такой задачи ничо плохого то и нет, вполне норм), то есть ссшгард на православной сишечке. Банить оно умеет не только по ссш порту, несмотря на название.

Только не пиши таких правил в файрволе. Ты замучаешься мониторить и при необходимости из бана нужные пипи доставать. Все написано до тебя.

anonymous
()
Ответ на: комментарий от Brillenschlange

Я смысла не вижу. Тот, кто ломанулся на закрытый порт и так получил отлуп, никакого негативного воздействия от нанести не мог. Я бы даже не факт, что стал это логировать. Ну, или есть очень хочется - с совсем небольшим ретеншеном.

логов меньше писать и проверять потом

Стесняюсь спросить, у тебя сколько хостов на мониторинге?

CaveRat ★★
()
Ответ на: комментарий от CaveRat

Тот, кто ломанулся на закрытый порт и так получил отлуп, никакого негативного воздействия от нанести не мог.

Как минимум он нейтрализован на ближайшее время от того, чтобы мусорить в auth.log, зачем лишний раз тратить услилия высокопроизводительнейшего питонного fail2ban на заведомо ненужное.

Стесняюсь спросить, у тебя сколько хостов на мониторинге

Хостов мало и у меня это непрофильное занятие. Но все хосты мне дороги и я, хоть в таком и стыдно теперь признаваться, в некотором роде байтодрочер по всем направлениям. Вот и экономлю на логах.

Brillenschlange
() автор топика
Ответ на: комментарий от Brillenschlange

байтодрочер

Вот это каминг аут!

Здравствуйте лоровцы, меня зовут /юзернейм/ и я байтодрочер.

Привет /юзернейм/ что тебя беспокоит и как ты дошел до этого?

anonymous
()
Ответ на: комментарий от Brillenschlange

Как минимум он нейтрализован на ближайшее время от того, чтобы мусорить в auth.log, зачем лишний раз тратить услилия высокопроизводительнейшего питонного fail2ban на заведомо ненужное.

Простите, шта? У тебя там сервисы на тапочках работают?

Хостов мало и у меня это непрофильное занятие. Но все хосты мне дороги и я, хоть в таком и стыдно теперь признаваться, в некотором роде байтодрочер по всем направлениям. Вот и экономлю на логах.

Так и логично было бы собирать только те логи, которые имеют какую-то ценность. Ну, кто-то сканит порты. Это происходит примерно постоянно, если сервисы торчат в интернеты.

Если уж так хочется экономить - прикрути оповещения к fail2ban и установи лог ретеншен на сколько там тебе нужно дней, что бы все проверить. Уверен, что так логов будет меньше

CaveRat ★★
()
Ответ на: комментарий от CaveRat

Простите, шта? У тебя там сервисы на тапочках работают?

Прощаю! Попробовал один закрытый порт - значит заведомо виновен и ушёл в бан на час (два) на любой другой (открытый) порт тоже.
В результате - космического уровня экономия питонного времени fail2bin. Не так разве?

Brillenschlange
() автор топика
25 ноября 2021 г.

Как по мне, отличная идея. Вот только здесь я не вижу fail2ban как замену первоначальной идеи, а лишь как дополнение.

То есть основная идея - если кто то долбится на изначально закрытый порт - блочить его на час/два/сутки.

А вот если кто то начинает перебирать пароли на открытом порту, то тут вступает в бой fail2ban и блочит его на час/два/сутки/вечно.

Отличная связка получается.

Только маленькая проблема. Если сам при подключении портом ошибся, то остаешься в пролете на час/два/сутки, и ждешь, пока пройдет бан. А если случилось что то авральное, а ты ошибся портом? Тогда едешь в офис… А если офис в другом городе? Короче, нюансы есть. Или необходима однозначная система распознавания свой/чужой, и банить только чужих.

ivanlex ★★★★★
()
Ответ на: комментарий от ivanlex

За два месяца использования подтверждаю полезный результат, логи стали значительно чище.
Проблема непредвиденной самоблокировки решилась безлимитным доступом с trusted ip, но наверное можно и что-то ещё нафантазировать, например ssh на ещё один какой-нибудь нестадартный порт, который проверяется до блокировок.

{
  ...
  # prevent blackhole
  ip  saddr $ip4_trust accept
  ...
  # blackhole
  ip  saddr @blackhole4 counter set update ip  saddr timeout 30m @blackhole4 drop
  ...
  # blackhole
  add @blackhole4 { ip  saddr timeout 10m } counter drop
}
Brillenschlange
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.