Как настроить брандмауэр в centos 8 и управлять им

Как настроить брандмауэр в centos 8 и управлять им

Firewalld: система управления межсетевым экраном.

Если говорить о конфигурации брандмауэра в операционной системе CentOS 8, то в CentOS 8 есть служба брандмауэра, известная как firewalld. Firewalld демон является отличным программным обеспечением для управления брандмауэром для управления и контроля сетевого трафика системы. Он используется несколькими основными дистрибутивами Linux для настройки межсетевого экрана и в качестве системы фильтрации сетевых пакетов.

В этом посте вы узнаете все о firewalld и покажете, как установить и настроить брандмауэр в операционной системе CentOS 8. Мы также попробуем несколько основных команд и выполним некоторые основные настройки брандмауэра для управления сетевым трафиком. Начнем с понимания основных концепций Firewalld.

Отключите нежелательные сервисы в CentOS 7

После установки CentOS 7 рекомендуется перечислить, какие службы работают в системе, выполнив указанные выше команды, отключить и удалить их, чтобы уменьшить векторы атак на вашу систему.

Например, демон Postfix установлен и включен по умолчанию в CentOS 7. Если вашей системе не требуется запуск почтового сервера, лучше всего остановить, отключить и удалить службу postfix, выполнив следующие команды.

В дополнение к командам netstat, ss, lsof или systemctl вы также можете запускать команды ps, top или pstree, чтобы обнаружить и определить, какие нежелательные службы работают в вашей системе, а также отключить или удалить их.

По умолчанию утилита pstree не установлена ​​в CentOS 7. Для ее установки выполните следующую команду.

Установка ifconfig

yum provides ifconfig

или

yum whatprovides ifconfig

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.funet.fi
* epel: www.nic.funet.fi
* extras: ftp.funet.fi
* updates: ftp.funet.fi
base/7/x86_64/filelists_db | 7.2 MB 00:00:01
epel/x86_64/filelists_db | 12 MB 00:00:03
extras/7/x86_64/filelists_db | 224 kB 00:00:00
ssh-products/x86_64/filelists_db | 89 kB 00:00:00
updates/7/x86_64/filelists_db | 3.4 MB 00:00:01
net-tools-2.0-0.25.20131004git.el7.x86_64 : Basic networking tools
Repo : base
Matched from:
Filename : /sbin/ifconfig

ifconfig входит, например, в состав net-tools

Установим net-tools

sudo yum install net-tools

Настройка сети в CentOS 7

CentOS 7 имеет широкий спектр инструментов, которые можно использовать для настройки и управления сетью, от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или route.

Самая простая утилита, которую новичок может использовать для управления и изменения конфигурации сети, — это графическая командная строка nmtui.

Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста своего компьютера и нажмите OK для завершения, как показано на снимке экрана ниже.

Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите правку в правом меню, как показано на скриншоте ниже.

Когда вы перейдете в графический интерфейс, предоставленный утилитой nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к OK, используя клавишу , чтобы сохранить конфигурацию и выйти.

Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите опцию Деактивировать / Активировать, чтобы вывести из эксплуатации и поднять интерфейс с настройками IP, как показано на скриншотах ниже.

Чтобы просмотреть настройки сетевого интерфейса, вы можете проверить содержимое файла интерфейса или выполнить приведенные ниже команды.

Проверьте конфигурацию сети

Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием канала или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.

Проверьте сетевое соединение

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

Чтобы вывести список всех серверов, которые открыли сокеты TCP или UDP в состоянии прослушивания, введите следующие команды. Тем не менее, UDP-сервер не будет перечислять состояние сокетов из-за того, что UDP — это протокол без установления соединения, который только отправляет пакеты по сети и не устанавливает соединения.

Начальная настройка CentOS

Лично я любую настройку системы, будь то centos или другая, после установки начинаю с того, что полностью обновляю систему. Если установочный образ был свежий, либо установка велась по сети, то скорее всего обновлений никаких не будет. Чаще всего они есть, так как установочные образы не всегда регулярно обновляются.

Обновляем систему

# yum update

Для удобства администрирования, я всегда устанавливаю Midnight Commander, или просто mc:

# yum install mc

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

Дальше нам пригодятся сетевые утилиты. В зависимости от набора начальных пакетов, которые вы выбираете при установке системы, у вас будет тот или иной набор сетевых утилит. Вот список тех, к которым привык лично я — ifconfig, netstat, nslookup и некоторые другие. Если она вам нужны, так же как и мне, то предлагаю их установить отдельно, если они еще не стоят. Если вам они особо не нужны и вы ими не пользуетесь, то можете пропустить их установку. Проверим, что у нас имеется в системе на текущий момент

# ifconfig

Если увидите ответ:

-bash: ifconfig: command not found

Значит утилита не установлена. Вместо ifconfig в CentOS теперь утилита ip. Это относится не только к центос. Такая картина почти во всех популярных современных дистрибутивах Linux. Я с давних времен привык к ifconfig, хотя последнее время практически не пользуюсь. Мне всегда нравилось, что в различных дистрибутивах линукс все примерно одинаковое. С помощью ifconfig можно настроить сеть не только в linux, но и в freebsd. Это удобно. А когда в каждом дистрибутиве свой инструмент это не удобно. Хотя сейчас это уже не очень актуально, так как с Freebsd больше не работаю, а утилита ip есть во всех дистрибутивах linux. Тем не менее, если вам нужен ifconfig, то можете установить пакет net-tools, в который она входит:

# yum install net-tools

Чтобы у нас работали команды nslookup или, к примеру, host необходимо установить пакет bind-utils. Если этого не сделать, то на команду:

# nslookup

Будет вывод:

-bash: nslookup: command not found

Так что устанавливаем bind-utils:

# yum install bind-utils

Создание новой службы FirewallD

Сервисы по умолчанию хранятся в каталоге /usr/lib/firewalld/services. Самый простой способ создать новую услугу — скопировать существующий файл службы в каталог /etc/firewalld/services, который является местоположением для созданных пользователем служб и заменить в нем параметры.

Например, чтобы создать определение тестовой службы, мы можем использовать файл службы HTTP:

С помощью текстового редактора откройте скопированный файл:

Измените краткое имя и описание для службы в тегах и . Укажите порты и протоколы, которые необходимо открыть:

Сохраните файл и перезагрузите службу FirewallD:

Теперь вы можете использовать созданную службу в своих зонах так же, как и любую другую.

Firewalld Runtime и постоянные настройки

Firewalld использует два отдельных набора конфигурации, среду выполнения и постоянную конфигурацию.

Конфигурация времени выполнения является фактической рабочей конфигурацией и не сохраняется при перезагрузке. Когда демон firewalld запускается, он загружает постоянную конфигурацию, которая становится конфигурацией времени выполнения.

По умолчанию при внесении изменений в конфигурацию Firewalld с использованием утилиты

, изменения применяются к конфигурации времени выполнения. Чтобы сделать изменения постоянными, добавьте параметр

к команде.

Чтобы применить изменения в обоих наборах конфигурации, вы можете использовать один из следующих двух методов:

  1. Измените конфигурацию времени выполнения и сделайте ее постоянной:

    Измените постоянную конфигурацию и перезагрузите демон firewalld:

Настройка сети в CentOS 7

CentOS 7 имеет широкий спектр инструментов, которые можно использовать для настройки и управления сетью, от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или route.

Самая простая утилита, которую новичок может использовать для управления и изменения конфигурации сети, — это графическая командная строка nmtui.

Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста своего компьютера и нажмите OK для завершения, как показано на снимке экрана ниже.

Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите правку в правом меню, как показано на скриншоте ниже.

Когда вы перейдете в графический интерфейс, предоставленный утилитой nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к OK, используя клавишу , чтобы сохранить конфигурацию и выйти.

Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите опцию Деактивировать / Активировать, чтобы вывести из эксплуатации и поднять интерфейс с настройками IP, как показано на скриншотах ниже.

Чтобы просмотреть настройки сетевого интерфейса, вы можете проверить содержимое файла интерфейса или выполнить приведенные ниже команды.

Проверьте конфигурацию сети

Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием канала или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.

Проверьте сетевое соединение

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

Чтобы вывести список всех серверов, которые открыли сокеты TCP или UDP в состоянии прослушивания, введите следующие команды. Тем не менее, UDP-сервер не будет перечислять состояние сокетов из-за того, что UDP — это протокол без установления соединения, который только отправляет пакеты по сети и не устанавливает соединения.

Настраиваем время

Узнать, какое время настроено на сервере centos можно с помощью команды date:

# date

Чтобы сменить часовой пояс, можете воспользоваться специальной утилитой, которая входит в состав systemd.

# timedatectl set-timezone Europe/Moscow

По факту, эта утилита меняет символьную ссылку. Рассказываю, чтобы вы понимали, как реально меняется часовой пояс.

# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Если вы вручную замените символьную ссылку на другую, точно так же поменяете часовой пояс системы.

Теперь проверим статус службы по обновлению времени через интернет. Для этого можно использовать указанную выше команду timedatectl без параметров.

В CentOS есть утилита для синхронизации времени chrony. В стандартной установке она должна быть установлена в системе, в минимальной ее нет. Если у вас она не стоит, как и у меня, что видно по скриншоту, то устанровим и настроим вручную:

# yum install chrony

Запускаем chrony и добавляем в автозагрузку:

# systemctl start chronyd
# systemctl enable chronyd

Проверяем, нормально ли запустился:

# systemctl status chronyd

Все в порядке, сервис настроен и работает. После запуска он автоматически синхронизирует время. Теперь наши часы будут автоматически синхронизироваться с сервером времени в интернете.

Более подробно об этой теме написано отдельно в моем материале — установка, настройка и синхронизация времени в CentOS.

Настройки правил Firewalld

В firewalld может быть два типа наборов правил :

  • Время выполнения
  • Постоянный

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

Чтобы загрузить недавно добавленные или измененные наборы правил при перезагрузке системы или перезагрузке службы firewalld, нам необходимо добавить их в постоянные конфигурации firewalld.

Чтобы добавить наборы правил и постоянно держать их в конфигурации, просто используйте флаг –permanent в команде:

После добавления наборов правил в постоянные конфигурации перезагрузите firewall-cmd с помощью команды:

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

Используя указанную выше команду, все наборы правил времени выполнения будут добавлены в постоянные настройки брандмауэра.

Настройка сети

Чтобы изучить подключения выполните одну из команд:

  • sudo ls /sys/class/net/
  • ip a s
  • ifconfig
  • nmcli conn show

Например:

nmcli conn show

NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Если какой-то интерфейс, например enp0s3, выключен у него в столбце DEVICE будет стоять —

Обычно неактивный интерфейс выделен серым цветом а активный зелёным.

NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet —
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Включить интерфейс можно командой

nmcli conn up enp0s3

Запуск PF в ОС FreeBSD

Для активации PF во время загрузки в /etc/rc.conf должны быть включены следующие переменные:

pf_enable="YES"                 # Включить PF (загрузить модуль если необходимо)
pf_rules="/etc/pf.conf"         # определение правил для pf
pf_flags=""                     # дополнительные флаги для запуска pfctl
pflog_enable="YES"              # запустить pflogd(8)
pflog_logfile="/var/log/pflog"  # где pflogd должен сохранять протокол
pflog_flags=""                  # дополнительные флаги для запуска pflogd

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

gateway_enable="YES"            # Включить сетевой шлюз

Установка php в CentOS 8

Установка php в Centos 8 сильно упростилась по сравнению с предыдущей версией, потому что в базовом репозитории хранится актуальная версия php 7.2, которой можно пользоваться. Пока нет необходимости подключать сторонние репозитории, так как версия 7.2 вполне свежа и актуальна. Если у вас нет необходимости использовать что-то новее, то можно остановиться на этой версии.

Устанавливаем php в CentOS 8, а так же некоторые популярные модули, которые могут пригодиться для того же phpmyadmin.

# dnf install php php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip

Выполним перезапуск apache:

# systemctl restart httpd

Создадим файл в директории виртуального хоста и проверим работу php:

# mcedit /web/sites/z.serveradmin.ru/www/index.php
<?php phpinfo(); ?>
# chown apache. /web/sites/z.serveradmin.ru/www/index.php

Заходим по адресу http://z.serveradmin.ru/index.php

Вы должны увидеть вывод информации о php. Если что-то не так, возникли какие-то ошибки, смотрите лог ошибок виртуального хоста, php ошибки будут тоже там. Если вам необходима более свежая версия php, то читайте статью по обновлению php 7.2 до 7.4.

Где лежит php.ini

После установки часто возникает вопрос, а где хранятся настройки php? Традиционно они находятся в едином файле настроек. В CentOS php.ini лежит в /etc, прямо в корне. Там можно редактировать глобальные настройки для всех виртуальных хостов. Персональные настройки каждого сайта можно сделать отдельно в файле конфигурации виртуального хоста, который мы сделали раньше. Давайте добавим туда несколько полезных настроек:

# mcedit /etc/httpd/conf.d/z.serveradmin.ru.conf

Добавляем в самый конец, перед </VirtualHost>

php_admin_value date.timezone 'Europe/Moscow'
php_admin_value max_execution_time 60
php_admin_value upload_max_filesize 30M

Для применения настроек нужно сделать restart apache. Если у вас полностью дефолтная установка, как у меня, то скорее всего вы увидите ошибку.

Суть  ошибки в том, что у нас не загружен модуль mod_php. Проверим, где он подключается. Это файл /etc/httpd/conf.modules.d/15-php.conf.

<IfModule !mod_php5.c>
  <IfModule prefork.c>
    LoadModule php7_module modules/libphp7.so
  </IfModule>
</IfModule>

Тут стоит проверка на запуск модуля. Он загружается только, если у нас загружен модуль prefork. Давайте попробуем его загрузить принудительно. Для этого комментируем все строки, кроме основной.

LoadModule php7_module modules/libphp7.so

Проверяем конфигурацию apache.

# apachectl -t

Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.

Получили новую ошибку. Смысл в том, что изначально apache сконфигурирован на работу модуля mpm_event, он подключается в конфиге /etc/httpd/conf.modules.d/00-mpm.conf.

LoadModule mpm_event_module modules/mod_mpm_event.so

Стандартный модуль mod_php скомпилирован с поддержкой модуля mpm_prefork. С другими он работать не будет. Таким образом, чтобы у нас нормально заработал php, нам надо вместо модуля mpm_event подключить модуль mpm_prefork. Для этого в конфиге 00-mpm.conf закомментируем подключение mpm_event_module и раскомментируем prefork.

LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

После этого проверяйте конфигурацию и перезапускайте apache. Все должно заработать. Теперь в выводе phpinfo можно увидеть изменение настроек.

Я подробно разобрал эти ошибки, чтобы у вас было понимание, как все устроено и куда смотреть в случае проблем. Более подробно о работе и выборе mpm модулей читайте в официальной документации apache — http://httpd.apache.org/docs/2.4/mpm.html.

Онлайн курсы по Mikrotik

Если у вас есть желание научиться работать с роутерами микротик и стать специалистом в этой области, рекомендую пройти курсы по программе, основанной на информации из официального курса MikroTik Certified Network Associate. Помимо официальной программы, в курсах будут лабораторные работы, в которых вы на практике сможете проверить и закрепить полученные знания. Все подробности на сайте .

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

  • Знания, ориентированные на практику;
  • Реальные ситуации и задачи;
  • Лучшее из международных программ.

Как использовать токен для аутентификации SSH?¶

Сначала нам необходимо добавить в нашу ключевую пару особый ключ для аутентификации. По умолчанию он не создаётся.

Выведем список доступных ключевых пар:

gpg2 --list-secret-keys

Откроем наш основной ключ в режиме редактирования:

gpg2 --edit-key XXXXXXXXX

Здесь XXXXXXXXX – ID нашего ключа.

Добавим новый подключ:

addkey

В списке атрибутов оставим только Authentication и обязательно отключим Encrypt и Sign.

Выберем созданный подключ и переместим его на токен:

key 2
keytocard

Экспортируем публичный ключ SSH из созданного подключа для аутентификации:

gpg2 --export-ssh-key XXXXXXXXX --output ~/.ssh/id_rsa.pub

Здесь XXXXXXXXX – ID нашего ключа.

Активируем поддержку SSH агента в GnuPG агенте, добавив в конец файла следующую строку:

enable-ssh-support

Настроим автоматический запуск GnuPG агента вместе с системой, создав скрипт :

#!/usr/bin/sh
export GPG_TTY="$(tty)"
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent

Выдадим ему права на выполнение:

chmod +x ~/bin/gpg-agent.sh

Настройка клиента WireGuard в Windows

Для под­клю­че­ния к WireGuard VPN с ком­пью­те­ра Windows, ска­чай­те дис­три­бу­тив с офи­ци­аль­но­го сай­та https://www.wireguard.com/install/#windows-7-8-81-10-2012-2016-2019

Уста­но­ви­те кли­ент WireGuard и запу­сти­те его.

Создай­те файл client.conf ( гене­ри­ру­ет­ся по спо­со­бу, опи­сан­но­му выше при гене­ра­ции qr-кода), нажми­те кноп­ку Import и ука­жи­те дан­ный файл:

Нажми­те кноп­ку ‘Activate’ и соеди­не­ние будет уста­нов­ле­но. В настрой­ках под­клю­че­ния будет содер­жать­ся пуб­лич­ный ключ, порт под­клю­че­ния, назна­чен­ный IP адрес.

Что­бы отклю­чить­ся от WireGuard, нажми­те кноп­ку Deactivate.

Таким обра­зом, мы настро­и­ли VPN-сер­вер WireGuard, кото­рый не усту­па­ет OpenVPN или IpSec, а настра­и­ва­ет­ся гораз­до быст­рее и проще.

Как создать зашифрованный контейнер на диске?¶

При помощи утилиты dd создадим пустой файл для хранения криптоконтейнера размером в 1 ГБ:

sudo dd if=/dev/zero bs=1M count=1024 of=/media/data/foo-bar.dat

Здесь /media/data/foo-bar.dat – полный путь к файлу на диске.

Создадим зашифрованный LUKS контейнер:

sudo cryptsetup --verify-passphrase luksFormat /media/data/foo-bar.dat -c aes-xts-plain64 -s 256 -h sha512

Подтвердим процесс создания посредством набора на клавиатуре YES в верхнем регистре, затем укажем пароль, который будет использоваться для шифрования.

Загрузим контейнер и расшифруем содержимое:

sudo cryptsetup luksOpen /media/data/foo-bar.dat foo-bar

Создадим файловую систему ext4:

sudo mkfs -t ext4 -m 1 -L foo-bar /dev/mapper/foo-bar

Завершим сеанс работы с контейнером:

Проверить текущий статус

Чтобы проверить статус firewalld выполните

sudo firewall-cmd —state

Возможные варианты:

running
not running

Проверить статус с помощью systemctl:

sudo systemctl status -l firewalld

firewalld.service — firewalld — dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-05-12 00:00:01 EEST; 2h 55min ago 1683840473
Docs: man:firewalld(1)
Main PID: 783 (firewalld)
Tasks: 2
CGroup: /system.slice/firewalld.service
└─783 /usr/bin/python2 -Es /usr/sbin/firewalld —nofork —nopid

May 12 00:29:53 localhost.localdomain systemd: Starting firewalld — dynamic firewall daemon…
May 12 00:29:53 localhost.localdomain systemd: Started firewalld — dynamic firewall daemon.
May 12 00:29:53 localhost.localdomain firewalld: WARNING: AllowZoneDrifting is enabled. This is considered an insecure configuration option. It will be removed in a future release. Please consider disabling it now.

Настройка сети CentOS 8 через Nmcli

nmcli — это интерфейс командной строки NetworkManager, он идет по умолчанию в CentOS 8, это новое и более удобное средство по настройке сети в centOS 8. Как я показывал выше вы можете посмотреть список ваших интерфейсов командой ip addr show, у меня это ens33 и ens36. Чтобы получить более подробную информацию о сетевом интерфейсе ens33, вы можете выполнить следующую команду:

nmcli device show ens33

На выходе ужен больше полезных данныж, тут видно и статус подключения, Ip-адрес, шлюз, DNS, маску, MTU:

GENERAL.DEVICE: ens33
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:E1:D0:26
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens33
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS: 192.168.31.31/24
IP4.GATEWAY: —
IP4.ROUTE: dst = 192.168.31.0/24, nh = 0.0.0.0, mt = 100
IP4.DNS: 192.168.31.1
IP4.DNS: 192.168.31.2
IP6.ADDRESS: fe80::ae8e:ebde:2fa6:dea0/64
IP6.GATEWAY: —
IP6.ROUTE: dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE: dst = ff00::/8, nh = ::, mt = 256, table=255

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

  • Ip — поменяем на 192.168.31.10/24
  • Шлюзом сделаю 192.168.31.131
  • DNS 192.168.31.231

Первой командой мы зададим или поменяем текущий IP-адрес.

nmcli con mod ens33 ipv4.address 192.168.31.10/24

далее зададим шлюз:

nmcli con mod ens33 ipv4.gateway 192.168.31.131

Задать DNS

nmcli con mod ens33 ipv4.dns 192.168.31.231

Теперь нужно перезапустить ваш сетевой интерфейс или сеть centOS 8. Сделать, это можно командой:

ifdown ens33 && ifup ens33

Эти изменения также будут сохранены в файле /etc/ sysconfig/network-scripts/ens33.


Если нужно настроить дополнительнвый IP-адрес, то введите

nmcli con mod ens33 +ipv4.addresses 192.168.31.32/24

Добавить дополнительный DNS:

nmcli con mod ens33 +ipv4.dns 8.8.8.8

Как видите утилита nmcli позволяет очень быстро задать статический IP или произвести полную настройку сети в CentOS 8.

Запретить или разрешить трафик между интерфейсами

Предположим, у нас есть два внутренних сетевых интерфейса ens35 и ens36. Мы хотим контролировать трафик между ними.

Запретить

Применяется в случаях, когда на сервере включен FORWARD, но необходимо блокировать трафик между определенными сегменами сети.

Вводим следующие команды:

Разрешить

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

Для разрешения команды, практически, аналогичные:

Разрешить трафик в одном направлении

В предыдущих примерах мы разрешали трафик в обоих направлениях. Если необходимо сделать так, чтобы только сеть ens35 видела сеть ens36, вводим одну команду:

Отключить SELinux

Отключаем SELinux. Его использование и настройка отдельный разговор. Сейчас я не буду этим заниматься. Так что отключаем:

# mcedit /etc/sysconfig/selinux

меняем значение

SELINUX=disabled

Чтобы изменения вступили в силу, можно перезагрузиться:

# reboot

А если хотите без перезагрузки применить отключение SELinux, то выполните команду:

# setenforce 0

Постоянно получаю очень много критики на тему отключения SELinux. Я знаю, как он работает, умею его настраивать. Это реально не очень сложно и освоить не трудно. Это мой осознанный выбор, хотя иногда я его настраиваю. Мой формат работы с системой таков, что SELinux мне чаще всего не нужен, поэтому я не трачу на него время и в базовой настройке centos отключаю. Безопасность системы — комплексная работа, особенно в современном мире web разработки, где правят бал микросервисы и контейнеры. SELinux нишевый инструмент, которые нужен не всегда и не везде. Поэтому в данном статье ему не место. Кому нужно, будет отдельно включать SELinux и настраивать.

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: