Подтвердить что ты не робот

Как я могу использовать iptables для centos 7?

Я установил CentOS 7 с минимальной конфигурацией (инструменты os + dev). Я пытаюсь открыть 80 портов для службы httpd, но что-то не так с моим сервисом iptables... что с ним не так? Что я делаю не так?

# ifconfig/sbin/service iptables save
bash: ifconfig/sbin/service: No such file or directory


# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# sudo service iptables status
Redirecting to /bin/systemctl status  iptables.service
iptables.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

# /sbin/service iptables save
The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.

# sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service
Failed to issue method call: Unit iptables.service failed to load: No such file or directory.
4b9b3361

Ответ 1

С RHEL 7/CentOS 7, firewalld был введен для управления iptables. IMHO, firewalld больше подходит для рабочих станций, чем для серверных сред.

Можно вернуться к более классической настройке iptables. Во-первых, остановите и замаскируйте firewalld-сервис:

systemctl stop firewalld
systemctl mask firewalld

Затем установите пакет iptables-services:

yum install iptables-services

Включить службу во время загрузки:

systemctl enable iptables

Управление услугой

systemctl [stop|start|restart] iptables

Сохранение правил брандмауэра может быть выполнено следующим образом:

service iptables save

или

/usr/libexec/iptables/iptables.init save

Ответ 2

RHEL и CentOS 7 используют firewall-cmd вместо iptables. Вы должны использовать такую ​​команду:

# add ssh port as permanent opened port
firewall-cmd --zone=public --add-port=22/tcp --permanent

Затем вы можете перезагрузить правила, чтобы убедиться, что все в порядке

firewall-cmd --reload

Это лучше, чем использование iptable-save, espacially, если вы планируете использовать контейнеры lxc или docker. Запуск сервисов докеров приведет к появлению некоторых правил, которые подскажут команда iptable-save. Если вы сохраните результат, у вас будет много правил, которые НЕ должны быть сохранены. Поскольку контейнеры докеров могут изменить их ip-адреса при следующей перезагрузке.

Брандмауэр-cmd с постоянной опцией лучше для этого.

Отметьте "man firewall-cmd" или проверить официальные firewalld docs, чтобы просмотреть параметры. Существует множество опций для проверки зон, конфигурации, того, как это работает... справочная страница действительно завершена.

Я настоятельно рекомендую не использовать iptables-service, поскольку Centos 7

Ответ 3

У меня возникла проблема, что перезагрузка не запускает iptables.

Это зафиксировало это:

yum install iptables-services
systemctl mask firewalld
systemctl enable iptables
systemctl enable ip6tables
systemctl stop firewalld
systemctl start iptables
systemctl start ip6tables

Ответ 4

Попробуйте выполнить следующую команду iptables-save.

Ответ 5

Я изменил изменение файла /etc/sysconfig/ip6tables-config:

IP6TABLES_SAVE_ON_STOP="no"

To:

IP6TABLES_SAVE_ON_STOP="yes"

И это:

IP6TABLES_SAVE_ON_RESTART="no"

To:

IP6TABLES_SAVE_ON_RESTART="yes"

Казалось, что сохранить изменения, которые я сделал с помощью команд iptables, перезагрузившись.

Ответ 6

Поместите конфигурацию IPtables в традиционный файл, и она будет загружена после загрузки:

/и т.д./sysconfig/Iptables

Ответ 7

И чтобы добавить, вы также сможете сделать то же самое для ip6tables после запуска команды systemctl mask firewalld:

    systemctl start ip6tables.service
    systemctl enable ip6tables.service

Ответ 8

Если вы это сделаете, и вы используете fail2ban, вам необходимо включить соответствующие фильтры/действия:

Поместите следующие строки в /etc/fail2ban/jail.d/sshd.local

[ssh-iptables]
enabled  = true
filter   = sshd
action   = iptables[name=SSH, port=ssh, protocol=tcp]
logpath  = /var/log/secure
maxretry = 5
bantime = 86400

Включить и запустить fail2ban:

systemctl enable fail2ban
systemctl start fail2ban

Ссылка: http://blog.iopsl.com/fail2ban-on-centos-7-to-protect-ssh-part-ii/

Ответ 9

В прошлом месяце я попытался настроить iptables на контейнере VM LXC, но каждый раз после перезагрузки конфигурация iptables не была автоматически загружена.

Единственный способ заставить меня работать, выполнив следующую команду:

yum -y установить iptables-services; systemctl отключить firewalld; systemctl mask firewalld; перезапуск службы iptables; service iptables save