I bought a new router - TP-Link Archer AX23 and installed OpenWrt on it. I configured wireless and added few ports (80, 81, 443) to port forwarding. I have a RPi server on 192.168.1.214
. That's it, I haven't changed anything else.
I have a little weird network:
Internet <—> ISP modem/router 192.168.64.1
<—> OpenWRT 192.168.64.2
and 192.168.1.1
<—> Devices 192.168.1.0/24
It's called double NAT I think. My ISP's modem-router has very little config options, only usefull config is port forwarding and wireless and that's it. That's the reason I bought a new router and installed OpenWrt on it.
LAN is 192.168.1.0/24
and WAN is 192.168.64.0/24
(including everything else) in my case, right?
So the problem is that I can't access forwarded ports from WAN but I can from LAN through WAN's IP. For example, I'm on a laptop with 192.168.1.111
and I can connect to any forwarded port on 192.168.64.2
. Nmap scan:
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
81/tcp open hosts2-ns
443/tcp open https
But if I port forward from my ISP's router to the internet I can't connect. Similarly if I connect to ISP's router's wireless (then my IP is 192.168.64.111
) I still can't connect. Normal nmap scan shows the host is down but if I enable -Pn
option:
PORT STATE SERVICE
80/tcp filtered http
81/tcp filtered hosts2-ns
443/tcp filtered https
As you can see all forwarded port are shown as filtered. WHY?
And another VERY WEIRD THING. I also opened 18080 and 18089 port for my Monero node on 192.168.1.192
and they are working like they should, no problem at all!
My firewall config:
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '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'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
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'
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'
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'
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'
config redirect
option target 'DNAT'
option name 'Monero P2P'
list proto 'tcp'
option src 'wan'
option src_dport '18080'
option dest_ip '192.168.1.192'
option dest_port '18080'
option dest 'lan'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'Monero RPC'
list proto 'tcp'
option src 'wan'
option src_dport '18089'
option dest_ip '192.168.1.192'
option dest_port '18089'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'HTTP'
list proto 'tcp'
option src 'wan'
option src_dport '80'
option dest_ip '192.168.1.214'
option dest_port '80'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'HTTPS'
list proto 'tcp'
option src 'wan'
option src_dport '443'
option dest_ip '192.168.1.214'
option dest_port '443'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'Nginx'
list proto 'tcp'
option src 'wan'
option src_dport '81'
option dest_ip '192.168.1.214'
option dest_port '81'