LINUX.ORG.RU

sshguard: защита для OpenSSH


0

0

Ресурс Linux.com опубликовал маленькую статью про защиту SSH от словарной атаки посредством перебора (brute force) при помощи утилиты sshguard. sshguard отслеживает все попытки входа в систему и в случае неудачи блокирует адреса атакующих посредством межсетевого экрана.

Также существуют другие методы защиты, например Port Knocking и Single Packet Authorization: http://www.linuxjournal.com/node/9565...

>>> Подробности

★★★★★

Проверено: Pi ()

Ответ на: комментарий от Ygor

> Тоже самое сделаное проще...

Ну и ну...

Особенно понравилась фраза: "Итак, всё инсталлировано, но согласно секьюрити репорту, установился он не вместо системного, а сам по себе. Ладно. Не страшно." Очень показательно. ;-)

А вообще - iptables + recent.

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

>Разве при подключении к SSH нету ограничения в 3 попытки ?

Есть конечно. Потом еще три попытки и еще три попытки, и еще...

Как уже сказали iptables recent - мегавесчъ.

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

есть ограничения, если ты сам их не убрал. но количество придурков, которые хотят войти, используя логин admin и пароль 123, составляет (лично на моем сервере) -- 3 попытки/сек.
поэтому, логичней перевесить ssh на другой порт. а еще лучше сгенерировать ssh-key и у пользователя поставить пароль *.
ананимы, которые предлагают использовать denyhosts, следует почитать немного вумных книг на ночь.

ss
()

а я что-то изобретал - по крону каждые в 5 минут запускался скрипт который смотрел в messages и банил нечестивцев.

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

>Самая лучшая защита SSH от словарной атаки посредством перебора, это public keys only.

А если есть необходимость доступа с любой машины мира в любой момент времени? Запаришься ключи экспортировать.

Я опробовал этот sshguard - работает довольно неплохо. Рубит атаку после 4 попыток входа. Сам очищает правило. Просто и со вкусом.

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

>Самая лучшая защита SSH от словарной атаки посредством перебора, это public keys only.

Вполне не обязательно. makepasswd --chars 16 спасет отца русской демократии? ;)

anonymous
()

Теперь уже и вместо штатного iptables стало модно костыли использовать?

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

>А если есть необходимость доступа с любой машины мира в любой момент времени? Запаришься ключи экспортировать.

А на этой "любой машине мира" кейлоггеров и прочих троянов, которые тырят твои приватные ключи, случайно нет?

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

не понял? чем логичнее перевешивать на другой порт и ставить кей чем использовать denyhosts?

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

denyhosts же сочетает в себе буквально весь функционал, который может понадобиться в этой ситуации: блокировки по различному числу попыток, вайтлисты, отчеты, опционально автопурж. работает на linux и bsd.

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

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

>чем логичнее перевешивать на другой порт и ставить кей чем использовать denyhosts?

С помощью ARP-спуфинга любой кулхацкер из твоей локалки может генерить пакеты от имени любого IP мира.

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

key очень удобно для копирования файлов без участия человека.
а пароль -- атавизм, причем полный.

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

> С помощью ARP-спуфинга любой кулхацкер из твоей локалки может генерить пакеты от имени любого IP мира.

ну и попадёт в баню.

и вообще arp-спуфинг это уже другая тема, от неё и защита другая - отчеты об атаках + дробовик.
зы. у меня нет локалки ;)

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

anonymous
()

помоему это не защита для openssh, т.к. openssh в защите и не нуждается. это защита от всяких там ленивых пользователей, которые пароль сложнее "трех еденичек" не воспринимают. т.е. защита от человеческого фактора

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

1. про denyhosts тебе, imho, объяснили.
2. у тебя, imho, нет внешнего сервера, иначе ты бы увидел разницу в замене порта. найди отличие: 3 попытке/сек и 3 попытке/квартал.
3. key можно хранить на внешнем носителе
4. ты затрахаешься перечислять хосты, с которых разрешен доступ к ssh (тотже стрим, который не гарантирует одинаковый ip в течении n-го количества времени)

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

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

Финальный вариант моего поста. :)

>найди отличие: 3 попытке/сек и 3 попытке/квартал.

3 попытки в секунду = 259200 в сутки = 94670856 в год.

Случайный пароль из 16 больших и маленьких букв и цифр = 62^16 вариантов = 47672401706823533450263330816.

Второе число делим на первое и получаем 503559423893067296764 лет. Пожелаем удачи хацкерам! :)

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

> а я что-то изобретал - по крону каждые в 5 минут запускался скрипт который смотрел в messages и банил нечестивцев.

Онанимусы, бей гада - эта падла нас на нашем онанимном ссш забанила!

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

>С помощью ARP-спуфинга любой кулхацкер из твоей локалки может генерить пакеты от имени любого IP мира.

ты бредишь

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

>>С помощью ARP-спуфинга любой кулхацкер из твоей локалки может генерить пакеты от имени любого IP мира.

>ты бредишь

Если ты не понимаешь, как это можно сделать, вовсе необязательно, что этого сделать нельзя. :)

ARP-спуфинг будет использован хацкером для того, чтобы представиться твоему компу рутером. Соответственно отныне хацкер может создавать пакеты, как будто они пришли из далека, с IP microsoft.com. :)

anonymous
()

когда то задался этим вопросом и нашёл на этом же форуме вот такой пример:

iptables -A INPUT -p TCP -i eth0 --syn --dport 22 -m recent --name radiator --set iptables -A INPUT -p TCP -i eth0 --syn --dport 22 -m recent --name radiator --update --seconds 60 --hitcou nt 4 -j DROP

даёт 3 попытки. на 4-ую блокирует на 60 секунд. обычно боты после этого идут дальше.

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

>то, что ты говоришь о красивости denyhosts, по большому счему нафиг нужно, т.к. дело не в красивых графиках, а в защищенности системы.

графиках? :))) вы похоже denyhosts не видели и в глаза, и даже не читали о нём. а туда же - беретесь судить :) стыдно.
отчеты его в меру краткие, не говоря уже о том, что без "рюшечек". да и вовремя пришедшие сообщения об атаках порой здорово выручают.

1. где?
2. у меня около десятка машин, смотрящих в мир, разного функционала и назначения. опыт имеется. замена порта, повторюсь, полумера. от тупых ботов. если вас будут целенаправленно ломать - не поможет.
3. допустим. главное его не забыть нигде ;)
4. вы не поняли. достаточно указать пару машин откуда доступ разрешен (со статическими ip адресами), на всякий пожарный, если вы будете с будуна ломиться со своего стримовского адреса и н-раз промажете с паролем. и всё.

anonymous
()

fail2ban делает не только это, а и vsftpd/proftpd, почтовые переборы, и много что ещё. и давно уже в портах

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

>>С помощью ARP-спуфинга любой кулхацкер из твоей локалки может генерить пакеты от имени любого IP мира.

>ты бредишь

Ты прав, брат-онанимус. А этот зарегистрированный чайник, наверное, не знает, что ARP работает только для ресольва IP в MAC для хостов из своей подсети, а пакеты в другие подсети уходят на шлюхз. =)

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

>ARP работает только для ресольва IP в MAC для хостов из своей подсети, а пакеты в другие подсети уходят на шлюхз.

А как по-твоему определяется MAC-адрес шлюза, уж не через ARP ли случайно? ;)

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

> поэтому, логичней перевесить ssh на другой порт

Угу, я в конце концов так и сделал. Правда это защищает только от тех, кто сканит "the internet", но пока меня досаждали только такие.

atrus ★★★★★
()

А давайте меряться пи^Hаролями - у кого длиннее? У меня 16 см^Hимволов.

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

>Не нравится смотреть на засранный messages. ;-)

А засранный /var/log/firewall или как там в твоем дистрибутиве? ;)

anonymous
()

А зачем оно вообще все надо? Встоенная защита от брутфорса в sshd + нормальный пароль + для параноиков -- перевесить ssh на 51234 порт -- и все.

Harliff ★★★★★
()

Ssh защитить не сложно, лучше не тратить время на извращения и что-нибудь полезное сделать. В том числе и в плане безопасности.

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

неплохая вещь - не требует наличия iptables и достаточно гибко настраивается (valid -invalid-restricted users), можно совместить с iptables recent на фаерволе

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

> А на этой "любой машине мира" кейлоггеров и прочих троянов, которые тырят твои приватные ключи, случайно нет?

А для этого есть такая вещь, как s/key (одноразовые пароли).

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

ну еще есть blocksshd

просто и сердито

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

>А для этого есть такая вещь, как s/key (одноразовые пароли).

Ну, раз уж на то пошло, троян может интегрироваться в ssh-клиент. И посылать серверу любую команду от твоего имени (при этом подавляя вывод результатов в окне терминала).

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

Уважаемый брат анонимус! AFAIK, Указанный вами denyhost будет работать только в том случае, если sshd запускается сепур-сервером inetd. В подавляющем большинстве случаев - это не так (sshd запускают в режиме standalone). Так что не надо нам тут втюхивать :) Люди тебе дельные вещи советуют :) Самый простой и нормальный как по мне вариант - это поставить greet-паузу, секунды так на 2-3. И там хай перебирают пароли хть до посинения.

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

Можно сделать $PROMPT_COMMAND, которая увеличивающуюся на 1 переменную забивает в $PS1. Если номер увеличился не на 1, что-то тут нечисто!

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

и вам шалом, уважаемый.
про inetd вы сказали глупость. denyhosts прекрасно работает на standalone запущенном sshd.
ещё возражения?

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

>Можно сделать $PROMPT_COMMAND, которая увеличивающуюся на 1 переменную забивает в $PS1. Если номер увеличился не на 1, что-то тут нечисто!

Можно и троян с учетом этого сделать. :) А если серьезно - когда ты узнаешь, что что-то нечисто, будет уже... ну вообщем немного поздно. :)

anonymous
()

Чем изобретать велосипед (да еще и с квадратными колесами), лучше
таки использовать такие способы аутентификации, при которых пароли
не передаются по сети (то есть вообще).


PubkeyAuthentication yes
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
PasswordAuthentication no
ChallengeResponseAuthentication no


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

Н-да... Недостаток образования админов сказуется все больше и больше... прочитайте любимый наш брат анонимус это пожайлуста http://bugtraq.ru/library/security/linuxattack2.html. Там ясно сказано что с указанным Вами файлом /etc/hosts.deny работает демон tcpd, который является частью inetd или xinetd. Еще есть возражения? :)

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

> > А для этого есть такая вещь, как s/key (одноразовые пароли).

> Ну, раз уж на то пошло, троян может интегрироваться в ssh-клиент.
> И посылать серверу любую команду от твоего имени (при этом подавляя
> вывод результатов в окне терминала).

Дык s/key (а также методы, при которых пароли не передается по сети),
и не пытаются защищать от такого рода атак. Они защищают от прослушивания
сети (крякер Петя на своем ноутбуке запустил nmap и хочет чего-то там
выудить) и от тупого перебора (крякер Петя пытается угадать пароль).
А когда этот самый Петя уже вломился на машину, где запущен ssh-клиент...
остается только расслабиться и получить удовольствие...


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

>Дык s/key (а также методы, при которых пароли не передается по сети), и не пытаются защищать от такого рода атак. Они защищают от прослушивания сети (крякер Петя на своем ноутбуке запустил nmap и хочет чего-то там выудить) и от тупого перебора (крякер Петя пытается угадать пароль).

От прослушивания в SSH защищает шифрование канала, а от тупого перебора защищает пароль достаточной длины.

>А когда этот самый Петя уже вломился на машину, где запущен ssh-клиент... остается только расслабиться и получить удовольствие...

Изначально говорилось о:

>А если есть необходимость доступа с любой машины мира в любой момент времени? Запаришься ключи экспортировать.

То есть ты заходишь с машины, принадлежащей Пете.

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

> Н-да... Недостаток образования админов сказуется все больше и больше...

Таки наглость и безграмотность anonymous'ов не имеет границ.

> Там ясно сказано что с указанным Вами файлом /etc/hosts.deny работает
> демон tcpd,

В состав tcpd входит библиотека TCP wrappers, которая позволяет использовать
tcpd с любым демоном. Для этого, конечно, придется подхакать демон.
OpenSSH поддерживает TCP wrappers:

$ ldd /usr/sbin/sshd | grep wrap
libwrap.so.0 => /lib/libwrap.so.0 (0x4ac1f000)

И если кто-то его собрал без TCP wrappers -- сам себе злобный
антропоморфный дендромутант.


> который является частью inetd или xinetd.

Брехня. tcpd не является частью {,x}inetd.

> Еще есть возражения? :)

Да. Таки попробуйте в /etc/hosts.deny вставить

sshd: ALL

и посмотрите -- получиться ли зайти на машину :)

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

> а от тупого перебора защищает пароль достаточной длины.

Когда пароли _в принципе_ не передаются по сети, их подобрать невозможно
вообще никак, а достаточно длинный пароль подобрать таки можно.

> > А если есть необходимость доступа с любой машины мира в любой момент
> > времени?

Придется покупать ноут или КПК, держать там ключи и заходить с него.
Соответственно следить, чтоб никто не лазил...

> То есть ты заходишь с машины, принадлежащей Пете.

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

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

пробовал - заходит... Значит это наверное все таки не универсально средство длоя все дистров? И не лучше ли для таких целей использовать стандартный фаерволл, а не плодить дырки в системе, ставя некому не нужные демоны?

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

даёт 3 попытки. на 4-ую блокирует на 60 секунд. обычно боты после этого идут дальше.

спасибо! То что нужно! Паролей простых нет, но приятного мало когда кто-то в дверь ломится и логи засираются.

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

>> Еще есть возражения? :)
>Да. Таки попробуйте в /etc/hosts.deny вставить
>sshd: ALL
>и посмотрите -- получиться ли зайти на машину :)

(изначальная реплика моя)

не получается.
ssh_exchange_identification: Connection closed by remote host

so?

а в общем целом, безопасность, с моей точки зрения, подразумевает комплексные меры по её обеспечению. просто не совсем понял зачем городить очередной велосипед (это об топике).

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