The WAN port is now working like a LAN port. Now I need to see if there is anything else I need to do.
I added this script:
# these services do not run on dumb APs
for i in firewall dnsmasq odhcpd; do
if /etc/init.d/"$i" enabled; then
/etc/init.d/"$i" disable
/etc/init.d/"$i" stop
fi
done
rm /usr/sbin/wpa_supplicant
There is no need for this script. I would recommend against using it.
The dumb AP should be entirely transparent.... multicast will not be affected unless you set a few optoins on the wifi config that are there to limit it.
The router is now working with a valid configuration. I still have my original problem. The phones connecting to it bring up a captive portal. This did not happen before I updated OpenWRT.
At this point, I don't believe that this is related to the OpenWrt router. But let's review the final configs again:
Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
Remember to redact passwords, MAC addresses and any public IP addresses you may have:
config defaults
option syn_flood 1
option input REJECT
option output ACCEPT
option forward REJECT
# Uncomment this line to disable ipv6 rules
# option disable_ipv6 1
config zone
option name lan
list network 'lan'
option input ACCEPT
option output ACCEPT
option forward ACCEPT
config zone
option name wan
list network 'wan'
list network 'wan6'
option input REJECT
option output ACCEPT
option forward REJECT
option masq 1
option mtu_fix 1
config forwarding
option src lan
option dest wan
# We need to accept udp packets on port 68,
# see https://dev.openwrt.org/ticket/4108
config rule
option name Allow-DHCP-Renew
option src wan
option proto udp
option dest_port 68
option target ACCEPT
option family ipv4
# Allow IPv4 ping
config rule
option name Allow-Ping
option src wan
option proto icmp
option icmp_type echo-request
option family ipv4
option target ACCEPT
config rule
option name Allow-IGMP
option src wan
option proto igmp
option family ipv4
option target ACCEPT
# Allow DHCPv6 replies
# see https://github.com/openwrt/openwrt/issues/5066
config rule
option name Allow-DHCPv6
option src wan
option proto udp
option dest_port 546
option family ipv6
option target ACCEPT
config rule
option name Allow-MLD
option src wan
option proto icmp
option src_ip fe80::/10
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family ipv6
option target ACCEPT
# Allow essential incoming IPv6 ICMP traffic
config rule
option name Allow-ICMPv6-Input
option src wan
option proto icmp
list icmp_type echo-request
list icmp_type echo-reply
list icmp_type destination-unreachable
list icmp_type packet-too-big
list icmp_type time-exceeded
list icmp_type bad-header
list icmp_type unknown-header-type
list icmp_type router-solicitation
list icmp_type neighbour-solicitation
list icmp_type router-advertisement
list icmp_type neighbour-advertisement
option limit 1000/sec
option family ipv6
option target ACCEPT
# Allow essential forwarded IPv6 ICMP traffic
config rule
option name Allow-ICMPv6-Forward
option src wan
option dest *
option proto icmp
list icmp_type echo-request
list icmp_type echo-reply
list icmp_type destination-unreachable
list icmp_type packet-too-big
list icmp_type time-exceeded
list icmp_type bad-header
list icmp_type unknown-header-type
option limit 1000/sec
option family ipv6
option target ACCEPT
config rule
option name Allow-IPSec-ESP
option src wan
option dest lan
option proto esp
option target ACCEPT
config rule
option name Allow-ISAKMP
option src wan
option dest lan
option dest_port 500
option proto udp
option target ACCEPT
### EXAMPLE CONFIG SECTIONS
# do not allow a specific ip to access wan
#config rule
# option src lan
# option src_ip 192.168.45.2
# option dest wan
# option proto tcp
# option target REJECT
# block a specific mac on wan
#config rule
# option dest wan
# option src_mac 00:11:22:33:44:66
# option target REJECT
# block incoming ICMP traffic on a zone
#config rule
# option src lan
# option proto ICMP
# option target DROP
# port redirect port coming in on wan to lan
#config redirect
# option src wan
# option src_dport 80
# option dest lan
# option dest_ip 192.168.16.235
# option dest_port 80
# option proto tcp
# port redirect of remapped ssh port (22001) on wan
#config redirect
# option src wan
# option src_dport 22001
# option dest lan
# option dest_port 22
# option proto tcp
### FULL CONFIG SECTIONS
#config rule
# option src lan
# option src_ip 192.168.45.2
# option src_mac 00:11:22:33:44:55
# option src_port 80
# option dest wan
# option dest_ip 194.25.2.129
# option dest_port 120
# option proto tcp
# option target REJECT
#config redirect
# option src lan
# option src_ip 192.168.45.2
# option src_mac 00:11:22:33:44:55
# option src_port 1024
# option src_dport 80
# option dest_ip 194.25.2.129
# option dest_port 120
# option proto tcp
A bit of context that might help:
Just about all operating systems and browsers these days, have a built in functionality to try to detect if a captive portal is present, and take the user to a web page for logging in if a portal is detected.
This is a de-facto standard that has developed over many years and is known by various names, the most common being CPD (Captive Portal Detection) and "Captive Portal Canary Test ".
When a device connects to a wireless network, the CPD tests a very specific http, port 80, URL and checks for a specific response. The actual url can, and does, vary depending on vendor, os release version etc.
Many Android devices use a url based on the google.com fqdn.
Apple devices, of course, use a url based on the apple.com fqdn.
There is also now a "proper" documented standard (rfc8910 combined with rfc 8908) known as CPI (Captive Portal Identification), but this is not universally supported and where it is, is subject to interpretation, so tends to not be supported by captive portal applications, at least not yet.
It is CPI that uses option 114 as mentioned by @mk24
Now back to your issue.
There are, as @psherman has pointed out, numerous issues with your config. These may or may not be contributing to your issue, but are well worth fixing anyway.
This indicates that the device(s) are indeed doing the CPD test to a url based on the google.com fqdn, as they are designed to do.
The blank screen indicates there is no actual portal page (because you do not have a captive portal anywhere), but does indicate that the google.com fqdn is blocked somewhere.
For future people that read this. I found Pfblocker was blocking the Google internet connectivity domains. GrapheneOS was not effected because they use their own connectivity domains. I am currently looking into how to do a redirect to server that throws the 204 status the connectivity check needs while not being blocked by Pfblocker.
On a side note, I cannot believe LineageOS did not change their connectivity checks to alternative servers. Google can literally track people with connectivity checks.