Настройка IP Tables для сервера IP телефонии Asterisk на CentOS 7

Настройка IP Tables для сервера IP телефонии Asterisk на CentOS7

Asterisk_Logo

Данная заметка предназначена для последующей корректной настройки сервера IP телефонии на базе CentOS 7 с использованием модуля Asterisk, этому будет посвящена отдельная статья.

Сейчас рассмотрим работу и настройку IP Tables для Asterisk, а для начала выполним проверку установленного программного пакета IP Tables. Стоит заметить — для выполнения команд необходимы права суперпользователя:

rpm -q iptables

Если данного пакета не обнаружено — необходимо выполнить установку с использованием стандартного менеджера пакетов в CentOS 7 — yum:

yum -y install iptables

Далее перейдем непосредственно к конфигурированию IP Tables, просмотрев все текущие правила:

iptables -L

Настройка общих правил IP Tables

Создаем новое правило:

iptables -P INPUT ACCEPT

Это правило дает разрешение на все входящие подключения. Очень актуально при удаленной настройке сервера по SSH — блокировки/разрыва нашего соединения не произойдет. Следующей командой сбросим все правила, оставив только созданное нами правило:

iptables -F

Теперь перейдем к настройке интерфейсов:

iptables -A INPUT -i lo -j ACCEPT

Этим правилом мы разрешаем все подключения на localhost (адаптер lo / loopback).

Комментарий к выполненной команде:

-А добавляет правило в конец заданной цепочки

-lo интерфейс

-i перед интерфейсом lo разрешает на него все виды трафика

-j указывает роль данного правила, т.е. принять все подключения

Далее командой (указана ниже) выполним настройку правил для пакетов:

iptables -A INPUT -m state —state ESTABLISHED,RELATED -j ACCEPT

Опция -m используется для загрузки модуля state. Модуль state в свою очередь проверяет состояние пакета и определяет является ли он новым-NEW, уже созданным-ESTABLISHED или новым, но связанным-RELATED с уже установленным соединением. Состояние ESTABLISHED указывает на то, что пакет принадлежит уже установленному соединению через которое пакеты идут в обоих направлениях. Признак NEW подразумевает, что пакет открывает новое соединение или пакет принадлежит однонаправленному потоку. Признак RELATED указывает на то что пакет принадлежит уже существующему соединению, но при этом он открывает новое соединение.

Сделаем правильно для порта 22, используемого по умолчанию для SSH:

iptables -A INPUT -p tcp —dport 22 -j ACCEPT

Опираясь на сказанное выше, мы понимаем — это правило добавляется к цепочке INPUT, т.е. ко входящим подключениям и разрешает (пропускает) все пакеты приходящие по протоколу TCP (-p tcp) на порт 22 (-drop 22).

Для открытия порта 80, т.е. для доступа к веб-серверу необходимо сделать следующее правило:

iptables -A INPUT -p tcp —dport 80 -j ACCEPT

iptables -P INPUT DROP

Изменяет наше первое правило для входящих цепей (подключений/пакетов), таким образом трафик блокируется на все входящие подключения. Заранее мы оставили только 80 и 22 порты открытыми.

Далее (по очереди) убираем маршрутизацию трафика и разрешаем весь исходящий:

iptables -P FORWARD DROP

iptables -P OUTPUT ACCEPT

Сохраним правила:

service iptables save

Настройка правил IP Tables для Astersik

Следующим списком команд откроем доступ для портов 5060, 4569, 5038 (Asterisk Manager Interface) и 10000:20000, т.е. для SIP, IAX, AMI, RTP:

iptables -A INPUT -p udp -m udp —dport 5060 -j ACCEPT

iptables -A INPUT -p udp -m udp —dport 10000:20000 -j ACCEPT

iptables -A INPUT -p udp -m udp —dport 4569 -j ACCEPT

iptables -A INPUT -p tcp -m tcp —dport 5038 -j ACCEPT

service iptables save

Настройка IP Tables на CentOS 7 для сервера IP телефонии Asterisk завершена. Следите за обновлениями блога!