Биллинговая система Nodeny
22 Ноября 2024, 23:13:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Защита сервера от перебора (брута) паролей ssh (NoDeny + sshguard-ipfw)  (Прочитано 11842 раз)
smallcms
NoDeny
Старожил
*

Карма: 64
Offline Offline

Сообщений: 279



Просмотр профиля WWW
« : 02 Марта 2010, 05:20:41 »

Здесь перешёл с модемного ната на бридж... Это какой-то ад рай... Франция, Китай... Все хотят хакнуть ssh. Решил защитить сервер с NoDeny, заодно описывая шаги. Получился мини-хауту.

Мы будем собирать sshguard-ipfw, т.к. это основное, на чём работает наш с Вами биллинг. Переходим в порт с sshguard-ipfw:
Код:
cd /usr/ports/security/sshguard-ipfw

Далее поясню следующий параметр. По-умолчанию sshguard-ipfw собирается с окном для блокирующих правил в диапазоне 55000-55050. Мы "немного" понизим его до начальных правил, в стандартном файрволе у нас есть правила, разрешающие логиниться по ssh. Вот они:
Код:
${f} add 50 allow tcp from any to me 22
${f} add 51 allow tcp from me 22 to any
Как мы видим они мешают нам, т.к. подпадают под выбранный ниже диапазон (40-90). Позже мы передвинем эти правила чуть ниже. Итак устанавливаем sshguard-ipfw с окном файрвола от 40 до 90 правила:
Код:
make CONFIGURE_ARGS="--prefix=/usr/local --with-firewall=ipfw --with-ipfw-rules-range=40-90" install clean

Теперь в файле /etc/syslog.conf раскомментируем следующую строку (её нам прописал пакет sshguard-ipfw при инсталляции где-то в начале файла):
Код:
auth.info;authpriv.info     |exec /usr/local/sbin/sshguard

Перезагружаем сислог:
Код:
/etc/rc.d/syslogd reload

Теперь подробнее о механизме блокировки. Механизм прост: запрещающие  правила должны быть перед разрешающими. Именно поэтому мы изменяем в rc.firewall следующие строки (это бывшие 50 и 51 правила):
Код:
${f} add 92 allow tcp from any to me 22
${f} add 93 allow tcp from me 22 to any

Далее применяем изменения в файрволе, перезагружая всё с ним связанное от биллинга:
Код:
/etc/rc.d/ipfw restart
/usr/local/etc/rc.d/noserver.sh restart
/usr/local/etc/rc.d/nol2auth.sh restart
/etc/rc.d/pf restart

Берём левый компьютер и пытаемся от болды несколько раз зайти по ssh на наш биллинговый сервер. Когда перестало спрашивать пароль или  авторизировать вообще, смотрим наше окно с блокировками:
Код:
ipfw list 40-90
Левый компьютер уже там, верно?

Дополнительная тонкая настройка под себя:
http://www.sshguard.net/docs/man/sshguard/
« Последнее редактирование: 02 Марта 2010, 05:24:39 от smallcms » Записан

VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #1 : 02 Марта 2010, 10:19:30 »

а не проще открить доступ в фаерволе кому вереш, или поменять порт sshd??
Записан
versus
Администратор
Спец
*****

Карма: 21
Offline Offline

Сообщений: 845


44306843
Просмотр профиля WWW Email
« Ответ #2 : 02 Марта 2010, 11:24:04 »

а не проще открить доступ в фаерволе кому вереш, или поменять порт sshd??

Не всегда айпи с которого админишь сервер фиксированный, например выехал на природу с 3g  и ноутом а там динамический, прийдется сначала на левый доверенный хост заходить, если есть....
Поменять порт тоже не всегда хорошее решение, но ничего против такого не имею.
Ну а лишняя защита пусть будет, почему бы и нет ?
Записан
VitalVas
NoDeny
Спец
*

Карма: 60
Offline Offline

Сообщений: 991



Просмотр профиля WWW
« Ответ #3 : 02 Марта 2010, 21:55:43 »

у меня всегда статический ір адрес, если нет, то делаю через впн
и всегда я меняю порт ссш

если уже на тот порт идет подбора паролей, то уже можна думать в сторону ограничения по ір или ставить ету програмулину
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #4 : 01 Апреля 2010, 20:03:24 »

вообще то можно красивее сделать

# bruteforce атаки на ssh 3 подключений за 30 секунд для нормального админа хватает ну разве что с будуна


pass in on $ext_if proto tcp from any to ($ext_if) port ssh flags S/SA keep state (max-src-conn-rate 3/30, overload <ssh-bruteforce> flush global)
block drop in quick on $ext_if from <ssh-bruteforce>

используя expiretable (есть в портах) очшисчаем в таблице запсиси кждые 10мин и выкидывает старее 1800сек (30мин)
в крон
*/10 * * * * /usr/local/sbin/expiretable -t 1800 ssh-bruteforce

аналогичено для других потов устанавливаем лимит сесий за время и занасим в свои таблицы таблиц

такая фишка и со спамао катит
Записан
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #5 : 29 Мая 2010, 12:56:04 »

по мне так, смена 22 порта тривиальное решение но не всегда спасает, лучше настроить сам ssh на количество неправильных набраных паролей 2 раза, а после этого давать гулять минут на 10, нехорошо админу, бруту ещё хуже)
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
Cell
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1407



Просмотр профиля
« Ответ #6 : 29 Мая 2010, 21:22:14 »

по мне так, смена 22 порта тривиальное решение но не всегда спасает, лучше настроить сам ssh на количество неправильных набраных паролей 2 раза, а после этого давать гулять минут на 10, нехорошо админу, бруту ещё хуже)
Все как бы так и есть, но реально, у кого-то есть рапорты о бруте на демоне, слушающем не стандартный порт?  У меня таких рапортов не было ни разу.
Записан
nops
NoDeny
Постоялец
*

Карма: 3
Offline Offline

Сообщений: 177


А ведь так и есть!!!!

316352175
Просмотр профиля WWW Email
« Ответ #7 : 31 Мая 2010, 05:18:38 »

А почему бы не отключить авторизацию по паролю? Сделать только по ключу и радуйся, пускай хоть за перебирают пароли))))) До сканчания века перебирать будут Смеющийся
Записан

Не надо говорить СПАСИБО! Для этого есть специально "Прибавить" к карме!!
podavan
NoDeny
Пользователь
*

Карма: 5
Offline Offline

Сообщений: 79


Quilibet fortunae suae faber


Просмотр профиля
« Ответ #8 : 31 Мая 2010, 21:22:12 »

Цитировать
А почему бы не отключить авторизацию по паролю? Сделать только по ключу и радуйся, пускай хоть за перебирают пароли
А например по простой причине, нужен удалённый доступ к машине, а под рукой только мобила..., конечно не проблема и в WM сертификаты запихнуть, но может возникнуть нестандартная ситуация, при которой с сертификатами можно потратить время, а оно иногда так дорого)
Цитировать
У меня таких рапортов не было ни разу
В силу тараканов в голове разного цвета и размера у каждого индивидуально, ряд задач большая часть выполняет как им хочется, лишь бы стабильно и устойчиво работала, по мне так каждый вариант имеет право на жизнь, чем лучше умеешь работать, тем и работай)
Записан

«Карма» – это как действие, так и то, что из него следует; это причина и следствие одновременно, потому что каждое действие порождает силу энергии, которая возвращается к нам в виде подобной силы. Карма предполагает действие сознательного выбора.
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #9 : 01 Июня 2010, 09:08:48 »

вооще в системах безопасности и защиты информации лучше быть параноиком и использоваять все и сразу , чем електриком которому все до лампочки.
у меня один раз был случай бутфорса на порт 1231 тут висел ссн.
Записан
Aivanzipper
NoDeny
Старожил
*

Карма: 62
Offline Offline

Сообщений: 387


206967443
Просмотр профиля
« Ответ #10 : 02 Июля 2010, 10:20:29 »

А я хочу порекомендовать решение намного интереснее чем sshguard-ipfw. Называется оно fail2ban. Чем интереснее? А тем, что настроить его можно не только на ссх, а на любое приложение которое пишет логи ) В этом и заключается принцип работы fail2ban - мониторинг и парсинг логов регексами. Также система эта чрезвычайно гибкая, поддерживает множество файрволов и имеет массу настроек. Умеет отсылать мыло с информацией о забаненых. Прикольно оно еще из райпа берет данные провайдера атакующего )

Порт /usr/ports/security/py-fail2ban

ЗЫ натолкнулся на него когда искал защиту от перебора для демона proftpd
Записан
smallcms
NoDeny
Старожил
*

Карма: 64
Offline Offline

Сообщений: 279



Просмотр профиля WWW
« Ответ #11 : 23 Декабря 2010, 06:57:52 »

Да, ещё момент, если пересобираются порты часто (а они пересобираются часто у хороших хозяев), можно вместо опций у make просто добавить в /usr/local/etc/pkgtools.conf
Код:
  MAKE_ARGS = {                                                                 
    'security/sshguard-ipfw' => 'CONFIGURE_ARGS+=--prefix=/usr/local CONFIGURE_ARGS+=--with-firewall=ipfw CONFIGURE_ARGS+=--with-ipfw-rules-range=40-90'
  }
тогда portupgrade сам будет указывать опции автоматом.
Записан

Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!