Как проверить или изменить настройки брандмауэра вашего сервера

Брандмауэр (файрвол) обеспечивает базовый уровень безопасности вашему виртуальному серверу путем разрешения или запрета прохождения разного вида трафика на сервер. Вам следует проверить и, если понадобится, произвести такие настройки, которые разрешат трафик только на необходимые вам порты и запретят весь остальной, ненужный вам, трафик.

В руководстве для примера используется VPS с ОС Centos 7.8. О том, как выбрать и установить операционную систему на виртуальный сервер, читайте в нашем руководстве «Как произвести первоначальную настройку виртуального сервера: выбор операционной системы».

Мы предполагаем, что вы уже заранее создали обычного пользователя на вашем сервере и разрешили ему временно получать более высокий уровень привилегий с помощью команды sudo, а также настроили SSH-сервер.

В качестве терминала мы использовали командную строку Windows. В операционных системах на базе Linux и в macOS SSH-клиент поставляется по умолчанию. В Windows 10 также есть клиент SSH (возможно, понадобится его заранее включить), можно также установить сторонние клиенты, например PuTTY.

Команды службы firewalld

Centos 7 по умолчанию использует службу (демона) firewalld для управления брандмауэром, его настройки довольно безопасны и не требуют немедленных изменений.

Однако обратите внимание, что по умолчанию будет открыт доступ только на порт TCP/22 (дефолтный для SSH), все другие сервисы (например, если вы захотите поднять веб-сервер) не будут работать, пока вы не настроите firewalld соответствующим образом.

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

  1. Проверка статуса:

    systemctl status firewalld

    [root@servername ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Пн 2021-10-25 15:12:27 GMT; 2 days ago Docs: man:firewalld(1) Main PID: 505 (firewalld) CGroup: /system.slice/firewalld.service └─505 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid [root@servername ~]#

    Вывод команды показывает, что служба активна: active (running).

  2. Проверка зоны:

    sudo firewall-cmd --get-active-zones

    В firewalld используется понятие “Зоны” для определения уровня доверия сетевому соединению. Всего имеется 9 зон, от наименьшего к высшему уровням доверия: Drop, Block, Public, External, Internal, DMZ, Work, Home, Trusted.

    [user@servername]$ sudo firewall-cmd --get-active-zones [sudo] пароль для user: public interfaces: eth0 [user@servername]$

    Из вывода видно, что дефолтная зона в данном случае — public, в нее включен сетевой интерфейс eth0. Эта зона используется для общедоступных мест, по умолчанию разрешены только конкретные входящие соединения (SSH, DHCPv6 client).

  3. Изменение зоны:

    firewall-cmd --zone=trusted --change-interface=eth0

    С помощью этой команды можно переместить интерфейс eth0 в зону trusted.

    Внимание!

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

  4. Проверка разрешенных сервисов и правил для зоны:

    firewall-cmd --list-all

    [root@servername ~]# firewall-cmd --permanent --list-all public target: default icmp-block-inversion: no Interfaces: eth0 sources: services: dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: [root@servername ~]#

    Вывод команды показывает, что в данный момент разрешен только сервис SSH и DHCPv6 client.

  5. Получение списка всех сервисов, которые можно включить:

    firewall-cmd --get-services

    [root@servername ~]# firewall-cmd --get-services RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server [root@servername ~]#

  6. Добавление сервиса:

    firewall-cmd --permanent --add-service=http

    Эта команда добавит сервис http и разрешит входящий TCP-трафик на 80 порту.

  7. Удаление сервиса:

    firewall-cmd --permanent --remove-service=http

  8. Сохранение изменений:

    firewall-cmd --reload

  9. Остановка и запуск firewalld:

    systemctl stop firewalld

    systemctl start firewalld

Для реализации основных услуг и функций нашего сайта, а также для сбора данных о том, как посетители взаимодействуют с нашими сайтом, продуктами и услугами, мы применяем различные инструменты, включая файлы cookie. Нажимая «Принять», вы соглашаетесь с текущими правилами и условиями использования сайта и даете разрешение на использование этих данных. В противном случае, пожалуйста, покиньте сайт.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: