Настройка сети в Astra Linux
Astra Linux использует для конфигурирования сетей собственную утилиту wicd. В общем, она довольно удобна, но у неё есть фатальный недостаток — её писали не мы сеть не будет работать до авторизации пользователя в системе. Для обычных компьютеров в этом нет ничего страшного, однако, для сервера это большая проблема, так как иногда его приходится перезагружать по SSH.
Пусть компьютеры будут находиться в сети с адресами 192.168.0.XXX , где вместо XXX — число от 1 до 254.
Настройка осуществляется путем правки файла /etc/network/interfaces . Каждый сетевой интерфейс (сетевая карта, хотя это не совсем точное название) настраивается отдельно. Настройки для сервера выглядят так:
auto lo eth0 iface lo inet loopback iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.1 # В качестве шлюза - наш сервер с IP=1 network 192.168.0.0 # Указываем сеть, это обязательно для работы в составе ALD broadcast 192.168.0.255 # Сервер ALD начиная с Astra 1.5 выводит ошибку, если не видит # этого параметра в настройках сети. dns-nameservers 192.168.0.1 # Тут через пробел можно перечислить ВСЕ DNS-серверы сети dns-search DOMAIN.NET # Имя домена ALD
Первая строчка auto lo eth0 указывает, какие интерфейсы должны быть запущены при загрузке ОС. Отмечу, что локальная петля lo должна присутствовать там в любом случае.
Пропустим описание локальной петли и сразу перейдем к сетевому интерфейсу.
iface | Ключевое слово, говорящее о том, что дальше будет описание сетевого интерфейса |
eth0 | Указываем, что данный сетевой интерфейс должен быть привязан к сетевой карте eth0. Посмотреть список карт можно командой: lshw -class network |
inet | Указываем, что это будет настройка сети. |
static | При этом все настройки будут указаны вручную. |
address | IPv4-адрес компьютера |
netmask | Маска подсети. |
gateway | Шлюз, т. е. IP-адрес, через который идёт подключение к интернету. Обычно на сервере указывают адрес, выданный провайдером, но в нашем случае (закрытый от мира сегмент) пусть будет 192.168.150.1, т. е. компьютер обращается сам к себе. |
dns-nameservers | Список разделенных пробелами IP-адресов DNS-серверов. Полезно при разворачивании ЕПП под управлением Astra Linux и настройке приложения bind. |
На клиентских компьютерах настройки следует выполнить аналогичным образом, меняя только четвёртый октет в поле address .
На этом настройка не заканчивается. Теперь нужно отключить автозапуск встроенных утилит и остановить уже запущенный экземпляр службы wicd, после чего перезапустить службу поддержки сети.
service wicd stop chkconfig wicd off rm /etc/xdg/autostart/fly-admin-wicd.desktop service networking restart
Если на одной сетевой карте по каким-то причинам нужно иметь 2 или более IP-адресов, настройки делаются следующим образом:
auto lo iface lo inet loopback # Кстати, удалять интерфейс локальной петли не стоит, # некоторые службы от этого сходят с ума и начинают # выдавать весьма странные ошибки auto eth0:0 allow-hotplug eth0:0 iface eth0:0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 gateway 192.168.0.1 broadcast 192.168.0.255 dns-nameservers 192.168.0.1 192.168.0.2 dns-search DOMAIN.NET auto eth0:1 allow-hotplug eth0:1 iface eth0:1 inet static address 10.2.12.54 # Адрес, маска и все остальные параметры в этой netmask 255.255.255.128 # секции были придуманы за 20 секунд, поэтому network 10.2.12.0 # не ручаюсь за правильность заполнения. Гуглите gateway 10.2.12.1 # маску подсети для этого случая самостоятельно. broadcast 10.2.12.255 dns-nameservers 8.8.8.8 dns-search GOOGLE.RU
Посмотреть настройку сети в Debian более подробно можно на официальной Wiki-странице или её несколько устаревшей русской версии
Интернет шлюз на базе Astra Linux
Решил немного поизучать AL релиз Орел, и возникла проблема с расшариванием интернета. Тестовый стенд, в VirtualBox, есть две гостевых машины:
1. Windows 7 с одним сетевым интерфейсом — внутренняя сеть. В качестве шлюза по умолчанию стоит 192.168.1.1
1. Astra Linux, с двумя сетевыми адаптерами, первый eth0 — nat, второй eth1 — внутренняя сеть.
Конфигурация интерфейсов:
allow-hotplug eth0
iface eth0 inet dhcp
allow-hotplug eth1
iface eth1 inet static
address 192.168.1.1
netmask 255.255.255.0
broadcast 255.255.255.255
network 192.168.1.0
# также прописана ссылка на правила iptables
post-up iptables-restore < /etc/iptables.up.rules
В sysctl.conf прописано
net.ipv4.ip_forward=1
В правилах iptables прописано:
*nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [36:2142] :POSTROUTING ACCEPT [36:2142] -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE COMMIT
Но в Windows 7 интернет все равно не появляется. Адрес 192.168.1.1 пингутся, а допустим 8.8.8.8 — нет. Что я упускаю? Уже голову сломал, в linux не профи.
oko
New member
- не настроена поддержка сессий цепочки FORWARD — iptables -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT;
- цепочка FORWARD вообще по умолчанию блокирует трафик — iptables -P FORWARD DROP (а надо либо общий ACCEPT, либо отдельные правила с ACCEPT по хостам/подсетям);
- что-то еще сделано не так, как надо (в таблицах filter и mangle, например).
- косяк в конфигах VirtualBox;
- косяк в самой VirtualBox и ее работе на хостовой системе;
- не раздается адрес на eth0 по dhcp при настройке «nat» в сетевом интерфейсе VirtualBox (а вдруг?).
akelot
New member
# Generated by iptables-save v1.6.0 on Tue Sep 17 18:13:03 2019 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -i eth1 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -m state --state INVALID -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -m state --state INVALID -j DROP -A FORWARD -i eth1 -o eth0 -j ACCEPT -A FORWARD -i eth0 -o eth1 -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -o lo -j ACCEPT -A OUTPUT -o eth1 -j ACCEPT -A OUTPUT -o eth0 -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP COMMIT # Completed on Tue Sep 17 18:13:03 2019 # Generated by iptables-save v1.6.0 on Tue Sep 17 18:13:03 2019 *mangle :PREROUTING ACCEPT [1156:220784] :INPUT ACCEPT [1156:220784] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1156:220570] :POSTROUTING ACCEPT [1156:220570] COMMIT # Completed on Tue Sep 17 18:13:03 2019 # Generated by iptables-save v1.6.0 on Tue Sep 17 18:13:03 2019 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [36:2142] :POSTROUTING ACCEPT [36:2142] -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE COMMIT # Completed on Tue Sep 17 18:13:03 2019
Это точно исключено, на астре есть доступ к интернету по интерфейсу eth0, и с винды при условии использования подключения к squid, но трансляции сетевых адресов добиться не получается. Может ли это быть связана с какими-то настройками безопасности во время утсановки ОС? Лично я ничего не выбирал, кроме автологина в систему.
Astra Linux IP Forwarding
В этой статье поговорим о пробросе портов или IP Forwarding, используя ОС Astra Linux и утилиту iptables.
Начальные данные
У нас имеется компьютер под управлением Astra Linux с двумя сетевыми интерфейсами. Также в сети есть ещё одна машина с одним сетевым интерфейсом, которой выход в Интернет недоступен.
Требуется пробросить tcp порт (2222) с белого ip-адреса расположенного на ПК подключенного к Интернету, на серый ip-адрес Локальной сети порт (22).
Чаще всего проброс трафика используется, если мы находимся в локальной сети и от внешнего мира отделены шлюзом. Для того, чтобы открыть доступ для локальных служб (ssh, web, ftp и т.д.), нам необходимо пробросить порты. Поскольку в качестве шлюза мы будем использовать Astra Linux, то осуществлять данные действия будем с помощью встроенной утилиты iptables.
Алгоритм проброса портов в iptables.
В принципе все довольно просто, необходимо добавить всего несколько правил в таблицу маршрутизации iptables. Но для начала нам нужно включить форвардинг пакетов на ПК подключенного к Интернету. Для этого открываем терминал (ctrl+t) и вводим следующие команды:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward sudo sysctl -p
Для того чтобы каждый раз не вводить команды, отредактируем файл /etc/sysctl.conf
Ищем там строку #net.ipv4.ip_forward=1 , и убираем знак комментария.
Также необходимо узнать названия наших сетевых интерфейсов и их IP адреса. Для этого введем следующую команду:
Из вывода нас интересует интерфейсов eth0 с ip-адресом 80.81.82.83 и eth1 – 10.0.7.1. Первый интерфейс подключен к всемирной паутине, а второй к локальной сети.
Настройка port forwarding в Astra Linux
Для перенаправление tcp порта 2222 на tcp порт 22 другой машины, необходимо добавить следующие правила iptables:
sudo iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
Это правило разрешает прохождение входящих пакетов внутрь сети.
Теперь опишем форвардинг (forwarding) пакетов:
sudo iptables -t nat -A PREROUTING -p tcp -d 80.81.82.83 --dport 2222 -j DNAT --to-destination 10.0.7.2:22 sudo iptables -t nat -A POSTROUTING -p tcp --sport 22 --dst 10.0.7.2 -j SNAT --to-source 80.81.82.83:2222
- Первая строка подменяет IP адрес приемника (белый IP) на внутренний (серый IP)
- Вторая адрес отправителя (серый IP) на внешний (белый IP).
- 10.0.7.2 — IP адрес машины в локальной сети, на который перенаправляет трафик.
- 80.81.82.83 — внешний IP адрес нашего сервера.
- 22 — внутренний порт локальной машины
- 2222 — внешний порт для подключения.
- tcp – может принимать значения tcp или udp в зависимости от того какой порт вам необходимо прикинуть.
Для сохранения наших правил необходимо создать файл и подгружать его при каждой перезагрузки системы, иначе правила iptables которые мы написали слетять. Для этого набираем в терминале следующее:
содержимое файла по первому примеру:
#!/bin/sh # Перенаправляем ssh с 2222 на 22 IP-10.0.7.2 iptables -t nat -A PREROUTING -p tcp -d 80.81.82.83 --dport 2222 -j DNAT --to-destination 10.0.7.2:22 iptables -t nat -A POSTROUTING -p tcp -dst 10.0.7.2 --sport 22 -j SNAT --to-source 80.81.82.83:2222
Далее открываем файл interfaces
sudo nano /etc/network/interfaces
И добавляем в конце следующую строчку:
Данное выражение подгрузить правила iptables после перезагрузки системы.
Как посмотреть правила iptables
Посмотреть текущие правила iptables можно с помощью команды:
Chain PREROUTING (policy ACCEPT) target prot opt source destination DNAT tcp -- anywhere 80.81.82.83 tcp dpt:2222 to:10.0.7.2:22 Chain POSTROUTING (policy ACCEPT) SNAT tcp -- 10.0.7.2 anywhere tcp spt:ssh to:80.81.82.83:2222
Вот и все, на этом проброс портов в Astra Linux с помощью iptables завершено.
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо.
RSS
Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Сегодня в статье настроим и русифицируем Ubuntu Server 16.04/18.04/20.04. Чтобы поддерживался русский язык, и перевод системы стал русским
Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата
В этой статье рассмотрим пример обновления Ubuntu Server 16.04 до Ubuntu Server 18.04 Все наши действия нам придется выполнять из Читать
В связи с последними блокировками IP-адресов Роскомнадзором, встала необходимость завести свой собственный VPN сервер. Если VPN у вас ещё не Читать