пятница, 29 сентября 2023 г.

Настройка сети (netplan) в Ubuntu 18.04/20.04/23.04

NetPlan — это инструмент для управления настройками сети, представленный в Ubuntu начиная с версии 17.10 и выше.

Этот инструмент заменяет файл статических интерфейсов /etc/network/interfaces, который ранее использовался для настройки сетевых интерфейсов в Ubuntu. Теперь нужно использовать /etc/netplan/*.yaml для ваших изменений в настройках сетевых интерфейсов.


Проверка конфигурации:
sudo netplan generate

Для DHCP:

network:
 version: 2
 ethernets:
   enp4s0:
     dhcp4: true
#      addresses: [192.168.89.222/24]
#      gateway4: 192.168.89.1
#      nameservers:
#        addresses: [192.168.89.1, 1.1.1.1]


вторник, 26 сентября 2023 г.

Настройка фаервола в Ubuntu с помощью утилиты UFW

 UFW (Uncomplicated Firewall) — удобный интерфейс для управления политиками безопасности межсетевого экрана. Наши серверы постоянно подвергаются различным атакам или сканируются в поиске уязвимостей. Как только эти уязвимости находятся, мы рискуем стать частью ботнета, раскрыть конфиденциальные данные или потерять деньги из-за сбоев в работе веб-приложений. Одной из первых мер по снижению рисков безопасности является грамотная настройка правил межсетевого экрана. В нашем руководстве мы рассмотрим основные команды и правила работы с утилитой UFW.

Предварительные требования

  1. Для начала работы с UFW вам потребуется суперпользователь( возможность исполнения команд под sudo). 
  2. Утилита UFW предустановлена в системе. Если по какой-то причине она была отсутствует, вы можете установить ее с помощью команды:
sudo apt-get install ufw

Проверка правил и текущего состояния UFW

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

sudo ufw status verbose

По умолчанию UFW отключен, так что вы должны увидеть что-то вроде этого:

Status: inactive

Если UFW включен, то в консоли будут перечисляться заданные правила. Например, если firewall настроен таким образом — SSH (порт 22) соединение из любой точки мира, консоль может выглядеть следующим образом:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip

 

To                         Action      From

--                         ------      ----

22                         ALLOW IN    Anywhere

22 (v6)                    ALLOW IN    Anywhere (v6)

Так вы всегда можете узнать как настроен фаервол. 

Внимание! Проведите начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт). В ином случае вы рискуете потерять доступ к серверу.

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

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


Cоответствующие правила фаервола прописываются так:

sudo ufw default deny incoming

sudo ufw default allow outgoing

Добавление правила для SSH-соединений

 Чтобы разрешить входящие SSH-соединения, выполните команду:

sudo ufw allow ssh

SSH демон прослушивает 22 порт. UFW знает об именах распространенных служб (ssh, sftp, http, https), поэтому вы можете использовать их вместо номера порта.

Если ваш SSH-демон использует другой порт, вам необходимо указать его в явном виде, например:

sudo ufw allow 2222

Теперь, когда ваш межсетевой экран настроен, можете включать его.

Запуск UFW

Чтобы включить UFW, используйте следующую команду:

sudo ufw enable

Вы получите похожее предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? 

Это означает, что запуск этого сервиса может разорвать текущее ssh соединение.

Но, так как мы его уже добавили ssh в правила, этого не произойдет. Поэтому просто нажмите (y).

Добавление правил для других подключений


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

HTTP (80 порт)

Для работы не зашифрованных веб-серверов используйте следующую команду:

sudo ufw allow http

или:

sudo ufw allow 80

HTTPS (443 порт)

То же самое, что и в предыдущем примере, но для зашифрованных соединений:

sudo ufw allow https

или:

sudo ufw allow 443

FTP (21 порт)

Данный порт используется для незашифрованной передачи файлов:

sudo ufw allow ftp

или:

sudo ufw allow 21/tcp

Добавление диапазонов портов

sudo ufw allow 3000:3100

Также вы можете указывать конкретный протокол:

sudo ufw allow 3000:3100/tcp
sudo ufw allow 3000:3100/udp

Добавление IP-адресов

Вs можете указать IP-адрес, которому будет разрешен доступ.

sudo ufw allow from 123.45.67.89

В приведенном примере указанному адресу разрешается доступ ко всем портам сервера.

Если же вы хотите указать доступ к конкретному порту, воспользуйтесь командой вида:

sudo ufw allow from 123.45.67.89 to any port 22

Аналогичным образом вы можете работать с диапазонами IP-адресов:

sudo ufw allow from 123.45.67.89/24

sudo ufw allow from 123.45.67.89/24 to any port 22

Ограничение подключений

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

sudo ufw deny http

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

sudo ufw deny from 123.45.67.89

Удаление правил

Существует два способа удаления правил. Первый — по номеру правила. Выполните команду:

sudo ufw status numbered
Status: active




     To                         Action      From

     --                         ------      ----

[ 1] 22                         ALLOW IN    Anywhere

[ 2] 80                         ALLOW IN    Anywhere

[ 3] 22 (v6)                    ALLOW IN    Anywhere (v6)

[ 4] 80 (v6)                    ALLOW IN    Anywhere (v6)

После этого выполните команду ufw delete и укажите номер правила, которое следует удалить:

sudo ufw delete 2

Второй способ заключается в том, что после команды ufw delete используется фактическое правило, например:

sudo ufw delete allow http

или:

sudo ufw delete allow 80

Отключение UFW

Отключить UFW можно при помощи команды:

sudo ufw disable

В результате ее выполнения все созданные ранее правила утратят силу.

Сброс правил

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

sudo ufw reset

В результате ее выполнения все правила будут отключены и удалены.

Логи

В Ufw есть опция сохранения логов — журнал событий. Для запуска, используйте команду:

sudo ufw logging on

Ufw поддерживает нескоько уровней логгирования:

  • off — отключен.
  • low — регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам.
  • medium — все то, что при значении low. Плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения. Все записи ведутся с ограничением скорости.
  • high — работает также как и medium. Плюс все пакеты с ограничением скорости.
  • full — также как и high, но без ограниения скорости. 

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

 sudo ufw logging high

По умолчанию используется уровень low.

Для просмотра файлов относящихся с логам ufw используйте команду:

ls /var/log/ufw*

пятница, 22 сентября 2023 г.

среда, 20 сентября 2023 г.

Как увеличить время ожидания SSH-соединения в Linux

На сервере перейдите в файл конфигурации /etc/sshsshd_config.

sudo vi /etc/ssh/sshd_config

Например, допустим, вы определили свои параметры, как показано:

ClientAliveInterval 1200

ClientAliveCountMax 3

Значение времени ожидания будет 1200 секунд * 3 = 3600 секунд. Это эквивалентно 1 часу, что означает, что ваш ssh-сеанс будет работать в течение простоя в течение 1 часа без сброса.

После этого перезагрузите демон OpenSSH, чтобы изменения вступили в силу.

$ sudo systemctl reload sshd

вторник, 19 сентября 2023 г.

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

 

Статический IP-адрес в CentOS 7

Конфигурация сетевого интерфейса хранится в /etc/sysconfig/network-scripts в соответствующем файле с префиксом ifcfg (там же конфигурационные файлы других интерфейсов). Посмотрим на него.

# cat /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.49"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

Что можно понять из этих характеристик? Расскажем о каждом параметре:

  • NAME — имя сетевого адаптера, оно такое же, как и имя в операционной системе.
  • ONBOOT — указание на тип запуска сетевого интерфейса. При текущих настройках сетевой интерфейс запускается автоматически. В случае со значением no интерфейс нужно будет запускать вручную.
  • BOOTPROTO — указание на тип назначения IP-адреса. В текущих настройках static, но возможны опции dhcp, none или пустое значение.
  • HWADDR — переменная, хранящая MAC-адрес.
  • IPADDR — установленный на интерфейсе IP-адрес.
  • NETMASK — установленная на интерфейсе маска подсети.
  • GATEWAY — указание на шлюз.
  • TYPE — тип интерфейса. В нашем случае — Ethernet.

Отредактируем значение поля IPADDR:

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.50"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

После внесения изменений перезагрузим сетевой сервис. Иначе изменения применятся только после рестарта сервера.

# systemctl restart network

После выполнения этой команды сетевое подключение отключится. Снова выполняем подключение по SSH по новому IP-адресу и проверяем новые настройки:

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.50/24 brd 82.148.21.255 scope global noprefixroute eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

Статический IP-адрес настроен, сервер доступен по новому адресу.


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

Чтобы настроить DNS, изменим /etc/sysconfig/network-scripts/ifcfg-eno1 и пропишем туда переменную DNS1 (если нужно добавить дополнительные DNS-серверы, допускается добавление переменных DNS2DNS3 и т.д.)

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.50"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet
DNS1="82.148.21.1"

Следом перезагрузим сеть:

# systemctl restart network

По итогам перезагрузки адрес DNS-сервера должен автоматически оказаться в /etc/resolv.conf:

# grep "nameserver" /etc/resolv.conf
nameserver ”82.148.21.1”

Наличие в файле заданного DNS-сервера говорит о корректности его настройки.


Перезапуск сетевого сервиса в CentOS 7

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

# systemctl restart network

После изменения сетевых настроек и для вступления их в силу необходимо выполнить эту команду.


Изменение имени сервера (hostname) в CentOS 7

Отредактируем /etc/hostname:

# vi /etc/hostname
Curie

Сверим примененные настройки:

# hostname
Curie

Имя хоста изменено.


Настройки шлюза в CentOS 7

За соответствующие настройки отвечает переменная GATEWAY в /etc/sysconfig/network-scripts/ifcfg-eno1. Чтобы изменить адрес шлюза, достаточно изменить значение этой переменной и перезагрузить сетевую службу:

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR="82.148.21.49"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet
# systemctl restart network

Вызов команды netstat -nr вернет актуальный адрес используемого шлюза:

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         82.148.21.1     0.0.0.0         UG        0 0          0 eno1
82.148.21.0     0.0.0.0         255.255.255.0   U         0 0          0 eno1
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eno1

Таким образом мы задали адрес сетевого шлюза.


Настройки сети из консоли

Кроме модификации файлов с конфигурацией, настройки сети могут быть изменены командами в консоли. Консольные настройки выполняются для проведения тестов и будут работать только до перезагрузки системы. Для выполнения всех консольных сетевых настроек используется уже известная команда ip address (или ее сокращенная версия ip a).

Применим к eno2 новый IP-адрес и проверим:

# ip a add 10.128.106.173 dev eno2
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff
    inet 10.128.106.173/32 scope global eno2
       valid_lft forever preferred_lft forever

Изменим маску подсети и снова проверим:

# ip a change 10.128.106.173/24 dev eno2
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff
    inet 10.128.106.173/32 scope global eno2
       valid_lft forever preferred_lft forever
    inet 10.128.106.173/24 scope global eno2
       valid_lft forever preferred_lft forever

Добавим маршрут по умолчанию:

# ip r add default via 10.128.106.1

Удалим маршрут по умолчанию:

# ip r del default via 10.128.106.1

Удалим привязанный ранее IP-адрес и проверим:

# ip a del 10.128.106.173/32 dev eno2
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet6 fe80::ae1f:6bff:fef6:3b7e/64 scope link 
       valid_lft forever preferred_lft forever
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

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


Исключение IPv6 в CentOS 7

IPv6-адресация на текущий момент используется редко, хотя и было много разговоров об исчерпании емкостей адресов IPv4. Отключение IPv6 помогает экономить ресурсы и избежать путаницы. В этом разделе расскажем, как отключить на сервере поддержку этого протокола.

Начнем настройку с изменений в файле /etc/sysctl.conf. Внесем в него две дополнительных строки:

# vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Следующий шаг — применение конфигурационных изменений:

# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

В /etc/sysconfig/network прибавим 2 строки:

# vi /etc/sysconfig/network
NETWORKING_IPV6=no
IPV6INIT=no

В конфигурационный файл /etc/default/grub к концу строки GRUB_CMDLINE_LINUX нужно добавить ipv6.disable=1

# vi /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.md.uuid=f93e0283:1b54bb6c:881c4df1:a3b5cf93 rd.lvm.lv=vg0/vol-root rd.md.uuid=b3ba35a4:4f4150fb:0d1464e1:d5ab4bff rd.lvm.lv=vg0/swap nodmraid nomodeset rhgb quiet ipv6.disable=1"
GRUB_DISABLE_RECOVERY="true"

После выполнения изменений нужно сохранить файл и обновить GRUB:

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-1127.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1127.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-8586236d5c0348d98a7b4f186d904d62
Found initrd image: /boot/initramfs-0-rescue-8586236d5c0348d98a7b4f186d904d62.img
done

Далее — перезагрузка сервера:

# reboot

После перезагрузки проверим конфигурацию — значения с префиксом inet6 должны пропасть:

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet 10.128.106.173/24 brd 10.128.106.255 scope global noprefixroute dynamic eno1
       valid_lft 3419sec preferred_lft 3419sec
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

Протокол IPv6 успешно отключен.


Несколько IP-адресов на одном интерфейсе в CentOS 7

Для настройки нескольких IP-адресов на одном интерфейсе внесем изменения в /etc/sysconfig/network-scripts/ifcfg-eno1, добавив переменные IPADDR1 и IPADDR2 и удалив IPADDR:

# vi /etc/sysconfig/network-scripts/ifcfg-eno1 
NAME="eno1"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR1="82.148.21.49"
IPADDR2="82.148.21.50"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

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

# systemctl restart network

Еще один IP-адрес может понадобиться для поддержки нескольких сервисов в рамках одного сервера.


Настройки нескольких сетевых интерфейсов в CentOS 7

Команда ip a вернет состояние всех имеющихся сетевых интерфейсов:

# ip address
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7e brd ff:ff:ff:ff:ff:ff
    inet 82.148.21.49/24 brd 82.148.21.255 scope global eno1
       valid_lft forever preferred_lft forever
    inet 10.128.106.173/24 brd 10.128.106.255 scope global noprefixroute dynamic eno1
       valid_lft 3419sec preferred_lft 3419sec
3: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether ac:1f:6b:f6:3b:7f brd ff:ff:ff:ff:ff:ff

В этом выводе можно видеть три интерфейса: служебный lo, а также интерфейсы eno1 и eno2.

В /etc/sysconfig/network-scripts в соответствующих файлах хранится конфигурация каждого интерфейса:

# ls /etc/sysconfig/network-scripts | grep 'ifcfg-eno\|ifcfg-lo'
ifcfg-eno1
ifcfg-eno2
ifcfg-lo

Для управления каждым из них вносятся значения переменных в соответствующий конфигурационный файл:

# cat /etc/sysconfig/network-scripts/ifcfg-eno2 
NAME="eno2"
ONBOOT=yes
BOOTPROTO=static
HWADDR="ac:1f:6b:f6:3b:7e"
IPADDR1="82.148.21.51"
IPADDR2="82.148.21.52"
NETMASK="255.255.255.0"
GATEWAY="82.148.21.1"
TYPE=Ethernet

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

# cp /etc/sysconfig/network-scripts/ifcfg-eno2 /etc/sysconfig/network-scripts/ifcfg-eno3
# vi /etc/sysconfig/network-scripts/ifcfg-eno3
# systemctl restart network

Так мы создали дополнительный интерфейс.


Настройки интерфейсов в CentOS 7 через Network Manager (утилиты nmtui и nmcli)

Еще одним способом настроить сеть в CentOS 7 является настройка через утилиту Network Manager. Она может выполняться в GUI и через CLI. Для вызова графического интерфейса необходимо выполнить команду nmtui. Откроется псевдо-GUI интерфейс, в котором можно выполнять те же настройки, что и в командной строке:

Network Manager через CLI управляется при помощи утилиты nmcli. Ниже приведены команды для изменения IP-адреса, шлюза и DNS-сервера для сетевого интерфейса eno1:

# nmcli con mod eno1 ipv4.addresses 82.148.21.49/24
# nmcli con mod eno1 ipv4.gateway 82.148.21.1
# nmcli con mod eno1 ipv4.dns "8.8.8.8

Утилита Network Manager имеет широкий функционал и может использоваться как полная замена штатным инструментам для настройки сети в CentOS 7.