vi scrivo perchè ho bisogno di qualche consiglio dato che non riesco a far funzionare a dovere una rete da me creata, vuoi per un pizzico di incompetenza, vuoi perchè febbricitante credo di tralasciare qualche dettaglio fondamentale...
Inizialmente fungeva tutto, la configurazione era così composta:
+ modem ethernet (10.0.0.1)
|
|___________
|eth0 (10.0.0.10)
| | FIREWALL /GATEWAY con REDHAT Linux
|eth1 (192.168.0.1)
|------------|
|
|
--------------
| |
| | ROUTER aDSL WIRELESS 3COM (192.168.0.254)
|___________|
|
|------- PC1 (192.168.0.2)
|------- PC2 (192.168.0.3)
|------- PC WIRELESS
in /etc/resolv.conf i due dns, primario e secondario.
Successivamente decisi di complicarmi la vita (anche per esigenze personali) e ho riorganizzato la rete in questo modo:
+ ROUTER aDSL WIRELESS 3COM (192.168.0.254)
|
|___________
|eth0 (192.168.0.1 - gateway 192.168.0.254)
| | FIREWALL /GATEWAY con REDHAT Linux
|eth1 (192.168.0.2 - gateway non impostato)
|------------|
|
|
--------------
| | switch 8 porte d-link
| |
|___________|
|
|------- PC1 (192.168.0.3 - gateway 192.168.0.2 - dns 1 dns 2)
|------- PC2 (192.168.0.4 - gateway 192.168.0.2 - dns 1 dns 2)
Da premettere che questo router 3com è fantastico in termini di prestazioni e affidabilità, in caso di traffico pesante (come può essere il p2p) garantisce prestazioni di tutto rispetto,al contrario del modem ethernet (che nel mio caso è un router) che in brevissimo tempo va in overrun e si blocca.
Con la nuova configurazione però non funziona più niente.Dai pc collegati allo switch non riesco a pingare la eth1 (192.168.0.2) e figuriamoci la eth0 (192.168.0.1) che il router. Difatti non naviga un bel niente, neanche il firewall stesso.
Per farvi rendere conto della configurazione di iptables vi riporto le regole impostate in precedenza:
#!/bin/sh
echo "#####################################################"
echo "########### LANSECURE ENTERPRISE FIREWALL ###########"
echo "########### Versione 1.8 - By TheMash ###########"
echo "#####################################################"
echo " Inizializzazione Enterprise Firewall..."
# Inizializzazioni variabili
echo " Definizione Interfacce...."
#Interfaccia Internet
EXTIF='eth0'
#Interfaccia LAN
INTIF='eth1'
#Definizione rete locale
LANINT="192.168.0.0/24"
#Indirizzi privati - non ruotati su Internet (serve per l'antispoof)
LOOPBACK="127.0.0.0/8"
CLASS_A="10.0.0.0/8"
CLASS_B="172.16.0.0/12"
CLASS_C="192.168.0.0/16"
CLASS_D_MULTICAST="224.0.0.0/4"
CLASS_E_RESERVED_NET="240.0.0.0/5"
#Definizione Client della rete
echo " Definizione Clients..."
client2='192.168.0.2'
client3='192.168.0.3'
client4='192.168.0.4'
clientmobile='192.168.0.10'
#Servizi presenti nella rete
echo " Definizione porte servizi..."
emuletcp1="4661"
emuletcp2="4662"
emuleudp="4665 4672"
######## FINE VARIABILI ########
# Azzera e pulisce ogni regola esistente
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -F
iptables -F -t nat
iptables -X
iptables -Z
#Settaggio impostazioni di base
#echo " Settaggio impostazioni di base..."
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Attivazione Masquerading & Forwarding
echo " Attivazione IP Forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward
# ICMP Rules ####################################
#echo " Settaggio impostazioni di sicurezza..."
# Non risponde ai ping broadcast
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Ignora finti messaggi di errore ICMP
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
# Rifiuta pacchetti ICMP di route redirection
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
# Antispoof!
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
# Non risponde ai ping di broadcast
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
#Regole Antispoofing
echo " Attivazione anti-spoof..."
iptables -A INPUT -i $EXTIF -s $CLASS_A -j DROP
iptables -A INPUT -i $EXTIF -s $CLASS_B -j DROP
iptables -A INPUT -i $EXTIF -s $CLASS_C -j DROP
iptables -A INPUT -i $EXTIF -s $CLASS_D_MULTICAST -j DROP
iptables -A INPUT -i $EXTIF -s $CLASS_E_RESERVED_NET -j DROP
iptables -A INPUT -i $EXTIF -d $LOOPBACK -j DROP
######### INIZIO REGOLE DI SISTEMA ##########
echo " Settaggio regole Firewall..."
# Traffico di loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Permette traffico locale e della rete locale verso il Firewall
echo " Definizione traffico LAN autorizzato..."
iptables -A INPUT -i $INTIF -s $LANINT -j ACCEPT
iptables -A OUTPUT -o $INTIF -d $LANINT -j ACCEPT
# Permette traffico dalla rete locale a Internet
# Forward tutti pacchetti aventi sorgente la LAN interna verso tutte le destinazioni
iptables -A FORWARD -s $LANINT -d 0/0 -j ACCEPT
# Permette il forwarding di pacchetti correlati a comunicazioni esistenti
iptables -A FORWARD -d $LANINT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Maschera gli IP sorgenti della LAN interna con l'IP dell'interfaccia Internet
iptables -t nat -A POSTROUTING -o $EXTIF -s $LANINT -j MASQUERADE
# Permette all'host locale di collegarsi ad IP remoti e ricevere pacchetti di risposta
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
################ SERVIZI DI RETE ###################
echo " Settaggio servizi di rete..."
#echo " Attivazione Transparent Proxy..."
#iptables -t nat -A PREROUTING -i $INTIF -p tcp --dport 80 -j REDIRECT --to-port 3128
#Webmin Accessibile dalla LAN
#iptables -A INPUT -s $LANINT -p tcp --dport 10000 -j ACCEPT
#Remote Desktop Connection
#iptables -A OUTPUT -o $INTIF -p tcp --dport 3389 -j ACCEPT
# Accesso SSH dal mio pc Smile
iptables -A INPUT -s $client3 -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -i $EXTIF -p tcp --dport 22 -j DROP
# Server FTP locale
iptables -A INPUT -i $EXTIF -p tcp --dport 21 -j ACCEPT
########## CLIENT3 PORT FORWARDING #############
echo " Apertura porte servizi P2P..."
iptables -I INPUT -p tcp --dport 4661:4662 -j ACCEPT
iptables -I INPUT -p udp --dport 4672 -j ACCEPT
iptables -I INPUT -p udp --dport 4665 -j ACCEPT
echo " Attivazione Port Forwarding P2P..."
iptables -A FORWARD -p tcp --dport 4661:4662 -j ACCEPT
iptables -A FORWARD -p udp --dport 4672 -j ACCEPT
iptables -A FORWARD -p udp --dport 4665 -j ACCEPT
iptables -t nat -I PREROUTING -i $EXTIF -p tcp --dport 4661:4662 -j DNAT \
--to-destination $client3
iptables -t nat -I PREROUTING -i $EXTIF -p udp --dport 4672 -j DNAT \
--to-destination $client3:4672
iptables -t nat -I PREROUTING -i $EXTIF -p udp --dport 4665 -j DNAT \
--to-destination $client3:4665
# Blocca il Flooding SYN
iptables -A INPUT -p tcp -i $EXTIF --syn -m limit --limit 1/s -j ACCEPT
# Blocca i Port Scanner
iptables -A INPUT -p tcp -i $EXTIF --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Logging dei pacchetti rifiutati (tranne broadcast)
#iptables -A INPUT -m pkttype --pkt-type ! broadcast -j LOG --log-level=DEBUG --log-prefix="[INPUT DROP] : "
#iptables -A OUTPUT -m pkttype --pkt-type ! broadcast -j LOG --log-level=DEBUG --log-prefix="[OUTPUT DROP] : "
echo " Firewall attivato."
#### FINE CONFIGURAZIONE ####
*** EDIT : il problema dell'impossibilità di pingare la eth1 da un pc dello switch potrebbe dipendere dalle regole impostate per il peer 2 peer, dove abbiamo sulla catena nat il prerouting dell'interfaccia esterna all'ip 192.168.0.3 sulle porte rispettive.
Presumo possa interferire con il ping, voi ch ne pensate? Intanto il primo obiettivo sarebbe poter pingare una ethernet del firewall. successivametne vediamo il resto.