Время закрывать дыры или поучительная история
К сожалению, многие из нас поддаются правилу: "Временно сделаем так, а
после переделаем как надо!". Думаю, мало кто будет это отрицать. Вот и я
не исключение. Когда только начинал настраивать сервер, вначале думал:
"Это так, не серьезно. Только посмотреть, что он из себя представляет.
Поглядеть на FreeBSD", и прочее... Поэтому на настройку firewall
внимания не обращал, сделал NAT и поставил правило "пропускать все и от
всего", и позже, если что, настрою как надо. Но вот сервер перерос в
нечто большее, чем просто интерес.
Так вот, в один прекрасный вечер все стало плохо. Ничего не грузится, а
если точнее, то вовсе отстуствует upload (исходящий трафик). Да, вы не
ослышались, именно он. Начинаем разбираться. У меня на сервере для
мониторинга стоит zabbix, и вот там на графиках видно, что тот
самый upload есть... И он не просто есть, а зашкаливает. Непонятным
образом он возрос до 12 Мб/с, а по данным zabbix'а максимальная
отметка - 18 Мб/с. Хотя исходящий трафик у провайдера должен резаться
на уровне 400-600 Кб/с. Это был шок. Непонятными стали два момента:
во-первых, что гоняет такой трафик, и во-вторых, почему не режется
upload.
Начинаем разбираться с первым вопросом. Имеем кучу непонятного трафика, netstat говорит про кучу соединений к ntpd.
Вспоминаем про открытые порты. Есть быстрый вариант резать все входящие
UDP-соединения, но это неправильный "временный" вариант, ведь некоторые
соединения могут оказаться нужны. Здесь нам поможет очень хорошая
кросплатформенная утилита с названием Nmap.
Она сканирует и выводит список всех открытых портов. Имеет очень много
параметров. Сканирует на наличие открытых как TCP, так и UDP-портов. Это
не все ее полезные функции, есть "скрытое" сканирование, опеределение
ОС и т.д. Введите nmap -h и удивитесь, сколько там всего полезного.
Запускаем сканирование командой
nmap -sS -sU 217.64.141.53
Через несколько минут видим, что есть несколько открытых UDP-портов, на одном из которых работает ntpd - UDP-порт 123. Закрываем его и проблема исчезает.
Для Freebsd:
ipfw add deny udp any to me dst-port 123 via rl0
в переводе оно звучит так: "ipfw добавить запрещающее правило для udp
для всех соединений ко мне для конечного порта 123 на интерфейсе rl0"
За одним закрываем остальные ненужные и "вредные" порты. Кибербезопасность
даже для такого, казалось бы, малого сервера оказалась нужна. Имеем
опыт и мотивацию на будущее - закрывать все дыры сразу. Уже несколькими
днями позже видим статью на ХабраХабре про DDos атаку при помощи ntp сервера, и понимаем, с чем имели дело.
Ну а по поводу второго вопроса. Видимо, провайдер режет только TCP-трафик, не трогая UDP.
Итак, никогда не откладывайте настройку firewall, не поленитесь создать
отдельных пользователей без прав суперпользователя, не сидите постоянно
под рутом, и обязательно делайте бэкапы.
http://linux-easy.ru/blog/nastrojka/server/vremja-zakryvat-dyry-ili-pouchitelnaja-istorija.html
|