Первым делом установим Midnight Commander, с ним проще настраивать
sudo dnf install mc
Далее настройка сети
устанавливаем NetworkManager
sudo dnf install NetworkManager
systemctl enable NetworkManager
systemctl start NetworkManager
смотрим наши сетевые интерфейсы
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:cb:58:58 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.10/24 brd 192.168.0.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 2406:7400:bf:e32d:db66:4e78:fa1f:d781/64 scope global dynamic noprefixroute
valid_lft 299sec preferred_lft 119sec
inet6 fe80::34ec:d538:4198:41ec/64 scope link noprefixroute
valid_lft forever preferred_lft forever
возвращаем человеческое название интерфейсу с enp0s3 на eth0
mcedit /etc/default/grub
ищем и меняем строчку в которую добавляется net.ifnames=0
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap"
на
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/cs-swap rd.lvm.lv=cs/root rd.lvm.lv=cs/swap net.ifnames=0"
далее обновляем загрузчик
grub2-mkconfig -o /boot/grub2/grub.cfg
необходимо добавить настройки в конфиги сетевых интерфейсов
mcedit /etc/sysconfig/network-scripts/ifcfg-eth0
и добавляем или редактируем следующие строки
если ваша машина получает IP-адрес от DHCP-сервера, то:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
если в вашей инфраструктуре нет DHCP-сервера, вам может потребоваться настроить статический IP-адрес для сетевого интерфейса вручную.
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth0"
DEVICE="eth0"
ONBOOT="yes"
IPADDR="192.168.0.1"
PREFIX="24"
GATEWAY="192.168.0.1"
DNS1="192.168.0.1"
DNS2="8.8.8.8"
IPV6_PRIVACY="no"
выделенные строки изменить самостоятельно и внести IPADDR (ip адрес), PREFIX (данный префикс равен маске 255.255.255.0), GATEWAY (ip шлюза), DNS (адрес DNS сервера)
если у вас два сетевых интерфейса и сервер будет использоваться как шлюз с DHCP то добавляем по аналогии настройки и для второго
mcedit /etc/sysconfig/network-scripts/ifcfg-eth1
и добавляем туда следующие строки
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
NAME="eth1"
DEVICE="eth1"
ONBOOT="yes"
IPADDR="192.168.1.1"
PREFIX="24"
IPV6_PRIVACY="no"
обратите внимание шлюз и днс сервера в таком случае прописывать не надо
перезагружаем систему
reboot
Настройка Интернет шлюза на CentOS 9
Все что нужно настроить — включить перенаправления на уровне ядра. Для этого открываем следующий файл:
mcedit /etc/sysctl.conf
и добавляем в него следующую строку:
net.ipv4.ip_forward=1
после применяем настройку:
sysctl -p /etc/sysctl.conf
В случае с единым сетевым интерфейсом больше ничего делать не потребуется — CentOS начнет работать как Интернет-шлюз.
В случае с несколькими сетевыми адаптерами, настраиваем сетевой экран.
Настройка брандмауэра FIREWALL
Настройка выполняется для двух сетевых интерфейсов — eth1 (внутренний) и eth0 (внешний):
Чтобы узнать, запущен ли Firewalld , введите:
systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-10-20 10:31:15 MSK; 15min ago
Docs: man:firewalld(1)
Main PID: 723 (firewalld)
Tasks: 2 (limit: 22521)
Memory: 44.4M
CPU: 582ms
CGroup: /system.slice/firewalld.service
└─723 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid
...
в данном случае мы видим Active: active (running), если нет то введите следующие команды:
systemctl enable firewalld
systemctl start firewalld
далее поочередно введите следующие команды:
firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j MASQUERADE
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i eth1 -o eth0 -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter FORWARD 0 -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
systemctl restart firewalld
Настройка DHCP-сервера на CentOS 9
Устанавливаем DHCP сервер
dnf install dhcp-server -y
в файл /etc/dhcp/dhcpd.conf добавляем следующие строки
authoritative;
ddns-update-style interim;
default-lease-time 28800;
max-lease-time 28800;
allow booting;
allow bootp;
option option-128 code 128 = string;
option option-129 code 129 = text;
next-server 192.168.1.1;
filename "/pxelinux.0";
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1; # default gateway
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name-servers 77.88.8.8,77.88.8.8;
option domain-name "mydomain.ru";
pool {
range 192.168.1.10 192.168.1.128;
}
}
запускаем DHCP сервер
systemctl start dhcpd
прописываем в автозагрузку
systemctl enable dhcpd
Сервис успешно настроен и запущен. Чтобы DHCP-клиент мог получить адрес с нашего сервера, нужно добавить сервис в исключения в firewalld:
firewall-cmd --permanent --add-service=dhcp
firewall-cmd --reload
подробнее о настройке DHCP – сервера я писал ранее в этой статье