- Настройка интернет-шлюза для двух подсетей на Ubuntu Server 18.04 LTS: подробное руководство
- Доступ к серверам за NAT по SSH
- Настройка сети для nfs-server, ftp-server и web-server
- Связь между подсетями
- Настройка сети для router
- Настройка связи между подсетями
- Настройка доступа к ресурсу на другом сервере
- Объединение двух локальных сетей с одинаковыми номерами сетей на Linux-шлюзе
- Этап 1: Настройка Linux-шлюза
- Этап 2: Настройка iptables
- Этап 3: Настройка маршрутов на клиентских машинах
- Этап 4: Проверка настроек
- Видео:
- Настройка сети (netplan) в Ubuntu 18.04 /20.04 | Статический ip | Network configuration (netplan)
Настройка интернет-шлюза для двух подсетей на Ubuntu Server 18.04 LTS: подробное руководство
В этой статье мы рассмотрим действия по настройке интернет-шлюза для двух локальных подсетей на Ubuntu Server 1804 LTS. Для объединения двух сетей в одну и обеспечивания связи между компьютерами внутри сетей, а также доступа в интернет, нам необходимо настроить маршрутизацию и прямое преобразование адреса (NAT).
Настройка начинается с редактирования файлов настроек и таблиц маршрутизации. Для этого мы воспользуемся утилитой vi или другим редактором на ваш выбор. Настройки сетевых интерфейсов и таблиц маршрутизации можно найти в документации по вашей версии Ubuntu Server.
На первом этапе нам потребуется получить два IP-адреса для наших сетей. Один адрес будет назначен внешнему интерфейсу (который напрямую подключен к интернету), а второй – внутреннему интерфейсу (который подключен к локальным компьютерам).
Когда у нас есть два IP-адреса, можно приступить к настройке. Сначала нам нужно назначить IP-адрес на наш внутренний интерфейс, используя следующую команду:
sudo ifconfig enp0s3 inet внутренний_IP-адрес
Далее мы должны настроить прямое преобразование адреса (NAT) и маршрутизацию. Для этого нам потребуется редактировать файл /etc/sysctl.conf и раскомментировать строку #net.ipv4.ip_forward=1. После этого нужно выполнить команду sudo sysctl -p для активации настроек.
Для обеспечения связи между компьютерами внутри сети и доступа в интернет, мы также должны настроить маршрутизацию. Для этого нам нужно добавить маршрут default gateway на наш интернет-шлюз. Пример команды для настройки маршрута:
sudo route add default gw внешний_IP-адрес enp0s3
Теперь, когда маршрутизация настроена, можно проверить работоспособность интернет-соединения, выполнив команду ping с внешнего компьютера на адрес вашего web-сервера:
ping внешний_IP-адрес
Если ответ прошел успешно, значит, настройка интернет-шлюза прошла отлично и теперь ваша сеть готова к использованию.
Доступ к серверам за NAT по SSH
После настройки etc/netplan/01-netcfg.yaml
на вашем сервере Linux вы можете настроить доступ к другим серверам в вашей локальной сети через NAT. Изначально ваш сервер настроен как шлюз между двумя подсетями, и мы можем воспользоваться этой настройкой, чтобы получить доступ к другим серверам.
Ниже приведен пример настройки доступа к серверам по SSH:
- Прочитайте IP-адрес сервера, к которому вы хотите получить доступ, из
etc/netplan/01-netcfg.yaml
. - Откройте терминал на вашем сервере и введите команду
sudo nano /etc/ssh/sshd_config
. - Найдите и отредактируйте строки
#Port
и#ListenAddress
следующим образом:- Для
#Port
установите номер порта SSH (обычно 22), по которому вы хотите получить доступ к серверу. - Для
#ListenAddress
укажите IP-адрес сервера, к которому вы хотите получить доступ.
- Для
- Сохраните файл и закройте редактор.
- Перезапустите службу SSH, введя команду
sudo systemctl restart ssh
.
Теперь у вас должна быть возможность подключиться к указанному серверу по SSH с помощью нового порта и IP-адреса. Не забудьте проверить настройки маршрутизации и правила фаервола на вашем сервере, чтобы убедиться, что все настройки правильные и безопасные.
Настройка сети для nfs-server, ftp-server и web-server
Для обеспечения связи между серверами внутреней и внешней сетью необходимо настроить маршрутизацию и преобразование адресов сетевых пакетов с помощью netfilter (iptables) и механизма NAT (Network Address Translation).
Настройку сети можно провести следующим образом:
- На сервере pc-2 настраиваем iptables для прослушивания входящих обращения на порты NFS, FTP и веб-сервера:
- На сервере pc-2 настраиваем iptables для переписывания исходящих пакетов:
- На сервере pc-2 открываем порты для соединения с NFS-сервером и FTP-сервером:
- На сервере pc-3 настраиваем rutind для маршрутизации:
- На сервере pc-3 настраиваем доступ к NFS-серверу:
- На сервере pc-3 настраиваем доступ к FTP-серверу:
- На клиенте (например, Windows PC) настраиваем доступ к веб-серверу:
sudo iptables -A PREROUTING -t nat -p tcp --dport 2049 -j DNAT --to-destination <ip-адрес NFS-сервера>
sudo iptables -A PREROUTING -t nat -p tcp --dport 21 -j DNAT --to-destination <ip-адрес FTP-сервера>
sudo iptables -A PREROUTING -t nat -p tcp --dport 80 -j DNAT --to-destination <ip-адрес веб-сервера>
sudo iptables -A POSTROUTING -t nat -o enp0s3 -j MASQUERADE
sudo iptables -A INPUT -p tcp --dport 2049 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo route add default gw <ip-адрес сервера pc-2>
sudo mount -t nfs <ip-адрес сервера pc-2>:/<путь к nfs-шаре> <локальная директория>
ftp <ip-адрес сервера pc-2>
ping <ip-адрес сервера pc-2>
ssh <ip-адрес сервера pc-2>
http://<ip-адрес сервера pc-2>
После сохранения и применения настроек iptables, сервер pc-2 с помощью маршрутизации и NAT будет обеспечивать связь между внутреней и внешней сетью. Теперь клиенты смогут достучаться до серверов NFS, FTP и веб-сервера по виртуальным IP-адресам, а сервер pc-2 будет преобразовывать пакеты и перенаправлять их на соответствующие сервера.
Связь между подсетями
Для обеспечения связи между двумя подсетями на нашем Linux-шлюзе, необходимо выполнить настройку маршрутизации пакетов. После создания и настройки интернет-шлюза для каждой подсети, мы можем приступить к настройке связи между ними.
Для определения пути для передачи пакетов между подсетями, добавляем следующие правила в файл «/etc/netplan/01-netcfg.yaml»:
network: version: 2 renderer: networkd ethernets: enp0s8: dhcp4: no dhcp6: no addresses: [192.168.0.1/24] bridges: br0: addresses: [192.168.1.1/24] dhcp4: no dhcp6: no interfaces: [enp0s9] version: 2 renderer: networkd ethernets: enp0s9: dhcp4: no dhcp6: no addresses: [192.168.2.1/24]
После сохранения и закрытия файла, выполняем следующие действия:
1. Выполняем команду «sudo netplan apply», чтобы применить настройки.
2. Открываем файл «/etc/sysctl.conf» и отключаем преобразование адресов (IP-маскарадинг):
net.ipv4.ip_forward=1
3. Для предоставления доступа к внешней сети создаем правила NAT в iptables:
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o enp0s3 -j MASQUERADE sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o enp0s3 -j MASQUERADE sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -s 192.168.1.0/24 -i enp0s3 -j ACCEPT sudo iptables -A FORWARD -s 192.168.2.0/24 -i enp0s3 -j ACCEPT
4. Для просмотра и редактирования правил iptables можно использовать утилиту «iptables-persistent». Устанавливаем ее командой:
sudo apt-get install iptables-persistent
После установки утилиты, при редактировании правил iptables будет предложено сохранить изменения.
Теперь между двумя подсетями будет установлена связь, и пакеты с одной подсети смогут передаваться на другую и наоборот.
Настройка сети для router
Для начала, посмотрим таблицу маршрутизации на сервере:
$ ip route show
В данной таблице будут отображены все сети и подсети, с которыми сервер настроен на взаимодействие. Смотрим, куда сервер отправляет пакеты, полученные из каждой из подсетей.
Для примера, предположим, что у нас есть две подсети: 192.168.1.0/24 и 192.168.2.0/24. Также предположим, что в каждой подсети есть серверы с одинаковыми IP-адресами: 192.168.1.10 и 192.168.2.10 соответственно.
Настройка связи между подсетями
Для того чтобы сервера из разных подсетей могли общаться между собой, необходимо настроить маршрутизацию и преобразование пакетов между подсетями.
Воспользуемся командой route add
для добавления маршрута между подсетями:
$ sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 $ sudo route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1
Таким образом, мы настроили прямую связь между двумя подсетями. Теперь сервера с IP-адресами 192.168.1.10 и 192.168.2.10 смогут достучаться друг до друга.
Настройка доступа к ресурсу на другом сервере
Допустим, у нас есть веб-сервер с IP-адресом 192.168.1.10 в подсети 192.168.1.0/24 и FTP-сервер с IP-адресом 192.168.2.10 в подсети 192.168.2.0/24. Чтобы клиент, находящийся в одной из подсетей, мог получить доступ к ресурсам на другом сервере, необходимо настроить правила маршрутизации.
Для примера, настроим доступ к FTP-серверу из сети с веб-сервером:
$ sudo route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1
Теперь клиент в сети с веб-сервером сможет обращаться к FTP-серверу по его IP-адресу 192.168.2.10.
Аналогично можно настроить доступ ко многим другим ресурсам и сервисам на разных серверах.
Важно понимать, что настройка сети для роутера требует внимательности и понимания работы сетевых протоколов и маршрутизации. Неправильная настройка может привести к неработоспособности функций или к потере связи между сетями.
Отлично! Мы настроили сеть для роутера и теперь можем обеспечивать связь между различными сетями и подсетями.
Объединение двух локальных сетей с одинаковыми номерами сетей на Linux-шлюзе
Этап 1: Настройка Linux-шлюза
Для начала необходимо настроить маршрутизацию на Linux-шлюзе. Это можно сделать с помощью команды echo 1 > /proc/sys/net/ipv4/ip_forward
. Эта команда активирует маршрутизацию пакетов в ядре Linux-шлюза.
Этап 2: Настройка iptables
Далее, нам нужно настроить правила для iptables. Для этого создадим файл с правилами iptables, например, с именем «iptables.rules». В этом файле мы указываем, какие действия должны выполняться для каждого пакета.
Действие | Правило iptables |
---|---|
Пропускать пакеты между сетями | iptables -A FORWARD -i lan1 -o lan2 -j ACCEPT iptables -A FORWARD -i lan2 -o lan1 -j ACCEPT |
Переадресовать пакеты между сетями | iptables -t nat -A PREROUTING -i lan1 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.10:80 |
Переадресовать пакеты обратно | iptables -t nat -A POSTROUTING -o lan1 -j SNAT --to-source 192.168.1.1 |
Обратите внимание, что в приведенных примерах «lan1» и «lan2» — это виртуальные интерфейсы, которые мы создаем на Linux-шлюзе для связи с каждой подсетью.
Этап 3: Настройка маршрутов на клиентских машинах
Для того чтобы клиенты из локальной сети LAN1 могли обращаться к машинам из сети LAN2 и наоборот, необходимо настроить маршрут и обратный маршрут на каждой машине.
Ниже приведены примеры команд для настройки маршрутов на клиентских машинах:
Компьютер | Команда |
---|---|
Клиент из сети LAN1 | route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 |
Клиент из сети LAN2 | route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.2.1 |
Этап 4: Проверка настроек
Теперь мы можем проверить настроенные правила и маршруты. Попробуем из клиента в сети LAN1 обратиться к web-серверу в сети LAN2:
- Откройте веб-браузер и введите адрес ftp-сервера в сети LAN2 (например, 192.168.2.10).
- Если все настройки выполнены правильно, вы должны увидеть страницу FTP-сервера.
- Также, проверьте возможность доступа к серверу из сети LAN2.
Если весь трафик между сетями должен проходить через Linux-шлюз, вы можете добавить следующую команду в файл с правилами iptables:
iptables -A FORWARD -i lan1 -o wan -j ACCEPT
В данном примере, «wan» — это интерфейс, через который осуществляется выход в Интернет.
Видео:
Настройка сети (netplan) в Ubuntu 18.04 /20.04 | Статический ip | Network configuration (netplan)
Настройка сети (netplan) в Ubuntu 18.04 /20.04 | Статический ip | Network configuration (netplan) by D1zz One 8,062 views 3 years ago 5 minutes, 15 seconds