Как добавить точку доступа WIFI к работающему проводному шлюзу, использующему Shorewall, dhcpd, unbound и hostapd?

У меня есть компьютер, который действует как сервер / шлюз / маршрутизатор для локальной сети. И я хотел бы добавить третий интерфейс, который будет действовать как точка доступа к Wi-Fi, например, чтобы устройства LAN могли подключаться к устройствам, подключенным к WIFI, и любое из них могло получить доступ к Интернету через шлюз.

У меня уже есть подключенные к локальной сети устройства, которые отлично работают с доступом в Интернет через шлюз и службы на шлюзе. (ssh, http и т. д.). Но по какой-то причине устройства, подключенные к точке доступа WIFI, не могут подключиться к Интернету или шлюзу.

Я подозреваю, что это может быть простая деталь в моих конфигурациях, которую я не замечаю. (скорее всего, в моей настройке IP-адресации и / или в моей настройке маскарада shorewall? ..)

Короткие моменты:

  • Шлюз может получить доступ к Интернету / WAN.
  • Проводной / LAN может получить доступ к Интернету через шлюз
  • Проводная / локальная сеть может получить доступ к службам, работающим на шлюзе.
  • Однако устройства, подключенные к WIFI, могут нет достичь шлюза, локальной сети или Интернета
    • они, по-видимому, правильно аутентифицируются hostapd
    • они действительно получают предполагаемые настройки DHCP, казалось бы, в порядке
      • Но даже ping 192.168.0.1 (the gateway's ip) терпит неудачу

Программный стек на шлюзе / маршрутизаторе:

  • системно-сетевой (для настройки подключения интерфейсов и шлюза ISP)
  • Shorewall (для межсетевого экрана и роутера)
  • несвязанный (для кеширования / перенаправления DNS-сервера)
  • dhcpd (4) (для DHCP-сервера)
  • hostapd (для настройки точки доступа Wi-Fi)

Физические интерфейсы на шлюзе / маршрутизаторе:

  • интерфейс WAN / Internet (динамические адреса от провайдера по DHCP):
## from 'ip address show'

4: enp0s20u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether <REDACTED MAC> brd ff:ff:ff:ff:ff:ff
    inet <REDACTED IP> brd 255.255.255.255 scope global dynamic noprefixroute enp0s20u1
       valid_lft 9497sec preferred_lft 7239sec
    inet6 <REDACTED IP> scope global dynamic noprefixroute 
       valid_lft 25472sec preferred_lft 25472sec
    inet6 <REDACTED IP> scope link 
       valid_lft forever preferred_lft forever
## /etc/systemd/network/enp0s20u1.network

[Match]
Name=enp0s20u1

[Network]
#IPv6AcceptRA=0
#DNSDefaultRoute=1
DHCP=ipv4
DNSSEC=allow-downgrade
DNS=127.0.0.1

[Route]
GatewayOnLink=1

[DHCP]
RouteMetric=1000

[DHCPv4]
UseDNS=0

[DHCPv6]
UseDNS=0
  • LAN / проводной интерфейс (статический IP и «основной» серверный интерфейс):
## from 'ip address show'
#
2: ens1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether <REDACTED MAC> brd ff:ff:ff:ff:ff:ff
    altname enp2s0
    inet 192.168.0.1/23 brd 192.168.1.255 scope global ens1
       valid_lft forever preferred_lft forever
    inet6 <REDACTED IPV6 ADRESS> scope link 
       valid_lft forever preferred_lft forever
## /etc/systemd/network/ens1.network
#
[Match]
Name=ens1

[Network]
Address=192.168.0.1/23
UseDNS=0  
DHCP=0

  • интерфейс WIFI (AP) (как точка доступа WPA (2) -PSK):
## from 'ip address show'
#
3: wlp0s20u2u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether <REDACTED MAC> brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.1/23 brd 192.168.1.255 scope global wlp0s20u2u1
       valid_lft forever preferred_lft forever
    inet6 <REDACTED IPV6 ADDRESS> scope link 
       valid_lft forever preferred_lft forever```
## /etc/systemd/network/wlp0s20u2u1.network
#
[Match]
Name=wlp0s20u2u1

[Network]
Address=192.168.1.1/23
UseDNS=0
DHCP=0

Конфиги Shorewall:

## /etc/shorewall/interfaces
#
internet        NET_IF          dhcp,tcpflags,nosmurfs,routefilter,logmartians,sourceroute=0,physical=enp0s20u1
lokal           LOCAL_IF        dhcp,tcpflags,nosmurfs,routefilter,logmartians,physical=ens1
lokal           WIFI_IF         dhcp,tcpflags,nosmurfs,routefilter,logmartians,physical=wlp0s20u2u1
docker          docker0         bridge
## /etc/shorewall/zones
#
fw              firewall
internet        ipv4
lokal           ipv4
docker          ipv4
## /etc/shorewall/snat
#
MASQUERADE              192.168.0.0/23          NET_IF
MASQUERADE              192.168.1.0/23          NET_IF
## from /etc/shorewall/rules
#
Invalid(DROP)   internet        all             tcp

# allow 'lokal' to access dhcpd
ACCEPT         lokal            $FW     udp     67:68

#allow DNS
DNS(ACCEPT)     $FW             internet
DNS(ACCEPT)     lokal           $FW

# allow 'lokal' to ssh into to gateway
ACCEPT          lokal           $FW             tcp     2222

# ping stuff
Ping(ACCEPT)    lokal           $FW
Ping(DROP)      internet        $FW
ACCEPT          $FW             lokal           icmp
ACCEPT          $FW             internet        icmp

#just some http(/s) stuff
ACCEPT          internet        $FW             tcp     80,443
ACCEPT          lokal           $FW             tcp     8090,8443
ACCEPT          internet        $FW             tcp     8090,8443

Конфигурация DHCPD:

## /etc/dhcpd.conf
#
subnet 192.168.0.0 netmask 255.255.254.0
{
        option subnet-mask              255.255.254.0;
        option routers                  192.168.0.1;
        option domain-name-servers      192.168.0.1;
        range 192.168.0.100 192.168.0.254;
}

subnet 127.0.0.0 netmask 255.0.0.0
{
  
}

Конфигурация HOSTAPD:

## /etc/hostapd/hostapd.conf
#
interface=wlp0s20u2u1

# "g" simply means 2.4GHz band
hw_mode=g
# the channel to use
channel=10
# limit the frequencies used to those allowed in the country
ieee80211d=1
# the country code
country_code=NO
# 802.11n support
ieee80211n=1
# QoS support, also required for full speed on 802.11n/ac/ax
wmm_enabled=1

# the name of the AP
ssid=<REDACTED SSID>
# 1=wpa, 2=wep, 3=both
auth_algs=1
# WPA2 only
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
wpa_passphrase=<REDACTED PSK PASSWORD>

Некоторые (возможно) соответствующие примечания:

Буду рад предоставить любую другую потенциально полезную информацию по запросу в комментариях.

0

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *