Настройка Centos 7

Обновлено: 21.11.2024

В этом руководстве мы научимся преобразовывать компьютеры RHEL/CentOS 6 и 7 в маршрутизатор с помощью NAT. Маршрутизатор, как мы знаем, представляет собой сетевое устройство уровня 3, которое используется для соединения 2 или более сетей, т. е. либо для подключения локальной сети к глобальной сети, либо от локальной сети к локальной сети и т. д. Устройства маршрутизатора довольно дороги, особенно для небольших организаций, что может быть причиной для беспокойства. Таким образом, вместо того, чтобы использовать специальное оборудование, мы можем использовать любую машину с Linux и преобразовать ее в маршрутизатор.
Мы будем обсуждать процесс как для RHEL/CentOS 6, так и для 7. Но прежде чем мы это сделаем, давайте обсудим, что нам понадобится для нашей установки.

Необходимое условие

1– Машина с установленной RHEL/CentOS 6 или 7.
2– Два сетевых адаптера для назначения локального IP-адреса и IP-адреса WAN соответственно

Мы должны назначить IP-адрес обеим сетевым картам, один IP-адрес должен быть для локальной сети (информация о нем будет предоставлена ​​нашим сетевым администратором), а другой IP-адрес должен быть для доступа в Интернет, будет предоставлена ​​информация для IP-адреса глобальной сети. через интернет-провайдера. Например

Ifcfg-en0s3 192.168.1.1 (IP-адрес в локальной сети)
Ifcfg-en0s5 10.1.1.1 (IP-адрес в глобальной сети)

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

Теперь, когда у нас есть то, что нам нужно, мы перейдем к настройке

Шаг 1. Включение IP-переадресации

Сначала мы включим IP-переадресацию на машине. Процесс выполнения одинаковый как в RHEL/CentOS 6, так и в 7. Чтобы включить переадресацию IP, запустите

Но это не сохранится при перезагрузке системы. Чтобы он пережил перезагрузку системы, откройте

& введите следующее в файл,

Сохранить файл и выйти. Теперь в системе включена IP-переадресация.

Шаг 2. Настройка правил IPtables/Firewalld

Далее нам нужно запустить службы IPtables/firewalld в наших системах, чтобы настроить правило NAT,

Следующий шаг — настроить правило NAT в брандмауэре. Выполните следующую команду,

Здесь XXXX — это имя сетевого интерфейса с IP-адресом WAN. На этом настройка Linux-машины в качестве маршрутизатора завершена, теперь мы протестируем наш маршрутизатор после настройки клиентской машины.

Шаг 3. Настройка клиентского компьютера

Чтобы протестировать маршрутизатор, нам нужно назначить внутренний (LAN) IP-адрес в качестве шлюза на нашем клиентском компьютере, в нашем случае это 192.168.1.1. Итак, независимо от того, используете ли вы компьютер с Windows или Linux в качестве клиента, убедитесь, что у нас есть 192.168.1.1 в качестве нашего шлюза. Как только это будет сделано, откройте терминал/командную строку и запустите проверку связи с веб-сайтом, чтобы убедиться, что Интернет доступен на клиентском компьютере,

Мы также можем проверить, просматривая веб-сайты через наш веб-браузер.

Если вы считаете, что мы помогли вам или просто хотите поддержать нас, обратите внимание на следующее: -

Я искал в Интернете информацию о правильной настройке хоста NAT под управлением CentOS7 и firewalld для более чем одной частной сети.

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

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

Какой лучший ресурс по firewalld не читается как руководство TL;DR?

При настройке узлов NAT, как указано ниже, правильно ли я понимаю, что предоставленные мной правила FORWARD и ACCEPT позволяют упомянутым сетям взаимодействовать с ЛЮБОЙ частной сетью, о которой знает шлюз NAT?

Разрешенная переадресация
Я изменил файл /etc/sysctl.conf следующим образом:
net.ipv4.ip_forward=1
и после перезагрузка sysctl.conf с помощью sysctl -p подтвердила, что он активен, поскольку /proc/sys/net/ipv4/ip_forward содержит значение 1.

добавленные зоны
firewall-cmd --permanent --add-zone=vmnet3
firewall-cmd --permanent --add-zone=vmnet4

добавлены интерфейсы для соответствующих зон
firewall-cmd --permanent --zone=public --add-interface=ens33
firewall-cmd --permanent --zone =internal --add-interface=ens37
firewall-cmd --permanent --zone=vmnet3 --add-interface=ens38
firewall-cmd --permanent --zone=vmnet4 --add- интерфейс=ens39

включено маскирование
firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o ens33 -j MASQUERADE

Добавлены правила для частных сетей (внутренняя зона)
Правильно ли я понимаю, что это позволяет хосту NAT направлять трафик в Интернет? Влияет ли это на внутрисетевое взаимодействие между частными сетями (интерфейсы ens37, 38 и 39)?

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens37 -o ens33 -j ПРИНЯТЬ

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens33 -o ens37 -m state --state СВЯЗАННО,УСТАНОВЛЕНО -j ПРИНЯТЬ

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens38 -o ens33 -j ПРИНЯТЬ

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens33 -o ens38 -m state --state СВЯЗАННО,УСТАНОВЛЕНО -j ПРИНЯТЬ

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens39 -o ens33 -j ПРИНЯТЬ

firewall-cmd --direct --add-rule ipv4 filter FORWARD 0 -i ens33 -o ens39 -m state --state СВЯЗАННО,УСТАНОВЛЕНО -j ПРИНЯТЬ

В последнее время необходимо разместить сервер Esxi, только один общедоступный сетевой IP-адрес, но все виртуальные машины должны иметь доступ к общедоступной сети. Я не нашел сетевой модели NAT, похожей на рабочую станцию ​​Vmware в Esxi, поэтому хочу использовать виртуальную машину в качестве NAT-сервера. Моя система виртуальной машины имеет Win2008 и entOS7. Учитывая стабильность, я решил реализовать его на Linux. Ниже приведен мой эксперимент по моделированию с Vmware WorkStation на моем ноутбуке:

  • Во-первых, представьте экспериментальную среду.
  • Физическая машина: Windows 10 + Vmware WorkStation 12
  • Виртуальная машина 1: Windows 7, виртуальная одиночная сетевая карта NAT
  • Виртуальная машина 2: минимизация установки CentOS7, NAT с двумя виртуальными сетевыми картами

    Поскольку сетевые карты обеих виртуальных машин настроены в режиме NAT, можно предположить, что они могут получить доступ друг к другу под тот же переключатель.
  • Начните настройку CentOS 7
    1. Подготовка (обновление системы, установка сетевых инструментов)

<р>2. Настройка IP-адреса

Мои две сетевые карты — eno16777736 и eno33554984 соответственно. Я намерен использовать eno16777736 в качестве доступа к внешней сети, поэтому IP-адрес останется автоматически выделяемым DHCP по умолчанию, а выделенный здесь IP-адрес — 192.168.32.130. Eno33554984 в качестве доступа к интрасети, настройки IP статичны 192.168.10.1, конкретные способы настройки IP больше не описываются.

<р>3. Включение IP-переадресации
Измените файл /etc/sysctl.conf и добавьте следующие строки

Для вступления в силу используйте команду sysctl-p

<р>4. Измените область интерфейса.
По умолчанию зоны двух сетевых карт являются общедоступными. Теперь вам нужно установить eno16777736 как внешний, а eno33554984 как внутренний.

Постоянный означает постоянный.

<р>5. Настройка маскировки IP-адреса

<р>6. Настройка правил NAT

<р>7. Эффективное создание

<р>8. Проверка
Настройте IP-адрес 192.168.10.10 и шлюз 192.168.10.1 на виртуальной машине win7, как показано на рисунке. Настройка сервера NAT завершена.

  • Начните настройку сопоставления портов,
    Поскольку мне нужно получить доступ к виртуальной машине win из внешней сети во внутреннюю сеть, поэтому мне нужно сопоставление портов. В качестве примера возьмем доступ к удаленному рабочему столу, порт удаленного рабочего стола Windows — TCP 3389, поэтому мне просто нужно сопоставить порт внешней сети с портом внутренней сети 3389. Команды следующие:

Глядя на настройки, я настроил здесь два порта.

Проверьте сопоставление портов:
Используйте инструмент mstsc на физическом компьютере для подключения внешнего IP-адреса CentOS, 192.168.32.130 упоминалось в начале.

Хорошо, эксперимент окончен. Поскольку все мои виртуальные машины имеют статический IP-адрес, служба DHCP не установлена.

Сценарий представляет собой небольшую частную сеть, подключенную через коммутатор и использующую адреса 192.168.0.*. Одна из машин (назовем ее RTR001) в сети имеет две сетевые карты. Один с адресом в сети 192.168.0.*, а другой обеспечивает более широкий доступ к сети (и Интернету) в сети 123.111.123.*. Эта машина (RTR001) будет принимать трафик из частной сети 192.168.0.* и направлять его через другой интерфейс в Интернет и т. д.

Итак, маршрутизатор (RTR001) имеет следующие интерфейсы и IP-адреса:

Настройте ядро ​​для пересылки IP-пакетов:

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

В CentOS 7 после настройки обоих сетевых интерфейсов нам нужно использовать firewalld:

После внесения изменений перезагрузите с помощью:

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

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

Настроить маскировку на внешнем устройстве (eth0):

Теперь правило NAT (см. комментарии — это может не потребоваться):

Я использовал DNS, DHCP, pxe и несколько других служб на своем компьютере RTR001 для обслуживания внутренних компьютеров, поэтому я открыл эти порты с помощью:

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

6 ответов на «CentOS 7 как шлюз NAT для частной сети»

Спасибо за руководство. У меня работало нормально до перезагрузки. После перезагрузки машины все сетевые устройства назначаются зоне по умолчанию. Неважно, настрою ли я его с помощью командной строки или с помощью firewalld-GUI.

Можете ли вы представить, что я могу сделать?

Я исправил это, добавив

ZONE=внутренняя
или
ZONE=внешняя

в файл /etc/sysconfig/network-scripts/ifcfg-eno1

В RHEL7.3 команды firewall-cmd –zone=external –add-interface=eth0 –permanent теперь автоматически добавляют зону в файл конфигурации сети /etc/sysconfig/network-scripts/ifcfg-xyz.

Вам не нужно перезагружаться, если вы изменили /etc/sysctl.conf, просто выполните следующую команду, чтобы перезагрузить его;
sysctl -p

Читайте также: