Назад | Перейти на главную страницу

Перенаправление связанного соединения в локальную сеть через межсетевой экран с отслеживанием состояния - ArchLinux

Я использую Arch Linux для настройки брандмауэра для школы, который будет транслировать видео каждого класса учащимся дома, поэтому мне нужно сильное и безопасное соединение, поэтому я думал об объединении нескольких подключений для повышения стабильности и пропускной способности потока , У меня есть TP-Link TL-SG1016PE и он не поддерживает агрегацию динамических ссылок IEEE 802.3ad, поэтому я решил установить свои настройки связывания на баланс-tlb режим.

Все эти методы были для меня в новинку, поэтому, пожалуйста, сообщите мне, если что-то не так в моем плане.

Итак, моя физическая конфигурация следующая:

ETH               =>  |                        
                      |          MY FIREWALL                           |      =>  *COMPUTER 1
WIFI              =>  |  =>       BONDING     =>    MY SWITCH    =>    |      =>  *COMPUTER 2
                      |                                                |      =>  *COMPUTER 3, etc
*n TETHERED           |    
PHONES TO USB     =>  |

Следуя этим инструкциям https://wiki.archlinux.org/index.php/Simple_stateful_firewall и несколько других, которых я достиг, установив свой брандмауэр с отслеживанием состояния, который позволяет мне делиться подключением к локальной сети, и который отлично работает с iptables, переадресацией портов и dnsmasq.

Вот результат для ip a когда переадресация соединения работает нормально:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s20u1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 36:cd:92:83:53:c0 brd ff:ff:ff:ff:ff:ff
3: enp0s20u4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 42:4b:12:8f:33:9d brd ff:ff:ff:ff:ff:ff
4: home0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:e8:a6:68:6b:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.0/24 scope global home0
       valid_lft forever preferred_lft forever
    inet6 fe80::2e8:a6ff:fe68:6b00/64 scope link
       valid_lft forever preferred_lft forever
5: net0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:e8:a6:68:6b:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.35/24 brd 192.168.0.255 scope global dynamic noprefixroute net0
       valid_lft 42678sec preferred_lft 37278sec
    inet6 2a01:e0a:258:c2d0:c55f:7102:5bea:a7a1/64 scope global dynamic mngtmpaddr noprefixroute
       valid_lft 86391sec preferred_lft 86391sec
    inet6 fe80::a304:76bf:a944:3a76/64 scope link
       valid_lft forever preferred_lft forever
6: wifi0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 70:77:81:69:5f:1d brd ff:ff:ff:ff:ff:ff
    inet6 fe80::7277:81ff:fe69:5f1d/64 scope link
       valid_lft forever preferred_lft forever

и что в моем iptables.conf (то же самое в ip6tables.conf за исключением того, что IP-адрес находится в формате ip6) (мне нужен многопортовый линии, чтобы позволить WEBRTC протокол работать безразлично)

# Generated by iptables-save v1.8.4 on Fri Jul 31 01:49:07 2020
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/24 -o net0 -j MASQUERADE
COMMIT
# Completed on Fri Jul 31 01:49:07 2020
# Generated by iptables-save v1.8.4 on Fri Jul 31 01:49:07 2020
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:TCP - [0:0]
:UDP - [0:0]
:fw-interfaces - [0:0]
:fw-open - [0:0]
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m multiport --dports 3478,5349,8443,8888,19305,19307 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m multiport --dports 3478,5349,8443,8888,19305,19307 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p tcp -m tcp --dport 49152:65535 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -p udp -m udp --dport 49152:65535 -j ACCEPT
-A INPUT -i net0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p ipv6 -j ACCEPT
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -j REJECT --reject-with tcp-reset
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -j fw-interfaces
-A FORWARD -j fw-open
-A FORWARD -j REJECT --reject-with icmp-host-unreachable
-A TCP -p tcp -m tcp --dport 22 -j ACCEPT
-A TCP -p tcp -m tcp --dport 53 -j ACCEPT
-A TCP -p tcp -m multiport --dports 3478,5349,8443,8888,19305,19307 -j ACCEPT
-A TCP -p tcp -m tcp --dport 49152:65535 -j ACCEPT
-A UDP -p udp -m multiport --dports 3478,5349,8443,8888,19305,19307 -j ACCEPT
-A UDP -p udp -m udp --dport 49152:65535 -j ACCEPT
-A UDP -p udp -m udp --dport 53 -j ACCEPT
-A fw-interfaces -i home0 -j ACCEPT
COMMIT
# Completed on Fri Jul 31 01:49:07 2020

и dnsmasq.conf вывод

interface=home0
dhcp-range=192.168.1.10,192.168.1.250,12h
dhcp-option=6,10.202.0.1,1.1.1.1

Итак, как я сказал ранее, я установил свою связь в режиме 5, используя https://wiki.archlinux.org/index.php/Netctl#Bonding netctl метод и, похоже, он работает, с двумя телефонами, Ethernet и Wi-Fi я получил этот вывод для

$ cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: transmit load balancing
Primary Slave: None
Currently Active Slave: enp0s20u1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0

Slave Interface: net0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:e8:a6:68:6b:01
Slave queue ID: 0

Slave Interface: wifi0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 70:77:81:69:5f:1d
Slave queue ID: 0

Slave Interface: enp0s20u1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 36:cd:92:83:53:c0
Slave queue ID: 0

Slave Interface: enp0s20u4
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 42:4b:12:8f:33:9d
Slave queue ID: 0

Я бы хотел переслать это соединение облигация0 в моей домашней сети я попробовал три простых подхода, чтобы заставить ее работать;

Итак, мои вопросы:

Что ж, я надеюсь, что все ясно, извините, если нет, дайте мне знать, чего не хватает, чтобы помочь вам помочь мне :-)

Хорошего дня,

Мир,