Archivi tag: shell

Linux alias

Creare degli alias mediante shell Linux è un’operazione banale e di un’utilità pazzesca. Infatti, essi consentono di ridurre notevolmente il numero di flag da digitare, semplicemente associando il comando originario ad uno molto più semplice da ricordare.

tux1.jpg

Per quanto mi riguarda, dato che spesso e volentieri mi ritrovo dietro proxy e sono costretto ad utilizzare un mio server italiano come bouncer per accedere alle macchine sparse qua e là per il globo, lanciare a mano delle sessioni SSH specificando ogni volta username, porta di destinazione, ecc. risulta essere un’operazione tediosa ed un’insopportabile perdita di tempo. Sono corso, quindi, ai ripari, semplicemente digitando un comando simile al seguente:

nightfly@nightbox:~$ alias ssh_server1='ssh -p <porta su cui è in ascolto il demone SSH> -l <nomeutente> <indirizzo IP del server>'

Per listare tutti gli alias attivi occorre digitare il comando alias:

nightfly@nightbox:~$ alias

il cui output sarà simile al seguente:

alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

Mentre, per rimuovere un alias, basta scrivere:

unalias <nomealias>

Attenzione però, gli alias così definiti valgono solo per la sessione in cui vengono creati. Per fare in modo che siano permanenti è necessario inserirli all’interno del file /home/nomeutente/.bashrc.

Alla prossima.

Disabilitare il comando su per alcuni utenti su RedHat 5

Per fare in modo che determinati utenti loggati sulla nostra RedHat 5 non possano utilizzare il comando su (per ottenere, ad esempio, privilegi di root), è necessario operare come segue:

1) editare il file /etc/group, aggiungendo al gruppo wheel gli utenti che possono switchare su root:

root@nightbox:/home/nightfly# nano /etc/group

wheel:x:10:utente1,utente2

2) editare il file /etc/pam.d/su, aggiungendo la seguente stringa:

auth           required        /lib/security/$ISA/pam_wheel.so use_uid

 

redhat.jpg

A questo punto non vi resta che effettuare il logout e riaccedere alla shell usando le credenziali dell’utente con permessi limitati.

Lanciate un su – e digitate la password di root: avrete come risposta che la password appena inserita è errata (anche nel caso in cui sia stata digitata la password corretta).

Alla prossima.

Script bash per l’individuazione di eventuali rootkit mediante rkhunter

Recentemente ho creato questo semplice scrip bash che consente di identificare eventuali rootkit installati sulla nostra macchina, inviando successivamente il risultato della scansione al nostro indirizzo email. Tale scrip si avvale del tool rkhunter.

bash

Ecco il codice:

#!/bin/bash

destinatario=vostro.indirizzo@email.it

logfile=/var/log/rkhuntercheck.log

ROOT_UID=0

if [ "$UID" -ne "$ROOT_UID" ];then

        ERRORE1="Errore 1: Devi essere root per eseguire lo scrip"
        echo $ERRORE1
        echo "$(date) $ERRORE1" >> $logfile

        exit 1

fi

rkhunter --update -c --sk --nocolors > temp_rootkit;

cat temp_rootkit | mail -iv -s "Esito scansione rootkit con rkhunter" $destinatario;

rm temp_rootkit;

exit 0

In particolare, la flag –sk consente di skippare il keypress, mentre la flag –nocolors consente di creare un report senza preoccuparci della formattazione del testo mediante i colori.

Inoltre, prima di effettuare uno scan, grazie alla flag –update, aggiorno rkhunter con le ultime signature.

Spero che questo scrip vi possa tornare utile.

A presto.

Script per il backup giornaliero di un database remoto

Visto che la ridondanza non è mai troppa (Murphy vi dice qualcosa?), ho pensato di realizzare uno scrip per effettuare il backup di un database hostato su un server remoto.

shell

Ecco lo scrip (basato su expect):

#!/usr/bin/expect -f
set date [exec date +%d_%m_%y]
set password1 "<pass1>"
set password2 "<pass2>"
set database "<nomedb>"
spawn ssh user@hostname
expect "*?assword:*"
send "$passwordr"
send "r"
expect ":~$"
send "mysqldump $database -u root -ppassvostrodb > $database_$date.plr"
send "$database_$date.pl user@hostname:/home/userr"
expect "*?assword:*"
send "$password2r"
send "r"
expect ":~$"
send "rm database_*r"
expect eof

Lo scrip in questione si collega via SSH al server remoto, esegue un dump del database per poi copiarlo tramite SCP sul mio server.

Affinchè tale scrip venga eseguito giornalmente (per la precisione ogni sera alle 22) è necessario editare il file /etc/crontab aggiungendo la seguente direttiva:

00 22   * * * user  cd /home/user/ && ./backupremotedb > /dev/null 2>&1

Per ulteriori info contattatemi.

A presto.

Script bash per l’aggiornamento delle blacklist utilizzate da squidGuard

L’accoppiata squid + squidGuard rappresenta un’ottima soluzione per l’implementazione di un sistema dedicato al content filtering. Infatti, basta scaricare le blacklist aggiornate di squidGuard per avere un un filtraggio dei contenuti Web efficace ed efficiente.

 

squidguard

 

A tal proposito, ho pensato di realizzare uno scrip bash per l’aggiornamento automatico di tali blacklist. Ecco il codice:

#!/bin/bash

logfile=/var/log/squidguardupdate.log

ROOT_UID=0

if [ "$UID" -ne "$ROOT_UID" ];then

        ERRORE1="Errore 1: Devi essere root per eseguire lo scrip"
        echo $ERRORE1
        echo "$(date) $ERRORE1" >> $logfile

        exit 1

fi

wget http://squidguard.mesd.k12.or.us/blacklists.tgz

tar -xvf blacklists.tgz

cd blacklists/

cp -R * /var/lib/squidguard/db

squidGuard -d -C all

chown proxy:proxy -R /var/lib/squidguard/db

squid -k reconfigure

cd ..

rm blacklists.tgz

exit 0

Tale scrip non fa altro che scaricare le blacklist mediante wget, compilarle ed aggiornare la configurazione di squid.

Per ulteriori chierimenti contattatemi.

A presto.