Ip forwarding Astra LinuxSE 1.5

Сообщения
8
#1
Добрый вечер!
Мне необходимо пробросить порт через Astra linux. На машине с системой имеются два сетевых интерфейса.
Правила Iptables - верные, скопированы с работающего сервера на базе Centos.
Строку
net.ipv4.ip_forward=1 в файле /etc/sysctl.conf - раскомментировал.
# sysctl -p - команду для применения - выполнил.
Но по всем ощущениям, как будто не включился форвардинг пакетов в ядре между интерфейсами.
Подскажите пожалуйста - кроме раскомментированной строчки и упомянутой выше команды, необходимо ли что-то сделать для форвардинга пакетов через ядро Астра Линукс??
 

Mrshll

New member
Сообщения
64
#2
Правила написать для проброса пакетов.
Использовать iptables/ufw и попробовать по статьям на подобии этой, проверить ее сейчас не могу, но на первый взгляд рабочая.
 
Последнее редактирование:

Olej

New member
Сообщения
1 010
#3
Подскажите пожалуйста - кроме раскомментированной строчки и упомянутой выше команды, необходимо ли что-то сделать для форвардинга пакетов через ядро
В большинстве дистрибутивов Linux форвардинг между интерфейсами по умолчанию запрещён в параметрах ядра.
Проверить эхто вы можете:
Код:
olej@ACER:~$ cat /proc/sys/net/ipv4/ip_forward
0

olej@ACER:~$ /sbin/sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 0
А то, что вы затем разрешаете или запрещаете форвардинг внешне, в iptables - ему до фени.
 

Olej

New member
Сообщения
1 010
#4
необходимо ли что-то сделать для форвардинга пакетов
Включить форвардинг можете попробовать так:
Код:
# /sbin/sysctl -w net.ipv4.ip_forward=1
Или так:
Код:
# echo 1 > /proc/sys/net/ipv4/ip_forw
(эту вторую команду можете выполнить только из root сессии терминала, sudo здесь не проканывает)

Проверив, что это сработает, для долговременной конфигурации (после перезагрузки) можно попробовать добавить в /etc/sysctl.conf строку:
Код:
net.ipv4.ip_forward = 1
 
Сообщения
8
#5
Приведенная Вами статья, на мой взгляд тоже рабочая, но моя задача более прозаичная...
Привожу правила, нужно порт 51234 пробросить с сетевого интерфейса eth0 - который 192.168.101.185
на адрес 192.168.30.90.
Есть второй сетевой интерфейс eth1 192.168.30.10
Правила:

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -t mangle -F
iptables -t mangle -X

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#iptables -t nat -A PREROUTING -dst 192.168.101.185 -dport 51234 -j DNAT --to-destination 192.168.30.90:51234
#iptables -t nat -A POSTROUTING 192.168.30.90 -dport 51234 -j SNAT --to-source 192.168.101.185

sysctl -p


 
Сообщения
8
#6
cat /proc/sys/net/ipv4/ip_forward
У меня выводит в ответ " 1 "
данная строка
net.ipv4.ip_forward = 1 в файле /etc/sysctl.conf присутствует
 

Olej

New member
Сообщения
1 010
#7
Ну значит у вас IP-форвардинг (как параметр ядра) включён в Linux (зачастую он выключен).
Дальше вам нужно разбираться а). с правилами Iptables для проброса вашего порта 51234 + б). с дополнительными возможными ограничениями на такие действия в защищённой ОС.

P.S. Кстати, какой вы порт 51234 пробрасываете: TCP или UDP? В IP нет понятия "порт вообще".

P.P.S. Заодно поищите, чтобы ваш порт 51234 за кем-то не числился из well-known портов в /etc/services - можете попасть в конфликт.
 
Сообщения
8
#8
iptables -t nat -A PREROUTING -d 192.168.101.185 -p tcp -m tcp --dport 51234 -j DNAT --to-destination 192.168.30.90:51234
iptables -t nat -A POSTROUTING -d 192.168.30.90 -p tcp -m tcp --dport 51234 -j SNAT --to-source 192.168.30.10
tcp пробрасываю.
К сожалению, порт 51234 не числится ни за каким сервисом.
Тут собственно проблема с тем, что Вы указали под пунктом Б.
Приведенные правила в обычной Centos - отрабатывают.
Какие могут быть дополнительные возможные ограничения на проброс портов в Astra Linux?
 
Сообщения
8
#10
Неа.. итак у нас два интерфейса eth0 и eth1 - проверяем, идет ли что-нибудь на этот порт - видим приходящие пакеты - если правило отрабатывает, то мы должны увидеть пакеты с этим ж портом на втором интерфейсе. А при изменения команды tcpdump -i eth0 port 51234 - на eth1 - то тишина, пакеты отсутствуют
tcpdump -i eth0 port 51234
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:34:57.734099 IP 192.168.101.53.58587 > 192.168.101.185.51234: UDP, length 19
16:35:00.732571 IP 192.168.101.53.58157 > 192.168.101.185.51234: UDP, length 19
 

Olej

New member
Сообщения
1 010
#11
Приведенные правила в обычной Centos - отрабатывают.
В каком CentOS, по релизу? там всё сильно различалось... между 6, 7 и т.д.
Если хотите проверить свои правила iptables "по аналогии", то делайте это на DEB дистрибутивах (Debian, Ubuntu, Mint, ...), а не RPM (Fedora, CentOS, RedHat, ...) - там и там всё, что относится к пакетной фильтрации, может в деталях различаться. Можете проверить аналогии хотя бы в виртуальных машинах...

Разбирательства с iptables могут быть очень затяжными ;) ... я последний раз разбирался с деталями iptables несколько лет назад, поэтому ни вспоминать детали, ни влезать в ваши подробности не стану. Но, может, вас на что-то натолкнут эти вот темы и ссылки из них:
firewalld & iptables
правила iptables
 
Сообщения
8
#12
Всем спасибо, перепроверил утром на свежую голову, и нашел ошибку. Протокол должен был быть UDP.
 
Последнее редактирование: