loggare attività di rete!

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

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) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
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.
Rispondi
redeemer
Linux 0.x
Linux 0.x
Messaggi: 5
Iscritto il: ven 13 gen 2006, 17:05
Località: parma

loggare attività di rete!

Messaggio da redeemer »

ciao a tutti,
premetto che sono utente di linux da pochi giorni, devo loggare tutto il traffico della mia lan su internet e ho pensato di usare una linux-box come router/gateway con iptables configurato per il nat e il masquerading (spero di nn aver detto troppe castronerie)!

Codice: Seleziona tutto

root@gateway:/# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            LOG level info prefix `input: '

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  192.168.42.0/24      anywhere
ACCEPT     all  --  anywhere             192.168.42.0/24
DROP       all  --  anywhere             anywhere
LOG        all  --  anywhere             anywhere            LOG level info prefix `forward: '

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
LOG        all  --  anywhere             anywhere            LOG level info prefix `output: '
root@gateway:/#
questa è la configurazione di iptables che ho impostato e la parte router/gateway funziona benissimo! il problema sono i log: con dmesg mi fa vedere i log di "input" e "output" ma non i "forward"!!!

ho sbagliato qualcosa???

ps: per aggiungere data e ora nelle righe di log come posso fare?? :/

Avatar utente
Heidegger
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: lun 28 mar 2005, 0:00
Località: Roma
Contatta:

Messaggio da Heidegger »

Ciao. Se ti posso dare un consiglio fossi in te per quanto concerne iptables mi muoverei in questo modo.
Dovresti impostare (solitamente si fa così) come la politica di INPUT con DROP (che è indubbiamente migliore rispetto a DENY), lo stesso vale per il FORWARD (ovviamente do per scontato che sulla macchina slackware hai 2 schede di rete con il modulo ip_filter abilitato con masquerade e NAT). La politica della catena di OUTPUT a mio giudizio la puoi lasciare semplicemente ad ACCEPT, a meno che hai esigenze particolari
Per quanto concerne i log, già con questo puoi loggare tutti i pacchetti droppati in INPUT iptables -A INPUT -m limit --limit 5/minute -j LOG --log-level 5 --log-prefix "DROP"
puoi successivamente e comodamente vederli facendo un grep DROP su /var/log/messages.
Anche questi altri due inoltre non sono male, poichè ti bloccano i tentativi di portscan e nel caso fanno un mirror del portscan
iptables -A INPUT -p tcp -j LOG -m limit --limit 500/hour --limit-burst 500 --log-prefix "MIRROR:"
iptables -A INPUT -p tcp -j MIRROR -m limit --limit 500/hour --limit-burst 500
Ovviamente ti consiglio caldamente di aspettare anche la risposta di persone del forum più autorevoli di me quali Lorys, Gallows o Paoletta, Masalapianta e Twister (ovviamente solo per citarne qualcuno, gli altri non la prendessero male :-D )
Un saluto, spero di esserti stato utile.

redeemer
Linux 0.x
Linux 0.x
Messaggi: 5
Iscritto il: ven 13 gen 2006, 17:05
Località: parma

Messaggio da redeemer »

Codice: Seleziona tutto

modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_nat
modprobe ipt_MASQUERADE

iptables -t nat -A POSTROUTING -d ! 192.168.42.0/24 -j MASQUERADE
iptables -A FORWARD -s 192.168.42.0/24 -j ACCEPT
iptables -A FORWARD -d 192.168.42.0/24 -j ACCEPT
iptables -A FORWARD -j DROP


iptables -A FORWARD -j LOG --log-level=info --log-prefix="forward: "
iptables -A INPUT -j LOG --log-level=info --log-prefix="input: "
iptables -A OUTPUT -j LOG --log-level=info --log-prefix="output: "

questo è lo script che ho usato (preso da un howto qui su slacky), i pacchetti "droppati" sono quelli scartati per un qualche motivo (dipendente dalle policy applicate) giusto??

a me non interessa tanto vedere quali o per quale motivo vengo bloccati, ma DEVO sapere, per ogni singola macchina, quale sito (o indirizzo ip) è stato visitato e a che ora!

altra domandina: i log vengono cancellati automaticamente a fine sessione di lavoro?

Avatar utente
Heidegger
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: lun 28 mar 2005, 0:00
Località: Roma
Contatta:

Messaggio da Heidegger »

Io ho sempre caricato semplicemente i vari moduli necessari, come quello del ip_filter tramite
echo > 1 /proc/sys/net/ipv4/ip_filter (la directory dovrebbe essere esatta, ma mi scuso prima se ho scritto in modo inesatto)
Per quanto riguarda le regole di iptables che hai messo mi sembrano un'ottima base di partenza, anche se a mio gusto preferisco sempre impostare una politica.
Tu dai la regola di droppare tutto in forward ad esempio tramite append, il che è giusto, ma a mio giudizio e gusto personale è ancora meglio se fai
iptables -P INPUT DROP
così setterai direttamente come politica di tutta la catena INPUT di droppare tutti i pacchetti
ovviamnete prima puoi dare altre stringhe ottime come
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
di modo da accettare tutte le connessione già stabilte ed attive
Queste sono soltanto configurazioni base, che puoi trovare su qualsiasi sito o guida.
Un altro consiglio che magari è di più difficile reperibilità è il seguente:
fatti uno script, chiamalo tipo start_firewall.sh e fallo partire all'avvio tramite rc.local
alla fine delle regole di una catena metti sempre la seguente regola finale
iptables -A INPUT -j RETURN
impedirà ad altre regole messe successivamente di agire. E' un modo per specificare la chiusura della catena se vogliamo.
Per quanto concerne i log, ti assicuro che saranno tantissimi e che ovviamente non si cancellano da soli :-D, almeno nella configurazione che ho fatto io.
Se non ti interessa sapere quali sono i pacchetti DROPATI e perchè (come invece interessa a me, poichè devo seguire il lato sicurezza), le regole che hai messo vanno benissimo. Non so aiutarti sul fatto del perchè non vedi mai su messages log circa il FORWARD. Domanda stupida e sciocca, hai due interfaccie di rete nel server slackware? Perchè altrimenti il FORWARD è INUTILE. In ogni caso dentro /var/log/messages la data ed ora di qualsiasi azione presa, che sia un pacchetto droppato, un tentativo di accesso con ssh, o un messaggio del kernel, viene registrata.
Fammi sapere, aspetto una tua risposta, magari ti potrò fornire ulteriori chiarimenti.
Ti prego di non prendere per "oro colato" quello che scrivo :-)
Non sono di certo ancora un guru, cerco solo di essere utile.
Per certezze maggiori, aspetta il divino intervento di altri :-D
Un saluto,
il vostro Heidegger.
Per sempre :-)
*-.*-.*-:*-:W SLACKWARE*-.*-.*_.*_.*

redeemer
Linux 0.x
Linux 0.x
Messaggi: 5
Iscritto il: ven 13 gen 2006, 17:05
Località: parma

Messaggio da redeemer »

ho controllato in /var/log/messages ed effettivamente ci sono data/ora - input/output ma non i forward!!! perchè??? non riesco a capire! io ho bisogno di poter sapere quale computer della rete si è collegato con quale sito. questo per la legge antiterrorismo uscita a sett. 2005!!! è passata la polizia postale e mi fatto una testa così per i log dei computer!!! volevo evitare di comprare programmi come wingate o winproxy per windows, preferisco passare a linux!! anche perchè volevo convincere le "alte sfere" a passare, pian piano, tutti i pc a linux :wink:

ho anche letto che si può usare ULOG/ULOGD invece di LOG ma non ho trovato una guida per un newbee come me. sapresti consigliarmi qualcosa a riguardo?

Avatar utente
Heidegger
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: lun 28 mar 2005, 0:00
Località: Roma
Contatta:

Messaggio da Heidegger »

Scusa ma ti ripeto una domanda stupida, nel server hai due schede di rete?
Il forward ti serve soltanto per il passaggio da un'interfaccia all'altra.
Per le altre cose che hai scritto sotto non so aiutarti, poichè mi trovo benissimo con LOG.
Magari aspetta la risposta da qualche persona più esperta di me :-)
Un saluto,
Heidegger.

redeemer
Linux 0.x
Linux 0.x
Messaggi: 5
Iscritto il: ven 13 gen 2006, 17:05
Località: parma

Messaggio da redeemer »

si si, ho due schede di rete, una collegata al router e una alla lan!!

Avatar utente
Heidegger
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: lun 28 mar 2005, 0:00
Località: Roma
Contatta:

Messaggio da Heidegger »

Uhm allora sei sicuro di avere caricato ad esempio il modulo fondamentale tramite
echo > 1 /proc/sys/net/ipv4/ip_filter
???
Una curiosità, praticamente il tuo server fa anche da NAT?
Un saluto,
Heidegger.

redeemer
Linux 0.x
Linux 0.x
Messaggi: 5
Iscritto il: ven 13 gen 2006, 17:05
Località: parma

Messaggio da redeemer »

Codice: Seleziona tutto

root@gateway:/# lsmod
Module                  Size  Used by    Not tainted
ipt_LOG                 3448   3  (autoclean)
iptable_filter          1676   1  (autoclean)
ipt_MASQUERADE          1432   1
iptable_nat            16974   1  [ipt_MASQUERADE]
ip_conntrack           18440   0  [ipt_MASQUERADE iptable_nat]
ip_tables              12000   6  [ipt_LOG iptable_filter ipt_MASQUERADE iptable                           _nat]
uhci                   24284   0  (unused)
usbcore                58860   1  [uhci]
8139too                13928   1
mii                     2272   0  [8139too]
ne2k-pci                4544   1
8390                    5776   0  [ne2k-pci]
crc32                   2880   0  [8139too 8390]
ide-scsi                9392   0
agpgart                45092   0  (unused)
dando lsmod dovrebbe listarmi i moduli caricati, giusto?
vanno bene? c'è un iptable_filter, va bene quello? io ho provato a dare il comando che mi hai suggerito ma devo ridigitarlo ad ogni avvio??? lo aggiungo al mio script?

Avatar utente
Heidegger
Linux 2.x
Linux 2.x
Messaggi: 246
Iscritto il: lun 28 mar 2005, 0:00
Località: Roma
Contatta:

Messaggio da Heidegger »

basta che lo carichi una volta e comunque da quello che vedo ce l'hai caricato correttamente.
bye
Heidegger

Rispondi