История изменений
Исправление glorsh66, (текущая версия) :
Длиннопост может даже новую тему создать.
В итоге комп оказался с убунту 22 desktop. А на нем дефолтный NetworkManager. Понятно что можно в netplan переключить. Но я ради интереса решил поразбираться в ncli
Вводные - 2 сетевых интерфейса. Оба с интернетом. Один с «реальным IP» второй с локальной домашней сетью. Я хочу сделать так что бы весь обычный трафик шел через обычный интернет. А через реальный IP был port forwarding на внутренний веб сервер.
enp3s0 - обычный локальный интернет. 192.168.0.0/24 GW - 192.168.0.8 (да кривой адрес роутера) «Wired connection 1»
enp5s0 - Реальный IP 199.199.199.231, - GW 199.199.199.225 «Wired connection 2» с (посколькую это реальный IP я его заменил)
wg0 - вайгард.
Сделал следующие настройки (может кому будет полезен пример на NetworkManager)
#Делаем приоритет ниже, чтоб обынчый интернет был приоритетнее чем внешний
sudo nmcli connection modify "Wired connection 1" ipv4.route-metric 100
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"
sudo nmcli connection modify "Wired connection 2" \
ipv4.method manual \
ipv4.addresses 199.199.199.231/27 \
ipv4.gateway 199.199.199.225 \
ipv4.dns "8.8.8.8 8.8.4.4"
echo "200 custom_table" | sudo tee -a /etc/iproute2/rt_tables #Почему то сразу не хотела видеться.
ip route add default via 199.199.199.225 table 200 #Без нее почему то не работает
sudo nmcli connection modify "Wired connection 2" +ipv4.routes "0.0.0.0/0 199.199.199.225 200"
sudo nmcli connection modify "Wired connection 2" +ipv4.routes "0.0.0.0/0 199.199.199.225 table=200"
sudo nmcli connection modify "Wired connection 2" +ipv4.routing-rules "priority 100 from 199.199.199.231/27 table 200"
sudo nmcli connection modify "Wired connection 2" ipv4.route-metric 200
sudo nmcli connection down "Wired connection 2" && sudo nmcli connection up "Wired connection 2"
Все прекрасно работает как я и хотел. Весь исходящий трафик идет через enp3s0. А входящие соединения идут на enp5s0 с реальным IP.
Но вот вопрос я хочу сделать 443 port forwarding в локальную сеть. на 192.168.0.2:443
Делаю условно так:
sudo iptables -t nat -A OUTPUT -p tcp -d 199.199.199.231 --dport 443 -j DNAT --to-destination 192.168.0.2:443
sudo iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 443 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
(все дефолтные политики accept для упрощения тестирования)
И вот тут не работает. Точнее работает только в том случае если я отключаю первый интерфейс. Пытался дебажить через tcpdump - понял что пакеты приходят но не возвращатся. В общем что то с роутингом не то.
А именно получается при Port forwarding не приходит обратный пакет с enp3s0
Что можете подсказать? Я уже задолбал вопросами Claude 3.5 Sonnet (кстати всем рекомендую, щас самая топовая нейронка).
У меня предоложения что нужно сделать две кастомные таблицы роутинга.
И как то прописать чтоб enp3s0 и enp5s0 ссылались друг на друга.
Второе что что то мутить с маркирование пакетов. Но как это будет с обратными пакетами работать?
Исправление glorsh66, :
Длиннопост может даже новую тему создать.
В итоге комп оказался с убунту 22 desktop. А на нем дефолтный NetworkManager. Понятно что можно в netplan переключить. Но я ради интереса решил поразбираться в ncli
Вводные - 2 сетевых интерфейса. Оба с интернетом. Один с «реальным IP» второй с локальной домашней сетью. Я хочу сделать так что бы весь обычный трафик шел через обычный интернет. А через реальный IP был port forwarding на внутренний веб сервер.
enp3s0 - обычный локальный интернет. 192.168.0.0/24 GW - 192.168.0.8 (да кривой адрес роутера) «Wired connection 1»
enp5s0 - Реальный IP 199.199.199.231, - GW 199.199.199.225 «Wired connection 2» с (посколькую это реальный IP я его заменил)
wg0 - вайгард.
Сделал следующие настройки (может кому будет полезен пример на NetworkManager)
#Делаем приоритет ниже, чтоб обынчый интернет был приоритетнее чем внешний
sudo nmcli connection modify "Wired connection 1" ipv4.route-metric 100
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"
sudo nmcli connection modify "Wired connection 2" \
ipv4.method manual \
ipv4.addresses 199.199.199.231/27 \
ipv4.gateway 199.199.199.225 \
ipv4.dns "8.8.8.8 8.8.4.4"
echo "200 custom_table" | sudo tee -a /etc/iproute2/rt_tables #Почему то сразу не хотела видеться.
ip route add default via 199.199.199.225 table 200 #Без нее почему то не работает
sudo nmcli connection modify "Wired connection 2" +ipv4.routes "0.0.0.0/0 199.199.199.225 200"
sudo nmcli connection modify "Wired connection 2" +ipv4.routes "0.0.0.0/0 199.199.199.225 table=200"
sudo nmcli connection modify "Wired connection 2" +ipv4.routing-rules "priority 100 from 199.199.199.231/27 table 200"
sudo nmcli connection modify "Wired connection 2" ipv4.route-metric 200
sudo nmcli connection down "Wired connection 2" && sudo nmcli connection up "Wired connection 2"
Все прекрасно работает как я и хотел. Весь исходящий трафик идет через enp3s0. А входящие соединения идут на enp5s0 с реальным IP.
Но вот вопрос я хочу сделать 443 port forwarding в локальную сеть. на 192.168.0.98:443
Делаю условно так:
sudo iptables -t nat -A OUTPUT -p tcp -d 199.199.199.231 --dport 443 -j DNAT --to-destination 192.168.0.2:443
sudo iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 443 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
(все дефолтные политики accept для упрощения тестирования)
И вот тут не работает. Точнее работает только в том случае если я отключаю первый интерфейс. Пытался дебажить через tcpdump - понял что пакеты приходят но не возвращатся. В общем что то с роутингом не то.
А именно получается при Port forwarding не приходит обратный пакет с enp3s0
Что можете подсказать? Я уже задолбал вопросами Claude 3.5 Sonnet (кстати всем рекомендую, щас самая топовая нейронка).
У меня предоложения что нужно сделать две кастомные таблицы роутинга.
И как то прописать чтоб enp3s0 и enp5s0 ссылались друг на друга.
Второе что что то мутить с маркирование пакетов. Но как это будет с обратными пакетами работать?
Исходная версия glorsh66, :
Длиннопост может даже новую тему создать.
В итоге комп оказался с убунту 22 desktop. А на нем дефолтный NetworkManager. Понятно что можно в netplan переключить. Но я ради интереса решил поразбираться в ncli
Вводные - 2 сетевых интерфейса. Оба с интернетом. Один с «реальным IP» второй с локальной домашней сетью. Я хочу сделать так что бы весь обычный трафик шел через обычный интернет. А через реальный IP был port forwarding на внутренний веб сервер.
enp3s0 - обычный локальный интернет. 192.168.0.0/24 GW - 192.168.0.8 (да кривой адрес роутера) «Wired connection 1»
enp5s0 - Реальный IP 199.199.199.231, - GW 199.199.199.225 «Wired connection 1» с (посколькую это реальный IP я его заменил)
wg0 - вайгард.
Сделал следующие настройки (может кому будет полезен пример на NetworkManager)
#Делаем приоритет ниже, чтоб обынчый интернет был приоритетнее чем внешний
sudo nmcli connection modify "Wired connection 1" ipv4.route-metric 100
sudo nmcli connection down "Wired connection 1" && sudo nmcli connection up "Wired connection 1"
sudo nmcli connection modify "Wired connection 2" \
ipv4.method manual \
ipv4.addresses 199.199.199.231/27 \
ipv4.gateway 199.199.199.225 \
ipv4.dns "8.8.8.8 8.8.4.4"
echo "200 custom_table" | sudo tee -a /etc/iproute2/rt_tables #Почему то сразу не хотела видеться.
ip route add default via 199.199.199.225 table 200 #Без нее почему то не работает
sudo nmcli connection modify "Wired connection 2" +ipv4.routes "0.0.0.0/0 199.199.199.225 200"
sudo nmcli connection modify "Wired connection 2" +ipv4.routes "0.0.0.0/0 199.199.199.225 table=200"
sudo nmcli connection modify "Wired connection 2" +ipv4.routing-rules "priority 100 from 199.199.199.231/27 table 200"
sudo nmcli connection modify "Wired connection 2" ipv4.route-metric 200
sudo nmcli connection down "Wired connection 2" && sudo nmcli connection up "Wired connection 2"
Все прекрасно работает как я и хотел. Весь исходящий трафик идет через enp3s0. А входящие соединения идут на enp5s0 с реальным IP.
Но вот вопрос я хочу сделать 443 port forwarding в локальную сеть. на 192.168.0.98:443
Делаю условно так:
sudo iptables -t nat -A OUTPUT -p tcp -d 199.199.199.231 --dport 443 -j DNAT --to-destination 192.168.0.2:443
sudo iptables -A FORWARD -p tcp -d 192.168.0.2 --dport 443 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o enp3s0 -j MASQUERADE
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
(все дефолтные политики accept для упрощения тестирования)
И вот тут не работает. Точнее работает только в том случае если я отключаю первый интерфейс. Пытался дебажить через tcpdump - понял что пакеты приходят но не возвращатся. В общем что то с роутингом не то.
А именно получается при Port forwarding не приходит обратный пакет с enp3s0
Что можете подсказать? Я уже задолбал вопросами Claude 3.5 Sonnet (кстати всем рекомендую, щас самая топовая нейронка).
У меня предоложения что нужно сделать две кастомные таблицы роутинга.
И как то прописать чтоб enp3s0 и enp5s0 ссылались друг на друга.
Второе что что то мутить с маркирование пакетов. Но как это будет с обратными пакетами работать?