CyberTek - the future at the present!

Archive for the ‘tips’ Category

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Posted by: (Lug 31)

In presenza dell'errore:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Questo sembra essere un bug del pacchetto vsftp, raggiriamolo così:
chmod a-w /home/username
Controlliamo che sia presente le seguente direttiva nel file vsftpd.conf:
chroot_local_user=YES
Sempre in vsftpd.conf commentiamo:
#secure_chroot_dir=/var/run/vsftpd/empty
In pratica basta togliere l'attributo di W alla root dir dell'utente, naturalmente questo è un raggiro, sarebbe anche giusto poter scrivere nella propria root. In termini ideali poi sarebbe meglio non utilizzare il protocollo ftp ma quello sftp attraverso il collegamento ssh da preferirsi sempre quando presente.
Published in: linux, shell, tips

Rimuovere linee duplicate con uniq

Posted by: (Lug 8)

La potenza della shell linux è indiscussa, rende elementari e rapide operazioni che su altri sistemi risultano impossibili o quasi. In questo articoletto ti spiegherò comerimuovere le linee duplicate in un file di testo col comando uniq, in aggiunta il comando sort odrina anche le linee, operate sui parametri a vostro piacere:

sort myfile.txt | uniq

 

Per elencare solamente le linee univoche:

sort myfile.txt | uniq -u

 

Per elencare solamente le linee duplicate:

sort myfile.txt | uniq -d

 

Per aggiungere il conteggio delle linee aggiungi il parametro -c.

sort myfile.txt | uniq -uc

sort myfile.txt | uniq -dc

 

Per saltari campi (questo è utile per saltare in un log files ad esempio il campo data):

uniq -f 3 my.lo

 

Per saltare caratteri (salta i primi 30 caratteri):

uniq -s 30 myfile.txt

Compara un certo numero di caratteri (compara i primi 30 caratteri):

uniq -w 30 myfile.txt

 

 

Published in: console, linux, shell, tips

Estrarre da log ultima login imap/pop3

Posted by: (Mag 27)

Utilizzando perl con questo semplice comando si può creare al volo un elenco degli utenti che hanno effettuato la login affiancando data ed ora della stessa.

Per le login imap:
perl -ne '$l{$2}=$1 if /^(.{15}) .* imap-login: Login: user=<([^>]+)>/; END { print "$_ last imap-login: $l{$_}\n" for keys %l }' /var/log/mail.log

Per le login pop3:
perl -ne '$l{$2}=$1 if /^(.{15}) .* pop3-login: Login: user=<([^>]+)>/; END { print "$_ last pop3-login: $l{$_}\n" for keys %l }' mail.log

 

 

Published in: linux, perl, scripts, shell, tips

Verifica se la tua linux box è sicura

Posted by: (Apr 17)
Linux è uno sistema operativo strutturato molto bene, soprattutto se paragonato al leader del mercato Microsoft Windows. Linux fa appunto suoi i cavalli di battaglia chiamati stabilità e sicurezza. Ma soprattuttogli utenti desktop del pinguino devono però prestare maggiore attenzione alle proprie configurazioni. Se sui servers per forza di cose i sysadmin spendono molto tempo a monitorare e a rimuovere eventuali motivi di criticità, lo stesso non avviene quando usiamo un sistema desktop.
La maggior parte degli utenti Linux difatti non utilizza alcun sistema antivirus anche se questo non vuol dire che il sistema sia immune da virus, spam, malware ecc.
Per coloro che non utilizzano alcun software antivirus è disponibile un'interessante tools denominato Lynis. Il software effettua una scansione del nostro sistema e ci indica se questo è sicuro o meno.
Sviluppato principalmente per server, il progetto Lynis viene consigliato anche all'utente desktop che vuole ogni tanto controllare lo stato del proprio OS Linux in modo tale da verificare se durante l'utilizzo è stato attaccato da qualche malware, virus o rootkit.
 
Lynis effettua una scansione completa del nostro sistema operativo: kernel, gestione dei file di sistema, configurazione, rete, firewall etc al termine avremo a disposizione un log file in /var/log/lynis.log che possiamo, azi dobbiamo esaminare con cura.
 
Per installarlo su debian e derivate (ma lo trovate in tutte le distro):
 
sudo apt-get install lynis 

Per usarlo dop l'installazione basta digitare:

sudo lynis --check-all -Q 

Al termine troveremo il report in /var/log/lynis.log, possiamo leggerlo ad esempio digitando:

gedit /var/log/lynis.log 

 

Published in: linux, shell, tips

Come aggiungere un nuovo disco a LVM

Posted by: (Apr 16)

Supponiamo che il nuovo disco corrisponda al divice: /dev/sdb:

   fdisk /dev/sdb
   creiamo la partizione aggiuntiva a noi necessaria col comando n
   Cambiamo la Label di questa partizione in 8e per segnarla col tipo Linux LVM
   scriviamo i cambiamenti col comando w
   ed usciamo col comando q 

Per formattare la partizione usiamo il comando mkfscome segue:

   mkfs -t ext3 -c /dev/sdb1

Infine procediamo con i comandi LVM (supponendo di avere il VolumeGroup VolGroup00 e il LogicalVolume LogVol01)

:

   pvcreate /dev/sdb1
   vgextend VolGroup00 /dev/sdb1
   lvextend -L 25G /dev/VolGroup00/LogVol01 ; per estendere LogVol a 25GB
   lvextend -L+10G /dev/VolGroup00/LogVol01 ;per aggiungere 10 GB al Logical Volume LogVol01
   resize2fs /dev/VolGroup00/LogVol01 ; per far vedere la nuova dimensione del Logical Volume
Published in: linux, shell, tips

Programmi linux di monitoraggio rete da console

Posted by: (Apr 16)

iptstate : un’interfaccia simile a Top collegata alla vostra tabella connection-tracking di netfilter. Utilizzando iptstate si può guardare in modo interattivo il traffico che attraversa il tuo firewall netfilter/iptables , ordinato per vari criteri, è possibile limitare la visualizzazione con vari criteri. Ma non si ferma qui: a partire dalla versione 2.2.0 è possibile anche cancellare gli stati dalla tabella.

pktstat : visualizza un elenco in tempo reale delle connessioni attive viste su una interfaccia di rete, e quanta banda viene utilizzata. Parzialmente decodifica i protocolli HTTP e FTP per mostrare il nome del file che viene trasferito. Anche i nomi delle applicazioni X11 sono mostrate.

nethogs : un piccolo strumento tipo ‘top di rete’. Invece che “spacchettare” il traffico verso il “basso” per protocollo o per sottorete, come la maggior parte degli strumenti fanno, mostra la banda utilizzata dai vari programmi. NetHogs non si basa su un modulo del kernel speciale da caricare. Se c’è ad un tratto molto traffico di rete, si può lanciare subito NetHogs e vedere immediatamente quale PID è la causa. Questo rende facile individuare i programmi che sono impazziti e stanno improvvisamente prendendo tutta la vostra banda di rete.

iptraf : un programma che raccoglie statistiche di rete per Linux ed usufruibile da console. Raccoglie una serie di dati come i pacchetti delle connessioni TCP e conteggio dei byte, le statistiche sulle interfaccie e gli indicatori di attività, dati TCP/UDP sul traffico, e traffico per LAN.

bmon : è un monitor di banda, destinato per il debug ed il monitoraggio real-time, in grado di recuperare le statistiche da vari tipi d’ingresso. Fornisce metodi di uscita vari tra cui un’interfaccia basata su curses. L’insieme di moduli per l’input sono specifici per architettura e prevedono un nucleo comune con l’elenco delle interfacce e dei loro contatori.

speedometer : si tratta di un interessante progetto che permette di visualizzare e misurare la velocità dei dati attraverso una rete o dei dati che vengono memorizzati in un file, per eseguire in una finestra di console eseguire il segunete comando speedometer -rx eth0 -tx eth0, sostituire eth0 con l'interfaccia che intendiamo monitorizzare.

nload : è un’applicazione da console che controlla il traffico di rete e l’utilizzo della larghezza di banda in tempo reale. Esso visualizza il traffico in entrata ed in uscita utilizzando due grafici e fornisce informazioni aggiuntive come quantità totale di dati trasferiti e min/max di utilizzo della rete.

Questi programmi sono tutti disponibili nel repository principale di Ubuntu, quindi per installarli basta scrivere in un terminale:
apt-get install [nome programma]

Published in: linux, shell, tips, ubuntu

Linux, processi in attesa di accedere sul disco

Posted by: (Mar 19)

top -b -n 1 | awk '{if (NR <=7) print; else if ($8 == "D") {print; count++} } END {print "Total status D: "count}'

Published in: linux, shell, tips

Trovare testo con il comando grep

Posted by: (Nov 2)

Ecco un semplice metodo per cercare del testo in una serie di files, valido per tutte le distro linux:

grep "mio testo da cercare" /home/myhome/*.txt

al comando grep si possono anche aggiungere altre opzioni per:

 – Effettuare una ricerca ricorsiva nelle sub directories:

   grep -r "mio testo" /home/myhome

– Stampare solo il nome del file dove abbiamo la notra occorrenza:

   grep -H -r “mio test” /home/myhome

Published in: linux, shell, tips

Lista pacchetti installati in Ubuntu

Posted by: (Giu 17)

Reinstallare tutti i pacchetti che usavamo nella nostra precedente linux box Ubuntu (ma vale anche per Debian e simili) può essere un'attività lunga e magari poi non è detto che ci ricordiamo di tutto quello che usavamo, specialmente se si tratta d'installazioni ricche di librerie di sviluppo o d'installazioni servers. Per reinstallare tutti i pacchetti sulla nuova box possiamo però fare tutto con pochi semplici comandi.

Per generare la lista dei pacchetti installati nella tua linux box ubuntu:

dpkg --get-selections > installed-software

Per verificare e reinstallare tutti i pacchetti della tua lista, sulla linux box ubuntu di destinazione:

dpkg --set-selections < installed-software

infine digita il comando

dselect

Published in: linux, tips, ubuntu

nano editor, comandi rapidi da tastiera ed alternative

Posted by: (Mar 21)
La notazione per le abbreviazioni è la seguente. Le sequenze identificate con il simbolo (^) sono introdotte usando il tasto Control (Ctrl), oppure  premendo il tasto Esc due volte. Le sequenze identificate col simbolo Meta (M) possono essere inserite usato alternativamente il tasto Esc, Alt o Meta, a seconda della configurazione della tastiera.  Inoltre, premendo Esc due volte e digitando i numeri da 000 a 255 si possono inserire i caratteri con il codice ASCII corrispondente. Le seguenti abbreviazioni sono disponibili nella finestra principale dell'editor. Le sequenze alternative sono mostrate tra parentesi:

^G      (F1)            Mostra questo messaggio di aiuto
^X      (F2)            Chiude il file corrente / Esce da nano
^O      (F3)            Salva il file corrente su disco
^J      (F4)            Giustifica il paragrafo corrente

^R      (F5)            Inserisce un altro file nel corrente
^W      (F6)            Cerca una stringa o un'espressione regolare
^Y      (F7)            Va alla schermata precedente
^V      (F8)            Va alla schermata successiva

^K      (F9)            Taglia la riga corrente e la memorizza nel cutbuffer
^U      (F10)           Incolla dal cutbuffer nella riga corrente
^C      (F11)           Mostra la posizione del cursore
^T      (F12)           Esegue il correttore ortografico, se disponibile

M-\     (M-|)           Va alla prima riga del file
M-/     (M-?)           Va all'ultima riga del file

^_      (F13)   (M-G)   Va a un numero di riga e di colonna specifico
^\      (F14)   (M-R)   Sostituisce una stringa o un'espressione regolare
^^      (F15)   (M-A)   Marca testo alla posizione del cursore
M-W     (F16)           Ripete l'ultima ricerca

M-^     (M-6)           Copia la riga corrente e la memorizza nel cutbuffer
M-}                     Applica indentazione alla riga corrente
M-{                     Toglie indentazione dalla riga corrente
^F                      Avanza di un carattere
^B                      Arretra di un carattere
^Space                  Avanza di una parola
M-Space                 Arretra di una parola
^P                      Va alla riga precedente
^N                      Va alla riga successiva

^A                      Va all'inizio della riga corrente
^E                      Va alla fine della riga corrente
M-(     (M-9)           Va all'inizio del paragrafo; poi al paragrafo precedente
M-)     (M-0)           Va alla fine del paragrafo; poi al paragrafo successivo
M-]                     Va alla parentesi corrispondente
M–     (M-_)           Scorre in alto di una riga senza muovere il cursore
M-+     (M-=)           Scorre in basso di una riga senza muovere il cursore
M-<     (M-,)           Va al buffer precedente
M->     (M-.)           Va al buffer successivo

M-V                     Inserisce un carattere letteralmente
^I                      Inserisce una tabulazione alla posizione del cursore
^M                      Inserisce un ritorno a capo alla posizione del cursore
^D                      Elimina il carattere sotto il cursore
^H                      Elimina il carattere a sinistra del cursore
M-T                     Taglia dal cursore alla fine del file

M-J                     Giustifica l'intero file
M-D                     Conta il numero di parole, righe e caratteri
^L                      Aggiorna la schermata corrente
^Z                      Sospende l'editor (se la sospensione è abilitata)

(M-X)                   Barra dei comandi abilita/disabilita
(M-C)                   Mostra sempre la posizione del cursore abilita/disabilita
(M-O)                   Usa una riga in più per le modifiche abilita/disabilita
(M-S)                   Scorrimento continuo abilita/disabilita
(M-P)                   Mostra spazi bianchi abilita/disabilita
(M-Y)                   Sintassi colorata abilita/disabilita
(M-H)                   Tasto Inizio intelligente abilita/disabilita
(M-I)                   Indentazione automatica abilita/disabilita
(M-K)                   Taglia fino a fine riga abilita/disabilita
(M-L)                   A capo automatico abilita/disabilita
(M-Q)                   Conversione delle tabulazioni in spazi abilita/disabilita
(M-B)                   File di backup abilita/disabilita
(M-F)                   File multipli abilita/disabilita
(M-M)                   Supporto per il mouse abilita/disabilita
(M-N)                   Nessuna conversione dai formati DOS/Mac abilita/disabilita
(M-Z)                   Sospensione abilita/disabilita
(M-$)                   A capo morbido abilita/disabilita

Published in: linux, linux nano, shell, tips

Ubuntu + VirtualMin + Antispam/Antivirus Module

Posted by: (Mar 21)
Per far funzionare il modulo di gestione antispam/antivirus su distroUbuntu +  Webmin + Virtualmin è necessario in primis installare il wrapper per il procmail, questo serv non è presente nella distro di Ubuntu, ma lo si può reperire facilmente online presso il sito stesso di VirtualMin:

http://software.virtualmin.com/gpl/debian/dists/virtualmin-etch/main/binary-i386/
http://software.virtualmin.com/gpl/debian/dists/virtualmin-etch/main/binary-i386/procmail-wrapper_1.0-2_i386.deb

installiamo il pacchetto con un semplice: sudo dpkg -i procmail-wrapper_1.0-2_i386.deb

Poi è necessario verificare i permesii permessi del procmail-wrapper che potete trovare in /usr/bin:
rwsr-xr-x  1 root root    2.9K 2006-11-28 10:08 procmail-wrapper
in realtà dovrebbe essere già ok dopo l'installazione. In particolare se non compare la s nei permessi utente avrete problemi.

In fine verifichiamo che postfix utilizzi il nostro wrapper e non procmail in maniera diretta:

sudo nano /etc/postfix/main.cf

accertarsi che esista la seguente direttiva:

mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME

Published in: linux, tips, ubuntu, virtualmin

Abilitare modulo pcntl in php

Posted by: (Mar 14)

Per abilitare il supporto pcntl in php5 (testato su Ubuntu 10.10) è necessario in prima battuta installare php5-cli e php5-dev, naturalmente si devono soddisfare tutte le dipendenze richieste dal sistema:

# sudo apt-get install php5-dev php5-cli

Dopo ci dobbiamo posizionare nel percorso dove si trovano i sorgenti del modulo che intendiamo compilare:

 # cd /etc/php5/cli/php5-5.3.3/ext/pcntl

 Il percorso potrebbe essere diverso, a seconda della distro e della versione del php (/etc/php5/cli/php5-xxxxx/ext/pcntl). Ma dopo possiamo passare ai passi finali:

# phpsize

# ./configure

# make

# make install

 

In alternativa a make install si può anche copiare a mano il modulo appena compilato:

# cp modules/pcntl.so /usr/lib/php5/shared_location_modules

 

Infine aggiungiamo il .ini per far caricare al php il nostro modulo:

# echo "extension=pcntl.so" > /etc/php5/conf.d/pcntl.ini

 

Non dimentichiamoci poi di riavviare apache per rendere effettive le nostre modifiche:

# /etc/init.d/apache2 restart

Published in: apache, development, php, tips, ubuntu
Powered by pmar s.r.o.