[RISOLTO] Configurazione iptables per forwarding pacchetti

La rete, Internet, configurazione di Servizi e tutto ciò che permette la comunicazione tra macchine

[RISOLTO] Configurazione iptables per forwarding pacchetti

Messaggioda novoz00 » 03/01/2018, 17:26

Ciao a tutti,
è la prima volta che scrivo su questo forum e innanzi tutto vorrei fare i complimenti per la bella community che mantenete.
Vorrei chiedervi consiglio per una configurazione che teoricamente dovrebbe essere molto banale: un semplice forwarding dei pacchetti tra le interfacce del mio raspberrypi con Debian 9 (raspbian).

Teoricamente ho configurato iptables per fare fowarding dei pacchetti e ho abilitato il routing a livello kernel quindi dovrebbe funzionare. Non capisco cosa mi sfugga.
Quanto prima allegherò i file di configurazione.

Sostanzialmente non riesco a pingare 192.168.1.50, ne 192.168.1.1 con interfaccia sorgente eth0, quindi il raspberry non fa forwarding.

Vi sarei grato se riusciste a farmi capire dove sbaglio.

Allego un disegno per spiegare un po' la situazione:
Immagine
Ultima modifica di novoz00 il 08/01/2018, 23:03, modificato 1 volta in totale.
novoz00
Newbie
Newbie
 
Messaggi: 6
Iscritto il: 03/01/2018, 14:39

Re: Configurazione iptables per forwarding pacchetti

Messaggioda byte64 » 03/01/2018, 18:46

Puoi postare il risultato dei seguenti comandi dati sul raspberrypi ?
Codice: Seleziona tutto
iptables -L
iptables -L -t nat

Ciao
byte64
Sr. Member
Sr. Member
 
Messaggi: 351
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: Configurazione iptables per forwarding pacchetti

Messaggioda novoz00 » 04/01/2018, 8:40

Ciao, grazie della risposta!
ecco l'output richiesto:
Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  anywhere             anywhere           
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere           
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         


Di seguito anche il file ip_forward e lo script con cui creo le iptables (alcuni comandi sono commentati per le varie prove che ho fatto):
Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# cat /proc/sys/net/ipv4/ip_forward
1
root@android-pi5739576329:/home/pi# cat /home/pi/nat-and-forward
#ROUTING

#eth0 - wlan1
#iptables -A FORWARD -i eth0 -o wlan1 --src 192.168.10.0/24 --dst 192.168.1.0/24 -j ACCEPT
#iptables -A FORWARD -i wlan1 -o eth0 --src 192.168.1.0/24 --dst 192.168.10.0/24 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

#eth0 - wlan0
#iptables -A FORWARD -i wlan0 -o eth0 --src 192.168.0.0/24 --dst 192.168.10.0/24 -j ACCEPT
#iptables -A FORWARD -i eth0 -o wlan0 --src 192.168.10.0/24 --dst 192.168.0.0/24 -j ACCEPT

#wlan0 - wlan1
#iptables -A FORWARD -i wlan0 -o wlan1 --src 192.168.0.0/24 --dst 192.168.1.0/24 -j ACCEPT
#iptables -A FORWARD -i wlan1 -o wlan0 --src 192.168.1.0/24 --dst 192.168.0.0/24 -j ACCEPT



#postrouting NAT out wlan1
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
novoz00
Newbie
Newbie
 
Messaggi: 6
Iscritto il: 03/01/2018, 14:39

Re: Configurazione iptables per forwarding pacchetti

Messaggioda byte64 » 04/01/2018, 9:03

Sembra tutto ok, puoi postare anche il risultato di:
Codice: Seleziona tutto
ip route list
byte64
Sr. Member
Sr. Member
 
Messaggi: 351
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: Configurazione iptables per forwarding pacchetti

Messaggioda novoz00 » 04/01/2018, 22:14

???
Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# ip route list
default via 192.168.1.1 dev wlan1 onlink
192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.1 linkdown
192.168.1.0/24 dev wlan1 proto kernel scope link src 192.168.1.50
192.168.10.0/24 dev eth0 proto kernel scope link src 192.168.10.1
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=3.19 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=4.11 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=5.63 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=4.28 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 3.190/4.305/5.633/0.874 ms
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi# ping -I eth0 192.168.1.1
PING 192.168.1.1 (192.168.1.1) from 192.168.10.1 eth0: 56(84) bytes of data.
^C
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4194ms

root@android-pi5739576329:/home/pi#


Un altro problema che sto avendo è il servizio DHCPCD che non si avvia ma non credo siano in relazione

Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# systemctl status dhcpcd
● dhcpcd.service - dhcpcd on all interfaces
   Loaded: loaded (/lib/systemd/system/dhcpcd.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/dhcpcd.service.d
           └─wait.conf
   Active: failed (Result: exit-code) since Thu 2018-01-04 00:34:11 CET; 21h ago
  Process: 362 ExecStart=/usr/lib/dhcpcd5/dhcpcd -q -w (code=exited, status=6)

Jan 04 00:34:11 android-pi5739576329 systemd[1]: Starting dhcpcd on all interfaces...
Jan 04 00:34:11 android-pi5739576329 dhcpcd[362]: Not running dhcpcd because /etc/network/interfaces
Jan 04 00:34:11 android-pi5739576329 dhcpcd[362]: defines some interfaces that will use a
Jan 04 00:34:11 android-pi5739576329 dhcpcd[362]: DHCP client or static address
Jan 04 00:34:11 android-pi5739576329 systemd[1]: dhcpcd.service: Control process exited, code=exited status=6
Jan 04 00:34:11 android-pi5739576329 systemd[1]: Failed to start dhcpcd on all interfaces.
Jan 04 00:34:11 android-pi5739576329 systemd[1]: dhcpcd.service: Unit entered failed state.
Jan 04 00:34:11 android-pi5739576329 systemd[1]: dhcpcd.service: Failed with result 'exit-code'.
Warning: dhcpcd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
root@android-pi5739576329:/home/pi#
novoz00
Newbie
Newbie
 
Messaggi: 6
Iscritto il: 03/01/2018, 14:39

Re: Configurazione iptables per forwarding pacchetti

Messaggioda byte64 » 04/01/2018, 23:10

A questo punto serve anche controllare le configurazioni delle interfacce di rete sul raspberrypi:
Codice: Seleziona tutto
cat /etc/network/interfaces

ed inoltre sapere che gateway hai impostato sul notebook (dovrebbe essere il 192.168.10.1)
Riguardo al dhcpd bisogna verificare su che interfacce lo hai abilitato e devi abilitare, e di conseguenza poi controllare la configurazione. Guarda in /etc/default se trovi il file di attivazione, per isc-dhcp-server è /etc/default/isc-dhcp-server
byte64
Sr. Member
Sr. Member
 
Messaggi: 351
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: Configurazione iptables per forwarding pacchetti

Messaggioda novoz00 » 05/01/2018, 9:09

Ciao byte64, grazie mille per il supporto che mi stai dando =)

Ecco il file di configurazione delle interfacce:
Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.10.1
netmask 255.255.255.0

auto wlan1
iface wlan1 inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.1
up iwconfig wlan1 mode Managed && iwconfig wlan1 key s:4VM9GK8FDZ23F && iwconfig wlan1 essid TP-LINK_0A80B8 && iwconfig wlan1 ap any

auto wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0


Il servizio che mi da problemi è il dhcpCd (il client), infatti il notebook prende l'IP in DHCP fornito dal raspberry.
La configurazione del DHCPD è questa e credo sia corretta:
Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
log-facility local7;

subnet 192.168.10.0 netmask 255.255.255.0{
        range 192.168.10.100 192.168.10.200;
        option subnet-mask 255.255.255.0;
        option routers 192.168.10.1;
        option broadcast-address 192.168.10.255;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        default-lease-time 86400;
        max-lease-time 86400;
}

subnet 192.168.0.0 netmask 255.255.255.0{
        range 192.168.0.100 192.168.0.200;
        option subnet-mask 255.255.255.0;
        option routers 192.168.0.1;
        option broadcast-address 192.168.0.255;
        option domain-name-servers 8.8.8.8, 8.8.4.4;
        default-lease-time 86400;
        max-lease-time 86400;
}


Comunque anche se provo a pingare internamente al raspberrypi un'interfaccia con l'altra il ping non funziona... es:
Codice: Seleziona tutto
root@android-pi5739576329:/home/pi# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=3.19 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=4.11 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=5.63 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=4.28 ms

--- 192.168.1.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 3.190/4.305/5.633/0.874 ms
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi#
root@android-pi5739576329:/home/pi# ping -I eth0 192.168.1.1
PING 192.168.1.1 (192.168.1.1) from 192.168.10.1 eth0: 56(84) bytes of data.
^C
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4194ms

root@android-pi5739576329:/home/pi#
novoz00
Newbie
Newbie
 
Messaggi: 6
Iscritto il: 03/01/2018, 14:39

Re: Configurazione iptables per forwarding pacchetti

Messaggioda byte64 » 05/01/2018, 10:28

Fai questa prova:

1. disabilita il dhcpd sul raspy (c'è un errore di base con la definizione delle 2 subnet, su quale interfaccia agisce la 192.168.0.0? E la 192.168.10.0?)
Jan 04 00:34:11 android-pi5739576329 systemd[1]: Starting dhcpcd on all interfaces...
Jan 04 00:34:11 android-pi5739576329 dhcpcd[362]: Not running dhcpcd because /etc/network/interfaces
Jan 04 00:34:11 android-pi5739576329 dhcpcd[362]: defines some interfaces that will use a
Jan 04 00:34:11 android-pi5739576329 dhcpcd[362]: DHCP client or static address
Jan 04 00:34:11 android-pi5739576329 systemd[1]: dhcpcd.service: Control process exited, code=exited status=6
Jan 04 00:34:11 android-pi5739576329 systemd[1]: Failed to start dhcpcd on all interfaces.

Devi aggiungere per ogni subnet:
subnet 192.168.10.0 netmask 255.255.255.0 {
interface eth0;
........
}
subnet 192.168.0.0 netmask 255.255.255.0 {
interface wlan0;
........
}

e controlla anche di averle attivate in /etc/default/isc-dhcp-server (solo eth0 e wlan0)

2. imposta un ip fisso sul notebook, tipo 192.168.10.100/255.255.255.0 con gw 192.168.10.1 e dns 192.168.1.1 o anche 8.8.8.8

3. riprova a pingare il 192.168.1.50 e quindi anche a navigare, se funziona, riavvia il dhcp server, reimposta il dhcpclient sul notebook e riprova nuovamente

Il ping interno nel raspy dall'interfaccia eth0 (192.168.10.1) verso la wlan1 (192.168.1.1) non credo possa funzionare!
byte64
Sr. Member
Sr. Member
 
Messaggi: 351
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: Configurazione iptables per forwarding pacchetti

Messaggioda novoz00 » 06/01/2018, 18:05

Ciao byte64,
ho fatto la prova che mi hai suggerito aggiungendo la relativa interfaccia nella configurazione delle subnet del DHCP server ma il risultato è lo stesso.

Gli errori nel log riguardano il dhcpCd (quindi il client, non il server).
Li ho risolti disintallando dhcpcd5 in quanto avevo installato già anche isc-dhcp-client e i due andavano in conflitto.

Purtroppo il forwarding dei pacchetti continua a non funzionare ???
novoz00
Newbie
Newbie
 
Messaggi: 6
Iscritto il: 03/01/2018, 14:39

Re: Configurazione iptables per forwarding pacchetti

Messaggioda byte64 » 06/01/2018, 19:04

Sul raspy non ti serve il client dhcp, devi aver installato il server, io utilizzo isc-dhcp-server.
Inoltre hai controllato (o controlla se installi isc-dhcp-server) il file /etc/default/isc-dhcp-server come ti ho già scritto?
Il file di configurazione di isc-dhcp-server è /etc/dhcp/dhcpd.conf

Per attivare un semplice routing di test prova con questi comandi di base in sequenza direttamente dalla shell del raspy:
Prima ovviamente devi avere il server dhcp installato e funzionante! O in alternativa impostare un ip fisso nella giusta subnet sul tuo notebook connesso alla eth0

Codice: Seleziona tutto
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -A INPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Assicurati che ogni comando impartito no restituisca errori.
Se a questo punto funziona, poi si può iniziare a perfezionare e mettere in sicurezza il tutto.
byte64
Sr. Member
Sr. Member
 
Messaggi: 351
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: Configurazione iptables per forwarding pacchetti

Messaggioda novoz00 » 08/01/2018, 23:01

OOOOOOK perfetto ora il traffico viene routato correttamente e il DHCP è a posto (quello era stato risolto già qualche giorno fà).
Devo aprire un nuovo topic per hostapd che non riesco a far funzionare l'access point.
novoz00
Newbie
Newbie
 
Messaggi: 6
Iscritto il: 03/01/2018, 14:39


Torna a Network

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron