Repository 32bit  Forum
Repository 64bit  Wiki

Firewall per Desktop

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.

Firewall per Desktop

Messaggioda aLe46 » dom ago 07, 2005 13:11

Cosa ne pensate dei seguenti settaggi ? è sufficiente per un desktop ? sarebbe meglio droppare anche il traffico in out ?

*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m pkttype --pkt-type ! broadcast -j LOG --log-prefix "INPUT DROP: "
-A FORWARD -m pkttype --pkt-type ! broadcast -j LOG --log-prefix "FORWARD DROP: "
COMMIT


grazie ale
Avatar utente
aLe46
Linux 2.4
Linux 2.4
 
Messaggi: 257
Iscritto il: gio feb 10, 2005 0:00

Messaggioda Sawk » dom ago 07, 2005 13:53

non credo basti...
Avatar utente
Sawk
Linux 2.6
Linux 2.6
 
Messaggi: 584
Iscritto il: dom feb 06, 2005 0:00
Località: Pordenone, Italy

Messaggioda Bart » dom ago 07, 2005 14:14

Ok, non male...però potresti mettere in DROP anche l'output e gestire le eccezioni. Sarebbe un ulteriore passo in avanti veso la sicurezza. comunque anche così puoi andare tranquillo. Inoltre ti consiglio di mettere all'inizio anche questo:

/bin/echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
/bin/echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
/bin/echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
/bin/echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

Ciao ;)
Bart
Staff
Staff
 
Messaggi: 4249
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Messaggioda Sawk » dom ago 07, 2005 14:53

ti pasto il mio firewall:

#!/bin/bash
# Firewall by OhiOhiOhi
# AVVIATE QUESTO FIREWALL DA ROOT


# Settare i seguenti valori in base alle proprie esigenze
INT=eth0
LOCALHOST="127.0.0.1"
DNS1="130.244.127.161" # In questi due punti inserite i DNS del vostro
DNS2="130.244.127.169" # provider. In default ho messo quelli tele2
ETH="192.168.1.1"

IPT=iptables

echo "Firewall by OhiOhiOhi"
echo " "

case $1 in

## START

start)
echo "Sto attivando il firewall..."

# Politiche

input=DROP
output=ACCEPT
fw=DROP

## Inizio bash scripting per iptables
## Opzioni kernel

echo "Carico i moduli del kernel"
modprobe iptable_filter
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_tables
modprobe ipt_mac
modprobe ipt_limit
modprobe ip_queue
modprobe ipt_state
modprobe ipt_owner
modprobe ipt_REJECT
modprobe ipt_unclean
modprobe ipt_multiport

echo "Setto contromisure contro attacchi"
## Contromisure contro attacchi DoS: da usare solo sotto attacco
# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
# echo "100" > /proc/sys/net/ipv4/vs/timeout_synack
# echo "10" > /proc/sys/net/ipv4/vs/timeout_synrecv
# echo "128" > /proc/sys/net/ipv4/tcp_max_syn_backlog

# Questo comando ignora tutti i ping alla vostra macchina, abilitandolo
# potreste avere problemi di rete
# echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

# Riduce il numero di SYN-FLOOD
echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog

# Protezione contro SYS-FLOOD attack
echo "1" > /proc/sys/net/ipv4/tcp_syncookies

# Ignora i pacchetti indirizzati a broadcast
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

# serve per abilitare il trasferimento di pacchetti tra interfacce
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

# Protezione contro spoofing e sourcerouting
echo "1" > /proc/sys/net/ipv4/tcp_rfc1337

# Una protezione in più anche se utilizzata in combinazione con router
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route

# Da disabilitare solo se non si usa un Router
echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects

# non logga i pacchetti con difetti
echo "0" > /proc/sys/net/ipv4/conf/all/send_redirects

# Effettua controlli sui pacchetti ICMP
echo "1" > /proc/sys/net/ipv4/conf/all/secure_redirects

# Protezione da proxy ARP
echo "0" > /proc/sys/net/ipv4/conf/all/proxy_arp

# Controlla il routing: Serve per prevenire in piccola parte un
# ip_spoofing al computer
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter

# Questo comando logga i pacchetti martirians ovvero i pacchetti senza
# tragitto certo
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

# Abilita il dynamic socket address rewriting
echo "1" > /proc/sys/net/ipv4/ip_dynaddr

# Setta le porte locali
echo "56000:65096" > /proc/sys/net/ipv4/ip_local_port_range

# Disabilita il Forwarding
echo "0" > /proc/sys/net/ipv4/ip_forward

# Torsmo :D
echo "Firewall ON" > /documenti/.torsmo_firez

## IPTABLES

echo "Setto iptables"
# Preparo le chain

$IPT -F
$IPT -P INPUT $input
$IPT -P OUTPUT $output
$IPT -P FORWARD $fw
$IPT -N CHAIN-SCAN
$IPT -N SYN-FLOOD

$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Utile comando per accettare solo alcuni tipi di icmp
for ic in 0 3 11 ; do
$IPT -A INPUT -i $INT -p icmp --icmp-type $ic -j ACCEPT
done

# Abilita i DNS replays
$IPT -A INPUT -i $INT -p udp -s $DNS1 --dport 53 -j ACCEPT
$IPT -A INPUT -i $INT -p udp -s $DNS2 --dport 53 -j ACCEPT
$IPT -A INPUT -i $INT -p udp -s $ETH --dport 53 -j ACCEPT
$IPT -A INPUT -i $INT -p udp -s $DNS1 --sport 53 -j ACCEPT
$IPT -A INPUT -i $INT -p udp -s $DNS2 --sport 53 -j ACCEPT

# Blocca pacchetti broadcast
$IPT -A INPUT -p ALL -d 255.255.255.255 -j $input
$IPT -A INPUT -s 10.128.0.0/255.255.0.0 -j $input

# Crea catene SYN-FLOOD
$IPT -A INPUT -p tcp --syn -j SYN-FLOOD
$IPT -t filter -A SYN-FLOOD -m limit --limit 1/s --limit-burst 4 -j CHAIN-SCAN

# Protezione contro Xmas scan
$IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j CHAIN-SCAN
$IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK -j CHAIN-SCAN

# Blocccare scansioni senza flag
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j CHAIN-SCAN
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j CHAIN-SCAN

# Bloccare pacchetti SYN+RST e SYN+FIN
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j CHAIN-SCAN

# Bloccare scansioni FIN
$IPT -A INPUT -p tcp --tcp-flags FIN FIN -j CHAIN-SCAN

# Sicurezze alternative
$IPT -A INPUT -p udp --dport 135:139 -j DROP
$IPT -A INPUT -p tcp --dport 6000 -j DROP

# Abilito localhost
$IPT -A INPUT -s $LOCALHOST -j ACCEPT

# Usare questi parametri per abilitare aMule
$IPT -A INPUT -p tcp --sport 4661:4662 -j ACCEPT
$IPT -A INPUT -p udp --sport 4661:4666 -j ACCEPT
$IPT -A INPUT -p tcp --dport 4662 -j ACCEPT
$IPT -A INPUT -p udp --dport 4665 -j ACCEPT

# Azureus
$IPT -A INPUT -p tcp --dport 6881 -j ACCEPT
$IPT -A INPUT -p udp --dport 6881 -j ACCEPT

# Usare per abilitare scambio file in aMsn
$IPT -A INPUT -p tcp --dport 6891:6895 -j ACCEPT

# Usare per abilitare DCC
$IPT -A INPUT -p tcp --dport 3333 -j ACCEPT

# NetCat
$IPT -A INPUT -p tcp --dport 1234 -j ACCEPT
$IPT -A INPUT -p udp --dport 1234 -j ACCEPT
echo " "
echo "Firewall attivato "

;;

## STOP

stop)
echo "Risistemo tutto come era prima"

# Politiche

input=ACCEPT
output=ACCEPT
fw=ACCEPT

# Risetto i valori di kernel
echo "0" > /proc/sys/net/ipv4/tcp_syncookies
echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "0" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "0" > /proc/sys/net/ipv4/tcp_rfc1337
echo "1" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/send_redirects
echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/proxy_arp
echo "0" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/all/log_martians
echo "0" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Firewall OFF" > /documenti/.torsmo_firez

# Risetto le politiche di default

$IPT -F
$IPT -X CHAIN-SCAN
$IPT -X SYN-FLOOD
$IPT -P INPUT $input
$IPT -P OUTPUT $output
$IPT -P FORWARD $fw

echo " "
echo "Firewall disattivato...ora prova a pararti your butt :P"

;;

*)
echo "firez [start|stop]"
echo "Nel caso attiviate il firewall due volte consecutive"
echo "potrebbero esserci degli errori di esistenza di chain"
echo "Ignorateli pure :)"
echo "Eventualmente se riscontrate errori di altro tipo"
echo "verificate la correttezza dei parametri..."
echo " "
echo "Mi raccomando leggete con attenzione il firewall e"
echo "settate i parametri prima di dare start ... ENJOY!"

;;

esac

echo " "
Avatar utente
Sawk
Linux 2.6
Linux 2.6
 
Messaggi: 584
Iscritto il: dom feb 06, 2005 0:00
Località: Pordenone, Italy

Messaggioda Bart » dom ago 07, 2005 15:01

Scusa ma non ho capito una cosa ohiohiohi.
A cosa serve:

# Torsmo Very Happy
echo "Firewall ON" > /documenti/.torsmo_firez

??? :?:
Bart
Staff
Staff
 
Messaggi: 4249
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Messaggioda Sawk » dom ago 07, 2005 15:32

faccio un cat con torsmo sul file e vedo quando è attivo o no :)
Un piccolo modo spartano per monitorare il mio firewall :)
Avatar utente
Sawk
Linux 2.6
Linux 2.6
 
Messaggi: 584
Iscritto il: dom feb 06, 2005 0:00
Località: Pordenone, Italy

Messaggioda aLe46 » dom ago 07, 2005 18:40

dove le hai trovate tutte quelle belle impostazioni ?? ti ricordi mica che howto hai usato ?

un'altra cosa : dove hai posizionato lo script (/etc/rc.d/ ??) ? lo lanci tu ogni volta che accendi la macchina o lo richiami da rc.local ?

GRazie Ale
Avatar utente
aLe46
Linux 2.4
Linux 2.4
 
Messaggi: 257
Iscritto il: gio feb 10, 2005 0:00

Messaggioda gallows » dom ago 07, 2005 19:13

metti tutto in rc.firewall e verrá caricato all'avvio.
come guida consiglio http://openskills.info/release/openskil ... rewall.pdf, è una delle migliori

droppare l'output per un desktop mi sembra eccessivo comunque..
Avatar utente
gallows
Staff
Staff
 
Messaggi: 3466
Iscritto il: dom set 19, 2004 23:00
Località: Palermo
Kernel: FreeBSD 8.0-RELEASE-p3
Desktop: ratpoison

Messaggioda Paoletta » dom ago 07, 2005 21:40

droppare l'output per un desktop mi sembra eccessivo comunque..


concordo con gallows..

ciao!
Avatar utente
Paoletta
Staff
Staff
 
Messaggi: 3907
Iscritto il: dom apr 24, 2005 23:00
Località: Varese
Slackware: 13.1
Desktop: fluxbox

Messaggioda Sawk » lun ago 08, 2005 2:51

le impostazioni le ho trovate facendo una ricerca generale sulle impostazioni usate da tutti i firewall che ho provato, questa mi sembra la migliore e sinceramente non credo si possa fare di meglio per un desktop


ciauuu
Avatar utente
Sawk
Linux 2.6
Linux 2.6
 
Messaggi: 584
Iscritto il: dom feb 06, 2005 0:00
Località: Pordenone, Italy

Messaggioda MDS » lun ago 08, 2005 7:53

Ciao...
Come via alternativa oltre al firewall io per prima cosa spegnerei i servizi non usati:

Io lascerei:

ssh
cups
e se sei in lan Samba (con swat attivato)

Puoi passarci l'output di

Codice: Seleziona tutto
netstat -tau


Inoltre lascerei sul firewall in accept gli icmp tranne

- Echo request/reply (secondo se sei in input o output)
- Time exeeded (per il traceroute)

Lasciare attivi gli icmp è utile per un sacco di ragioni, tra cui la segnalazione di network unreachable e MTU.
Al limite, ma poi è scelta tua, filtra pure gli information e gli icmp che reimpostano la subnet e credo il default gw.

Comunque questo è il mio parere.

Io ho un firewall con attivati molti dei filtri proposti da useless, e poi in drop input e forward e in accept l'output. Accetto traffico ad invito e icmp selezionati.
Tutti i servizi a me necessari sono rivolti verso localhost.... per le connessioni remote utilizzo OpenVpn.

Ciao :wink:
MDS
Linux 2.0
Linux 2.0
 
Messaggi: 178
Iscritto il: mer mag 19, 2004 23:00

Messaggioda aLe46 » mar ago 09, 2005 11:24

guardando la guida consigliata da gallows e i vari consigli ho aggiunto un po di "robba" :

/etc/rc.d/rc.firewall

#! /bin/bash
case $1 in

start)
# Di default si blocca il traffico in ingresso e destinato ad attraversa l'host
# Si lascia aperto il traffico in uscita dal proprio host
# Si permette in INPUT tutto il traffico di ritorno relativo a connessioni già esistenti
# Si permette il traffico sulla interfaccia di loopback, necessario per il buon funzionamento di alcuni programma di sistema
# LOG TRAFFICO INGRESSO E FORWARD

sysctl -w net.ipv4.conf.all.log_martians=1
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
sysctl -w net.ipv4.conf.all.accept_redirects=0
sysctl -w net.ipv4.conf.all.send_redirects=0
sysctl -w net.ipv4.conf.all.rp_filter=1
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1



iptables -F

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

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

#AMSN
iptables -A INPUT -p tcp --dport 6891:6895 -j ACCEPT

#AMULE
iptables -A INPUT -p tcp --dport 4646 -j ACCEPT
iptables -A INPUT -p udp --dport 4647 -j ACCEPT

#VALKNUT
iptables -A INPUT -p tcp --dport 4662 -j ACCEPT
iptables -A INPUT -p udp --dport 4672 -j ACCEPT

iptables -A INPUT -m pkttype --pkt-type ! broadcast -j LOG --log-prefix "INPUT DROP: "
iptables -A FORWARD -m pkttype --pkt-type ! broadcast -j LOG --log-prefix "FORWARD DROP: "


echo ; iptables -L | grep Chain ; echo
echo "Firewall ON"
;;

stop)

sysctl -w net.ipv4.conf.all.log_martians=0
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0
sysctl -w net.ipv4.conf.all.accept_redirects=1
sysctl -w net.ipv4.conf.all.send_redirects=1
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.tcp_syncookies=0
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=0

iptables -F

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

echo ; iptables -L | grep Chain ; echo
echo "Firewall OFF "
;;


*)
echo " Use : start | stop "

;;

esac

#END


Qui riporto nestat -tau :

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:mdbs_daemon *:* LISTEN
tcp 0 0 *:time *:* LISTEN
tcp 0 0 *:netbios-ssn *:* LISTEN
tcp 0 0 *:submission *:* LISTEN
tcp 0 0 *:782 *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
tcp 0 0 *:x11 *:* LISTEN
tcp 0 0 *:auth *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:631 *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 *:794 *:* LISTEN
tcp 0 0 *:microsoft-ds *:* LISTEN
udp 0 0 *:biff *:*
udp 0 0 *:nfsd *:*
udp 0 0 *:32770 *:*
udp 0 0 darkstar.CAS:netbios-ns *:*
udp 0 0 *:netbios-ns *:*
udp 0 0 darkstar.CA:netbios-dgm *:*
udp 0 0 *:netbios-dgm *:*
udp 0 0 *:779 *:*
udp 0 0 *:791 *:*
udp 0 0 *:794 *:*
udp 0 0 *:797 *:*
udp 0 0 *:time *:*
udp 0 0 *:sunrpc *:*
udp 0 0 *:631 *:*
Avatar utente
aLe46
Linux 2.4
Linux 2.4
 
Messaggi: 257
Iscritto il: gio feb 10, 2005 0:00

Messaggioda MDS » mar ago 09, 2005 11:39

Ciao.
Sui servizi attivati vedo molti udp.... che cosa sono?
Auth, 782, sunrpc, nfsd .... ti servono veramente?

Per quanto invece riguarda il firewall... beh le scelte le compi tu, comunque su quello già ti hanno risposto in molti.

Io adesso mi concentrerei sui servizi da disattivare.

Ciao :wink:
MDS
Linux 2.0
Linux 2.0
 
Messaggi: 178
Iscritto il: mer mag 19, 2004 23:00

Messaggioda aLe46 » mar ago 09, 2005 11:57

MDS ha scritto:Ciao.
Sui servizi attivati vedo molti udp.... che cosa sono?
Auth, 782, sunrpc, nfsd .... ti servono veramente?

Per quanto invece riguarda il firewall... beh le scelte le compi tu, comunque su quello già ti hanno risposto in molti.

Io adesso mi concentrerei sui servizi da disattivare.

Ciao :wink:


NFS (e quindi sunrpc) mi serve, idem samba, quei servizi che usano udp non saprei dirti cosa sono, il che non è bello ...
Avatar utente
aLe46
Linux 2.4
Linux 2.4
 
Messaggi: 257
Iscritto il: gio feb 10, 2005 0:00

Messaggioda Bart » mar ago 09, 2005 12:19

udp è un protocollo di rete utilizzato per scambiarsi dati senza controlli di avvenuto scambio ( detto terra terra) al contrario di tcp dove esistono diversi metodi per il controllo. Il protocollo udp è utilizzato molto, ad esempio, nei giochi online. Se perdi qualche pacchetto mentre giochi non c'è nessun problema, al massimo vedrai un leggero rallentamento, mentre se ne perdessi qualcuno relativo, ad esempio, ad un file di testo che stai ricevendo, tale file risulterebbe corrotto. Da qui i due protocolli con i due differenti scopi.
Bart
Staff
Staff
 
Messaggi: 4249
Iscritto il: dom ago 08, 2004 23:00
Località: Rimini

Prossimo

Torna a Sicurezza

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite