non riesco a "stealthare" le porte

Postate qui per tutte le discussioni legate alla sicurezza di Linux/Slackware

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Specificare se discussione/suggerimento o richiesta d'aiuto.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

non riesco a "stealthare" le porte

Messaggio da themash »

salve ragazzi,
sono nuovo di questo forum, ma da un po' mi diletto a proteggere la mia rete casalinga grazie a iptables.
Ultimamente ho cambiato modem e ho preso un ethernet (prima avevo un usb, quindi usavo eciadsl), adesso uso un sitecom dc213.
La mia rete è così configurata

internet - modem ethernet - eth0 - firewall - eth1 - router 3com - clients della rete.

il modem ha indirizzo 10.0.0.1, e sull'interfaccia eth0, che sarebbe quella esterna e quindi co municante con il modem ho impostato 10.0.0.10, quindi niente dhcp.
I clients della rete sono collegati ad un router, il quale è in comunicazione con l'interfaccia eth1 che ha indirzzo 192.168.0.1.
Tralasciando i clients, sono tre giorni che ci perdo la testa e non riesco a rendere invisibili le porte ai test di pcflank.
Se faccio il test mi risultano la porta 21, 23, 80 stealthed mentre tutte le altre sono closed.
Ho provato 3000 configurazioni del firewall, ho provato anche ad aprire le tre porte stealthed impostando le dovute regole in INPUT su accept, ma non cambia praticamente nulla.
Visto che non riuscivo a renderle stealthed e non cambiava niente nello stealthing delle porte ho intrapreso una politica inversa, ovvero volevo verificare se aprendo le porte che indicavo io effettivamente risultassero nel test. Ma così non è stato.
Ho aperto alcune porte ma il test di pcflank rimane sempre invariato.
21 stealthed FTP File Transfer Protocol is used to transfer files between computers
23 stealthed TELNET Telnet is used to remotely create a shell (dos prompt)
80 stealthed HTTP HTTP web services publish web pages
135 closed RPC Remote Procedure Call (RPC) is used in client/server applications based on MS Windows operating systems
137 closed NETBIOS Name Service NetBios is used to share files through your Network Neighborhood
138 closed NETBIOS Datagram Service NetBios is used to share files through your Network Neighborhood
139 closed NETBIOS Session Service NetBios is used to share files through your Network Neighborhood
1080 closed SOCKS PROXY Socks Proxy is an internet proxy service
1243 closed SubSeven SubSeven is one of the most widespread trojans
3128 closed Masters Paradise and RingZero Trojan horses
12345 closed NetBus NetBus is one of the most widespread trojans
12348 closed BioNet BioNet is one of the most widespread trojan
27374 closed SubSeven SubSeven is one of the most widespread trojans
31337 closed Back Orifice Back Orifice is one of the most widespread trojans
Vi posto la configurazione di prova che ho realizzato per capire cosa non andava:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -Z
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Non riesco a capire cosa non vada.
In precedenza, con il modem usb, avevo una interfaccia ppp0 (ora diventata eth0) e il firewall funzionava perfettamente, ogni porta che aprivo o chiudevo nel test di pcflank risultava come era impostata.
Per collegarmi non uso rp-pppoe, sul modem ho impostato pppoa poichè penso che il provider non supporti pppoe, navigo semplicemente impostando gli indirizzi ip sulle schede di rete, il modem poi fa tutto da solo senza bisogno di alcun software lato firewall.
Sono disperato ragazzi, ho letto un sacco di guide e forum, ma non riesco a venirne a capo.
Eppure pensavo di avere capito la logica di iptables, ma mi sbagliavo.
Spero possiate aiutarmi, ve ne sarei molto grato.
Attendo risposte!

Avatar utente
francogdn
Linux 2.x
Linux 2.x
Messaggi: 320
Iscritto il: ven 19 mag 2006, 10:52
Distribuzione: Fedora
Località: Torino

Re: non riesco a "stealthare" le porte

Messaggio da francogdn »

themash ha scritto:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -Z
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Prova così:

Codice: Seleziona tutto

...
iptables -A INPUT -s $TUOIP -j ACCEPT
...
iptables -A INPUT -p tcp --dport 80 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --dport 443 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --dport 21 -j REJECT --reject-with tcp-reset
...
Ciao.

Avatar utente
Luci0
Staff
Staff
Messaggi: 3591
Iscritto il: lun 27 giu 2005, 0:00
Nome Cognome: Gabriele Santanché
Slackware: 12.2 14.0
Kernel: 2.6.27.46- gen 3.2.29
Desktop: KDE 3.5.10 Xfce
Località: Forte dei Marmi
Contatta:

Messaggio da Luci0 »

Ciao ...
Dall' esterno gli utenti internet vedono il modem ethernet ... (che tra l' altro si comporta come un router con funzionalità ridotte).
Le iptables opportunamente configurate "stealthano" la porta eth0 . Solo un ipotetico port scanning effettuato dal modem ethernet verso eth0 (... non ho idea come si possa fare ..) troverebbe le porte in condizioni di stealth ... é ovvio quindi che anche cambiando tutte le impostazioni dietro il modem ethernet, i tool di testing non non verifichino nessun cambiamento ... infatti la configurazione delle porte sul modem ethernet all'esterno non é stata cambiata...
Puoi vedere se é possibile fare qualcosa dai tool di configurazione del modem ... in modo da render più difficile la vita ai lameracci ... :-)

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Messaggio da themash »

grazie per le risposte ragazzi, siete stati celerissimi!
Su altri forum neanche l'ombra di interesse al mio problema...
Adesso provo, e vi faccio sapere.

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Re: non riesco a "stealthare" le porte

Messaggio da themash »

francogdn ha scritto:
themash ha scritto:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -Z
iptables -X

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
Prova così:

Codice: Seleziona tutto

...
iptables -A INPUT -s $TUOIP -j ACCEPT
...
iptables -A INPUT -p tcp --dport 80 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --dport 443 -j REJECT --reject-with tcp-reset
iptables -A INPUT -p tcp --dport 21 -j REJECT --reject-with tcp-reset
...
Ciao.
dove $TUOIP a quale indirizzo si riferisce? quello della sottorete dei clients 192.168.0.0/24?

Avatar utente
francogdn
Linux 2.x
Linux 2.x
Messaggi: 320
Iscritto il: ven 19 mag 2006, 10:52
Distribuzione: Fedora
Località: Torino

Re: non riesco a "stealthare" le porte

Messaggio da francogdn »

themash ha scritto: dove $TUOIP a quale indirizzo si riferisce? quello della sottorete dei clients 192.168.0.0/24?
L'indirizzo del client o della rete da cui vuoi raggiungere quelle porte :)

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Messaggio da themash »

come mi hai suggerito non va francogdn, dopo il port scan vedo sempre le 3 porte stealthed e le altre chiuse...
credo sia il fatto che il modem/router inganni lo scanner, ma non riesco a capire in che modo.
Alla fin fine mi interessa sapere se effettivamente le porte porte sono invisibili, del test di pcflank non mi interessa.
C'è qualche altro modo per testare il firewall dall'esterno?

Avatar utente
francogdn
Linux 2.x
Linux 2.x
Messaggi: 320
Iscritto il: ven 19 mag 2006, 10:52
Distribuzione: Fedora
Località: Torino

Messaggio da francogdn »

Mi viene in mente nmap, l'hai già provato?

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Messaggio da themash »

Questo è l'output di nmap :
Interesting ports on firewall (127.0.0.1):
(The 1649 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
631/tcp open ipp
3128/tcp open squid-http
10000/tcp open snet-sensor-mgmt
Sul modem/router nella sezione NAT posso impostare tre opzioni:
NAT, NAPT, Dynamic NAPT , forse sono queste le causa dei problemi?

*EDIT: sono riuscito a rendere visibile la porta 21 (FTP) dal test di pcflank, ho impostato il forwarding delle porte sul modem /router. Ho impostato porta pubblica e privata su 21, da reindirizzare a 10.0.0.10 che sarebbe la scheda di rete eth0 che comunica col modem stesso.Ora faccio qualche altra prova:)
Ultima modifica di themash il gio 23 nov 2006, 17:40, modificato 1 volta in totale.

Avatar utente
francogdn
Linux 2.x
Linux 2.x
Messaggi: 320
Iscritto il: ven 19 mag 2006, 10:52
Distribuzione: Fedora
Località: Torino

Messaggio da francogdn »

Ok, però la scansione non devi farla dallo stesso host...
Devi effettuare la scansione da un'indirizzo/rete diversa dalla famosa variabile $TUOIP...

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Messaggio da themash »

ad esempio, da dove potrei fare la scansione?
vorrei fare una prova, potreste accedere a http://lanfire.myftp.org ?

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

ma che intendi con "stealthare le porte"?

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Messaggio da themash »

intendo :
renderle invisibili dall'esterno, ovvero il sistema non risponde al tentativo di connessione su una determinata porta, invece di comunicare che la porta chiusa, rivelando così l'esistenza stessa di un sistema remoto.

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

themash ha scritto:intendo :
renderle invisibili dall'esterno, ovvero il sistema non risponde al tentativo di connessione su una determinata porta, invece di comunicare che la porta chiusa, rivelando così l'esistenza stessa di un sistema remoto.
ti basta droppare col target DROP di iptables tutti i pacchetti in ingresso diretti a quelle porte; i pacchetti verran scartati senza rispondere con un rst, un icmp port unreachable o altro

themash
Linux 0.x
Linux 0.x
Messaggi: 29
Iscritto il: gio 23 nov 2006, 15:48

Messaggio da themash »

sono ben a conoscenza che con il target drop il sistema è praticamente invisibile...
Solo che con i vari test in giro per la rete mi escono tre porte elencate sotto come stealthed, e le altre closed.

21 stealthed FTP File Transfer Protocol is used to transfer files between computers
23 stealthed TELNET Telnet is used to remotely create a shell (dos prompt)
80 stealthed HTTP HTTP web services publish web pages
135 closed RPC Remote Procedure Call (RPC) is used in client/server applications based on MS Windows operating systems
137 closed NETBIOS Name Service NetBios is used to share files through your Network Neighborhood
138 closed NETBIOS Datagram Service NetBios is used to share files through your Network Neighborhood
139 closed NETBIOS Session Service NetBios is used to share files through your Network Neighborhood
1080 closed SOCKS PROXY Socks Proxy is an internet proxy service
1243 closed SubSeven SubSeven is one of the most widespread trojans
3128 closed Masters Paradise and RingZero Trojan horses
12345 closed NetBus NetBus is one of the most widespread trojans
12348 closed BioNet BioNet is one of the most widespread trojan
27374 closed SubSeven SubSeven is one of the most widespread trojans
31337 closed Back Orifice Back Orifice is one of the most widespread trojans

Utilizzando questa configurazione al posto di quella di prova di eri adesso la porta 21 (che nel firewall accetto sull'interfaccia eth0) e la porta 80 adesso risultano closed e soltanto la telnet stealth.
Non riesco a comprendere dove sia il problema. Forse nno riesco a fare uno scan decente poichè i pacchetti partono dallo stesso ip e quindi passando dal router stesso vengono ruotati nuovamente al sistema locale ingannando lo scanner.
Nella mia configurazione del firewall non è cambiato assolutamente nulla, vi posto quello che ho usato per un anno e mezzo fino ad oggi :
#!/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 :)

iptables -A INPUT -s $client3 -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -s $clientmobile -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -i lo -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -i $EXTIF -p tcp --dport 22 -j DROP
iptables -A INPUT -i $EXTIF -p tcp --dport 21 -j ACCEPT
#iptables -A INPUT -s $LANINT -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 " Disattivazione 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] : "

#iptables -N LOG_DROP
#iptables -A LOG_DROP -m pkttype --pkt-type ! broadcast -j LOG --log-level=DEBUG --log-tcp-options --log-ip-options --l
#iptables -A LOG_DROP -j DROP

echo " Firewall attivato."

#### FINE CONFIGURAZIONE ####

Rispondi