Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
while (1) {
for ($curpos = tell(LFILE); $_ = <LFILE>; $curpos = tell(LFILE)) {
# искомая строка
if (/sshd[d+]: Failed password for .+ from D+(d+.d+.d+.d+)/) {
$ip=$1;
next if defined($blocked{$ip});
$tries{$ip}+=1; #увеличиваем счетчик
if ($tries{$ip} eq $max){
# если превышено максимальное значение,
# пакеты с данного адреса должны быть заблокированы
`$iptables -I block -s $ip -j DROP ; $iptables_save > $cfgfile`;
$blocked{$ip}=1;
# снова сообщение syslog
syslog('warning', "IP $ip has been blocked !");
}
}
}
sleep 1;
seek(LFILE, $curpos, 0);
}
Как видите, сценарий довольно прост, мы всего лишь отслеживаем нужные строки в файле и реагируем на них заданным образом, блокируя доступ к сети для IP-адреса атакующего.
Расширяем функциональность
Попробуем расширить функциональность сценария, написанного нашим коллегой.
Во-первых, допустим, у нас открыты наружу не только ssh, но и, к примеру, POP3.
И во-вторых, рассмотрим различные варианты построения сети: как с использованием демилитаризованной зоны (DMZ), так и без нее. Суть DMZ заключается в том, что она не входит непосредственно ни во внутреннюю, ни во внешнюю сеть и доступ к ней может осуществляться только по заранее заданным правилам межсетевого экрана. В DMZ нет пользователей – там располагаются только серверы. Демилитаризованная зона, как правило, служит для предотвращения доступа из внешней сети к хостам внутренней сети за счет выноса из локальной сети в особую зону всех сервисов, требующих доступа извне. Фактически получается, что эта зона будет являться отдельной подсетью с публичными адресами, защищенной (или отделенной) от публичных и корпоративных сетей межсетевыми экранами.
При попытке получения доступа к почтовому ящику по протоколу POP3, в случае неверного указания логина/пароля получаем сообщение:
Apr 22 21:25:24 MexBSD qpopper[782]: [AUTH] Failed attempted
login to admin from host (TestBSD) 172.29.1.19
Здесь в качестве POP3-демона использовался qpopper, но и для других серверов вид сообщения будет аналогичен.
По поводу топологии сети будем предполагать, что у нас имеется единственный сервер и необходимо блокировать пакеты, непосредственно приходящие на него.
Также сценарий, предназначенный для защиты от подбора протокола POP3, применялся на FreeBSD, поэтому вместо iptables воспользуемся утилитой ipfw, с помощью которой создаются правила фильтрации. Для запрета доступа у ipfw существуют директивы deny и reject.