Как известно сеть интернет — не безопасная среда, где кроме всего полезного часто встречаются и вредоносные сущности. Одной из немаловажных задач администратора сервера является обеспечение безопасности и работоспособности машины. Классический пример – некий извне, производит огроменный поток запросов какой-либо страницы сайта. В конечном итоге это может вызвать большую нагрузку и сбои в работе сайта. Закрыть доступ такому «пользователю» к ресурсу, пожалуй, это рациональное решение, так или иначе, до выяснения обстоятельств и причин таких нагрузок.
В операционной системе Linux есть утилита IPTables, работа с которой может выполняться из командной строки. Данная утилита является стандартным интерфейсом управления работой межсетевого экрана, его так же называют брандмауэром NETFilter, который стал использоваться в системе Linux с версией ядер начиная от 2.4. Для использования данной утилиты вам необходимо иметь привилегии суперпользователя.
Теперь к действию, предположим у нас есть IP адрес, с которого идут нежелательные запросы: 91.207.7.182, заблокировать доступ в IPTables можно таким образом:
# iptables -A INPUT -s 91.207.7.182 -j REJECT
Данная строка добавляет (-A) правило в таблицу INPUT (данная таблица нужна для работы с входящими пакетами), указанный нами IP-адрес, а так же действие, предпринимаемое при обращении с этого IP-адреса, в нашем случае REJECT – пакеты будут полностью игнорироваться, таким образом, с его стороны сервер будет не виден, даже если пробовать пинговать. Кроме того, вместо значения REJECT так же предусмотрено использование команды DROP, в этом случае обращаемый узел получит ответ от сервера. Однако есть информация, что в некоторых случаях, при большом количестве запросов, использование команды DROP может привести к сбоям в работе сервера. Выводы делайте сами.
После ввода строки из вышеуказанных команд, следует сохранить данные.
# service iptables save
В случае если этого не делать, после перезагрузки в IPTables данных о наших записях не будет.