Привет!
Я думаю многоие с этим сталкивались - идет масса логинов к порту SSH с простым "подбором" пароля/логина (по уже готовым спискам). У нас конечно таких простых паролей/логинов не применяется и тут безопасность нормальная, но это ведь грузит сервер пустым траффиком!
Как можно блокировать подобные коннекты? скажем через пять неудачных - на час блокируется этот IP. Это можно сделать силами самого SSH?Спасибо!
HAN
>Привет!
>Я думаю многоие с этим сталкивались - идет масса логинов к порту
>SSH с простым "подбором" пароля/логина (по уже готовым спискам). У нас
>конечно таких простых паролей/логинов не применяется и тут безопасность нормальная, но
>это ведь грузит сервер пустым траффиком!
>Как можно блокировать подобные коннекты? скажем через пять неудачных - на час
>блокируется этот IP. Это можно сделать силами самого SSH?
>
>Спасибо!
>HAN
MaxStartups
Specifies the maximum number of concurrent unauthenticated con-
nections to the sshd daemon. Additional connections will be
dropped until authentication succeeds or the LoginGraceTime
expires for a connection. The default is 10.Alternatively, random early drop can be enabled by specifying the
three colon separated values ``start:rate:full'' (e.g.,
"10:30:60"). sshd will refuse connection attempts with a proba-
bility of ``rate/100'' (30%) if there are currently ``start''
(10) unauthenticated connections. The probability increases lin-
early and all connection attempts are refused if the number of
unauthenticated connections reaches ``full'' (60).повесь sshd на какойнить порт отличный от 22 , я например повесил на 443 , заодно и через прокси коннекчусь .
также стоит вместо паролей использовать ключи .
да кстати ,поиск рулит ...
У меня FreeBSD 5.4
xl0 - внешний интерфейсЯ от брутворса избавился так:
rc.firewall
{fwcmd} add 1 reject all from any to me dst-port 22 in via xl0
после добавления этого правила никто ддостучатся на 22 порт уже не сможет
а если все таки нужно юзать SSH из вне, то дабавь правило разришающее конект с конкретного (твоего) хоста.
>после добавления этого правила никто ддостучатся на 22 порт уже не сможет
>
>а если все таки нужно юзать SSH из вне, то дабавь правило
>разришающее конект с конкретного (твоего) хоста.в том то и дело как раз снаружи и надо и причем сам могу с разных IP заходить и несколько человек тоже
>>после добавления этого правила никто ддостучатся на 22 порт уже не сможет
>>
>>а если все таки нужно юзать SSH из вне, то дабавь правило
>>разришающее конект с конкретного (твоего) хоста.
>
>в том то и дело как раз снаружи и надо и причем
>сам могу с разных IP заходить и несколько человек тожеНесколько примеров на эту тему....
>Я думаю многоие с этим сталкивались - идет масса логинов к порту
>SSH с простым "подбором" пароля/логина (по уже готовым спискам).
>Как можно блокировать подобные коннекты? скажем через пять неудачных - на час
>блокируется этот IP. Это можно сделать силами самого SSH?Силами самого sshd - нет.
Силами iptables - легко:
http://www.opennet.me/tips/sml/41.shtml
http://www.swisspowered.net/wiki/index.php/Networking:Brute_...
>Привет!
>Я думаю многоие с этим сталкивались - идет масса логинов к порту
>SSH с простым "подбором" пароля/логина (по уже готовым спискам). У нас
>конечно таких простых паролей/логинов не применяется и тут безопасность нормальная, но
>это ведь грузит сервер пустым траффиком!
>Как можно блокировать подобные коннекты? скажем через пять неудачных - на час
>блокируется этот IP. Это можно сделать силами самого SSH?
>
>Спасибо!
>HAN
1) Повешать сашу на другой (желательно не популярный порт).
2) Либо поставить SNORT, либо в iptables есть модуль (Patch-o-matic) ограничивающий подключения на данный порт.
3) Использовать оба вышеприведенных метода.
>Привет!
>Я думаю многоие с этим сталкивались - идет масса логинов к порту
>SSH с простым "подбором" пароля/логина (по уже готовым спискам). У нас
>конечно таких простых паролей/логинов не применяется и тут безопасность нормальная, но
>это ведь грузит сервер пустым траффиком!
>Как можно блокировать подобные коннекты? скажем через пять неудачных - на час
>блокируется этот IP. Это можно сделать силами самого SSH?
>
>Спасибо!
>HAN
повесь на другой порт ссх демон.
пропиши AllowUsers в sshd_config
количество коннектов уменьшиться на половину.
я сделал так:
в sshd.conf записал:
SysLogFacility AUTHPRIV#!/usr/bin/perl
$log="Subject: IP banned\n";
%ban;open(F, '< /var/log/secure');
while(<F>){
$str = $_;
$str=~/Failed password for .+ (.+) port/;
if(!$ban{$1}){ $ban{$1}=1; } else { $ban{$1}++; }
}
close(F);
open (BL, '>>/etc/rc.d/ban.ip');
foreach $key (keys %ban){
if($ban{$key} > 10 && $key){
print BL $key,"\n";
`iptables -I tcp_new -p tcp -s $key -j DROP`;
$log.="$key\n";
smtp_send('postmaster@inteh.com.ua', $log);
}
}
close(BL);
open(F, '> /var/log/secure');
print F "0";
close(F);sub smtp_send{
local $m_addr=shift;
local $m_body=shift;
my $ret;
my $p;use IO::Socket;
my $remote = IO::Socket::INET->new(PeerAddr => '212.40.43.98:25')
or die "Can't create socket";
$p.=<$remote>;
print $remote "helo inteh\n";
$p.=<$remote>;
print $remote "mail from: <krot-s\@mail.ru>\n";
$p.=<$remote>;
print $remote "rcpt to: <$m_addr>\n";
$p=<$remote>;
if($p=~/250/i ){
print $remote "DATA\n";
$p.=<$remote>;
print $remote "$m_body\n.\n";
$p.=<$remote>;
if($p=~/250/i){
$ret=0;
}else{
$ret.="Error:\n$p\n";
}
}else{
$ret.= "Error: \n$p\nCan't sent the mail!\n";
}
print $remote "quit\n";
$p=<$remote>;return $ret;
}Тупо конечно, но слепил за 10 мин., и работает
Надо опеннет читать ;)Отсюда:
http://www.opennet.me/opennews/art.shtml?num=6945http://www.howtoforge.com/preventing_ssh_dictionary_attacks_...
http://anton-lebedev.blogspot.com/2011/03/fail2ban.html