Archive for Апрель, 2010
Социальная инженерия как всегда творит чудеса =)
by admin on Апр.28, 2010, under *nix Administration
Leave a Comment more...Активное противодействие сканированию портов
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 не выдаст ничего
Теперь если какой нибудь демон повесить на нестандартный порт, его будет сложновато обнаружить.
Защищаем 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