Crmgo Blog

Ustawienia sieciowe w CentOS 7

Ustawienia sieciowe w CentOS 7

Przede wszystkim sprawdzamy ustawienia kart sieciowych: Z jakichś powodów tę utilitkę wykluczono ze standardowego zestawu dystrybucji! Rozwiązaniem jest instalacja pakietu net-tools: Jeśli nie ma możliwości zainstalowania net-tools, sprawdzamy w następujący sposób: Wyłączamy i usuwamy NetworkManager. Na stacjach roboczych to narzędzie może przynosić…

Ustawienia sieciowe w CentOS 7

Najpierw sprawdzamy ustawienia kart sieciowych:

# ifconfig
-bash: ifconfig: command not found

Z jakichś powodów to narzędzie zostało usunięte ze standardowego zestawu dystrybucji! Rozwiązaniem jest instalacja pakietu net-tools:

yum -y install net-tools.x86_64

Jeśli nie ma możliwości zainstalowania net-tools, sprawdźmy w ten sposób:

#ip addr
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:15:5d:01:03:06 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0
    valid_lft forever preferred_lft forever
    inet6 fe80::215:5dff:fe01:306/64 scope link 
    valid_lft forever preferred_lft forever
[root@localhost ~]# 

Wyłączamy i usuwamy NetworkManager.

Na stacjach roboczych to narzędzie może być przydatne, ale na serwerze może sprawić, że będziemy „tańczyć z bębenkiem”:

# systemctl stop NetworkManager.service
# systemctl disable NetworkManager.service
# yum remove dnsmasq -y
# systemctl enable network.service
# systemctl restart network.service

Skonfigurujmy interfejsy sieciowe:
#nano /etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR=00:15:5D:01:03:06
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes  
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=3c4a4755-fb37-46d4-9321-e58b1719d36c
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.5
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

Skonfigurujmy drugi interfejs:

Sprawdźmy adres MAC drugiego interfejsu sieciowego:
#ip addr

#cp /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth1
#nano /etc/sysconfig/network-scripts/ifcfg-eth1

HWADDR=00:15:5D:01:03:07
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=no
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth1
DEVICE=eth1
ONBOOT=yes
IPADDR=10.0.0.2
NETMASK=255.255.255.0

Restartujemy usługi sieciowe:
#systemctl restart network.service

Aby uzyskać ustawienia sieciowe przez DHCP, usuń z pliku ifcfg-eth01:

IPADDR=192.168.1.5
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1

W opcji BOOTPROTO wpisz „dhcp”.
Zrestartuj usługi sieciowe:
#systemctl restart network.service

Opis opcji w pliku konfiguracyjnym ifcfg-eth01

BOOTPROTO – тип получения сетевым интерфейсом сетевого адреса. Бывает static, dhcp, bootp.
BROADCAST – адрес широковещательной рассылки, но только для ipv4. Например – 192.168.71.255.
DEFROUTE – будет ли этот сетевой интерфейс по умолчанию использоваться при маршрутизации. Два значения: yes или no.
DEVICE – это человекопонятное имя сетевого интерфейса, которое может быть использовано для написания скриптов и понимания, где какой интерфейс.
GATEWAY – адрес шлюза.
HWADDR – классический MAC-адрес (необязательный параметр, иногда могут возникнуть проблемы в виртуальных средах или при замене сетевой аппаратной части).
IPADDR – сам ipv4 адрес. Если в BOOTPROTO указано static.
IPV4_FAILURE_FATAL – указывается, будет ли отключено сетевое устройство, если сконфигурировать адрес ipv4 не удаётся.
IPV6_FAILURE_FATAL – аналогично параметру выше, только для ipv6.
IPV6ADDR – параметр, аналогичный параметру IPADDR, только для ipv6. Пример указания: IPV6ADDR=”2001:db8:1e11:115b::1/32”
IPV6INIT – показывает, надо ли включать возможность работать с ipv6 на данном сетевом интерфейсе
MASTER – определяет имя главного интерфейса, в котором этот физический сетевой интерфейс будет slave (частью). Чаще всего используется для создания логического сетевого интерфейса из нескольких физических.
NAME – имя сетевого интерфейса, которое будет отображаться в GUI.
NETMASK – сетевая маска для ipv4.
NETWORK – сетевой адрес ipv4 сети. Например, 192.168.71.0.
NM_CONTROLLED – определяет будет ли этот сетевой интерфейс управляться демоном.
ONBOOT – говорит системе, стоит ли включать этот сетевой интерфейс при страте ОС или надо ждать.
PEERDNS – содержит ли файл /etc/resolv.conf информацию о DNS, полученную с помощью DHCP.
PEERROUTES – определяет, содержит ли таблица маршрутизации шлюз по умолчанию, получаемый с DHCP.
SLAVE – указывает, что данный интерфейс является составной частью логического интерфейса, указанного именем в параметре MASTER.
TYPE – это тип подключения. Может быть: Ethernet, Bridge, IpIp и многое другое.
USERCTL – будет ли кто-нибудь ещё, кроме пользователя root, изменять состояние этого интерфейса.
UUID – это аппаратное имя сетевого интерфейса (необязательный параметр, иногда могут созникнуть проблемы в виртуальных средах или при замене сетевой аппаратной части).

DNS w CentOS 7

Istnieją dwa sposoby dodania serwerów DNS:
1. Określając je w ustawieniach ifcfg-eth0

DNS1="192.168.1.1"
DNS2="8.8.8.8"
DNS3="8.8.4.4"

Podczas restartu usług sieciowe pojawią się one w pliku /etc/resolv.conf

nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4

2. Nie określaj DNS w ustawieniach ifcfg-eth0 i dodawaj je ręcznie bezpośrednio do /etc/resolv.conf.

Hostname w CentOS 7

Zmiana hostname możliwa jest w pliku /etc/hostname:
#nano /etc/hostname

proxy.local

Wyłączanie IPV6 w CentOS 7

Jeśli w sieci nie jest używany protokół IPV6, lepiej go wyłączyć – mniej śmieci w logach itp. Warto najpierw wyłączyć ipv6 w programach, które go używają, aby upewnić się, że działają poprawnie bez ipv6.

Sprawdźmy, które usługi używają ipv6:
#netstat -tulnp

[root@proxy ~]# netstat -tulnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp   0  0 0.0.0.0:22       0.0.0.0:*               LISTEN      1406/sshd           
tcp   00 127.0.0.1:25       0.0.0.0:*               LISTEN      1747/master         
tcp6   0      0 :::22       :::*                    LISTEN      1406/sshd           
tcp6       0      0 ::1:25  :::*                    LISTEN      1747/master    

Po wyłączeniu ipv6 w oprogramowaniu, wyłączamy go również w systemie:
#nano /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Edytujemy plik /etc/sysconfig/network, dodając do niego:

NETWORKING=yes
NETWORKING_IPV6=no
IPV6INIT=no

Domyślna brama w CentOS 7

Jeśli z jakichś powodów podczas konfiguracji parametrów sieciowych nie została ustawiona domyślna brama, dodajmy ją ręcznie.

Sprawdzenie tabeli routingu:
#route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

Wiersz z Destination 0.0.0.0 określa adres bramy. Jeśli go brakuje lub jest nieprawidłowy, dodajmy:
#route add default gw 192.168.1.1

Statyczna trasa w CentOS 7
Załóżmy, że mamy podsieć 10.0.0.0 z maską 255.255.255.0, a ruch do tej podsieci routuje brama 192.168.1. Dodajmy trasę:
# route add -net 10.0.0.0/24 gw 192.168.1.1

Aby zapisać tabelę routingu, wykonajmy:

#touch /etc/sysconfig/network-scripts/route-eth0
#nano /etc/sysconfig/network-scripts/route-eth0

10.0.0.0/24 via 192.168.1.1

Wyłączamy SELinux.

Jego używanie i konfiguracja to osobna historia.

#nano /etc/sysconfig/selinux

SELINUX=disabled

Wyłączamy Firewalld.

W CentOS 7 wymyślono zamiennik iptables – firewalld. Nie wiem po co, ale nie mam ani czasu, ani ochoty na czytanie dokumentacji nowej powłoki. Usuńmy nowe i zainstalujmy stare!

Wyłączmy Firewalld:

# systemctl stop firewalld
# systemctl disable firewalld
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'

Zainstalujmy narzędzia dla iptables:
# yum -y install iptables-services

Włączmy autostart iptables:
# systemctl enable iptables

Tworzymy plik, do którego będą dodawane reguły iptables:
#touch /etc/iptables_rules.sh
#chmod 0740 /etc/iptables_rules.sh
#/etc/iptables_rules.sh

#!/bin/bash
#
Правила iptables.
#
# Записываем правила
/sbin/iptables-save  > /etc/sysconfig/iptables

Umożliwiamy przekazywanie pakietów między interfejsami sieciowymi:

#nano /etc/sysctl.conf

net.ipv4.ip_forward = 1

Zastosujmy ustawienia:
# sysctl -p

estart network.service

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.