LINUX.ORG.RU
ФорумAdmin

Как изменить число попыток входа по SSH

 , ,


0

3

Всем привет! Поглядел сегодня /var/log/auth.log и заметил несколько интересных моментов:

- китайские товарищи зачем-то щимятся на мой домашний сервер по SSH, причем некоторые очень настойчиво;
- система защиты, настроенная по умолчанию, дает 6 попыток для аутентификации с одного айпи, затем бан секунд на 20, после чего попытки с этого айпи иногда продолжаются снова;
- геройскую оборону держит некий pam_unix(sshd:auth), который и отфутболивает назойливых незванных гостей с мессагой типа authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.194.47.233

У меня сразу возник вопрос, а не слишком ли это толерантно - 6 попыток и блокировка на 20 сек? Хочу попросить стражника быть построже, но не знаю, как это сделать. Из гугла понял, что настраивать надо через pam, но не нашел, как сделать именно то, что мне нужно. Например, сделать только 3 попытки входа, затем бан на сутки. А если стучаться из своей домашней сети, то число попыток входа не ограничено.


/me зевая: ну от куда же вы лезете? Оставь ботов в покое и ложись спать. И не читай логи перед обедом. У неокрепших падаванов несварение случиться может.

beastie ★★★★★
()

Повесь ssh сервер на какой нибудь нестандартгый порт типа 40385 и все проблемы. И да, как уже указали выше, запрети доступ по паролю и оставь только по ключу.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)

Появилась идея использовать iptables. Разрешить SSH доступ только с определенных подсетей (список у меня есть). Как это грамотно сделать, народ? У кого есть опыт?

a-lexx
() автор топика

А что, MaxAuthTries и MaxSessions уже отменили?

ashot ★★★★
()
Ответ на: комментарий от a-lexx

Тут уже тебе fail2ban посоветовали, он как раз через iptables работает. Как раз то, что тебе надо. Для ssh работает из коробки, и можно настроить число попыток и время блокировки.

te111011010
()
Ответ на: комментарий от a-lexx

Разрешить SSH доступ только с определенных подсетей

Слово «подсеть» тут стремено звучит.
Вполне возможно они и ваши, и я ошибаюсь, но на фоне не знания как это сделать в iptables...

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

Ты что, на 22 порту сидишь?

От того что перелезете на 11122 спокойнее станет только в соответствии с вашем ником к которому добавить буковки.

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

Минус «пять» ботов, вам от этого легче станет? Боты нехорошее-слово умные, бд соберут и будут долбить.

anc ★★★★★
()

использовать fail2ban, сменить порт для ssh

targitaj ★★★★★
()

fail2ban и двухфакторная аутентификация.

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

Да, и если вы сомневаетесь в распространении БД для ботов, просто приведу пример: регулярно происходит подбор паролей на учётки почты вида фамилия(варианты)@domain.tld, тут важен момент «варианты» - именно таких(по написанию) ящиков не существовало никогда, ну ничего, продолжают ломиться с паролями из какой-то стандартной БД далеко не первый год.

anc ★★★★★
()
Последнее исправление: anc (всего исправлений: 1)

ipset + iptables + bash, ну или ключ.

xaTa ★★★★
()

От меня и всех ниже:

файл sshd_config:
#
Port 61122
LoginGraceTime 30
MaxAuthTries 1
PermitRootLogin yes
StrictModes yes
#
файл jail.local:
#
[sshd]
enabled     = true
filter      = sshd
#action      = iptables-allports
action      = route
logpath     = /var/log/auth.log
maxretry    = 3
findtime  = 1800
bantime  = 43200
#
#

Bootmen ☆☆☆
()
Последнее исправление: Bootmen (всего исправлений: 1)
Ответ на: комментарий от anc

Неверно. Помню пару лет назад был у меня сервер с белым ip и ssh сервером на 22 порту и парольным входом. Так вот было как у ТС-а, постоянно лезли какие-то черти с китайских ip. А как только перевесил на порт типа 40654, попытки прекратились. Ну и конечно, в эпоху развитой криптографии, лучше использовать ключи вместо паролей.

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

Дело не в ужасе работы под root. Дело в двойной защите, когда вход по ssh по ключу только от имени пользователя и еще нужно знать пароль пользователя, чтобы вызвать sudo.

rumgot ★★★★★
()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от ashot

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

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

не нужно помнить пароль root

Рекомендую куплеты из песен, со всавками/заменами из спецсимволов по собственным алгоритмам. Длинно, надежно, сердито.

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

А смысл? Есть отличный механизм sudo и один пароль. Удобно и надежно.

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

Рекомендую куплеты из песен, со всавками/заменами из спецсимволов по собственным алгоритмам.

«Сорок тысяч обезьян...» наше все :) И все-таки могут заснифить банальными «съемками» набора символов.

anc ★★★★★
()

Спасибо всем за вашу моральную (и не только) поддержку! Поразмыслив, решил, что самая надежная защита от хакеров и некоторых продвинутых бот-сетей - это тупо лишение их доступа. Пусть хоть с 10 тысяч ip пробуют подобрать пароли, система просто не допустит их до авторизации даже. Перелопатив кучу гугло-яндекса, смог поставить себе такую защиту, с помощью iptables. Теперь в мир открыт только 80 порт, а на 22й можно зайти лишь с определенных подсетей, прописанных мною. Если кому интересно, могу выложить все свои шаги, как я это делал.

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

Теперь в мир открыт только 80 порт

«Современные „недотехнологии“ на нем вижу я висят»
Я бы в таком случае за 22-ой не переживал.

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

«Современные „недотехнологии“ на нем вижу я висят»

В смысле?

Я бы в таком случае за 22-ой не переживал.

Почему?

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

В смысле?

web ломают частенько, рано, поздно, но ломают. Бывают всякие исключения, без всяких wp и тому подобных комбайнов. Но если есть комбайн, то точно сломают.

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

wp - вордпресс? Не собираюсь ставить никакой cms, вообще не для этого сервер поднимаю. Как же защитить 80 порт? Закрыть то его не получится.

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

Именно 80-ый никак, ломают же через софт. И дырок находят много, в старые времена это были дыры самого сервера, сейчас скорее во всяких либах/тулзах используемых на сайте. Если наваяете статичный сайт без убер многослойных взял-у-друга/он-у другого/скаченный-ради-однойфункции-код/js/на js/php/и-lib-ой погоняет то должно быть нормально, только сейчас это редкость.

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

Ну ясно, инди-разработчику нужно учиться быть специалистом по безопасности и в администрировании и в программировании)

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

.Теперь в мир открыт только 80 порт,

А ещё 443 можно. Чтоб на нём openvpn слушал. Чтобы можно было из анально огороженных сетей где только 80/443 по впну к себе ходить, а там по ssh уже подключаться по портам каким надо. Но это так, для тех, кто в грустных условиях живёт.

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

Запрети логин по паролю, разреши по ключу.

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

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

Может ты еще ресурсы диска экономишь, избегая записывать на него?

В общем-то да. Например использую syslog-ng, rrdcached.

Ты никогда не видел под три десятка ботов, занимающихся перебором на одном бедном хосте ?

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

Может ты еще всякое жручее говно на нодах, питонах и джябях переписываешь на богоизбранную сишечку, чтоб память зря не жрало?

entefeed ☆☆☆
()
Ответ на: комментарий от evilface

Надеюсь, таких анальных сетей немного среди тех, в которых я планирую сидеть - wifi-сети свободного доступа, например, или сети 4G. Еще не проверял.

a-lexx
() автор топика
Ответ на: комментарий от evilface

Корпоративная сеть это грустно - админы с нахмуренными бровями и никаких блэкджеков с девочками. Мне вот интересно, web-сокеты будут работать из таких сетей? А то веб-сокетный сервер собираюсь поднимать

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

Ну, если у вас, условно, пользователь идёт на example.com и получает фронт, который шлёт запросы на example.com/api, а /api nginx, будучи реверс-прокси, перенаправляет вовнутрь к веб-сокетному серверу (или любому другому бэку) (как, собственно, весь веб сейчас и делается), то всё работать будет прекрасно.

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

Дело в двойной защите, когда вход по ssh по ключу только от имени пользователя и еще нужно знать пароль пользователя, чтобы вызвать sudo.

Я правильно понимаю, что сначала вход под одним пользователем, а потом sudo ввод пароля другого пользователя?

a-lexx
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.