Настройки шлюза linux debian

Настройка Ubuntu и Debian сетевым шлюзом для раздачи интернета в локальную сеть.

В этой заметке будет рассказано как с помощью iptables настроить системы с Ubuntu и Debian для раздачи интернета другим компьютерам локальной сети. На простом примере будет показано как машину с двумя сетевыми интерфейсами (в один « поступает » интернет, из другого — « выходит ») сделать шлюзом.

Настроить этот функционал через веб-интерфейс можно с помощью Webmin , через графический интерфейс – с помощью GAdmintools. Но мы рекомендуем настраивать шлюз напямую, а не через сторонние утилиты.

Примечание.

Работая в других дистрибутивах, мы привыкли использовать sudo для запуска программ от имени суперпользователя.

В Debian sudo не установлена по умолчанию. Поэтому, перед тем как что-то настраивать, ее надо инсталлировать:

# apt install sudo

Затем добавьте вашего пользователя в группу wheel:

# usermod -a -G sudo user

Где user — ваш пользователь в системе.

Теперь утилита должна работать.

1. Настройка сетевых интерфейсов.

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

Примечание.

Начиная с Debian 9 эта команда устарела, используйте ip a вместо нее.

Она выдаст список работающих в данный момент сетевых интерфейсов. Среди них надо опознать те, что начинаются со слов « Link encap:Ethernet » — это интерфейсы сетевых карт. Как правило, это eth0 и eth1 .

Теперь потребуется опознать в какой из них поступает интернет, а из какого « выходит ». Проще всего это сделать по их ip-адресам.

Итак, допустим через eth0 вы получаете интернет (например через adsl-модем по протоколу ppp), а eth1 связывает вас с локальной сетью.

Если локальная сеть настроена через Network Manager , то мы рекомендуем прописать эти настройки непосредственно в системном конфигурационном файле сети:

# sudo nano /etc/network/interfaces

Здесь исправьте настройки вашего сетевого интерфейса, подключенного к локальной сети (в нашем случае eth1 ), соответствующим образом:

auto eth1
iface eth1 inet static
address 192.168.0.10
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255

  • Значение address — (192.168.0.10 ) это IP вашей машины в локальной сети, по этому адресу собственно и будет располагаться шлюз.
  • Значение netmask — (255.255.255.0 ) в локальных сетях для этого диапазона чаще всего такая.

Значения network и broadcast будут зависеть от вашего адреса. То есть, если ваш локальный ip — 10.0.0.10, то network и broadcast будут 10.0.0.0 и 10.255.255.255 соответственно.

Читайте также:  Linux create folder and files

Для нашего примера будет следующее:

  • Значения network — 192.168.0.0
  • Значения broadcast — 192.168.0.255

Либо, это можно проделать всего одной командой:

$ sudo ifconfig eth1 192.168.0.10

Эта команда самостоятельно настроит вашу сетевую карту eth1 на использование статичного айпи-адреса, и самостоятельно пропишет описанные выше настройки в файл /etc/network/interfaces .

В любом случае, после этих изменений перезапустите networking :

$ sudo /etc/init.d/networking restart

проверьте, что изменения вступили в силу и все работает.

2. Настройка iptables.

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

# iptables —flush
# iptables —table nat —flush
# iptables —delete-chain
# iptables —table nat —delete-chain

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

Следующие команды настроят ваш iptables для NAT-трансляции (NAT, Network Address Translation — «преобразование сетевых адресов») через Ubuntu-шлюз:

$ sudo iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.0/24 -m conntrack —ctstate NEW -j ACCEPT

$ sudo iptables -A FORWARD -m conntrack —ctstate ESTABLISHED,RELATED -j ACCEPT

$ sudo iptables -A POSTROUTING -t nat -j MASQUERADE

Если необходимые вам сетевые интерфейсы отличаются от eth0 и eth1 , то просто измените первую строку соответствующим образом.
Если ваша локальная сеть находится вне диапазона 192.168.x.x, то маску подсети для указания в первой строке вы сможете легко вычислить через сервис Network Calculators. http://www.subnetmask.info/

Теперь для конфигурации gateway’я для роутинга между двумя интерфейсами необходимо включить IP-форвардинг командой:

$ sudo sh -c «echo 1 > /proc/sys/net/ipv4/ip_forward»

И последний штрих: надо отредактировать файл sysctl.conf :

Добавьте в него вот эти две строки для активации роутинга:

В Debian 9 достаточно добавить (раскомментрировать) всего одну строку:

После этого ваш интернет-шлюз готов к работе. Можете настраивать клиентские машины. На нашем примере для них gateway будет 192.168.0.10

Если все внесенные вами изменения работают корректно и вы желаете внести эти настройки в автозагрузку (а именно, вышеприведенные настройки iptables теряют активность после перезагрузки системы), то сохраните нынешнюю рабочую конфигурацию iptables в файл командой:

$ sudo sh -c «iptables-save > /etc/iptables.up.rules»

После этого в сам файл сетевых настроек /etc/network/interfaces ( sudo nano /etc/network/interfaces ) к параметрам вашего сетевого интерфейса, например, из которого к вам поступает интернет (в нашем случае – это eth0 ) добавьте строку:

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

auto eth0
iface eth0 inet manual
pre-up iptables-restore < /etc/iptables.up.rules

Только не меняйте значения в строке iface , просто добавьте указанную строку последней в разделе auto eth0 (ну или какого-то другого сетевого интерфейса). После этого при перезагрузке сохраненные настройки iptables будут подниматься автоматически.

Настройка Ubuntu и Debian сетевым шлюзом для раздачи интернета в локальную сеть.

Рубрики

Свежие записи

Источник

Интернет шлюз на Ubuntu / Debian

Обновлено

Обновлено: 16.02.2023 Опубликовано: 23.01.2019

  1. Включение redirect на уровне ядра.
  2. Настройкой брандмауэра.
  3. Опционально, настройка проброса портов.

Настройка ядра системы

sysctl -p /etc/sysctl.d/gateway.conf

Если мы получим ошибку sysctl command not found, либо нужно установить пакет:

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

Читайте также:  Загрузка линукс через grub

В случае с единственным сетевым адаптером больше ничего делать не потребуется — Ubuntu начнет работать как Интернет-шлюз.

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

Настройка брандмауэра

Как правило, управление брандмауэром netfilter в Linux на базе Debian выполняется с помощью утилиты iptables.

Iptables

Предположим, что сеть Интернет настроена через интерфейс ens160, а локальная сеть доступна через ens32. Создадим правило:

iptables -t nat -I POSTROUTING -o ens160 -j MASQUERADE

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

iptables -I FORWARD -i ens32 -o ens160 -m state —state RELATED,ESTABLISHED -j ACCEPT

iptables -I FORWARD -i ens32 -o ens160 -j ACCEPT

* интерфейс ens160, как условились ранее, используется для доступа в Интернет. Интерфейс ens32 — локальная сеть.

Сохраняем настройки iptables:

apt install iptables-persistent

Проброс портов (Port Forwarding)

Необходим для перенаправление сетевых запросов на сервер, стоящий за NAT и не имеющий прямого выхода во внешнюю сеть.

Iptables

Настройка выполняется двумя командами:

iptables -t nat -A PREROUTING -p tcp -m tcp -d 10.8.232.111 —dport 25 -j DNAT —to-destination 192.168.0.15:8025

iptables -t nat -A POSTROUTING -p tcp -m tcp -s 192.168.0.15 —sport 8025 -j SNAT —to-source 10.8.232.111:25

iptables -t nat -A PREROUTING -p tcp -i eth0 —dport 25 -j DNAT —to-destination 192.168.0.15:8025

iptables -A FORWARD -p tcp -d 192.168.0.15 —dport 8025 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

* где eth0 — внешний сетевой интерфейс.

iptables -I INPUT 1 -p tcp —dport 8025 -j ACCEPT

* обратите внимание, что мы разрешаем порт, на который переводим запрос, так как цепочки POSTROUTING и PREROUTING работают до цепочки FILTER, а потому открывать нужно не входящий порт (25), а тот, на который назначается пакет (8025).

Не забываем сохранить правила:

Источник

Настройка сети в Debian 11

Если вы являетесь обычным пользователем Linux или системным администратором, вам может потребоваться настройка сети в вашей системе. В отличие от настольных систем, где вы можете использовать динамические конфигурации, на серверах вам придется выполнять специфические настройки в зависимости от вашего сетевого окружения. Динамические конфигурации меняются при перезагрузке сервера, поэтому в некоторых случаях возникает необходимость в статических конфигурациях, например, когда сервер нуждается в удаленном администрировании, или когда на сервере работает приложение или служба, требующая постоянного доступа. Итак, в этой статье мы объясним, как можно настроить базовую сеть в ОС Linux на базе Debian. Базовая настройка включает в себя установку статического IP, шлюза, DNS и имени хоста.

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

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

Вы также можете выполнить команду ifconfig для просмотра IP-адреса.

Выполните следующую команду в терминале, чтобы найти IP-адрес DNS-сервера:

Изменение конфигурации сети

Базовая конфигурация сети включает в себя установку статического или динамического IP-адреса, добавление шлюза, информации о DNS-сервере. Существуют различные способы конфигурирования сети в Debian OS.

Читайте также:  Red hat enterprise linux server release

Использование команды ifconfig и route

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

Назначение IP-адреса интерфейсу

Мы будем использовать ifconfig для назначения IP-адреса нашему сетевому интерфейсу. Ниже приведен синтаксис команды:

sudo ifconfig  netmask up

В следующем примере команда назначает IP-адрес 192.168.72.16 сетевому интерфейсу eth0. Маска сети равна 24 (255.255.255.0) битам.

sudo ifconfig eth0 192.168.72.16 netmask 255.255.255.0 up

Настройка шлюза по умолчанию

Шлюз по умолчанию — это адрес, используемый для связи с внешней сетью. Чтобы настроить шлюз по умолчанию, используйте следующий синтаксис команды:

sudo route add default gw

В следующем примере я использую 192.68.72.1 в качестве адреса шлюза по умолчанию.

sudo route add default gw 192.168.72.1 eth0

Настройка DNS-сервера

DNS-сервер преобразует доменное имя в IP-адрес, чтобы браузер мог загружать интернет-ресурсы. Чтобы настроить адрес сервера имен DNS, используйте следующий синтаксис команды:

echo "nameserver " > /etc/resolv.conf

В следующем примере в качестве адреса сервера имен я задаю публичный IP-адрес DNS- 1.1.1.1.

echo "nameserver 1.1.1.1" > /etc/resolv.conf

Удаление IP-адреса из сетевого интерфейса

Чтобы удалить IP-адрес из сетевого интерфейса, выполните следующую команду в Terminal:

Изменение сетевых настроек с помощью файла интерфейсов

В этом методе мы настроим постоянные сетевые параметры, которые ваша система будет помнить даже после перезагрузки. Для этого нам нужно отредактировать файл /etc/network/interfaces с помощью любого текстового редактора. Для этого выполните следующую команду в терминале:

sudo nano /etc/network/interfaces

Затем добавьте в него следующие строки:

auto eth0 iface eth0 inet static address 192.168.72.16 netmask 255.255.255.0 gateway 192.168.72.1

Теперь нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.

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

auto eth0 iface eth0 inet dhcp

Определение серверов имен (DNS)

Чтобы добавить информацию о DNS-сервере, нам нужно отредактировать файл /etc/resolv.conf. Для этого выполните следующую команду:

Здесь я добавляю два сервера имен. Один — это адрес публичного DNS-сервера, а другой — IP-адрес моего маршрутизатора.

nameserver 1.1.1.1 nameserver 192.168.72.1

Теперь нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.

Настройка имени хоста

Как и IP-адрес, уникальное имя хоста также используется для распознавания системы в сети. Чтобы узнать текущее имя хоста вашей системы, выполните следующую команду в Терминале:

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

Чтобы навсегда изменить имя хоста, вам нужно отредактировать файл hostname, расположенный по адресу /etc/hostname. Для этого введите следующую команду:

Этот файл содержит только имя хоста, измените старое имя на желаемое, а затем нажмите Ctrl+O и Ctrl+X для сохранения и выхода.

Похожие записи:

Источник

Оцените статью
Adblock
detector