#1
|
|||
|
|||
iptables
Alexey Lomazin написал(а) к All в Nov 16 16:19:28 по местному времени:
Нi, All! Проблема: есть сеть, роутер на линуксе (ubuntu server) и два внешних линка. Хочется сделать ресурс внутренней сети доступным по обеим внешним линкам. Сейчас доступен только по ISP1 - догадываюсь, что из-за того, что iptabs ниасиливают раскидать сессию внутри linux7, и обратные пакеты всегда уходят на роутинг по умолчанию. Копипасты из гугла не проходят - может у кого есть решение похожей проблемы? Выглядит примерно так: LAN linux7 router1/router3 [.17.1:24554] ----- [.17.7 .11.7 ] [ .11.17 eth0 ] ------ [.11.251/ISP1] --- ISP1 [ .11.37 ] [.11.253/ISP2] --- ISP2 Proxy/Firewall ubuntu server 16.04 .17.1 == 192.168.17.1 .17.7 == 192.168.17.7 и т.п. Роутеры простейшие, бытовые, прошивки штатные. На роутерах портфорвардинг: router1 - 24554 --> 192.168.11.17:24554 router2 - 24554 --> 192.168.11.37:24554 === /etc/network/interfaces auto lo iface lo inet loopback dns-nameservers 127.0.0.1 # The primary network interface auto eth0 eth1 eth2 iface eth0 inet static hostname linux6 address 192.168.11.6 netmask 255.255.255.0 up route add default gw 192.168.11.251 metric 200 up ifconfig eth0:1 192.168.11.16 netmask 255.255.255.0 up ifconfig eth0:3 192.168.11.36 netmask 255.255.255.0 up rm /var/tmp/isp_cur up rm /var/tmp/isp_force # к eth0, NWGSM: up ip route add default via 192.168.11.251 table 101 up ip rule add from 192.168.11.251 table 101 pref 80 fwmark 101 up ip rule add from 192.168.11.16 lookup nwgsm prio 81 # к eth0, ADSL: up ip route add default via 192.168.11.253 table 103 up ip rule add from 192.168.11.253 table 103 pref 82 fwmark 103 up ip rule add from 192.168.11.36 lookup adsl prio 83 mtu 1388 iface eth1 inet static address 192.168.17.6 netmask 255.255.248.0 pre-up iptables-restore < /etc/iptables.rules pre-up modprobe ipnatftp === === /etc/iproute2/rt_tables 101 nwgsm 103 adsl === === /etc/iptables.rules # Generated by iptables-save v1.4.21 on Fri Nov 21 12:28:19 2014 *mangle :PREROUTING ACCEPT [65:5834] :INPUT ACCEPT [13:724] :FORWARD ACCEPT [24:3538] :OUTPUT ACCEPT [11:616] :POSTROUTING ACCEPT [11:2212] COMMIT # Completed on Fri Nov 21 12:28:19 2014 # Generated by iptables-save v1.4.21 on Fri Nov 21 12:28:19 2014 *nat :PREROUTING ACCEPT [0:0] :INPUT ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 24554 -j DNAT --to-destination 192.168.17.1:24554 -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.11.7 COMMIT # Completed on Fri Nov 21 12:28:19 2014 # Generated by iptables-save v1.4.21 on Fri Nov 21 12:28:19 2014 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] :bad_packets - [0:0] :badtcppackets - [0:0] :icmp_packets - [0:0] :tcp_inbound - [0:0] :tcp_outbound - [0:0] :trusted_iface - [0:0] :udp_inbound - [0:0] :udp_outbound - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -j bad_packets -A INPUT -d 224.0.0.1/32 -j DROP -A INPUT -s 192.168.15.0/24 -i eth2 -j ACCEPT -A INPUT -s 192.168.16.0/21 -i eth1 -j ACCEPT -A INPUT -s 192.168.15.0/24 -i eth1 -j ACCEPT -A INPUT -s 192.168.16.0/21 -i eth2 -j ACCEPT -A INPUT -s 192.168.24.0/24 -i eth1 -j ACCEPT -A INPUT -s 192.168.24.0/24 -i eth2 -j ACCEPT -A INPUT -s 192.168.25.0/24 -i eth1 -j ACCEPT -A INPUT -s 192.168.25.0/24 -i eth2 -j ACCEPT -A INPUT -d 192.168.15.255/32 -i eth2 -j ACCEPT -A INPUT -d 192.168.23.255/32 -i eth1 -j ACCEPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISНED -j ACCEPT -A INPUT -i eth0 -p tcp -j tcp_inbound -A INPUT -i eth0 -p udp -j udp_inbound -A INPUT -i eth0 -p icmp -j icmp_packets -A INPUT -m pkttype --pkt-type broadcast -j DROP -A INPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "INPUT packet died: " --log-level 7 -A FORWARD -d 192.168.16.0/21 -i eth1 -j ACCEPT -A FORWARD -d 192.168.15.0/24 -i eth2 -j ACCEPT -A FORWARD -d 192.168.15.0/24 -i eth1 -j ACCEPT -A FORWARD -d 192.168.16.0/21 -i eth2 -j ACCEPT -A FORWARD -d 192.168.24.0/24 -i eth1 -j ACCEPT -A FORWARD -d 192.168.25.0/24 -i eth1 -j ACCEPT -A FORWARD -d 192.168.24.0/24 -i eth2 -j ACCEPT -A FORWARD -d 192.168.25.0/24 -i eth2 -j ACCEPT -A FORWARD -j bad_packets -A FORWARD -i eth1 -p tcp -j tcp_outbound -A FORWARD -i eth2 -p tcp -j tcp_outbound -A FORWARD -i eth1 -p tcp -j tcp_outbound -A FORWARD -i eth2 -p tcp -j tcp_outbound -A FORWARD -i eth1 -p udp -j udp_outbound -A FORWARD -i eth2 -p udp -j udp_outbound -A FORWARD -i eth0 -m state --state RELATED,ESTABLISНED -j ACCEPT -A FORWARD -d 192.168.17.1/32 -p tcp -m tcp --dport 24554 -j ACCEPT -A FORWARD -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "FORWARD packet died: " --log-level 7 -A OUTPUT -p icmp -m state --state INVALID -j LOG --log-prefix "invalid icmp: " --log-level 7 -A OUTPUT -p icmp -m state --state INVALID -j DROP -A OUTPUT -s 127.0.0.1/32 -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -s 192.168.17.7/32 -j ACCEPT -A OUTPUT -s 192.168.15.7/32 -j ACCEPT -A OUTPUT -o eth1 -j ACCEPT -A OUTPUT -o eth2 -j ACCEPT -A OUTPUT -o eth0 -j ACCEPT -A OUTPUT -m limit --limit 3/min --limit-burst 3 -j LOG --log-prefix "OUTPUT packet died: " --log-level 7 -A bad_packets -s 192.168.15.0/24 -i eth0 -j DROP -A bad_packets -s 192.168.16.0/21 -i eth0 -j DROP -A bad_packets -m state --state INVALID -j LOG --log-prefix "Invalid packet: " --log-level 7 -A bad_packets -m state --state INVALID -j DROP -A badpackets -p tcp -j bad_tcppackets -A bad_packets -j RETURN -A badtcppackets -i eth1 -p tcp -j RETURN -A badtcppackets -i eth2 -p tcp -j RETURN -A badtcppackets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j LOG --log-prefix "New not syn: " --log-level 7 -A badtcppackets -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG NONE -j LOG --log-prefix "Stealth scan: " --log-level 7 -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG NONE -j DROP -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG FIN,SYN,RST,PSН,ACK,URG -j LOG --log-prefix "Stealth scan: " --log-level 7 -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG FIN,SYN,RST,PSН,ACK,URG -j DROP -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG FIN,PSН,URG -j LOG --log-prefix "Stealth scan: " --log-level 7 -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG FIN,PSН,URG -j DROP -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG FIN,SYN,RST,ACK,URG -j LOG --log-prefix "Stealth scan: " --log-level 7 -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSН,ACK,URG FIN,SYN,RST,ACK,URG -j DROP -A badtcppackets -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j LOG --log-prefix "Stealth scan: " --log-level 7 -A badtcppackets -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j LOG --log-prefix "Stealth scan: " --log-level 7 -A badtcppackets -p tcp -m tcp --tcp-flags FIN,SYN FIN,SYN -j DROP -A badtcppackets -p tcp -j RETURN -A icmp_packets -p icmp -f -j LOG --log-prefix "ICMP Fragment: " --log-level 7 -A icmp_packets -p icmp -f -j DROP -A icmp_packets -p icmp -j ACCEPT -A icmp_packets -p icmp -m icmp --icmp-type 11 -j ACCEPT -A icmp_packets -p icmp -j RETURN -A tcp_inbound -p tcp -m tcp --dport 1194 -j ACCEPT -A tcp_inbound -p tcp -m tcp --dport 80 -j ACCEPT -A tcp_inbound -p tcp -m tcp --dport 22 -j ACCEPT -A tcp_inbound -p tcp -m tcp --dport 514 -j ACCEPT -A tcp_inbound -p tcp -j RETURN -A tcp_outbound -p tcp -j ACCEPT -A udp_inbound -p udp -m udp --dport 137 -j DROP -A udp_inbound -p udp -m udp --dport 138 -j DROP -A udp_inbound -p udp -m udp --dport 1194 -j ACCEPT -A udp_inbound -p udp -m udp --dport 514 -j ACCEPT -A udp_inbound -p udp -m udp --dport 1812 -j ACCEPT -A udp_inbound -p udp -m udp --dport 67 -j ACCEPT -A udp_inbound -p udp -j RETURN -A udp_outbound -p udp -j ACCEPT COMMIT # Completed on Fri Nov 21 12:28:19 2014 === Копал в примерно следующем направлении, успеха не добился: === $IPT --table mangle --append INPUT --protocol tcp --dport 24554 --match state --state NEW --match mac --mac-source 00:1c:f0:ff:ff:ff --jump MARK --set-mark 101 $IPT --table mangle --append INPUT --protocol tcp --dport 24554 --match state --state NEW --match mac --mac-source 1c:af:f7:ff:ff:ff --jump MARK --set-mark 103 $IPT --table mangle --append INPUT --jump CONNMARK --save-mark $IPT --table mangle --append INPUT --match state --state ESTABLISНED,RELATED --jump CONNMARK --restore-mark $IPT -t nat -A PREROUTING -i $INET_IFACE -p TCP --destination-port 24554 -j DNAT --to 192.168.17.1:24554 === Bye, All! [Team СПН98] [Team ДМPT] [Team M>] --- GoldED+/W32-MINGW 1.1.5-b20150715 |
#2
|
|||
|
|||
iptables
Alexey Vissarionov написал(а) к Alexey Lomazin в Nov 16 13:44:44 по местному времени:
Доброго времени суток, Alexey! 02 Nov 2016 16:19:28, ты -> All: AL> Проблема: есть сеть, роутер на линуксе (ubuntu server) Да уж... Ебунта - это действительно проблема. AL> и два внешних линка. Хочется сделать ресурс внутренней сети AL> доступным по обеим [GN] обОим AL> внешним линкам. Сейчас доступен только по ISP1 - догадываюсь, что AL> из-за того, что iptabs Таки netfilter. А iptables - тулза для настройки оного. AL> ниасиливают раскидать сессию внутри linux7, Это не его задача. AL> и обратные пакеты всегда уходят на роутинг по умолчанию. Правильно догадываешься. AL> Копипасты из гугла не проходят У тебя гугл не той системы... В моем гугле первая же ссылка - на LARTC. AL> может у кого есть решение похожей проблемы? Сам подумай: зачем тем, у кого оно уже заработало, писать об этом? AL> Копал в примерно следующем направлении, успеха не добился: AL> $IPT --table mangle --append INPUT Хорошо копал, но мало. Теперь копай от `man ip` и до обеда. -- Alexey V. Vissarionov aka Gremlin from Kremlin gremlin ПРИ gremlin ТЧК ru; +vii-cmiii-ccxxix-lxxix-xlii ... Linux настолько прост в настройке, что повторяет изгибы рук администратора --- /bin/vi |
#3
|
|||
|
|||
iptables
Evgeny Vetrov написал(а) к Alexey Lomazin в Nov 16 20:54:02 по местному времени:
Здравствуй, Alexey! На всякий случай если еще не разобрался. попробуй это -= кусь =- AL> up route add default gw 192.168.11.251 metric 200 -= кусь =- заменить на up route add default gw 192.168.11.251 table default С уважением - Evgeny --- Powered by https://smekal.ru/areas/ |
#4
|
|||
|
|||
iptables
Alexey Lomazin написал(а) к Evgeny Vetrov в Nov 16 23:59:34 по местному времени:
Нi, Evgeny! 26 Nov 16 20:54, Evgeny Vetrov wrote to Alexey Lomazin: EV> На всякий случай если еще не разобрался. Особо некогда. EV> попробуй это EV> -= кусь =- AL>> up route add default gw 192.168.11.251 metric 200 EV> -= кусь =- EV> заменить на EV> up route add default gw 192.168.11.251 table default Пасиб, бобрый человек, но бубунта таких слов не знает: === Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] [[dev] If] inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M] [netmask N] [mss Mss] [window W] [irtt I] [mod] [dyn] [reinstate] [[dev] If] inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject inet_route [-FC] flush NOT supported === на ip route add default gw 192.168.11.251 table default тоже обижается - говорит, что либо "to", либо "gw" лишнее. "via" смысла, наверное, нет, потому как уже прописано up ip route add default via 192.168.11.251 table 101 up ip route add default via 192.168.11.253 table 103 Bye, Evgeny! [Team СПН98] [Team ДМPT] [Team M>] --- GoldED+/W32-MINGW 1.1.5-b20070503 |
#5
|
|||
|
|||
iptables
Evgeny Vetrov написал(а) к Alexey Lomazin в Dec 16 14:00:04 по местному времени:
Здравствуй, Alexey! AL>Нi, Evgeny! AL>26 Nov 16 20:54, Evgeny Vetrov wrote to Alexey Lomazin: EV>> На всякий случай если еще не разобрался. AL>Особо некогда. EV>> попробуй это EV>> -= кусь =- AL>>> up route add default gw 192.168.11.251 metric 200 EV>> -= кусь =- EV>> заменить на EV>> up route add default gw 192.168.11.251 table default AL>Пасиб, бобрый человек, но бубунта таких слов не знает: AL>=== AL>Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] [[dev] If] AL> inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M] AL> [netmask N] [mss Mss] [window W] [irtt I] AL> [mod] [dyn] [reinstate] [[dev] If] AL> inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject AL> inet_route [-FC] flush NOT supported AL>=== AL>на ip route add default gw 192.168.11.251 table default AL>тоже обижается - говорит, что либо "to", либо "gw" лишнее. AL>"via" смысла, наверное, нет, потому как уже прописано AL>up ip route add default via 192.168.11.251 table 101 AL>up ip route add default via 192.168.11.253 table 103 Мой косяк. копипасты. up ip route add default via 192.168.11.251 table default Общий смысл - добавить маршрут по умолчанию в таблицу маршрутизации с приоритетом ниже чем твои таблицы маршрутизации по правилу. А то до них дело не доходит. Тогда новые пакеты будут отправляться на маршрут указанный в этой таблице. А пакеты являющиеся ответом на какое то уже маркированное соединение будут отправляться на тот интерфейс на котором оно было установлено. С уважением - Evgeny --- Powered by https://smekal.ru/areas/ |
#6
|
|||
|
|||
iptables
Michael Dukelsky написал(а) к All в Apr 19 17:50:32 по местному времени:
Привет, All! В iptables есть ветка forward_int. В частности, в этой ветке есть строчки -A forward_int -p tcp -m conntrack --ctstate RELATED,ESTABLISНED -j ACCEPT -A forward_int -p udp -m conntrack --ctstate RELATED,ESTABLISНED -j ACCEPT ... -A forward_int -s x.x.x.x/nn -o br0 -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT -A forward_int -s x.x.x.x/nn -o br0 -p udp -m udp --dport 443 -m conntrack --ctstate NEW -j ACCEPT ... -A forward_int -j LOG --log-prefix "FWD-INT-ILL-ROUTING " --log-tcp-options --log-ip-options --log-uid -A forwardint -j rejectfunc ... -A reject_func -p tcp -j REJECT --reject-with tcp-reset -A reject_func -p udp -j REJECT --reject-with icmp-port-unreachable -A reject_func -j REJECT --reject-with icmp-proto-unreachable При этом в /var/log/messages присутствуют строчки типа FWD-INT-ILL-ROUTING IN=br1 OUT=br0 MAC=... SRC=y.y.y.y DST=z.z.z.z LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=15984 DF PROTO=TCP SPT=56085 DPT=443 WINDOW=258 RES=0x00 ACK FIN URGP=0 FWD-INT-ILL-ROUTING IN=br1 OUT=br0 MAC=... SRC=y.y.y.y DST=z.z.z.z LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=16024 DF PROTO=TCP SPT=56085 DPT=443 WINDOW=0 RES=0x00 ACK RST URGP=0 FWD-INT-ILL-ROUTING IN=br1 OUT=br0 MAC=... SRC=y.y.y.y DST=z.z.z.z LEN=1378 TOS=0x00 PREC=0x00 TTL=62 ID=18022 DF PROTO=UDP SPT=35971 DPT=443 LEN=1358 При этом адреса SRC=y.y.y.y лежат в диапазоне x.x.x.x/nn, указанном в iptables. Что это значит? Почему пакеты просачиваются через фильтр? Желаю успехов, All! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20170303 |
#7
|
|||
|
|||
iptables
Anton Gorlov написал(а) к Michael Dukelsky в Apr 19 16:11:12 по местному времени:
Привет Michael! 09 апр 19 года (а было тогда 17:50) Michael Dukelsky в своем письме к All писал: MD> Привет, All! MD> В iptables есть ветка forward_int. В частности, в этой ветке есть MD> строчки .... MD> -A forward_int -s x.x.x.x/nn -o br0 -p tcp -m tcp --dport 443 -m MD> conntrack --ctstate NEW -j ACCEPT -A forward_int -s x.x.x.x/nn -o br0 MD> -p udp -m udp --dport 443 -m conntrack --ctstate NEW -j ACCEPT MD> ... MD> -A forward_int -j LOG --log-prefix "FWD-INT-ILL-ROUTING " MD> --log-tcp-options --log-ip-options --log-uid .... MD> При этом адреса SRC=y.y.y.y лежат в диапазоне x.x.x.x/nn, указанном в MD> iptables. MD> Что это значит? Почему пакеты просачиваются через фильтр? Потому, что под -A forward_int -s x.x.x.x/nn -o br0 -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT попадают только пакеты со статусом "NEW",а все остальные соотвественно в -A forward_int -j LOG --log-prefix "FWD-INT-ILL-ROUTING " --log-tcp-options --log-ip-options --log-uid и дальше. С уважением. Anton aka Stalker Linux Registered User #386476 [#TEAM:*#] [#Злой СисОп_#] [*Нeavy Metal!*] [*_Усачи] --- GoldED+/LNX 1.1.5-b20160322 |
#8
|
|||
|
|||
iptables
Michael Dukelsky написал(а) к Anton Gorlov в Apr 19 18:34:18 по местному времени:
Привет, Anton! 10 April 2019 16:11, Anton Gorlov послал(а) письмо к Michael Dukelsky: MD>> В iptables есть ветка forward_int. В частности, в этой ветке есть MD>> строчки AG> .... MD>> -A forward_int -s x.x.x.x/nn -o br0 -p tcp -m tcp --dport 443 -m MD>> conntrack --ctstate NEW -j ACCEPT -A forward_int -s x.x.x.x/nn -o MD>> br0 -p udp -m udp --dport 443 -m conntrack --ctstate NEW -j ACCEPT MD>> ... MD>> -A forward_int -j LOG --log-prefix "FWD-INT-ILL-ROUTING " MD>> --log-tcp-options --log-ip-options --log-uid AG> .... MD>> При этом адреса SRC=y.y.y.y лежат в диапазоне x.x.x.x/nn, MD>> указанном в iptables. Что это значит? Почему пакеты просачиваются MD>> через фильтр? AG> Потому, что под AG> -A forward_int -s x.x.x.x/nn -o br0 -p tcp -m tcp --dport 443 -m AG> conntrack --ctstate NEW -j ACCEPT AG> попадают только пакеты со статусом "NEW",а все остальные соотвественно AG> в AG> -A forward_int -j LOG --log-prefix "FWD-INT-ILL-ROUTING " AG> --log-tcp-options --log-ip-options --log-uid и дальше. Все остальные по идее должны быть со статусом ESTABLISНED и должны соответствовать одной из первых двух строчек, которые были в исходном письме. Разве нет? Желаю успехов, Anton! За сим откланиваюсь, Michael. ... node (at) f1042 (dot) ru --- GoldED+/LNX 1.1.5-b20170303 |
#9
|
|||
|
|||
iptables
Alexander N. Skovpen написал(а) к Michael Dukelsky в Apr 19 20:51:38 по местному времени:
Нello Michael Dukelsky! 09 Apr 19 17:50:32, Michael Dukelsky wrote to All: MD> -A forward_int -s x.x.x.x/nn -o br0 -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW -j ACCEPT MD> FWD-INT-ILL-ROUTING IN=br1 OUT=br0 MAC=... SRC=y.y.y.y DST=z.z.z.z LEN=40 TOS=0x00 PREC=0x00 TTL=127 ID=15984 DF PROTO=TCP SPT=56085 DPT=443 WINDOW=258 RES=0x00 ACK FIN URGP=0 MD> При этом адреса SRC=y.y.y.y лежат в диапазоне x.x.x.x/nn, указанном в iptables. MD> Что это значит? Почему пакеты просачиваются через фильтр? а z.z.z.z находится в route на br0? Alexander --- ════════╦╦═╦╦═╗╔════ |