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 с использованием утилиты
, изменения применяются к конфигурации времени выполнения. Чтобы сделать изменения постоянными, добавьте параметр
к команде.
Чтобы применить изменения в обоих наборах конфигурации, вы можете использовать один из следующих двух методов:
-
Измените конфигурацию времени выполнения и сделайте ее постоянной:
Измените постоянную конфигурацию и перезагрузите демон 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 и настраивать.