massi_it
28-08-2023, 22:31
Ciao a tutti,
avrei bisogno di un aiutino da parte di qualcuno...
Vi spiego:
la mia situazione è la seguente:
https://i.postimg.cc/26Sk9v5w/Mappa-rete-VPN.png
si tratta di due siti (il rosso ed il blu). Grazie all'aiuto del forum, in particolare grazia a questo 3ad (https://www.hwupgrade.it/forum/showthread.php?t=2880131), attualmente sono riuscito a far navigare il raspberry pi 4 del sito blu con l'indirizzo ip pubblico del sito rosso.
Il client openvpn è installato sul raspberry pi 4 del blu e dialoga con il server openvpn installato su di una macchina con cui gira un debian 11.
Il debian "rosso" (si dovrebbe capire dall'immagine) svolge varie funzioni tra cui quella di DHCP e di filtrare il traffico internet di tutti i dispositivi collegati alla rete tramite PiHole.
Indirizzi
Il raspberry pi 4 del sito blu ha l'indirizzo locale 192.168.4.106 ed un indirizzo della vpn di 10.8.0.2.
Il server debian del sito rosso ha l'indirizzo locale 192.168.1.104 ed un indirizzo vpn di 10.8.0.1
I due si possono pingare a vicenda usando i due indirizzi 10.8.0.X
Sul raspberry pi 4 del sito blu gira un'applicazione (home assistant) alla quale i dispositivi collegati in locale accedono digitando nel browser l'indirizzo 192.168.4.106:9000.
Sulla macchina debian "rossa" posso fare il fetch dell'header della pagina web dell'applicazione in questione usando il comando:
# curl -I 10.8.0.2:9000
HTTP/1.1 405 Method Not Allowed
Content-Type: text/plain; charset=utf-8
Allow: GET
Content-Length: 23
Date: Mon, 28 Aug 2023 21:08:42 GMT
Server: Python/3.11 aiohttp/3.8.5
ovviamente se però digito sul browser di un dispositivo "rosso" l'indirizzo 10.8.0.2:9000 quello che ottengo un errore di ERR_CONNECTION_REFUSED.
Se faccio un tentativo disperato inserendo https://mioippubblicorosso.duckdns.org:9000 l'errore è ERR_CONNECTION_TIMED_OUT
con http://mioippubblicorosso.duckdns.org:9000 invece ottengo una pagina bianca con un 0 in alto a sinistra... :mbe:
Penso che il problema sia che le impostazioni di iptables non siano quelle giuste:
queste le impostazioni del debian "rosso":
*filter
:INPUT ACCEPT [798367:260106620]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [888248:1045630139]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -i enp3s0 -p tcp -m tcp --dport 1194 -m comment --comment openvpn-input-rule -j ACCEPT
-A INPUT -i tun0 -p udp -m udp --dport 53 -m comment --comment pihole-DNS-rule -j ACCEPT
-A FORWARD -d 10.8.0.0/24 -i enp3s0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment openvpn-forward-rule -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -i tun0 -o enp3s0 -m comment --comment openvpn-forward-rule -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o hassio -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o hassio -j DOCKER
-A FORWARD -i hassio ! -o hassio -j ACCEPT
-A FORWARD -i hassio -o hassio -j ACCEPT
-A DOCKER -d 172.30.32.6/32 ! -i hassio -o hassio -p tcp -m tcp --dport 80 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 8884 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 8883 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1884 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1883 -j ACCEPT
-A DOCKER -d 172.30.33.2/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1627 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i hassio ! -o hassio -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o hassio -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
*nat
:PREROUTING ACCEPT [89173:19654854]
:INPUT ACCEPT [81910:19147179]
:OUTPUT ACCEPT [232311:13632379]
:POSTROUTING ACCEPT [233166:13680449]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
#-A POSTROUTING -s 10.31.73.0/24 -o enp3s0 -m comment --comment openvpn-nat-rule -j MASQUERADE
-A POSTROUTING -s 10.8.0.0/24 -o enp3s0 -m comment --comment openvpn-nat-rule -j MASQUERADE
-A PREROUTING -i enp3s0 -p tcp -s mioippubblicorosso.duckdns.org --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.30.32.0/23 ! -o hassio -j MASQUERADE
-A POSTROUTING -s 172.30.32.6/32 -d 172.30.32.6/32 -p tcp -m tcp --dport 80 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 8884 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 8883 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 1884 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 1883 -j MASQUERADE
-A POSTROUTING -s 172.30.33.2/32 -d 172.30.33.2/32 -p tcp -m tcp --dport 1627 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER -i hassio -j RETURN
-A DOCKER ! -i hassio -p tcp -m tcp --dport 4357 -j DNAT --to-destination 172.30.32.6:80
-A DOCKER ! -i hassio -p tcp -m tcp --dport 8884 -j DNAT --to-destination 172.30.33.0:8884
-A DOCKER ! -i hassio -p tcp -m tcp --dport 8883 -j DNAT --to-destination 172.30.33.0:8883
-A DOCKER ! -i hassio -p tcp -m tcp --dport 1884 -j DNAT --to-destination 172.30.33.0:1884
-A DOCKER ! -i hassio -p tcp -m tcp --dport 1883 -j DNAT --to-destination 172.30.33.0:1883
-A DOCKER ! -i hassio -p tcp -m tcp --dport 1627 -j DNAT --to-destination 172.30.33.2:1627
COMMIT
Queste del raspberry pi 4 "blu" dove c'è il client openvpn:
*filter
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3389 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9000 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i tun0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.4.106
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A PREROUTING -p tcp -s 10.8.0.1 --dport 9000 -j DNAT --to-destination 192.168.4.106:9000
COMMIT
Qualcuno vuol tentare di aiutarmi?
Grazie
avrei bisogno di un aiutino da parte di qualcuno...
Vi spiego:
la mia situazione è la seguente:
https://i.postimg.cc/26Sk9v5w/Mappa-rete-VPN.png
si tratta di due siti (il rosso ed il blu). Grazie all'aiuto del forum, in particolare grazia a questo 3ad (https://www.hwupgrade.it/forum/showthread.php?t=2880131), attualmente sono riuscito a far navigare il raspberry pi 4 del sito blu con l'indirizzo ip pubblico del sito rosso.
Il client openvpn è installato sul raspberry pi 4 del blu e dialoga con il server openvpn installato su di una macchina con cui gira un debian 11.
Il debian "rosso" (si dovrebbe capire dall'immagine) svolge varie funzioni tra cui quella di DHCP e di filtrare il traffico internet di tutti i dispositivi collegati alla rete tramite PiHole.
Indirizzi
Il raspberry pi 4 del sito blu ha l'indirizzo locale 192.168.4.106 ed un indirizzo della vpn di 10.8.0.2.
Il server debian del sito rosso ha l'indirizzo locale 192.168.1.104 ed un indirizzo vpn di 10.8.0.1
I due si possono pingare a vicenda usando i due indirizzi 10.8.0.X
Sul raspberry pi 4 del sito blu gira un'applicazione (home assistant) alla quale i dispositivi collegati in locale accedono digitando nel browser l'indirizzo 192.168.4.106:9000.
Sulla macchina debian "rossa" posso fare il fetch dell'header della pagina web dell'applicazione in questione usando il comando:
# curl -I 10.8.0.2:9000
HTTP/1.1 405 Method Not Allowed
Content-Type: text/plain; charset=utf-8
Allow: GET
Content-Length: 23
Date: Mon, 28 Aug 2023 21:08:42 GMT
Server: Python/3.11 aiohttp/3.8.5
ovviamente se però digito sul browser di un dispositivo "rosso" l'indirizzo 10.8.0.2:9000 quello che ottengo un errore di ERR_CONNECTION_REFUSED.
Se faccio un tentativo disperato inserendo https://mioippubblicorosso.duckdns.org:9000 l'errore è ERR_CONNECTION_TIMED_OUT
con http://mioippubblicorosso.duckdns.org:9000 invece ottengo una pagina bianca con un 0 in alto a sinistra... :mbe:
Penso che il problema sia che le impostazioni di iptables non siano quelle giuste:
queste le impostazioni del debian "rosso":
*filter
:INPUT ACCEPT [798367:260106620]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [888248:1045630139]
:DOCKER - [0:0]
:DOCKER-ISOLATION-STAGE-1 - [0:0]
:DOCKER-ISOLATION-STAGE-2 - [0:0]
:DOCKER-USER - [0:0]
-A INPUT -i enp3s0 -p tcp -m tcp --dport 1194 -m comment --comment openvpn-input-rule -j ACCEPT
-A INPUT -i tun0 -p udp -m udp --dport 53 -m comment --comment pihole-DNS-rule -j ACCEPT
-A FORWARD -d 10.8.0.0/24 -i enp3s0 -o tun0 -m conntrack --ctstate RELATED,ESTABLISHED -m comment --comment openvpn-forward-rule -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -i tun0 -o enp3s0 -m comment --comment openvpn-forward-rule -j ACCEPT
-A FORWARD -j DOCKER-USER
-A FORWARD -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A FORWARD -o hassio -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -o hassio -j DOCKER
-A FORWARD -i hassio ! -o hassio -j ACCEPT
-A FORWARD -i hassio -o hassio -j ACCEPT
-A DOCKER -d 172.30.32.6/32 ! -i hassio -o hassio -p tcp -m tcp --dport 80 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 8884 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 8883 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1884 -j ACCEPT
-A DOCKER -d 172.30.33.0/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1883 -j ACCEPT
-A DOCKER -d 172.30.33.2/32 ! -i hassio -o hassio -p tcp -m tcp --dport 1627 -j ACCEPT
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i hassio ! -o hassio -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j RETURN
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o hassio -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j RETURN
-A DOCKER-USER -j RETURN
COMMIT
*nat
:PREROUTING ACCEPT [89173:19654854]
:INPUT ACCEPT [81910:19147179]
:OUTPUT ACCEPT [232311:13632379]
:POSTROUTING ACCEPT [233166:13680449]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
#-A POSTROUTING -s 10.31.73.0/24 -o enp3s0 -m comment --comment openvpn-nat-rule -j MASQUERADE
-A POSTROUTING -s 10.8.0.0/24 -o enp3s0 -m comment --comment openvpn-nat-rule -j MASQUERADE
-A PREROUTING -i enp3s0 -p tcp -s mioippubblicorosso.duckdns.org --dport 9000 -j DNAT --to-destination 10.8.0.2:9000
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.30.32.0/23 ! -o hassio -j MASQUERADE
-A POSTROUTING -s 172.30.32.6/32 -d 172.30.32.6/32 -p tcp -m tcp --dport 80 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 8884 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 8883 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 1884 -j MASQUERADE
-A POSTROUTING -s 172.30.33.0/32 -d 172.30.33.0/32 -p tcp -m tcp --dport 1883 -j MASQUERADE
-A POSTROUTING -s 172.30.33.2/32 -d 172.30.33.2/32 -p tcp -m tcp --dport 1627 -j MASQUERADE
-A DOCKER -i docker0 -j RETURN
-A DOCKER -i hassio -j RETURN
-A DOCKER ! -i hassio -p tcp -m tcp --dport 4357 -j DNAT --to-destination 172.30.32.6:80
-A DOCKER ! -i hassio -p tcp -m tcp --dport 8884 -j DNAT --to-destination 172.30.33.0:8884
-A DOCKER ! -i hassio -p tcp -m tcp --dport 8883 -j DNAT --to-destination 172.30.33.0:8883
-A DOCKER ! -i hassio -p tcp -m tcp --dport 1884 -j DNAT --to-destination 172.30.33.0:1884
-A DOCKER ! -i hassio -p tcp -m tcp --dport 1883 -j DNAT --to-destination 172.30.33.0:1883
-A DOCKER ! -i hassio -p tcp -m tcp --dport 1627 -j DNAT --to-destination 172.30.33.2:1627
COMMIT
Queste del raspberry pi 4 "blu" dove c'è il client openvpn:
*filter
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p icmp -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3389 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 9000 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
COMMIT
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A PREROUTING -i tun0 -p tcp -m tcp --dport 3389 -j DNAT --to-destination 192.168.4.106
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
-A PREROUTING -p tcp -s 10.8.0.1 --dport 9000 -j DNAT --to-destination 192.168.4.106:9000
COMMIT
Qualcuno vuol tentare di aiutarmi?
Grazie