 | Конфигурирование iptables на Centos 7
|
В данной статье описаны базовые правила конфигурирования iptables на операционной системе CentOS 7.
iptables - программное обеспечение позволяющее модифицировать систему фильтрации пакетов на уровне ядра Linux
iptables позволяет создавать правила разрешающие или запрещающие сетевой трафик сервисов Linux (например http, smtp, ssh и т.д.).
Правила объединяются в группы. Существует предопределенный перечень групп:
INPUT - входящий трафик
FORWARD - переадресация пакетов
OUTPUT - исходящий трафик
iptables входит практически во все дистрибутивы Linux. Для настройки iptables требуются права администратора.
1. Добавление правил iptables.
Для проверки существующи правил iptables выполним команду:
#iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
в данном случае нет настроенных правил.
- создадим правило для доступа всего трафика на локальном интерфейсу loopback
#iptables -A INPUT -i lo -j ACCEPT
- правило разрешает получение информации о состояниях соединений
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
- правило разрешает входящее tcp подключение на порт 8080
#iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
- отбрасывание всех пакетов, которые не проходят по правилам выше
#iptables -A INPUT -j DROP
Проверка состояние iptabes
Now if you type the iptables -L command, you should see the following output:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:8080
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
2. Вставка правил iptables.
Для добавления правил iptables можно использовать опцию -A , но при это правила будут добавляться в конец списка правил группы, а т.к. правила обрабатываются по порядку, то это может привнести не запланированный результат.
Опция -I вставлять правила в нужную позицию списка правил. Таким образом правила будут обрабатываться так как необходимо.
Приведенный пример вставляет правило в четвертую позицию списка
#iptables -I INPUT 4 -p tcp -m tcp --dport 443 -j ACCEPT
правило разрешает прохождение https трафика.
получение списка правил
#iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:7822
ACCEPT tcp -- anywhere anywhere tcp dpt:https
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Для получения списка правил с их порадковыми номерами - выполним команду:
#iptables -L --line-numbers
3. Ограничение доступа по ip адресам.
Кроме ограничения доступа по портам сервисов есть возможность ограничение доступа по исходным и целевым ip адресам.
Например правило ниже предоставляет доступ c исходящих ip адресов на порт 23
#iptables -I INPUT rulenum -s xxx.xxx.xxx.xxx -p tcp -m tcp --dport 23 -j DROP
где xxx.xxx.xxx.xxx - ip адрес
Правило запрещает весь трафик с указанных ip адресов
#iptables -I INPUT rulenum -s xxx.xxx.xxx.xxx -j DROP
4. Удаление правил.
Для удаления правил используется опция -D. Для использования опции требуется номер правила.
Пример использования
#iptables -D INPUT 5
Для удаления всех правил используется опция -F
#iptables -F
5. Сохранение правил.
Если не предпринять дополнительных действий, то после перезагрузки, заданные правила будут потеряны. Существует специальная команда для сохранения правил после перезагрузки.
#systemctl save iptables
Детальное руководство по использованию iptables можно получить по команде
#man iptables

 (online network tools and utilities) |
|