См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7 Хостинг
Содержание
  1. Полезные команды по работе с сетью в CentOS
  2. Узнать Gateway
  3. Ошибки и предупреждения
  4. Анализ логов сетевых подключений NAT в Linux
  5. Проверка наличия драйверов сетевой карты
  6. Настройка DNS
  7. Как настроить 2 IP адреса на одном интерфейсе
  8. Network
  9. Настройка параметров сети с помощью файлов конфигураций
  10. расположение конфигурационных файлов
  11. структура конфигурационных файлов
  12. ifcfg-ethX
  13. resolv.conf
  14. route-ethX
  15. Как настроить несколько IP адресов на одном сетевом интерфейсе CentOS?
  16. Hostname
  17. Шаг 1. Проверка текущего hostname
  18. Шаг 2. Смена hostname
  19. Изменить маршрут по умолчанию
  20. Как настроить сеть в консоли
  21. Как узнать, какие сетевые интерфейсы установлены
  22. Как настроить сеть
  23. Динамическая настройка параметров сети
  24. # Как настроить адрес по DHCP в CentOS 7
  25. Установка ifconfig
  26. Настройка маршрутизации
  27. добавление маршрутов
  28. просмотр таблицы маршрутов
  29. удаление маршрутов
  30. Сетевые настройки на сервере CentOS 7
  31. Как получить сетевые настройки по DHCP
  32. Схема локальной сети со шлюзом доступа в Интернет, типы NAT
  33. Установка статического IP
  34. Как отключить IPv6 в CentOS?
  35. Доступ из локальной сети в Интернет
  36. Ручная настройка конфигурационного файла сетевого интерфейса в CentOS
  37. Настройка статического IP адреса в CentOS
  38. Получение динамического IP адреса для интерфейса через DHCP
  39. Получить DHCP адрес
  40. Использование сетевых утилит traceroute, dig в CentOS
  41. Изменить IP
  42. Создать новый сетевой адаптер
  43. Как добавить статический маршрут в CentOS 7
  44. Примеры файлов
  45. Включение / отключение сетевого интерфейса
  46. Виртуальный интерфейс
  47. Как настроить DNS в CentOS 7
  48. Как указать DNS сервера для сетевого интерфейса в CentOS?
  49. Просмотр текущей конфигурации сети
  50. # System config network tui в CentOS 7
  51. NetworkManager
  52. Validating Your Network Settings
  53. Настройка Destination NAT и port forwarding
  54. Как узнать IP адрес в CentOS 7
  55. Либо второй вариант определения локального ip адреса:
  56. # Как изменить hostname в CentOS 7
  57. Изменить маршрут в Linux
  58. Как изменить hostname в CentOS 7
  59. Перезагрузка сетевого сервиса
  60. Настройка нескольких сетевых интерфейсов в CentOS

Полезные команды по работе с сетью в CentOS

  • ifdown eth1
    — отключить указанный сетевой интерфейс.
  • ifup eth1
    – поднять указанный сетевой интерфейс.
  • ifconfig
    – проверить информацию о всех интерфейсах.
  • ifconfig -a | grep ether | gawk '{print $2}'
    — команда для вывода MAC-адресов интерфейсов
  • ip a | grep ether | gawk '{print $2}'
    — тоже самое, только через утилиту ip a
  • service network restart
    или
    systemctl restart network
    – перезапустить сервис network с помощью systemctl
  • systemctl restart NetworkManager.service
    – перезапустить NM
  • ip route
    или
    ip route show
    — посмотреть таблицу маршрутизации (https://winitpro.ru/index.php/2020/04/13/nastrojka-marshrutov-v-linux/)
  • ping host
    – пропинговать указанный хост
  • whois domain
    – получить информацию whois для домена
  • dig domain
    – получить DNS информацию о домене

Узнать Gateway

Чтобы узнать текущий IP адрес шлюза (gateway) выполните

default via 10.0.2.1 dev enp0s3 proto dhcp metric 100

IP адрес шлюза 10.0.2.1

Ошибки и предупреждения

sudo systemctl restart networking

Job for network.service failed because the control process exited with error code. See «systemctl status network.service» and «journalctl -xe» for details.

systemctl status network.service

Анализ логов сетевых подключений NAT в Linux

Одним из моментов, для повышения уровня безопасности после настройки port forwarding на наш личный сервер из внешней сети, будет сборка и анализ логов внешний подключений. Ведь кроме нас, этим доступом может попробовать воспользоваться злоумышленник.

Сначала включим запись в лог файл /var/log/messages все попытки соединений на используемый нами нестандартный RDP порт:

iptables -I INPUT 1 -p tcp --dport 13389 -m state --state NEW -j LOG --log-prefix "NEW RDP SESSION"

Подключимся к нашему личному серверу, чтобы в логе появилась запись. Теперь отфильтруем все записи в лог файле, которые нам нужны:

kernel: NEW RDP SESSION IN= OUT=eth1 SRC=167.71.67.79 DST=84.201.168.122  LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=16270 DF PROTO=TCP SPT=60836 DPT=13389 WINDOW=29200 RES=0x00 SYN URGP=0

Читать такой лог не очень удобно, тем более каждый день. Поэтому, следующим шагом, автоматизируем анализ логов, чтобы регулярно получать отчеты, на основе нашего фильтра. Для этого воспользуемся утилитой Logwatch, ее установка через стандартный менеджер пакетов yum:

yum install logwatch

Сначала попробуем сгенерировать отчет вручную:

/usr/sbin/logwatch --detail low --service iptables --range today

  • —service — задает конкретный сервис, сообщения от которого нужно анализировать, в нашем случае, только от iptables;
  • —range — указывает период выборки данных, today – все события за сегодня;
  • —detail — степень детализация отчета (high, med, low).

По умолчанию logwatch отобразит отчет на экран, получим примерно такой вывод:

--------------------- iptables firewall Begin ------------------------
Listed by source hosts:
Logged 2 packets on interface eth1
From 167.71.45.65 - 2 packets to tcp(13389)
---------------------- iptables firewall End -------------------------

Отчет работает, осталось выполнять его по расписанию, раз день и отправлять себе на email, для этого обновим команду и запишем ее в файл /etc/cron.daily/00logwatch:

Здесь добавились опции:

—output — указывает способ вывода отчета, mail – отправить на почту;

—mailto — e-mail адрес получателя отчета.

Проверка наличия драйверов сетевой карты

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

Если в результате Вы увидите какие-либо сообщения, содержащие текст ethX, то значит, драйверы установлены успешно, и необходимо только поднять/настроить интерфейс сетевой карты.

Настройка DNS

возможна только через файл /etc/resolv.conf (см. ниже)

Как настроить 2 IP адреса на одном интерфейсе

Если у вас появилась необходимость настроить 2 IP адреса на одном интерфейса в CentOS, то сделать это достаточно просто. Воспользуемся командой ifconfig. Для начала проверим список сетевых интерфейсов:

# ifconfig

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Добавим к интерфейсу eno16777728 еще один ip адрес 192.168.159.120:

# ifconfig eno16777728:1 192.168.159.120 up

Проверим, что получилось:

#ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 254 bytes 30173 (29.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 204 bytes 27658 (27.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eno16777728:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.120 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 11 bytes 940 (940.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 11 bytes 940 (940.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Все в порядке, мы добавили второй ip адрес на один и тот же интерфейс. Но после перезагрузки дополнительный адрес не сохранится. Чтобы его сохранить, необходимо создать файл настроек интерфейса в папке /etc/sysconfig/network-scripts

# mcedit /etc/sysconfig/network-scripts/ifcfg-eno16777728:1

Сохраняем файл, перезагружаемся и проверяем, что получилось. Второй ip адрес должен быть на месте.

Network

Проверить статус можно командой

systemctl status network

Настройка параметров сети с помощью файлов конфигураций

Если Вы хотите настроить сеть таким образом, чтобы указанные параметры сети сохранялись и после перезагрузки системы, Вам необходимо изменить конфигурационные файлы.

расположение конфигурационных файлов

Настройка параметров сети (IP адрес, маска сети, шлюз, параметры DNS) производится в файлах ifcfg-ethX, которые находятся в папке /etc/sysconfig/network-scripts.
Параметры DNS описываются также в файле /etc/resolv.conf.
Маршруты (из таблицы маршрутизации) хранятся в файлах /etc/sysconfig/network-scripts/route-ethX.

структура конфигурационных файлов

ifcfg-ethX

Файлы находятся в папке /etc/sysconfig/network-scripts.

resolv.conf

Этот файл находится в папке /etc.

route-ethX

Файлы находятся в папке /etc/sysconfig/network-scripts.

например:
192.168.5.50/24 via 192.168.0.2 dev eth0
или
5.12.35.141/16 via 192.168.1.3 dev eth1

Шлюз по умолчанию задается в файлах ifcfg-ethX. Можно также указать шлюз по умолчанию, например, следующим образом:
default via 192.168.0.1 dev eth0

В файле route-eth0 нужно указывать все маршруты с dev eth0, а в файле route-eth1 — соответственно, все маршруты с dev eth1.

Как настроить несколько IP адресов на одном сетевом интерфейсе CentOS?

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

И измените его следующим образом:

# Generated by parse-kickstart
UUID="b8bccd4c-fb1b-4d36-9d45-044c7c0194eb"
IPADDR1="*.*.*.*"
IPADDR2="*.*.*.*"
GATEWAY="*.*.*.*"
NETMASK="255.255.255.0"
BOOTPROTO="static"
DEVICE="eth0"
ONBOOT="yes"
DNS1=77.88.8.8
DNS2=8.8.8.8
DNS3=8.8.4.4

GATEWAY — основной шлюз

Либо создайте alias к вашему основному файлу конфигурации:

# nano /etc/sysconfig/network-scripts/ifcfg-eth0:1

И добавьте несколько строк, без основного шлюза:

несколько ip на одном интерфейсе в centos

После всех настроек нужно выполнить перезапуск сети:

Restarting network (via systemctl): [ OK ]

В Windows тоже можно настроить несколько IP адресов (алиасов) на одном интерфейсе.

Hostname

Шаг 1. Проверка текущего hostname

Чтобы получить информацию о хосте выполните

Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: a714bee8007d114a84177dbb15072f2e
Boot ID: b02d9498c1764a338c781672aac1be29
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.el7.x86_64
Architecture: x86-64

Нужная информация находится в первой строке

Static hostname: localhost.localdomain

Шаг 2. Смена hostname

Так как CentOS 7 поддреживает только Fully Qualified Domain Names (FQDNs),
советую тщательно проверить hostname, который вы планируете использовать.

  • Строчные буквы от a до z
  • Цифры от 0 до 9
  • Точки и дефисы
  • Hostnames может быть от 2 до 63 символов
  • Hostnames должен начинаться и заканчиваться цифрой или буквой

hostnamectl set-hostname my.new-hostname.server

Подробности в статье
hostname

Изображение баннера

Изменить маршрут по умолчанию

Вы можете удалить маршрут по-умолчаню с помощью команды ip route del:

# ip route del default via 192.168.1.1 dev enp0s3

Чтобы указать новый маршрут по-умолчанию в CentOS используется команда:

# ip route add default via 192.168.1.2
(маршрут через IP адрес шлюза)

# ip route add default via enp0s3
(маршрут через имя устройства)

Чтобы изменить параметры маршрута по умолчанию, используется команда:

# ip route replace default via 192.168.1.2

ip route replace default

Как настроить сеть в консоли

Настроить сеть можно не только на этапе установки, но и после неё. Настройка сети CentOS через консоль пригодится, если вы пропустили этап настройки при установке или хотите изменить существующие параметры сети.

Как узнать, какие сетевые интерфейсы установлены

Чтобы посмотреть список установленных сетевых интерфейсов, перейдите в консоль через пользователя root и введите команду:

Результат выполнения каждой из команд в консоли представлен ниже. В примере команда ip a показывает, что установлено два интерфейса — lo (локальная петля) и enp0s3 (сетевой адаптер Ethernet). Заметьте, что команда ls отображает только названия интерфейсов. Имена интерфейсам назначаются автоматически.

См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

Как настроить сеть

Рассмотрим настройку сети для сетевого интерфейса, например, с названием enp0s3.

В CentOS в каталоге /etc/sysconfig/network-scripts/ хранятся конфигурационные файлы (Network Config) с настройками всех сетевых интерфейсов. Эти файлы начинаются с приставки ifcfg-. Так, для рассматриваемого сетевого интерфейса название файла ifcfg-enp0s3, а путь до него — /etc/sysconfig/network-scripts/ifcfg-enp0s3.

Чтобы настроить сеть для интерфейса:

  1. Для начала вы можете посмотреть сетевые настройки с консоли. Откройте конфигурационный файл с помощью текстового редактора nano (вы можете использовать другой удобный вам редактор):

    nano /etc/sysconfig/network-scripts/ifcfg-enp0s3

    Где enp0s3 — название сетевого интерефейса.

    Содержимое конфигурационного файла зависит от сетевого интерфейса. В файле могут быть указаны разные параметры сети. Файл выглядит следующим образом:

    См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

  2. DEVICE=enp0s3
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.0.0
    NETMASK=255.255.255.0
    GATEWAY=192.168.0.1
    DNS1=8.8.8.8

    DEVICE — имя настраиваемого сетевого интерфейса;

    ONBOOT — запуск интерфейса при старте сервера: yes (запускать автоматически), no (запускать вручную);

    NETMASK — маска подсети;

    GATEWAY — шлюз для доступа к интернету;

    DNS1 (а также DNS2, DNS3) — DNS-серверы — можно добавить несколько.

  3. Сохраните изменения и выйдите из редактора. Для этого нажмите Ctrl+X, затем Y.

  4. Затем необходимо перезапустить сеть. Если у вас CentOS 7, введите команду:

    sudo systemctl restart networking

    Если у вас CentOS 8, введите команду:

Готово, после того, как произойдет перезапуск сети, сеть будет настроена. Мы рассмотрели, как происходит в CentOS настройка сети из консоли.

Читайте также:  Создать сервер Майнкрафт ⛏ - Хостинг BungeeHost

VPS с установленной CentOS

Закажите сервер с чистой CentOS или панелью управления ISPmanager всего за пару минут.

Заказать VPS c Centos

Динамическая настройка параметров сети

Обратите внимание: в данном случае настройки сети будут применяться сразу же, но они не сохранятся после перезагрузки!

# Как настроить адрес по DHCP в CentOS 7

Предположим что у вас сетевая карта настроена на статический IP, а вы хотите получать настройки по DHCP. Тут будем действовать в обратном порядке. переходим в папку  /etc/sysconfig/network-scripts и открываете файл на редактирование с названием вашей сетевой картой. Название сетевой можно посмотреть командой ifconfig или ip addr. Находим там и удаляем параметры  DNS, IPADDR, PREFIX, GATEWAY а в параметре BOOTPROTO указываем значение «dhcp».

Для немедленного применения изменений перезапустим сеть:

# /etc/init.d/network restart

Проверяем, все ли мы сделали верно:

Установка ifconfig

yum provides ifconfig

yum whatprovides ifconfig

ifconfig входит, например, в состав net-tools

sudo yum install net-tools

Настройка маршрутизации

добавление маршрутов

просмотр таблицы маршрутов

Для просмотра таблицы маршрутизации запустите команду:
netstat -rn
или
route -n

удаление маршрутов

Сетевые настройки на сервере CentOS 7

Первый раз с сетевыми настройками сервера CentOS мы сталкиваемся, когда производим установку. На экране первоначальной настройки есть отдельный пункт, касающийся настройки сетевых интерфейсов:

centos network

Зайдя в него мы видим список подключенных сетевых карт. Каждую из них можно включить соответствующим ползунком (пункт 1 на картинке). При активировании интерфейса он автоматически получает настройки по dhcp. Результат работы dhcp можно посмотреть тут же. Если вас не устраивают эти настройки, их можно отредактировать, нажав configure (пункт 3 на картинке). Здесь же можно задать hostname (пункт 2 на картинке):

centos сетевой интерфейс

Открыв окно дополнительный настроек Ehernet, вы сможете изменить имя сетевого интерфейса, указать настройки IP (пункт 1 на картинке), выбрать ручные настройки (пункт 2 на картинке), назначить ip адрес (пункт 3 на картинке), установить dns сервер (пункт 4 на картинке) и сохранить сетевые настройки (пункт 5 на картинке):

сетевые настройки centos

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

Теперь рассмотрим другую ситуацию. Сервер, а соответственно и конфигурацию сети, производили не вы, а теперь вам надо ее посмотреть либо изменить. В вашем распоряжении консоль сервера, в ней и будем работать. Если у вас установка производилась с дистрибутива minimal, то при попытке посмотреть сетевые настройки с помощью команды ifconfig в консоли вы увидите следующее:

-bash: ifconfig: command not found

или в русской версии:

-bash: ifconfig команда не найдена

Для работы с ifconfig и прочими сетевыми утилитами необходимо установить пакет net-tools. Сделаем это:

# yum -y install net-tools.x86_64

Теперь можно увидеть настройки сети:

# ifconfig

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 319 bytes 36709 (35.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 256 bytes 148817 (145.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 6 bytes 624 (624.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6 bytes 624 (624.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

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

# 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: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:7d:59:3f brd ff:ff:ff:ff:ff:ff
inet 192.168.159.129/24 brd 192.168.159.255 scope global dynamic eno16777728
valid_lft 1709sec preferred_lft 1709sec
inet6 fe80::20c:29ff:fe7d:593f/64 scope link
valid_lft forever preferred_lft forever

icfg-eth0

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

ifcfg-eth0 static ip

Мы изменили параметры:

BOOTPROTOс dhcp на noneDNS1 указали dns сервер IPADDR, настроили статический ip адрес PREFIX, указали маску подсети GATEWAY. настроили шлюз по-умолчанию

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

# /etc/init.d/network restart

Проверяем, применилась ли новая конфигурация сети:

# ifconfig:

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet6 fe80::20c:29ff:fe7d:593f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 672 bytes 71841 (70.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 572 bytes 290861 (284.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Все в порядке, новые настройки сетевого интерфейса установлены.

Как получить сетевые настройки по DHCP

Теперь рассмотрим обратную ситуацию. Допустим, у вас сетевая карта имеет какие-то настройки, установленные вручную. Но вы хотите, чтобы ваш компьютер получал настройки сети по dhcp в качестве клиента . Для этого вам нужно произвести операцию, обратную той, что мы делали раньше. То есть открываем файл /etc/sysconfig/network-scripts/ifcfg-eth0 и удаляем там строки с параметрами DNS, IPADDR, PREFIX, GATEWAY а в параметре BOOTPROTO указываем значение «dhcp». Сохраняем файл и перезапускаем сеть:

# /etc/init.d/network restart

Затем проверяем, получил ли наш client по dhcp настройки.

Схема локальной сети со шлюзом доступа в Интернет, типы NAT

NAT (Network Address Translation) – трансляция IP адресов, это механизм, позволяющий подменять адрес источника и назначения в заголовке IP пакетов, при их прохождении через маршрутизатор, т.е. между разными сетями.

Настраивать NAT будем между внутренней сетью с адресацией 10.2.0.0/24 и внешней сетью Интернет, двух видов:

  • source NAT – это подмена IP адреса источника, в нашем случае, для организации выхода в Интернет через один публичный IP адрес нескольких клиентов.
  • destination NAT — подмена IP адреса назначения, в нашем случае, для обеспечения доступа из внешней сети Интернет через публичный IP адрес к серверам внутренней сети.

Определим элементы сети (рисунок 1), между которыми будет организован NAT:

  • gw-server – сервер шлюз, т.е. наш CentOS Linux сервер, который предоставляет доступ за пределы внутренней сети. У него два интерфейса, первый eth1(10.2.0.1) во внутренней сети, второй eth0(84.201.168.122) с публичным IP адресом и доступом в Интернет;
  • web-server01 – веб сервер внутренней сети, IP адрес 10.2.0.11;
  • my-server01 – личный сервер внутренней сети, IP адрес 10.2.0.12.

схема сети с NAT шлюзом доступа в интернет на базе Linux CentOS

Примечание: для серверов внутренней сети web-server01 и myserver01 маршрут по умолчанию установлен на интерфейс eth1(10.2.0.1) сервера gw-server01.

Установка статического IP

nmcli conn show

NAME UUID TYPE DEVICE
enp0s3 64486a76-a4b0-4693-9110-205da942c9c5 ethernet enp0s3
enp0s8 fc26857f-4cb0-3756-a7fa-95ec246b3981 ethernet enp0s8

Настроим статический IP адрес для enp0s8

Настройки сети хранятся в директории

Отредактировать нужно файл

ifcfg-enp0s8

Основные параметры:

TYPE — тип соединения, проводное (Ethernet), беспроводное(Wired) и т д;

BOOTPROTO — способ получения IP адреса, static, dhcp или none;

NAME — имя соединения;

DEVICE — имя сетевого интерфейса;

ONBOOT — необходимо ли запускать при старте системы;

IPADDR — IP адрес, который будет использован для этого компьютера;

GATEWAY — шлюз для доступа к интернету;

NETMASK — маска сети;

DNS1 — сервер для разрешения доменных имен DNS.

sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s8

Для DHCP, который, скорее всего, стоит по умолчанию будет что-то

Нужно именить BOOTPROTO на none и добавить несколько строк

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no

# Server IP #

# Subnet #

# Defautl Gateway #

# DNS Servers #

DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=40a957b1-90fd-428c-9e99-df7849e1d104
DEVICE=enp0s3
ONBOOT=yes

sudo systemctl restart network

Как отключить IPv6 в CentOS?

# netstat -tulnp

в netstat показывается ipv6 адрес, как полностью отключить на сервере centos

У меня сервер тестовый, поэтому ipv6 используется только для sshd и cronyd. Это можно определить по “:::”.

Чтобы не возникало проблем после отключения ipv6 в конфигурации сети, отключите данный протокол в сервисах, в которых они используются на вашем сервере. Например для sshd, нужно открыть конфигурационный файл:

# mcedit /etc/ssh/sshd_config

И раскомментируйте строки:

#AddressFamily any
#ListenAddress 0.0.0.0

После чего перезапустите сервис:

netstat только ipv4 без ipv6

Как видим, для sshd протокол ipv6 теперь недоступен. Проделайте аналогичные настройки со всеми сервисами.

Перейдем к отключению протокола ipv6 в настройках сети. Откройте файл /etc/sysctl.conf:

# nano /etc/sysctl.conf
И добавьте туда следующие строки:

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

Сохраните файл и примените через:

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

Перейдем к файлу /etc/sysconfig/network. Добавьте в него следующую конфигурацию:

NETWORKING_IPV6=no
IPV6INIT=no

отключить IPV6INIT=no

Из файла конфигурации сетевого интерфейса /etc/sysconfig/network-scripts/ifcfg-eth0 удалите строку:

IPV6INIT="yes"

И наконец добавим запрет на работу ipv6 в grub:

# nano /etc/default/grub

В конец строки GRUB_CMDLINE_LINUX, добавляем:

ipv6.disable=1

centos отключить ipv6 в grub

После всех настроек, сохраните файл и обновите grub:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Выполните перезагрузку сервера и проверьте конфигурацию сети:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 185.*.*.* netmask 255.255.255.0 broadcast 185.*.*.255
ether 52:54:00:d3:1c:3e txqueuelen 1000 (Ethernet)
RX packets 10068 bytes 613092 (598.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 32 bytes 5399 (5.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Протокол ipv6 на сервере отключен.

Доступ из локальной сети в Интернет

При source NAT для серверов внешней сети, запросы от наших клиентов из внутренней сети будут выглядеть так, как будто с ними общается напрямую сервер шлюз — gw-server01.

В прошлой статье “Базовая настройка файервола Linux с помощью iptables” мы рассмотрели азы использования iptables. В этот раз, работать в iptables будем не только с таблицей filter, но и с таблицей nat. В отличие от таблицы для фильтрации трафика filter, таблица nat содержит следующие chains(цепочки):

  • PREROUTING — в этой цепочке обрабатываются входящие IP пакеты, до их разделения на предназначенные для самого сервера или для передачи другому, т.е. до принятия решения о выборе маршрута для IP пакета;
  • OUTPUT – цепочка предназначена для обработки IP пакетов, которые сгенерированы локально приложением на сервере. Локально сгенерированные IP пакеты не проходят цепочку PREROUTING;
  • POSTROUTING — в этой цепочке обрабатываются все исходящие IP пакеты, уже после принятия решения о маршруте для IP пакета.

Отличаются и действия, выполняемые для IP пакетов, в этой таблице:

  • MASQUERADE и SNAT— производит подмену IP адреса источника для исходящих пакетов. Отличием этих действий является то, что SNAT дает возможность задать конкретный IP адрес нового источника, а в случае MASQUERADE это происходит динамически;
  • DNAT — производит подмену IP адреса назначения для входящих пакетов.
Читайте также:  Улучшите свое деловое общение с помощью решений VoIP Asterisk

Важно: действие MASQUERADE и SNAT задается только для цепочки POSTROUTING, а действие DNAT только для цепочек PREROUTING или OUTPUT.

На рисунке 2 изображены этапы обработки IP пакета из внутренней сети на шлюзе gw-server01 при SNAT на iptables. IP адрес и порт назначения при этом остаются неизменными.

  1. IP пакет поступил на внутренний интерфейс eth1 сервера gw-server01. Так как IP назначения не принадлежит серверу gw-server01, IP пакет переходит к обработке цепочкой FORWARD.
  2. После прохождения цепочки FORWARD, для IP пакета определяется исходящий сетевой интерфейс, с которого он должен быть отправлен, это отмечено желтым цветом
  3. В конце IP пакет проходит цепочку POSTROUTING, в которой происходит подмена IP адреса источника, на IP адрес внешнего интерфейса eth0 сервера gw-server01

Приступим к настройке. Сначала нужно установить параметр ядра, который позволяет передавать пакеты между интерфейсами сервера. Для этого в файл /etc/sysctl.conf добавим переменную:

net.ipv4.ip_forward = 1

Чтобы применить изменения, выполним команду

sysctl -p /etc/sysctl.conf

здесь sysctl это команда, которая позволяет управлять параметрами ядра, ключ -p означает, что нужно считать параметры из файла.

Создадим правило в iptables, разрешающее передачу пакетов между внутренним (eth1) и внешним (eth0) интерфейсом:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

и разрешим передавать между интерфейсами пакеты, относящиеся к уже установленным соединениям.

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

Предыдущие два правила имеет смысл создавать, только если для цепочки FORWARD по умолчанию установлена политика DROP:

iptables -P FORWARD DROP

iptables -t nat -A POSTROUTING -s 10.2.0.0/24 -o eth1 -j SNAT --to-source 84.201.168.122

  • —to-source должен быть адресом на интерфейсе, с которого планируется выпускать во внешнюю сеть IP пакеты;
  • -s 10.2.0.0/24 задано из расчета, что внутренняя сеть 10.2.0.0/24, но это необязательный параметр, если его не указать, ограничений на источник взаимодействия не будет.

Посмотрим получившуюся конфигурацию для таблицы filter и цепочки FORWARD (вывод обрезан):

iptables -L -n -v

iptables -L -n -v chain forward

и конфигурацию для таблицы nat и цепочки POSTROUTING (вывод обрезан):

iptables -t nat -L -n -v

iptables nat postrouting chain

test telnet via iptables nat

Вывод команды Connected 1.1.1.1, показывает, что подключение прошло успешно.

Ручная настройка конфигурационного файла сетевого интерфейса в CentOS

Выведем список доступных сетевых интерфейсов в системе:

# ip a

Файлы конфигурации сети вашего сервера хранятся в каталоге /etc/sysconfig/network-scripts. Эти файлы создает демон NetworkManager для каждого сетевого интерфейса. В нашем случае файл конфигурации называется ifcfg-eth0 (у вас может отличаться в зависимости от схемы именования сетевого интерфейса).

Рассмотрим основные параметры:

  • DEVICE – имя сетевого адаптера, совпадает с именем в системе, у нас это eht0
  • BOOTPROTO – способ назначения IP-адреса (static — статическое значение, указываем в ручную. dhcp — получить адрес автоматически)
  • IPADDR – IP-адрес
  • NETMASK – маска подсети
  • GATEWAY – шлюз по умолчанию
  • DNS1 – Основной DNS-сервер
  • DNS2 — альтернативный DNS-сервер
  • ONBOOT — способ запуска сетевого интерфейса (yes – автоматически, no – вручную)
  • UUID – уникальный идентификатор сетевого интерфейса. Можно сгенерировать самостоятельно командой uuidgen.
  • IPV4_FAILURE_FATAL – отключение сетевого интерфейса с IP-адресом v4, если он имеет неверную конфигурацию (yes – отключить, no – не отключать)
  • IPV6_FAILURE_FATAL – отключение сетевого интерфейса с IP-адресом v6, если он имеет неверную конфигурацию (yes – отключить, no – не отключать)
  • IPV6_AUTOCONF – разрешает или запрещает автоконфигурирование Ipv6 с помощью протокола
  • IPV6_INIT – включение возможности использования адресации Ipv6(yes – адресация может использоваться, no – не используется)
  • PEERROUTES – устанавливает приоритет настройки шлюза по умолчанию, при использовании DHCP
  • IPV6_PEERROUTES — устанавливает приоритет настройки шлюза по умолчанию, при использовании DHCP для IPv6

Исходя из этой информации, настроим сетевой интерфейс.

Настройка статического IP адреса в CentOS

Откроем файл для редактирования:

# mcedit /etc/sysconfig/network-scripts/ifcfg-eth0

ручная настройка параметров сети в centos через файл /etc/sysconfig/network-scripts

В этом примере я указал статический IP адрес, маску подсети, шлюз и несколько DNS серверов. Включаем автозапуск интерфейса:

ONBOOT=”yes”

После всех модификаций, нужно выполнить рестарт сервиса network. Если все в порядке, вы получите такой листинг:

Restarting network (via systemctl): [ OK ]

Также можно просто перезапустить все профили подключений :

# nmcli connection reload

Получение динамического IP адреса для интерфейса через DHCP

Если ваш сервер должен получить IP адрес от DHCP севера, откройте конфигурационный файл интерфейса и измените настройки:

BOOTPROTO=”dhcp” - настройка полуения динамического ip адреса для сетевого интерфейса

Получить DHCP адрес

Если нужно явно запросить у DHCP адрес выполните

sudo dhclient enp0s8

Вместо enp0s8 введите имя нужного адаптера

Использование сетевых утилит traceroute, dig в CentOS

Для диагностики сетевых подключений в CentOS полезно использовать специальные утилиты. Но если вы использовали установку minimal, то их скорее всего в системе не будет. К примеру, популярная утилита traceroute при попытке ее запуска выдаст сообщение:

# traceroute ya.ru
bash: traceroute: command not found

Ее нужно установить отдельно из репозитория:

# yum -y install traceroute

То же самое с популярной программой dig для работы с dns серверами и записями:

# dig ya.ru
bash: dig: command not found

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

# yum -y install bind-utilsНастройка 802.1Q VLAN в CentOS 7

Для поднятия тегированного интерфейса на CentOS нужно в первую очередь проверить поддержку ядром 8021q:

# modprobe 8021q

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

Теперь создаем файл конфигурации для vlan в /etc/sysconfig/network-scripts:

# mcedit ifcfg-vlan4000

Обращаю внимание на выделенное жирным. Во всех инструкциях в интернете, что мне попались, этот параметр был указан как TYPE=Ethernet, но с такой настройкой интерфейс с vlan не поднимался, появлялась ошибка:

Error: no device found for connection ‘System vlan4000’.

Только после того, как я исправил, все заработало как надо. Так что сохраняем и активируем интерфейс:

# ifup vlan4000

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Проверяем наш vlan:

# ip l ls

Все в порядке, тегированный интерфейс поднят. По аналогии можно создать еще несколько подобных интерфейсов, не забывая изменять им имена и адреса.

На этом мой объемный материал на тему настройки сети в CentOS закончен.

Буду очень рад комментариям, замечаниям, поправкам. Они наверняка будут. Создавая подобные материалы я в первую очередь учусь сам и подтягиваю свои знания в предметной области. Тут могут быть где-то ошибки и описки, хотя я и проверяю все на живых системах во время написания руководств, но все равно возможны неточности и опечатки.

Изменить IP

Быстро изменить IP можно с помощью ifconfig

Сперва нужно установить пакет содержащий ifconfig —

по инструкции

Менять IP нужно командой

sudo ifconfig enp0s8 192.168.56.111

Вместо enp0s8 введите нужный интерфейс

Вместо 192.168.56.111 введите IP, который хотите установить

Если ваш IP был получен от DHCP сервера — сообщите ему о смене выполнив

sudo dhclient -r

Изменённый таким образом IP адрес будет сброшен DHCP сервером на тот, который ему больше нравится
после первой перезагрузки.

Если нужно поменять ещё и маску подсети — выполните

sudo ifconfig enp0s8 192.168.56.111 netmask 255.255.255.0

Создать новый сетевой адаптер

Подробный разбор этого действия вы можете изучить в статье

«Создать новый интерфейс»

Как добавить статический маршрут в CentOS 7

Для управления маршрутизацией в CentOS может понадобиться добавить статический маршрут. Сделать это достаточно просто с помощью консольной команды. Для начала проверим существующие маршруты, используя netstat:

# netstat -nr

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

В данном случае у нас один маршрут для адреса 0.0.0.0/0.0.0.0 шлюз используется 192.168.159.2, он же шлюз по-умолчанию. То есть по сути, статических маршрутов никаких нет. Добавим один из них.

Допустим, у нас есть подсеть 192.168.8.0 маска 255.255.255.0, трафик в эту подсеть маршрутизирует шлюз 192.168.159.5 Добавляем маршрут:

# route add -net 192.168.8.0/24 gw 192.168.159.5

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

# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

Все в порядке, маршрут добавлен. Но после перезагрузки этот статический маршрут будет удален. Чтобы этого не произошло и добавленные маршруты сохранялись, необходимо их записать в специальный файл. В папке /etc/sysconfig/network-scripts создаем файл с именем route-eth0 следующего содержания:

# mcedit /etc/sysconfig/network-scripts/route-eth0

192.168.8.0/24 via 192.168.159.5

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

# reboot# netstat -nr

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.159.2 0.0.0.0 UG 0 0 0 eno16777728
192.168.8.0 192.168.159.5 255.255.255.0 UG 0 0 0 eno16777728
192.168.159.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777728

Все в порядке, статический маршрут добавлен.

Примеры файлов

Пример файла /etc/sysconfig/network-scripts/ifcfg-eth0:

Пример файла /etc/sysconfig/network-scripts/route-eth0:

Пример файла /etc/resolv.conf:

Включение / отключение сетевого интерфейса

После того, как Вы настроили сеть, она по-прежнему может бьть недоступна. Причиной может быть то, что не включен (т.е. не «поднят») сетевой интерфейс.

Включить сетевой интерфейс можно командой:
ifconfig <имя-интерфейса> up
например:
ifconfig eth0 up

Отключить сетевой интерфейс не менее просто:
ifconfig <имя-интерфейса> down
например:
ifconfig eth0 down

Виртуальный интерфейс

Виртуальный интерфейс — это alias к существующему интерфейсу. Допустим у вас есть ens192

cp /etc/sysconfig/network-scripts/ens192 /etc/sysconfig/network-scripts/ens192:0

vi /etc/sysconfig/network-scripts/ens192:0

Поменяйте там что-то, например поставьте другой IP из той же подсети

systemctl restart network

Так как виртальный интерфейс может быть только внутри той же подсети, он не даст вам возможности слушать другую сейть.

Как настроить DNS в CentOS 7

Текущие настройки dns сервера в CentOS можно посмотреть в двух местах:

  • В файле с настройками сетевой карты ifcfg-eth0, которым мы ранее неоднократно редактировали.
  • В файле /etc/resolv.conf

Зачем они сейчас в двух местах, я не знаю, но раньше настройки dns сервера в каких-то дистрибутивах, не помню уже точно каких, указывались только в resolv.conf, но в какой-то момент это изменилось. И все сетевые настройки стали храниться в одном файле вместе с адресом, шлюзом, маской и прочим. Если сейчас отредактировать файл resolv.conf и внести туда какие-то dns сервера, то после перезагрузки они будут заменены на значения из файла ifcfg-eth0.

Так что для того, чтобы установить параметры dns сервера, нужно отредактировать файл сетевых настроек ifcfg-eth0, добавив туда столько серверов, сколько требуется.

DNS1="192.168.159.2"
DNS2="8.8.8.8"
DNS3="8.8.4.4"

Для применения настроек сохраняем файл и перезапускаем сеть, все как обычно. После перезагрузки сервера настройки dns будут записаны в файл resolv.conf

# cat /etc/resolv.conf

# Generated by NetworkManager
nameserver 192.168.159.2
nameserver 8.8.8.8
nameserver 8.8.4.4Как отключить ipv6 в CentOS 7

В настоящее время активного использования протокола ipv6 нет и в обычной работе он не нужен. Хотя нас уже много лет пугают, что свободных ip адресов уже практически не осталось, но на деле пока еще всем хватает. Так что с точки зрения практических соображений ipv6 в настоящее время на сервере не нужен и его можно отключить.

Читайте также:  Где находится личка в телеграмме

Перед отключением ipv6 необходимо на всякий случай проверить, какие программы его используют в своей работе. Это нужно для того, чтобы избежать ошибок в их работе, предварительно отключив ipv6 в конфигурациях. Для того, чтобы увидеть, какие программы висят на ipv6 интерфейсе воспользуемся командой netstat:

# netstat -tulnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2317/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1333/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2317/master
tcp6 0 0 :::22 :::* LISTEN 1333/sshd
udp 0 0 0.0.0.0:49252 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 0.0.0.0:123 0.0.0.0:* 715/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 694/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 715/chronyd
udp6 0 0 :::123 :::* 715/chronyd
udp6 0 0 ::1:323 :::* 715/chronyd

Все строки с ::: это ipv6 протокол. В моем случае это sshd, postfix и chronyd. Отключим им ipv6 и оставим только ipv4.

Начнем с sshd. Открываем файл настроек /etc/ssh/sshd_config и находим строки:

#AddressFamily any
#ListenAddress 0.0.0.0

Раскомментируем их и изменим. Должно получиться вот так:

AddressFamily inet
ListenAddress 0.0.0.0

Теперь открываем файл настроек постфикс /etc/postfix/main.cf. Ищем там строку:

#inet_protocols = all
inet_protocols = ipv4

Отключаем ipv6 в chronyd. Для этого создаем файл /etc/sysconfig/chronyd и добавляем строку:

OPTIONS=-4

Теперь отключаем ipv6 в CentOS. Открываем файл /etc/sysctl.conf и добавляем туда строки:

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

Редактируем файл /etc/sysconfig/network, добавляя туда:

NETWORKING_IPV6=no
IPV6INIT=no

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

# reboot# ifconfig

eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
ether 00:0c:29:7d:59:3f txqueuelen 1000 (Ethernet)
RX packets 2301 bytes 243024 (237.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2138 bytes 1327955 (1.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Нигде нет упоминания про inet6 и адреса формата ipv6. Значит все в порядке, мы отключили ipv6 в CentOS. Теперь проверим список открытых портов:

# netstat -tulnp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2291/master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1322/sshd
udp 0 0 0.0.0.0:123 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 697/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:* 2453/chronyd
udp 0 0 0.0.0.0:57259 0.0.0.0:* 697/avahi-daemon: r

Все порты ipv4. Все в порядке, наша задача выполнена.

Как указать DNS сервера для сетевого интерфейса в CentOS?

Настроить DNS-сервера для вашего сервера, вы можете с помощью файла /etc/resolv.conf или указать их в настройках сетевого интерфейса. При настройке static конфигурации для сетевого интерфейса, мы уже указывали DNS-сервера, через параметры:

DNS1=
DNS2=
DNS3=

Установите нужные вам DNS-сервера и перезагрузите сервис network.

В файл /etc/resolv.conf, DNS-сервера прописываются автоматически при перезагрузке сервера, забирая их с файла конфигурации сети. Если же вы не указали DNS-сервера при настройке сети, пропишите их вручную в файл /etc/resolv.conf:

nameserver 77.88.8.8
nameserver 8.8.8.8
nameserver 8.8.4.4

Просмотр текущей конфигурации сети

Для того, чтобы узнать текущие параметры сети в CentOS, есть очень простой способ — запустите команду:

# System config network tui в CentOS 7

Так же для управления сетевыми интерфейсами и  настройками в CentOS можно воспользоваться графической утилитой nmtui. Это сделать очень просто. Достаточно запустить ее в консоли:

# nmtui

См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

Допустим, мы хотим изменить IP адрес через графический интерфейс, выбираем «Изменить соединение»

См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

См. сетевые настройки Centos 7 и конфигурацию интернет-шлюза с NAT и переадресацией портов в CentOS 7

Меняем настройки, которые вы хотите изменить и нажимаем «ОК«.

Вот так просто через графический интерфейс можно настраивать сеть.
Если по какой то причине у вас не установлен данный пакет, то установить
его можно следующей командой:

yum install NetworkManager-tui

NetworkManager

Проверить статус можно командой

systemctl status NetworkManager

Validating Your Network Settings

Verify your network is now working with the new settings with the command:

ip a show [network_device_name]

The output will display interface information based on which you can verify if the changes are live.

Validate you network settings on CentOS 7.

After reading this article, you should have successfully configured the network settings on your CentOS system. If one method seems too difficult, try another method explained in this article.

Настройка Destination NAT и port forwarding

Теперь рассмотрим обратную ситуацию. Мы хотим, чтобы клиенты снаружи имели возможность попадать на наш сайт во внутренней сети. А также нам нужно заходить на свой личный сервер (или рабочую станцию) из Интернета. Отличие этого случая не только в направлении взаимодействия, но еще и в том, что требуется перенаправить запросы на отдельные порты, 80(TCP) и 3389(TCP), при этом подменять сервер назначения и возможно, порт назначения. Эта техника называется port forwarding (проброс портов).

Сначала разрешим передачу пакетов с внешнего интерфейса (eth0) на внутренний (eth1) интерфейс:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

Это правило разрешает передавать IP пакеты между интерфейсами независимо от источника. Но можно отдельным правилом запретить подключение через NAT для отдельных IP адресов или подсетей:

iptables -I FORWARD 1 -o eth1 -s 167.71.67.136 -j DROP

Внимание: здесь в команде используется ключ –I вместо –A. Ключ –I позволяет добавить правило по определенному номеру в последовательности правил цепочки, указав индекс. Например, в команде выше, индекс единица в цепочке FORWARD, то есть, правило будет добавлено в начало цепочки. Если это правило будет добавлено в конец, оно не сработает, так как IP пакет будет обработан предыдущим правилом, разрешающим любые источники взаимодействия, и на этом его прохождение по цепочке FORWARD будет завершено.

Теперь перенаправим все соединения на порт 80 интерфейса внешней сети(eth0) на IP адрес веб сервера внутренней сети web-server01:

iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to-destination 192.168.0.11

—to-destination — должен быть IP адресом, на который нужно заменить IP адрес назначения.

Для проверки, попробуем подключиться из сети Интернет через telnet на публичный IP адрес сервера gw-server на порт 80:

telnet 84.201.168.122 80

Результатом будет ответ веб сервера web-server01 из нашей внутренней сети:

HTTP/1.1 400 Bad Request
Server: nginx/1.14.2
Date: Wed, 31 Jul 2019 10:21:21 GMT
Content-Type: text/html
Content-Length: 173
Connection: close

Аналогично можно настроить доступ из интернета на свою рабочую станцию по RDP. Так как доступ по RDP будет нужен ограниченному количеству человек, безопасней будет использовать при подключении нестандартный порт, например 13389, а уже с него перенаправлять на порт 3389 сервера внутренней сети (либо изменить номер RDP порта на Windows компьютере). Измененный порт назначения указывается через двоеточие после IP адреса:

iptables -t nat -A PREROUTING -p tcp --dport 13389 -i eth0 -j DNAT --to-destination 192.168.0.12:3389

Для проверки, попробуем подключиться из сети Интернет через telnet (или командлет PowerShell Test-NetConnection) на публичный IP адрес сервера gw-server на порт 13389:

telnet 84.201.168.122 13389

В ответ получим пустой экран и курсор, это говорит о том, что соединение работает.

Как узнать IP адрес в CentOS 7

Для того, чтобы быстро узнать текущий IP адрес в CentOS необходимо воспользоваться следующими командами:

# ifconfig | grep inet

inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255
inet 127.0.0.1 netmask 255.0.0.0

Либо второй вариант определения локального ip адреса:

# ip addr | grep inet

inet 127.0.0.1/8 scope host lo
inet 192.168.159.129/24 brd 192.168.159.255 scope global eno16777728

Обе команды позволяют быстро узнать свой ip адрес.

# Как изменить hostname в CentOS 7

Если вы не сменили при установке Hostname или вы хотите его изменить,
то сделать это совсем не сложно. Для начала давайте проверим, какой
hostname у нас установлен:

# hostname
centos.home

В моем случае это centos.home. Допустим мы хотим сделать имя: superserver.work, для этого необходимо отредактировать фай /etc/hostname

mcedit /etc/hostname

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

# hostname
superserver.work

Как видим, имя сменилось. Значит мы все сделали верно. Как видите, это сделать не так сложно.

P.S.: Для смены hostname перезагрузка не требуется.

Изменить маршрут в Linux

Чтобы изменить уже существующий маршрут, можно использовать команду ip route replace:

# ip route replace 192.168.0.0/24 via 192.168.1.1

изменитть маршрут ip route replace

Чтобы сбросить все временные маршруты в таблице маршрутизации, просто перезапустите сетевой сервис:

Restarting network (via systemctl): [ OK ]
default via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.0.0/24 via 192.168.1.1 dev enp0s3 proto static metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.201 metric 100

Как изменить hostname в CentOS 7

По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain. Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname, либо с помощью uname:

# hostname

localhost.localdomain# uname -n

Для того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname. Проверим его содержимое:

# cat /etc/hostname

Отредактируем этот файл, чтобы изменить hostname:

# mcedit /etc/hostname

Сохраняем файл и проверяем:

# hostname

Все в порядке, мы изменили имя хоста на centos.localhost

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

Перезагрузить сетевой сервис (при этом перезагружаются все сетевые интерфейсы) в CentOS можно командой:
service network restart
При этом перезапускаются все конфигурационные файлы из каталога /etc/sysconfig/network-scripts.

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

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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 52:54:00:d3:1c:3e brd ff:ff:ff:ff:ff:ff
inet 185.*.*.*/16 brd 185.*.*.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 52:54:00:5f:f3:b8 brd ff:ff:ff:ff:ff:f

Чтобы сконфигурировать второй интерфейс, нужно создать для него файл:

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

И добавьте следующую конфигурацию:

IPADDR="*.*.*.*"
GATEWAY="*.*.*.*"
NETMASK="255.255.255.0"
BOOTPROTO="static"
DEVICE="eth1"
ONBOOT="yes"

настройка дополнительного сетевого интерфейса в linux centos

После этого на сервере нужно установить шлюз по умолчанию. Проверим какой шлюз установлен в данный момент и при необходимости поменяем его:

Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 185.*.*.1 0.0.0.0 UG 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
185.*.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
185.*.*.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

В качестве основного шлюза у нас выступает интерфейс eth1. Я же хочу использовать eth0, для этого изменим его:

# route add default gw *.*.*.*
– заменяем шлюз на тот, который указан в сетевом интерфейсе eth0

# route delete default gw *.*.*.*
— удаляем шлюз интерфейса eth1

netstat - проверка шлюза по умолчанию

Если вы хотите, чтобы данная настройка сохранилась после перезагрузки сервера, добавьте эти команды в rc.local (см. статью об автозагрузке сервисов в CentOS).

Оцените статью
Хостинги