Linuxoid Blog

Archive for Апрель, 2010


Активное противодействие сканированию портов

by admin on Апр.22, 2010, under *nix Administration

Противодействовать будет с помощью iptables.

Имеется сервер на нем ssh,web.

Ниже приведён простой пример правил:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


iptables -A INPUT -p all -i lo -j ACCEPT
iptables -A OUTPUT -p all -o lo -j ACCEPT

iptables -A INPUT -m recent --rcheck --seconds 120 --name FUCKOFF -j DROP
iptables -A INPUT -p tcp -m multiport ! --dports 22,80 -m recent --set --name FUCKOFF -j DROP

iptables -A INPUT -p tcp --syn --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --syn --dport 80 -j ACCEPT
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

проясним эти два правила

iptables -A INPUT -m recent --rcheck --seconds 120 --name FUCKOFF -j DROP
iptables -A INPUT -p tcp -m multiport ! --dports 22,80 -m recent --set --name FUCKOFF -j DROP

любой пакет идущий на не 22,80 порт блокируется с ip адресом отправившим его на 120 секунд, на 120 секунд блокируется все пакеты с этого ip, тем самым предотвращается сканирование портов. Время блокировки ip адреса выбирайте на своё усмотрение.

Теперь nmap -sV ip не выдаст ничего ;)

Теперь если какой нибудь демон повесить на нестандартный порт, его будет сложновато обнаружить.

Leave a Comment more...

Защищаем http proxy от пробрасывания http туннеля средствами iptables

by admin on Апр.22, 2010, under *nix Administration

При пробрасывании http туннеля через http proxy, http заголовок пакета имеет маленький размер порядка 80-90 байт (т.к. передается лишь малая часть данных необходимых для идентификации протокола), тогда как стандартный заголовок (передаваемый браузером) в среднем равен от 350 байт (зависит от браузера ос и т.п.) основываясь на этом будем настраивать фильтрацию трафика.

# политика по умолчанию
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# создаём новую цепочку LENGTH
iptables -N LENGTH

# проверяем длину пакета, если меньше 350 байт то блокируем
iptables -A LENGTH -p tcp --dport 3128 -m length --length :350 -j DROP

# если пакет больше 350 байт то пропускаем
iptables -A LENGTH -p tcp --dport 3128 -j ACCEPT

# разрешаем подключение на порт 3128
iptables -A INPUT -p tcp --syn --dport 3128 -j ACCEPT

# в установленом соединении проверяем пакеты на запрос GET –hex-string “|47 45 54 20|” если есть такой пакет то направляем его в цепочку LENGTH для проверки длины пакета
iptables -A INPUT -p tcp --dport 3128 -m state --state ESTABLISHED -m string --algo kmp --hex-string "|47 45 54 20|" --from 52 --to 56 -j LENGTH

iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p all -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

P.S. Проверено на httptunnel

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...