- Интернет-шлюз на базе Ubuntu Server 1804 LTS — подробное руководство
- Интернет-шлюз на базе Ubuntu Server 1804 LTS
- Установка и настройка операционной системы
- Установка и настройка пакета netfilter
- Настройка правил netfilter
- Установка netfilter-persistent и iptables-persistent
- Настройка netplan
- Настройка пересылки пакетов на ftp-сервер
- Настройка NAT для подмены адреса
- Настройка фильтрации пакетов
- Создание виртуального моста и подключение интерфейсов
- Создание виртуального моста
- Подключение интерфейсов
- Настройка DHCP-сервера для локальной сети
- Назначение статического IP-адреса для внешнего интерфейса
- Настройка маршрутизации пакетов
- Настройка интерфейсов
- Настройка прокси-сервера
- Настройка маршрутизации
- Настройка маршрутизации пакетов PPPoE-соединения
- Сохранение правил netfilter
- Видео:
- Настройка сети в Ubuntu 20.04
Интернет-шлюз на базе Ubuntu Server 1804 LTS — подробное руководство
В сетевых системах интернет-шлюз – это сервер, выполняющий функцию маршрутизатора между внутренней сетью и интернет-сетью. Это важное звено, которое обеспечивает соединение компьютеров и других устройств с доступом в интернет.
Ubuntu Server 1804 LTS предоставляет все необходимые инструменты для создания и настройки интернет-шлюза. Для этого мы будем использовать пакеты squid и netfilter, которые позволяют настроить прокси-сервер и межсетевой экран на основе iptables.
Прежде чем приступить к настройке, убедитесь, что ваш сервер имеет несколько сетевых интерфейсов и надежно подключен к вашему сетевому маршрутизатору. Вам также необходимо иметь доступ в интернет и знать ip-адреса вашего интернет-провайдера.
Для начала, проверьте настройки сетевых интерфейсов с помощью команды ifconfig. Найдите интерфейс, подключенный к интернету, и запишите его дальнейшие настройки, такие как ip-адрес и порт (обычно это eth0 или eth1). Затем выполните команду ip route для просмотра текущих маршрутов и узнайте ip-адрес маршрутизатора и сетевых подсетей.
Теперь установим необходимые пакеты для прокси-сервера и межсетевого экрана. Выполните команду apt-get install squid iptables-persistent, чтобы установить эти пакеты и добавить их в автоматическую загрузку системы.
После установки пакетов перейдите к настройке прокси-сервера Squid. Откройте файл /etc/squid/squid.conf в текстовом редакторе и настройте прокси-сервер в соответствии со своими потребностями. Например, вы можете настроить доступ к определенным сайтам или запретить некоторые порты. Сохраните изменения и перезапустите службу squid с помощью команды service squid restart.
Теперь настало время настроить межсетевой экран. Откройте файл /etc/sysctl.conf в текстовом редакторе и найдите строку net.ipv4.ip_forward=0. Замените 0 на 1, чтобы включить перенаправление пакетов между интерфейсами. Сохраните изменения и выполните команду sysctl -p, чтобы применить их.
Далее вам необходимо настроить маршрутизацию и межсетевой экран с помощью iptables. Введите следующую команду для настройки маршрутизатора:
iptables -t nat -A POSTROUTING -o [интерфейс с доступом в интернет] -j MASQUERADE
Здесь вместо [интерфейс с доступом в интернет] укажите интерфейс, подключенный к интернету.
Теперь настало время настроить межсетевой экран для маршрутизации трафика. Давайте предположим, что ваша внутренняя сеть имеет подсети 192.168.1.0/24 и 192.168.2.0/24. Введите следующую команду для настройки межсетевого экрана:
iptables -A FORWARD -i [интерфейс внутренней сети] -o [интерфейс с доступом в интернет] -j ACCEPT
iptables -A FORWARD -i [интерфейс с доступом в интернет] -o [интерфейс внутренней сети] -m state —state RELATED,ESTABLISHED -j ACCEPT
Здесь вместо [интерфейс внутренней сети] укажите интерфейс, подключенный к внутренней сети, а вместо [интерфейс с доступом в интернет] – интерфейс, подключенный к интернету.
Сохраните настройки iptables с помощью команды iptables-persistent save и перезапустите службу iptables-persistent с помощью команды service iptables-persistent restart.
Наконец, убедитесь, что ваш интернет-шлюз настроен как шлюз по умолчанию для ваших сетевых серверов. Вам также нужно настроить DNS-сервер, чтобы он был доступен из внутренней сети и правильно разрешал имена доменов. Выполните поиск в Интернете, чтобы узнать, как настроить эти компоненты.
Теперь ваш интернет-шлюз должен быть полностью настроен и готов к использованию. Все компьютеры и другие устройства во внутренней сети должны быть настроены на использование вашего интернет-шлюза в качестве шлюза по умолчанию. Если все сделано правильно, они смогут получить доступ в интернет через ваш сервер.
Интернет-шлюз на базе Ubuntu Server 1804 LTS
Ubuntu Server 1804 LTS можно использовать как интернет-шлюз, управляющий подключением между локальной сетью и внешней сетью. В этом разделе мы рассмотрим подробное руководство по настройке интернет-шлюза.
Для начала, убедитесь, что на вашем устройстве установлено Ubuntu Server 1804 LTS. Далее необходимо установить демон виртуальных машин (KVM) с помощью команды:
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
После установки демона виртуальных машин необходимо добавить виртуальный интерфейс к вашему серверу. Мы назовем его pc-3:
sudo virsh attach-interface pc-3 --type bridge --source bridge=br0 --model virtio --live
Далее, необходимо настроить маршрутизацию между внутренней сетью (pc-3) и внешней сетью (enp0s8). Для этого откройте файл конфигурации интерфейсов:
sudo nano /etc/network/interfaces
Найдите строку, содержащую настройки для внутренней сети (pc-3) и добавьте следующие настройки:
iface pc-3 inet static
address 10.0.0.1
netmask 255.255.255.0
Сохраните файл и выйдите из редактора. Далее необходимо настроить правила iptables для перенаправления трафика между внутренней и внешней сетью. Откройте файл с правилами:
sudo nano /etc/iptables/rules.v4
Добавьте следующую строку перед строкой содержащей «-A FORWARD -j REJECT —reject-with icmp-proto-unreachable»:
-A FORWARD -i enp0s8 -o pc-3 -j ACCEPT
Сохраните файл и выйдите из редактора. Теперь необходимо настроить доступ к внутренней сети на сервере. Откройте файл конфигурации NFS-сервера:
sudo nano /etc/exports
Добавьте следующую строку в файл:
/mnt/nfs-server 10.0.0.0/24(rw,no_root_squash,sync,no_subtree_check)
Сохраните файл и выйдите из редактора. Далее перезагрузите сервер с помощью команды:
sudo reboot
После перезагрузки, установите на виртуальную машину внутреннюю сетевую карту и подключите ее к внутренней сети (pc-3). Теперь у вас полностью настроен интернет-шлюз на базе Ubuntu Server 1804 LTS!
Установка и настройка операционной системы
Перед тем, как приступить к установке и настройке интернет-шлюза, необходимо установить операционную систему Ubuntu Server 18.04 LTS на виртуальную машину или физический сервер компьютера, который будет выполнять роль интернет-шлюза.
Установка операционной системы Ubuntu Server 18.04 LTS осуществляется по стандартной процедуре установки ОС Ubuntu. При установке вам будет предложено выбрать режим установки. Для нашей цели выбираем режим установки «Машину использовать как интернет-шлюз» (Internet Gateway).
После этого нужно указать параметры настройки сети. Если вам известны все настройки вашего интернет-провайдера, то вы можете их ввести вручную. Если же вы не уверены в настройке, то оставьте поле пустым — установщик попытается автоматически определить настройки сети через DHCP.
После того, как ОС Ubuntu Server 18.04 LTS будет полностью установлена, необходимо настроить сетевые интерфейсы вашего сервера. Для этого откройте терминал и выполните следующую команду:
sudo nano /etc/netplan/50-cloud-init.yaml
В открывшемся файле находится конфигурация сетевых интерфейсов. Вам нужно будет отредактировать этот файл, чтобы обеспечить правильную настройку интернет-соединения.
Добавьте следующий код в файл:
network:
version: 2
ethernets:
enp0s8:
addresses: [ВНУТРЕННИЙ_IP_АДРЕС/МАСКА] # IP-адрес вашей внутренней сети
dhcp4: false
routes:
- to: 0.0.0.0/0
via: IP_АДРЕС_ВАШЕГО_МАРШРУТИЗАТОРА # IP-адрес вашего маршрутизатора в интернете
version: 2,2,2
Внимание! Внесите соответствующие изменения в код, заменив «ВНУТРЕННИЙ_IP_АДРЕС» на IP-адрес вашей внутренней сети и «IP_АДРЕС_ВАШЕГО_МАРШРУТИЗАТОРА» на IP-адрес вашего маршрутизатора в интернете.
После внесения изменений сохраните файл и выполните следующую команду, чтобы применить настройки:
sudo netplan apply
После этого ваш интернет-шлюз будет полностью настроен и готов к использованию.
Установка и настройка пакета netfilter
Первым делом установим пакет iptables-persistent, который позволит автоматически восстановить правила iptables при загрузке сервера:
- Выполняем команду
sudo apt-get update
для обновления списка пакетов - Затем выполняем команду
sudo apt-get install iptables-persistent
для установки пакета
После установки пакета перейдем к настройке:
- Отключим автоматическую загрузку правил iptables, чтобы использовать собственные настройки. Для этого выполняем команду
sudo systemctl mask netfilter-persistent.service
- Создадим файл
/etc/iptables/rules.v4
, в котором будем добавлять правила.
Теперь мы можем настраивать правила для фильтрации трафика:
- Добавляем в файл
/etc/iptables/rules.v4
соответствующие настройки для каждого сервера или устройства в сети. - При необходимости создаем отдельные цепочки правил и применяем их к определенным адресам или подсетям.
- Настроим мост между внутренней и внешней сетями для обеспечения связи между компьютерами в сети и выхода в Интернет.
После настройки правил и моста перезагружаем компьютер для применения изменений:
- Выполняем команду
sudo netfilter-persistent reload
, чтобы перезагрузить правила iptables - Затем выполняем команду
sudo reboot
, чтобы перезагрузить сервер.
После перезагрузки сервера netfilter будет полностью настроен и готов к использованию.
Настройка правил netfilter
В данной статье мы рассмотрим, как настроить правила netfilter для следующих задач:
- Пересылка пакетов на ftp-сервер
- Настройка NAT (Network Address Translation) для подмены адреса
- Фильтрация пакетов
Установка netfilter-persistent и iptables-persistent
Для сохранения настроек netfilter при перезагрузке сервера нам понадобятся утилиты netfilter-persistent и iptables-persistent. Установим их следующей командой:
sudo apt-get install netfilter-persistent iptables-persistent
После установки нам будет предложено сохранить текущую конфигурацию iptables, на что мы соглашаемся.
Настройка netplan
Для настройки сети в Ubuntu Server 1804 LTS используется инструмент netplan. Открываем файл конфигурации netplan:
sudo nano /etc/netplan/50-cloud-init.yaml
Внутри файла редактируем секцию «network», в которой назначаем IP-адреса и интерфейсы для наших сетей:
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses: [192.168.1.1/24]
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
В данном примере мы назначаем IP-адрес 192.168.1.1 на интерфейс enp0s8, который будет использоваться для внутренней сети.
После внесения изменений сохраняем файл и применяем новую конфигурацию:
sudo netplan apply
Настройка пересылки пакетов на ftp-сервер
Для настройки пересылки пакетов на ftp-сервер воспользуемся командой iptables:
sudo iptables -t nat -A PREROUTING -i enp0s8 -p tcp --dport 21 -j DNAT --to-destination 192.168.1.2:21
Здесь мы указываем, что все пакеты, поступающие на интерфейс enp0s8 с портом 21, должны быть перенаправлены на IP-адрес ftp-сервера (192.168.1.2) на порт 21.
Настройка NAT для подмены адреса
Для настройки NAT, позволяющей подменять адрес источника пакета, используем следующую команду:
sudo iptables -t nat -A POSTROUTING -o enp0s3 -j MASQUERADE
В данном случае мы указываем, что все пакеты, передаваемые через интерфейс enp0s3, должны иметь измененный исходный адрес.
Настройка фильтрации пакетов
Для настройки фильтрации пакетов используем команды iptables. Например, чтобы разрешить только сеть 192.168.1.0/24 обращаться к ftp-серверу, выполним следующую команду:
sudo iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.1.2 --dport 21 -j ACCEPT
Здесь мы разрешаем только пакетам, исходящим из сети 192.168.1.0/24 и направленным на IP-адрес ftp-сервера (192.168.1.2) с портом 21, пройти фильтрацию и быть переданными.
После настройки правил netfilter можно полностью настроить интернет-шлюз на базе Ubuntu Server 1804 LTS. Не забудьте сохранить текущую конфигурацию правил с помощью команды:
sudo netfilter-persistent save
Теперь, при загрузке машины, правила netfilter будут автоматически применяться.
Создание виртуального моста и подключение интерфейсов
Для настройки интернет-шлюза на базе Ubuntu Server 1804 LTS требуется создание виртуального моста и подключение интерфейсов. Этот раздел подробно описывает необходимые шаги.
Создание виртуального моста
Для начала, на сервере Ubuntu необходимо настроить виртуальный мост. В качестве примера будем использовать два компьютера (pc-1 и pc-2), подключенные к локальной сети и сервер Ubuntu, который будет выступать в роли моста.
1. Присвоим мосту адреса IP-сетей, чтобы устройства на других концах моста могли получить доступ к интернету. Назначаем адреса следующими командами:
sudo ip addr add 192.168.1.1/24 dev br0
sudo ip addr add 192.168.2.1/24 dev br0
2. Создадим файл br0.netplan
в директории /etc/netplan/
с помощью команды: sudo nano /etc/netplan/br0.netplan
. Добавим в него следующий контент:
network:
version: 2
renderer: networkd
ethernets:
enp0s8: {}
bridges:
br0:
interfaces: [enp0s8]
dhcp4: no
addresses: [192.168.1.1/24, 192.168.2.1/24]
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
3. Сохраните и закройте файл, а затем выполните команду sudo netplan apply
для применения изменений. Теперь виртуальный мост создан и настроен для использования.
Подключение интерфейсов
Далее, необходимо подключить интерфейсы enp0s3
и enp0s8
к виртуальному мосту.
1. Откройте файл /etc/netplan/50-cloud-init.yaml
с помощью команды: sudo nano /etc/netplan/50-cloud-init.yaml
.
2. Добавьте следующий контент:
network:
ethernets:
enp0s3:
dhcp4: true
optional: true
enp0s8:
dhcp4: true
optional: true
bridges:
br0:
addresses: [192.168.1.1/24, 192.168.2.1/24]
dhcp4: no
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
interfaces: [enp0s8]
3. Сохраните и закройте файл, а затем выполните команду sudo netplan apply
для применения изменений. Теперь интерфейсы enp0s3
и enp0s8
подключены к виртуальному мосту и готовы к использованию.
Выполнение этих шагов позволит настроить виртуальный мост и подключить интерфейсы на сервере Ubuntu, таким образом создав связь между двумя сетевыми подсетями. Это будет единственный способ для маршрутизации пакетов между ними и раздачи интернета на всех устройствах.
Настройка DHCP-сервера для локальной сети
Для полноценной работы интернет-шлюза необходимо настроить DHCP-сервер, чтобы автоматически назначать IP-адреса компьютерам в локальной сети.
В качестве DHCP-сервера можно использовать пакет isc-dhcp-server, который будет работать в паре с iptables-persistent для сохранения правил фильтрации пакетов.
Для начала установим DHCP-сервер следующей командой:
sudo apt install isc-dhcp-server
После установки необходимо отредактировать файл /etc/dhcp/dhcpd.conf и указать настройки DHCP-сервера:
sudo nano /etc/dhcp/dhcpd.conf
В этом файле можно задать диапазон IP-адресов, который будет выделяться DHCP-сервером, а также другие настройки, такие как шлюз по умолчанию, DNS-сервер и т.д.
Пример настроек DHCP-сервера:
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
range 192.168.0.10 192.168.0.100;
}
В данном примере DHCP-сервер будет выделять IP-адреса в диапазоне от 192.168.0.10 до 192.168.0.100. Шлюзом по умолчанию будет 192.168.0.1, а DNS-серверами — 8.8.8.8 и 8.8.4.4.
После внесения всех необходимых изменений необходимо перезапустить DHCP-сервер следующей командой:
sudo service isc-dhcp-server restart
Теперь все машины в локальной сети, подключенные к интерфейсу, который является членом этой сети, должны автоматически получить IP-адрес от DHCP-сервера.
Назначение статического IP-адреса для внешнего интерфейса
Для обеспечения надежного подключения компьютера к сетевому маршрутизатору и правильной работы интернет-шлюза на базе Ubuntu Server 1804 LTS, необходимо назначить статический IP-адрес для внешнего интерфейса.
В Ubuntu Server 1804 LTS стандартным способом настройки сетевых интерфейсов является утилита netplan. С ее помощью можно легко настроить IP-адрес, шлюз, DNS и другие параметры сети.
Чтобы выполнить настройку, откройте файл /etc/netplan/01-netcfg.yaml в редакторе:
sudo nano /etc/netplan/01-netcfg.yaml
В файле найдите раздел, отвечающий за внешний интерфейс (обычно он называется eth0 или enp0s3) и выполните следующие действия:
- Добавьте параметр «addresses» со значением статического IP-адреса для внешнего интерфейса (например, 192.168.0.2/24).
- Добавьте параметр «gateway4» со значением IP-адреса шлюза (например, 192.168.0.1).
- Добавьте параметр «nameservers» со значением IP-адреса DNS (например, 8.8.8.8).
После внесения изменений сохраните файл и примените новые настройки сети с помощью команды:
sudo netplan apply
Теперь ваш интернет-шлюз на базе Ubuntu Server 1804 LTS имеет статический IP-адрес для внешнего интерфейса, что обеспечит стабильное подключение к сети и возможность передачи данных.
Настройка маршрутизации пакетов
В данном разделе рассмотрим основные настройки маршрутизации пакетов в интернет-шлюзе на базе Ubuntu Server 1804 LTS. Для полного понимания и выполнения всех необходимых настроек вам потребуется прочитать предыдущие разделы.
Настройка интерфейсов
Для обеспечения связи с внешней сетью и локальной сетью необходимо настроить интерфейсы. Один интерфейс будет соединять ваш интернет-шлюз с провайдером, а второй – с локальной подсетью.
Откройте файл конфигурации netplan для редактирования:
sudo nano /etc/netplan/50-cloud-init.yaml
Здесь вы найдете настройки для двух интерфейсов: enp0s3
и enp0s8
. Внесите необходимые изменения в соответствии с вашей сетевой конфигурацией.
Сохраните и закройте файл.
Настройка прокси-сервера
Для обеспечения доступа к интернету в локальной сети необходимо установить и настроить прокси-сервер. Мы рекомендуем использовать Squid.
Установим Squid на наш сервер:
sudo apt-get install squid
После установки откройте файл настроек Squid для редактирования:
sudo nano /etc/squid/squid.conf
Раскомментируйте и отредактируйте следующие строки, чтобы разрешить доступ к прокси-серверу только для внутренней сети:
http_access allow localnet
http_access deny all
Сохраните и закройте файл.
Настройка маршрутизации
Для обеспечения правильной маршрутизации пакетов необходимо настроить правила iptables.
Установим утилиту для сохранения правил iptables:
sudo apt-get install iptables-persistent
Теперь создадим файл с правилами iptables:
sudo nano /etc/iptables/rules.v4
В этом файле опишем все необходимые правила. Например, если вы хотите разрешить доступ к веб-серверу (находящемуся в локальной сети) из интернета, добавьте следующую строку:
-A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Сохраните и закройте файл.
Теперь необходимо применить настройки iptables:
sudo iptables-restore < /etc/iptables/rules.v4
Настройка маршрутизации пакетов PPPoE-соединения
Если ваш интернет-шлюз использует PPPoE-соединение, выполните следующие действия:
Откройте файл настроек PPPoE-соединения для редактирования:
sudo nano /etc/ppp/peers/provider
Назначьте имя интерфейсу:
ifname eth0
Сохраните и закройте файл.
Теперь выполните следующие команды для настройки маршрутизации:
sudo ip link set dev eth0 up
sudo ip route add default via ip_вашего_провайдера
Замените ip_вашего_провайдера
на IP-адрес вашего провайдера.
После завершения всех настроек перезагрузите сервер:
sudo reboot
После перезагрузки интернет-шлюз должен полностью обеспечить связь между вашей локальной сетью и интернетом.
Сохранение правил netfilter
При настройке интернет-шлюза на базе Ubuntu Server 18.04 LTS важно создать и сохранить правила netfilter, которые управляют трафиком и обеспечивают безопасность сети. Пакет netfilter в Ubuntu называется iptables. С помощью него можно просмотреть, создать и изменить правила.
Основная настройка netfilter происходит в файле /etc/iptables/rules.v4. Чтобы посмотреть текущие правила, можно использовать команду:
sudo iptables-restore -n < /etc/iptables/rules.v4
sudo iptables -L
В режиме прокси-сервера netfilter симулирует сеть между двумя компьютерами: одним, который настраивается как интернет-шлюз, и другим, который получает доступ к Интернету через этот сервер. В этом режиме для настройки правил netfilter можно использовать команды iptables на сервере или GUI-утилиты, такие как firestarter.
Если у вас имеется только одна машина, вы можете создать виртуальную машину, чтобы симулировать наличие нескольких компьютеров. В этом случае можно использовать функцию виртуализации, такую как VirtualBox или VMware, чтобы создать виртуальные машины.
Для создания нового правила необходимо редактировать файл /etc/iptables/rules.v4:
sudo nano /etc/iptables/rules.v4
В этом файле каждая строчка представляет собой одно правило, состоящее из источника, назначения, портов и действий. Создадим простое правило, которое позволит компьютеру pc-1 получить доступ к Интернету:
-A FORWARD -i enp0s3 -o enp0s8 -j ACCEPT
Это правило разрешает передачу пакета с интерфейса enp0s3 (источник) на интерфейс enp0s8 (назначение). Для применения правила необходимо перезапустить службу iptables:
sudo service iptables restart
Чтобы автоматически применять созданные правила при каждой загрузке системы, нужно настроить netfilter для автоматической загрузки правил при старте компьютера. Для этого нужно создать скрипт, который будет запускаться при старте, и сделать ссылку на него из директории /etc/rc5.d. Например, можно создать файл с именем /etc/rc.local и добавить следующие команды:
#!/bin/sh
iptables-restore < /etc/iptables/rules.v4
Затем нужно разрешить выполнение этого скрипта:
sudo chmod +x /etc/rc.local
Теперь правила будут автоматически загружаться при старте компьютера.
Видео:
Настройка сети в Ubuntu 20.04
Настройка сети в Ubuntu 20.04 автор: OSINT Zone | Блог Черевко Андрея 878 переглядів 8 місяців тому 2 хвилини і 58 секунд