DDOS на WEB сервер

Утро началось не с кофе. Просматривая логи, обнаружил, что на web сервере аномальная нагрузка. Причем, ping еще шел, а по ssh я уже не мог достучаться. Соответственно все сайты лежали. Идем на шлюз и смотрим кто мешает. GATE # tcpdump -i bge0 host 19x.xxx.xxx.xx4 …. 10:58:29.348293 IP site.com.ua.49864 > 130.0.237.242.https: Flags [S], seq 142297589, win …

Continue reading ‘DDOS на WEB сервер’ »

Hairpin NAT – делаем доступ к сервисам пользователям из LAN используя внешний IP

Hairpin NAT очень полезная штука в случае когда надо дать доступ внутренним сервисам (находящимся в LAN) друг к другу, используя внешний IP адрес (например, “для единообразия” или если не хочется заморачиваться с DNS). Делается это просто: iptables -t nat -A PREROUTING -d ${extip} -p tcp -m tcp –dport ${extport} -j DNAT –to-destination ${localhostip} iptables -t …

Continue reading ‘Hairpin NAT – делаем доступ к сервисам пользователям из LAN используя внешний IP’ »

iptables – логирование в отдельный файл

Надоело смотреть мусор от логов iptables в файле messages. Исправляем. Если rsyslog уже установлен в системе, то создаем конфигурационный файл: # touch /etc/rsyslog.d/10-iptables.conf Имя с цифрой 10 (10-iptables) – так как для демона важен порядок конфигурационных файлов, а в системе уже присутствует 50-default.conf, он бы первый заворачивал все логи в messages. # vi /etc/rsyslog.d/10-iptables.conf :msg, contains, …

Continue reading ‘iptables – логирование в отдельный файл’ »

FTP активный и пассивный режимы

При работе по протоколу FTP между клиентом и сервером устанавливается два соединения – управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключиться к тебе. Вот мое имя и мой пароль». …

Continue reading ‘FTP активный и пассивный режимы’ »

Ttaffic Control для небольшой сети

Очереди Существуют несколько видов очередей, соответствующих моделям из теории массового обслуживания и телетрафика: CBQ (Class-Based Queueing) – Очередь, основанная на классах. Позволяет создавать иерархию классов с приоритетами. Управление производится в зависимости от общей пропускной способности и загруженности канала. HTB (Hierarchical Token Bucket) – Алгоритм дырявого ведра. Позволяет ограничивать пропускную способность независимо от общей пропускной способности …

Continue reading ‘Ttaffic Control для небольшой сети’ »

ulog-acctd – подсчет и детализация трафика

Ищем по RPM-пакетам на этом сайте: http://rpm.pbone.net/index.php3?stat=3&search=ulog-acctd&srodzaj=3 и переходим по ссылке напротив нашей версии ОС (у меня CentOS 6.9 i386, но подошла на 6.5) # wget ftp://ftp.pbone.net/mirror/rnd.rajven.net/centos/7.0.1406/os/x86_64/ulog-acctd-0.4.3-7cnt7.x86_64.rpm # rpm -Uhv ulog-acctd-0.4.3-7cnt7.x86_64.rpm Конфигурационный файл чрезвычайно прост, там нужно указать multicast group (указанный в правиле iptables), формат лога. Он находится в /etc, немного поправим его: # vi …

Continue reading ‘ulog-acctd – подсчет и детализация трафика’ »

Ограничение доступа/блокировка определенной страны

Две недели подрят брутили почтовый сервер на предмет подбора паролей от dovecot. Так как стоял fail2ban я не сильно заморачивался, но когда блокированных IP перевалило за 50 тыс. я озаботился. Просмотрев внимательно логи я выяснил, что 99% IP принадлежат Малайзии. Погуглив я нашел сервис который предоставляет базы сетей по странам. Пишем скрипт для выборки малазийских …

Continue reading ‘Ограничение доступа/блокировка определенной страны’ »

iptables – блокировка по разным признакам

Запрет на скачивание больших файлов модуль: connbytes iptables -A FORWARD -m connbytes –connbytes 100000 -j REJECT примечание: теперь все TCP сессии более 100 Кбайт будут «обрезаны», необходимо добавить исключения для протоколов типа ssh, обычные «долгоживущие» чаты и т.п. Запрет по содержимому заголовка пакета модуль: string iptables -A FORWARD -m string –string “X-Kazaa-” -j REJECT Запрет по MAC-адресу модуль: mac iptables …

Continue reading ‘iptables – блокировка по разным признакам’ »

iptables – теория

Netfilter Сетевые пакеты поступают в сетевой интерфейс, настроенный на стек TCP/IP и после некоторых простых проверок ядром (например, контрольная сумма) проходят последовательность цепочек (chain) (обозначены пунктиром). Пакет обязательно проходит первоначальную цепочку PREROUTING. После цепочки PREROUTING, в соответствии с таблицей маршрутизации, проверяется кому принадлежит пакет и, в зависимости от назначения пакета, определяется куда он дальше попадет …

Continue reading ‘iptables – теория’ »

iptables – restore script

Правила iptables применяются сразу же после выполнения. К примеру, если в терминале ввести: $ iptables -A INPUT -p TCP –dport 22 -j DROP то соединение по ssh сразу будет потеряно. Создадим скрипт, который будет очищать все правила iptables: # vim /etc/restore_iptables.sh #!/bin/sh IPT=”/sbin/iptables” # Удаляем все правила $IPT -F $IPT -X # Разрешаем все подключения …

Continue reading ‘iptables – restore script’ »