WiFi AP не имеют подключения к Интернету после настройки IPTABLES

Я настроил Ubuntu 20.04 SERVER для работы в качестве шлюза/маршрутизатора.
Теперь, когда шлюз работает, у меня больше нет WiFi доступа через несколько точек доступа в доме.
Я могу подключиться к точке доступа, у меня просто нет доступа в интернет.
Похоже, что DHCP (dnsmasq) раздал IP-адрес. У меня просто нет подключения к интернету.
Есть ли что-то, чего мне не хватает в моих правилах IPTABLES?

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# Network Address Translation (NAT)
-A POSTROUTING -o enp1s0f0 -j MASQUERADE

COMMIT

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

#################
# Service rules #
#################

# Basic Global Accept Rules
# Loopback
-A INPUT -i lo -j ACCEPT

# ICMP
-A INPUT -i enp1s0f0 -p icmp -j DROP
-A INPUT -i enp1s0f1 -p icmp -j ACCEPT

# Traceroute
-A INPUT -p udp -m udp --dport 33434:33523 -j DROP

# Established
-A INPUT -i enp1s0f0 -s 0.0.0.0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# DNS - accept from LAN
-A INPUT -i enp1s0f1 -p tcp --dport 53 -j ACCEPT
-A INPUT -i enp1s0f1 -p udp --dport 53 -j ACCEPT

# SSH - accept from LAN
-A INPUT -i enp3s0 -p tcp --dport 22 -j ACCEPT

# Deal with AP's
#-A INPUT -i enp1s0f1 -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -d 0.0.0.0/0 -j ACCEPT

# DHCP client requests - accept from LAN
-A INPUT -i enp1s0f1 -p udp --dport 67:68 -j ACCEPT

# Drop all other input traffic
-A INPUT -j DROP

####################
# Forwarding rules #
####################

# Forward packets along established/related connections
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Forward from LAN to WAN
-A FORWARD -i enp1s0f1 -o enp1s0f0 -j ACCEPT

# Drop all other forwarded traffic
-A FORWARD -j DROP

COMMIT
0
задан 7 April 2021 в 02:19

2 ответа

Нет возможности создать исходящее интернет-соединение от ваших клиентов. Вначале iptables не знает, что делать с пакетом, который впоследствии будет проходить по цепочке FORWARD.

В цепочке INPUT, возможно, перед портом 67,68, добавьте эту строку:

sudo iptables -A INPUT -i enp1s0f1 -s $INTNET -d $UNIVERSE -j ACCEPT

где:
$ INTNET - определение вашей внутренней сети,
т.е. INTNET = "192.168.111.0/24" в моем случае.
$ UNIVERSE - это что угодно,
т.е. UNIVERSE = "0.0.0.0/0"

Также измените это:

-A INPUT -m state --state ESTABLISHED -j ACCEPT

на это:

sudo iptables -A INPUT -i enp1s0f0 -s $UNIVERSE -m state --state ESTABLISHED,RELATED -j ACCEPT
0
ответ дан 23 April 2021 в 23:25

@DougSmythies
Основываясь на вашем ответе, я удалил часть «-i enp1s0f1», и, похоже, это сработало.
Я также обнаружил, что могу указать отдельные IP-адреса, например:
sudo iptables -A INPUT -s 192.168.1.84 -d 0.0.0.0/0 -j ACCEPT
Это позволит мне контроль над отдельными устройствами в локальной сети.
Я не уверен, почему из-за включения интерфейса LAN он не работал, но как только я его удалил, все заработало.

0
ответ дан 23 April 2021 в 23:25

Другие вопросы по тегам:

Похожие вопросы: