Archivio

Archivio per la categoria ‘Debian / Ubuntu’

Come creare una VPN punto-punto con OpenVPN

24 ottobre 2009 Luca 1 commento

OpenvpnL’utilizzo di una VPN punto-punto permette di creare un tunnel virtuale cifrato tra due macchine appartenenti a reti differenti. Lo scopo e’ quello di criptare i dati che attraverso internet, evitando cosi’ di essere ‘letti’ dopo essere stati ’sniffati’ in un punto della rete non gestibile da noi. Realizzeremo tutto cio’ utilizzando il software  OpenVPN , da installare su entrambe le macchine dove dovra’ essere stabilito il collegamento.

L’installazione con le distribuzioni linux Debian e Ubuntu si fa eseguendo questo comando

apt-get install openvpn

Con Fedora linux:

yum install openvpn

Il secondo passo da eseguire e’ la creazione della chiave ‘privata’ e condivisa con questo comando:

openvpn –genkey –secret /etc/chiave-privata.key

chmod 600 /etc/chiave-privata.key

Dopo averla generata su una macchina si puo’ spostare sull’altra tramite il protocollo ssh:

scp /etc/chiave-privata.key utente@nome-macchina-o-indirizzo-ip:/etc/chiave-privata.key

(impostare anche qui i permessi a 600 su /etc/chiave-privata.key in modo tale che solamente root puo’ leggere questo file)

Si crea poi una configurazione per il server (chiameremo il file /etc/openvpn-server.conf)

dev tun

ifconfig 10.0.0.1 10.0.0.2

secret /etc/chiave-privata.key

comp-lzo

N.B. comp-lzo attiva la compressione dei dati

Ed una per il client (chiameremo il file /etc/openvpn-client.conf)

remote IndirizzoIPdelServer

dev tun

ifconfig 10.0.0.2 10.0.0.1

secret /etc/chiave-privata.key

comp-lzo

N.B. Inserire l’indirizzo ip corretto o il nome della macchina verso cui dovremmo connetterci nel campo “remote”

Adesso sul server dobbiamo eseguire

openvpn /etc/openvpn-server.conf &

mentre sul client

/etc/openvpn-client.conf &

Dal client adesso possiamo fare questo test per verificare se c’e'  risposta dal server (che sara’ raggiungibile con l’ip 10.0.0.1)

ping 10.0.0.1

Tutti i dati inviati dal client verso l’ip 10.0.0.1 saranno criptati

Come configurare i volumi logici con LVM

10 ottobre 2009 loade Nessun commento

LVM (Logical Volume Manager) è un gestore dello spazio del disco fisso in volumi logici, che possono essere facilmente ridimensionati.

In fondo a questa guida trovate dei link di approfondimento sulla tecnologia e sul funzionamento teorico dell’LVM, mentre di seguito trovate i passi per realizzare in pratico un sistema LVM.

La struttura che utilizzeremo sarà la seguente, configurare l’LVM con 1 Volume Group, 2 Physical Volume, e 3 Logical Volume.

Il S.O. utilizzato è GNU/Debian, ma i comandi riportati sono compatibili con qualsiasi sistema che supporta LVM.

La prima operazione da eseguire è partizionare i nostri dischi e impostarli come PV dell’LVM. Una guida su come partizionare un disco potete trovarla a questo link.

Creazione di un PV

Prima di tutto vediamo alcune info dell’lvm sul nostro sistema con il seguente comando:

vgscan

Questo comando esegue uno scan su tutti i dischi, con un output informativo con tutte le informazioni di eventuali Volume Group presenti e la versione di lvm in uso.

Creazione del PV su entrambi i dischi:

pvcreate /dev/hdc1
Physical volume “/dev/hdc1″ successfully created

pvcreate /dev/hda1
Physical volume “/dev/hda1″ successfully created

Per controllare l’effettiva creazione dei PV

pvdisplay /dev/hdc1
“/dev/hdc1″ is a new physical volume of “38,29 GB”
— NEW Physical volume —
PV Name /dev/hdc1
VG Name
PV Size 38,29 GB
Allocatable NO
PE Size (KByte) 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SzHtKP-IRGs-KVnb-GOA4-hRzb-lBDt-WJRr5v

Riceverete una serie di informazioni sul PV appena creato. Lo stesso potete fare per /dev/hda1.

Creazione del VG

A questo punto dobbiamo creare un VG che conterrà i due PV appena creati:

vgcreate testvg /dev/hdc1 /dev/hda1

Per controllare l’effettiva creazione del Volume Group

vgdisplay testvg

Creazione dei LV

Ora è arrivato il momento di creare i LV all’interno del nostro VG di test. Ad esempio procediamo alla creazione di 3 LVM di 2GB:

lvcreate -L 2000 -n lvdati testvg
lvcreate -L 2000 -n lvbackup testvg
lvcreate -L 2000 -n lvdb testvg

Per controllare l’effettiva creazione di ogni Logical Volume

lvdisplay [Nome LV]

ex. lvdisplay /dev/testvg/lvdati

Creazione dei File Systems

A questo punto ogni LV rappresenta per noi una partizione su cui possiamo creare un File System e salvare i nostri dati. Per la creazione del file system con ext3

mkfs.ext3 /dev/testvg/lvdati

Creazione dei punti di Mount

mkdir /fs1

mount -t ext3 /dev/testvg/lvdati /fs1

Per il montaggio automatico dei File systems all’avvio del sistema modificare il file /etc/fstab

vi /etc/fstab

Inserire al suo interno:

/dev/testvg/lvdati /fs1 ext3 defaults 0 0

Estensione e Riduzione dei LV e dei rispettivi FS

Per tutte le seguenti operazioni è necessario che il FS in questione sia smontato

umount /fs1

Per estendere il LV di 1000M

lvextend -L+1000 /dev/testvg/[NOME LV]

Per impostare direttamente la nuova dimensione dell’LV a 4000M

lvextend -L 4000 /dev/testvg/[NOME LV]

Se proviamo a controllare ora i nostri LV in cui abbiamo aumentato la dimensione, con il comando lvdisplay, potremo constatare che la dimensione è quella impostata con il comando lvextend.
Però se provassimo a montare tale LV vedremo che il FS avrà una dimensione di 2G, cioè la dimensione con cui lo abbiamo creato. Questo perchè è necessario aumentare il nostro FS da 2G alla dimensione attuale. Prima di tutto facciamo un check sul FS:

e2fsck -f /dev/testvg/[NOME LV]

poi facciamo il reale resize del FS:

resize2fs /dev/testvg/[NOME LV]

Solo adesso avremo il nostro FS della dimensione impostata con il comando lvextend. Ovviamente in questa guida ho usato il FS ext3 ma potete usare qualsiasi FS.

Riduzione del LV
In questo caso, bisogna procedere nel seguente modo

e2fsck -f /dev/testvg/[NOME LV]
resize2fs -p /dev/testvg/[NOME LV] 2000M

Ora il nostro FS è di 2G ma il nostro LV è ancora di 4G, prima di ridurlo dobbiamo disattivarlo con il seguente comando

lvchange -a n /dev/testvg/[NOME LV]

poi

lvreduce -L -2000 /dev/testvg/[NOME LV]

Per riattivarlo

lvchange -a y /dev/testvg/[NOME LV]

Possiamo controllare lo stato del LV con il comando lvdisplay in particolare il record LV Status.

Aggiungere un PV ad un VG

vgextend testvg /dev/hdc1

Rimozione di un LV da un VG

Per rimuovere un LV da un VG

lvremove -f /dev/testvg/[NOME LV]

Rimozione di un VG

Per effettuare la rimozione di un VG questo deve essere prima disattivato

vgchange -a n testvg

infine possiamo rimuovere

vgremove testvg

Per chi volesse approfondire:

LVM con 1 Volume Group, 2 Physical Volume, e 3 Logical Volume.

Mit.edu

Openskill.info

dpkg-query: parse error in file /var/lib/dpkg/available

6 ottobre 2009 loade Nessun commento

Se ricevete il seguente errore quando effettuate qualsiasi operazione con apt o dpkg:

dpkg-query: parse error, in file `/var/lib/dpkg/available’ near line 1: <br>EOF after field name `

Il comando per risolvere il problema è il seguente:

:~# dpkg –clear-avail

Impedire l’attacco brute force su Debian con Fail2Ban

3 ottobre 2009 Pidicci Nessun commento

fail2ban_logoChi gestisce normalmente server ed e’ esposto direttamente alla rete avra’ notato sicvuramente molteplici tentativi di attacco Brute Force sui servizi piu’ comuni. A tal poposito puo’ risultare utile il software Fail2ban che permette di riconoscere con determinate policy un tentativo di attacco e filtrarne automaticamente la provenienza. Il server su cui si installa Fail2Ban deve avere gia’ installato iptables.

La presente guida mostra come installare e configurarlo al meglio.

Dunque, si parte come al solito con il reperimento del pacchetto necessario direttamente dagli apt sources. Si esegua quindi il comando:

apt-get install fail2ban

La directory con tutti i file sara’ di default /etc/fail2ban

All’interno della cartella /etc/fail2ban/filter.d/ ci sono tutte le regole che permettono di identificare un tentativo di attacco con le regexp ed il nome della regola.

Il file di configurazione che piu’ ci interessa e’ il file /etc/fail2ban/jail.conf che dispone di molte direttive.

Si esegua quindi:

vi /etc/fail2ban/jail.conf

E’ importante specificare nella sezione [Default] le regole principali che sono:

ignoreip: contente la lista degli IP che devono essere ignorati da fail2ban, nel caso di piu’ IP devono essere separati dallo spazio. Solitamente qui vengono inseriti gli IP affidabili come computer remoti con IP statici e altre trusted network

bantime: tempo durante il quale un eventuale IP deve rimanere bannato successivamente al riconoscimento di un tentativo di brute force

maxretry: numero massimo di tentativi errati di accesso dopo il quale deve essere riconosciuto come un brute force. Se ad esempio impostiamo il numero a 3 sul servizio SSH ho la possiblita’ di sbagliare 3 volte la password dopodiche’ vengo considerato come un attacker.

destemail: L’indirizzo email di riferimento per tutte le operazioni effettuate da fail2ban

Nella sezione successiva, la sezione “Action” permette di specificare cose deve fare fail2ban quanto riconosce un tentativo di attacco. Ci sono delle regole preconfigurate che risultano essere piu’ che sufficenti ma e’ possibile aggiungerne altre a picimento. Alla fine si impostera’ l’azione desiderata mediante il campo:

action=<nome_azione>

Consiglio di impostare nome_azione con “action_mwl” che permette di bannare l’IP ed inviare via email l’avvenuto con tutte le informazioni compresa la nazione di provenienza dell’IP filtrato.

A questo punto si passa alla configurazione del comportamento di fail2ban in relazione ai servizi. Esistono molti servizi gia’ configurati. Ad esempio nella sezione [ssh] potete decidere di impostare i campi:

enabled = ‘true’ se si intende abilitare faiòl2ban sul servizio ssh, ‘false’ se si intende trascurare il servizio

port    = 22 se ssh opera sulla porta di default oppure il numero su cui ssh e’ stato configurato

filter = contiene il nome della regola che si deve considerare per il servizio ssh, nome definito all’interno della configurazione /etc/fail2ban/filter.d/

logpath = il file di log che si deve analizzare per individuare i tentaivi di attacco brute force. Nel caso di ssh (ma anche per altri servizi) e’ il file /var&log/auth.log

maxretry = e’ possibile impostare un numero di maxrestry indipendentemente dall’impostazione di default.

Una volta che abbiamo configurato tutti i servizi possiamo avviare file2ban:

/etc/init.d/fail2ban start

Buon lavoro