Первым делом установим 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 – сервера я писал ранее в этой статье