26Авг 2016

0

387

Работа с firewall IPtables

В данной статье мы ознакомим Вас с Firewall системой iptables.

Общие сведения.

Iptables это утилита брандмауэра командной строки, которая отвечает за правила фильтрации входящего и исходящего трафика Вашего сервера. Когда к Вашему серверу выполняется какое-либо подключение, Iptables ищет подходящее правило в своем списке , и пропускает или отклоняет запрос, согласно правилу.

На данный момент iptables является самым популярным брандмауером на виртуальных и выделенных серверах под управлением операционных систем семейства unix. Iptables установлен по умолчанию, поэтому процесс установки iptables на сервер мы пропустим.

Установка SSH клиента.

Для работы с iptables Вам понадобится SSH доступ к серверу и SSH клиент. Если на Вашем ПК установлена операционная система Linux — SSH клиент Вам не нужен, можете использовать для подключения по SSH стандартный Linux терминал. Владельцам компьютеров с ОС Windows мы рекомендуем использовать SSH\Telnet клиент Putty. Данная программа бесплатна и проста в использовании.

Скачать последнюю версию с официального сайта можете по ссылке :

https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

Подключитесь к Вашему серверу по SSH от имени суперпользователя root или другого пользователя с аналогичными привилегиями.

Основные команды Iptables.

Для управления iptables на CentOS 7, необходимо установить пакет iptables-services. Используйте для этого такую команду :

yum -y install iptables-services

Запустить iptables :

service iptables start

или

/etc/init.d/iptables start

Показать все действующие правила  firewall :

iptables -L -V

Сбросить все правила iptables :

iptables -F

Сохранить правила iptables :

service iptables save

или

/etc/init.d/iptables save

(Если правила не сохранить — они будут сброшены при последующей перезагрузке iptables или сервера)

Заблокировать доступ к серверу с IP адреса 1.1.1.1 :

iptables -A INPUT -s 1.1.1.1 -j DROP

Заблокировать доступ к серверу из подсети 1.1.1.0/24 :

iptables -A INPUT -s 1.1.1.0/24 -j DROP

или

iptables -A INPUT -s 1.1.1.0/255.255.255.0 -j DROP

Закрыть доступ к порту 22 для IP 1.1.1.1 :

iptables -A INPUT -p tcp --dport 22 -s 1.1.1.1 -j DROP

Закрыть доступ к 22 порту для всех :

iptables -A INPUT -p tcp --dport 22 -j DROP

Открыть доступ к серверу с IP 2.2.2.2 :

iptables -A INPUT -s 2.2.2.2 -j ACCEPT

Открыть доступ к серверу из подсети 2.2.2.0/24 :

iptables -A INPUT -s 2.2.2.0/24 -j ACCEPT

или

iptables -A INPUT -s 2.2.2.0/255.255.255.0 -j ACCEPT

Открыть доступ к порту 21 для IP 2.2.2.2 :

iptables -A INPUT -p tcp --dport 21 -s 2.2.2.2 -j ACCEPT

Примеры работы с iptables.

Ввиду некоторых особенностей работы Firewall iptables, считаем нужным привести полноценные примеры использования этой утилиты.

1. Имеем следующую проблему, с IP адреса 162.78.123.55 идет http-flood атака, которая приводит к задержкам при загрузке сайта. Подключаемся к серверу по SSH и блокируем доступ с этого адреса с помощью iptables :

iptables -A INPUT -s 162.78.123.55 -j DROP

После этого сохраняем правила с помощью такой команды :

service iptables save

или

/etc/init.d/iptables save

Если правила не сохранить — они будут сброшены при последующей перезагрузке iptables или сервера.

2. Рассмотрим чуть более сложный пример.  Необходимо открыть доступ к портам 21 и 22 только для подсети 93.19.60.0/22 и ip адреса 194.116.17.53.

Открываем доступ для указанных адресов :

iptables -A INPUT -s 93.19.60.0/22 -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -s 93.19.60.0/22 -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -s 194.116.17.53 -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -s 194.116.17.53 -p tcp --dport 22 -j ACCEPT

Закрываем доступ к портам 21 и 22 для всех с помощью команд :

iptables -A INPUT -p tcp --dport 21 -j DROP

iptables -A INPUT -p tcp --dport 22 -j DROP

И сохраняем правила с помощью команды:

service iptables save

Теперь доступ к 22 и 21му портам Вашего сервера открыт только для указанных IP адресов.

Решение возможных проблем с iptables.

Часто бывает, что после внесения изменений в настройку Firewall сервер не принимает чать запросов или работает некорректно. Обычно в решении проблемы помогает то, что после внесения изменений нужно сохранять правила. То есть если их не сохранить — то после перезагрузки iptables или сервера в целом, они будут сброшены.

Например, Вы по ошибке закрыли доступ для самого себя. Если это случилось — то сохранить правила (/etc/init.d/iptables save) Вы скорее всего не успели. В этом случае просто перезагрузите Ваш сервер и правила, которые не были сохранены, будут сброшены.

Если Вы, например, закрыли доступ по SSH для всех — это тоже решаемо. Найдите файл с правилами iptables, обычно она находится по следующему пути :

/etc/sysconfig/iptables

И удалите правило, которое запрещает доступ по SSH. Затем перезагрузите сервер.

Если возникла более сложная проблема — обратитесь в нашу службу технической поддержки, мы всегда в сети и готовы помочь.