- Astra Linux IP Forwarding
- Начальные данные
- Алгоритм проброса портов в iptables.
- Настройка port forwarding в Astra Linux
- Как посмотреть правила iptables
- RSS
- Настройка nat astra linux
- Установка Astra Linux
- Основы работы с iptables и Netfilter
- Интернет шлюз на базе Astra Linux
- oko
- akelot
- Роутер и проброс портов на Astra Linux «Смоленск»
- Похожие посты:
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 у вас ещё не Читать
Настройка nat astra linux
Источник: yakadr.ru Astra Linux – это операционная система на базе Linux, которая активно используется в ряде государственных структур и организаций России. Одной из особенностей Astra Linux является её высокий уровень безопасности, который достигается, в частности, благодаря тщательной настройке сетевых параметров. В этой статье мы рассмотрим, как работать с iptables и Netfilter в Astra Linux.
Установка Astra Linux
Перед тем как начать, убедитесь, что у вас установлен Astra Linux. Если вы ещё не установили Astra Linux, вам потребуется загрузочный образ системы. После загрузки образа на устройство, следуйте инструкциям по установке, предоставленным разработчиками.
Основы работы с iptables и Netfilter
iptables – это пользовательский интерфейс для работы с механизмом фильтрации пакетов в ядре Linux, известным как Netfilter. С помощью iptables можно настраивать правила, которые определяют, как будут обрабатываться входящие и исходящие пакеты данных. Вот основные команды, которые вы можете использовать при работе с iptables в Astra Linux:
Эта команда отображает список текущих правил iptables.
iptables -A INPUT -s -j DROP
Замените на адрес, который вы хотите заблокировать. Эта команда добавляет правило, которое блокирует все входящие пакеты от указанного IP-адреса.
Эта команда удаляет все текущие правила iptables.
Не забывайте о том, что все изменения, внесённые с помощью iptables, будут сброшены после перезагрузки системы. Чтобы сделать изменения постоянными, вы можете использовать
iptables-save > /etc/iptables.rules
для сохранения текущих правил и
Помимо этих основных команд, iptables предлагает множество других опций и функций, позволяющих тонко настроить сетевые правила. Полный список доступных опций можно получить, выполнив команду man iptables.
Использование iptables и Netfilter является ключевым элементом безопасности в Astra Linux, позволяя контролировать трафик и предотвращать несанкционированный доступ.
Интернет шлюз на базе 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 «Смоленск»
Наша задача — настроить доступ в Интернет для внутренней сети.
Для этого в первую очередь открываем файл настроек сетевых интерфейсов /etc/network/interfaces
# nano /etc/network/interfaces
и зададим конфигурацию для внутренней сети:
auto eth1 iface eth1 inet static address 192.168.100.1 netmask 255.255.255.0 network 192.168.100.0 broadcast 192.168.100.255
Затем откроем файл /etc/sysctl.conf
и в нём раскомментируем строку:
После этого проверим статус запуска ufw
по умолчанию он будет отключён, поэтому включим его
Зададим правила файрволла по умолчанию
# ufw default deny incoming # ufw default allow outgoing # ufw default allow routed # ufw reload
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), allow (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere Anywhere on eth1 ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) Anywhere (v6) on eth1 ALLOW IN Anywhere (v6)
Далее переходим к файлу с правилами /etc/ufw/before.rules
в самом конце добавим строчки:
*nat :POSTROUTING ACCEPT [0:0] -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE COMMIT
После этого перезапустим ufw методом отключения и включения
Теперь установим службу DNS и DHCP-серверов dnsmasq
скорее всего, после установки она будет активна.
Затем откроем файл конфигурации dnsmasq
и в самом конце файла пропишем такие строки:
domain-needed bogus-priv interface=eth1 resolv-file=/etc/resolv.conf dhcp-range=192.168.100.101,192.168.100.200,24h cache-size=150
Перезагрузим службу dnsmasq
# systemctl restart dnsmasq
и все изменения должны примениться.
Для проброса портов на машины в локальной сети необходимо открыть файл конфигурации правил
*nat :POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.11:1234 -A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.12:5678
Далее запустим команды ufw для проброса этих портов
# ufw allow proto tcp from any to 192.168.100.11 port 1234 # ufw allow proto udp from any to 192.168.100.12 port 5678
и перезагрузим службу ufw
В итоге последний раздел файла /etc/ufw/before.rules должен выглядеть примерно так:
*nat :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -p tcp --dport 1234 -j DNAT --to-destination 192.168.100.11:1234 -A PREROUTING -i eth0 -p udp --dport 5678 -j DNAT --to-destination 192.168.100.12:5678 -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE COMMIT
Готово! Теперь машина с ОС Astra Linux полноценно работает в режиме шлюза и маршрутизатора.