В CentOS7 по умолчанию для работы с сетевым экраном используется Firewalld. Он представляет собой некую надстройку над Iptables. Судя по описанию, он обладает достаточно широким функционалом и удобством использования.
Но, к примеру, я привык работать напрямую с правилами Iptables, просто мне понятнее, когда я сам пишу все правила, а не когда они генерируются автоматически. Но это вопрос удобства для каждого. Не могу сказать ни за ни против использования Firewalld.
Поэтому, после установки дистрибутива CentOS7 я всегда отключаю Firewalld и пользуюсь только iptables. Все просто.
Останавливаем службу Firewalld:
[root@centos7x64 ~]# systemctl stop firewalld
[root@centos7x64 ~]#
Отключаем ее:
[root@centos7x64 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Ставим службу Iptables:
[root@centos7x64 sysconfig]# yum -y install iptables-services
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.maxus.pro
* epel: ftp.colocall.net
* extras: dedic.sh
* updates: mirror.maxus.pro
* webtatic: uk.repo.webtatic.com
Resolving Dependencies
—> Running transaction check
—> Package iptables-services.x86_64 0:1.4.21-18.2.el7_4 will be installed
—> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================
Package Arch Version Repository Size
============================================================================================================================
Installing:
iptables-services x86_64 1.4.21-18.2.el7_4 updates 51 k
Transaction Summary
============================================================================================================================
Install 1 Package
Total download size: 51 k
Installed size: 25 k
Downloading packages:
iptables-services-1.4.21-18.2.el7_4.x86_64.rpm | 51 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : iptables-services-1.4.21-18.2.el7_4.x86_64 1/1
Verifying : iptables-services-1.4.21-18.2.el7_4.x86_64 1/1
Installed:
iptables-services.x86_64 0:1.4.21-18.2.el7_4
Complete!
[root@centos7x64 sysconfig]#
После установки будет создан файл с правилами Iptables /etc/sysconfig/iptables. Рекомендую заглянуть в него перед запуском службы Iptables и добавить необходимые правила. По умолчанию, там есть разрешающее правило для порта 22 TCP(SSH), но если у вас демон SSHD слушает на другом порту, то вам следует изменить правило, либо добавить новое, иначе можно потерять связь с сервером после запуска Iptables, так как последним правилом для входящих соединений идет запрет всего, что не разрешено выше(-A INPUT -j REJECT —reject-with icmp-host-prohibited).
Вот дефолтное содержимое файла:
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state —state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state —state NEW -m tcp —dport 22 -j ACCEPT
-A INPUT -j REJECT —reject-with icmp-host-prohibited
-A FORWARD -j REJECT —reject-with icmp-host-prohibited
COMMIT
Теперь можно запустить Iptables:
[root@centos7x64 sysconfig]# systemctl start iptables
[root@centos7x64 sysconfig]#
Те, кто пользуется IPv6 также могут запустить службу для правил IPv6 командами systemctl enable ip6tables и systemctl start ip6tables
Собственно, все. После перезапуска сервера служба будет брать правила из вышеуказанного конфигурационного файла.
После изменений файла нужно будет перезапустить службу, чтобы применить правила:
[root@centos7x64 sysconfig]# systemctl restart iptables
[root@centos7x64 sysconfig]#
Если вы добавляете правила не через конфиг, а «на лету», то, соответственно, перезапускать службу не нужно, но не забудьте сохранить изменения с помощью iptables-save.
Подробнее об Iptables рекомендую читать на сайте проекта Netfiler: http://www.netfilter.org/projects/iptables/index.html
Ну, а если вы все-таки планируете использовать Firewalld, то все о нем можно найти на его сайте: http://www.firewalld.org/