Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

И так в этой теме я попытаюсь поделиться Вам о том как защитить свой сервер из вне от нежелательных гостей. 
Это настройка правил встроенных в debian IPTABLES

iptables – штатная утилита командной строки в Linux, является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) netfilter для ядер версий 2.4 и 2.6. При грамотной настройке iptables сервер можно считать относительно защищенным от внешних угроз. В этой статье мы рассмотрим пример конфигурации iptables для защиты стандартного веб-сервера.
Итак, представим себе простой веб-сервер. Рабочими портами при этом являются: tcp 20, 21, 22, 25, 80, 110, 143, 443; udp 53.
Напишем скрипт конфигурации iptables и положим его в /etc/init.d/iptables:

#!/bin/dash
# Скрипт конфигурации IPTables #
# Очищаем предыдущие записи
iptables -F
# Установка политик по умолчанию
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Разрешаем локальный интерфейс
iptables -A INPUT -i lo -j ACCEPT
# Простая защита от DoS-атаки
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Защита от спуфинга
iptables -I INPUT -m conntrack --ctstate NEW,INVALID -p tcp --tcp-flags SYN,ACK SYN,ACK -j REJECT --reject-with tcp-reset
# Защита от попытки открыть входящее соединение TCP не через SYN
iptables -I INPUT -m conntrack --ctstate NEW -p tcp ! --syn -j DROP
# Закрываемся от кривого icmp
iptables -I INPUT -p icmp -f -j DROP
# REL, ESTB allow
iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
# Разрешаем рабочие порты
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
# Защита сервера SSH от брутфорса
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name dmitro --set
iptables -A INPUT -p tcp --syn --dport 22 -m recent --name dmitro --update --seconds 30 --hitcount 3 -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Разрешение главных типов протокола ICMP
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 11 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 12 -j ACCEPT

# Просмотр
iptables -L -v

Для того что бы он поднимался автоматически при перезагрузке сервера делаем следующее:
update-rc.d iptables defaults 99

Вот теперь правила iptables будут подниматься при старте системы

Не так давно начали нагружать мой сервер несколько пауков из (германии и нидерлад) при просмотре htop сервер был нагружен почти на 90% хотя при нагрузке в 150-200 пользователей в сутки нагрузка составляла  15-20. Я решил надо избавляться от сие гадости и порчи моего сервера. Решил найти кто ко мне так ломится

выяснил с помощью команды

cat /var/www/clients/client1/web1/log/access.log | awk '{print $1}' | sort | uniq -c

увидел что с одного IP за ночь прошло очень много запросов

51846 84.122.169.43

решил запретить доступ к моему ресурсу через правила IPTABLES

iptables -I INPUT -i eth0 -s 84.122.169.43 -j DROP

Все. Рестартонул правила и забыл про надоедливого паука.

Добавить комментарий


Защитный код
Обновить