Archive for category sistemi
Linux: come trovare tutti i link simbolici presenti sul file system
Mi appunto un comando veloce che mette in evidenza, in modo recursivo, tutti i link symbolici fatti sul filesystem (o in una specifica directory):
# ls -lR <path> |grep "^l"
VNC Server su Debian Sid / Ubuntu
Ho usato per un bel po’ di tempo, devo dire con soddisfazione, Xtightvncserver fino a qualche giorno fa quando Metacity ha deciso di non avviarsi piu’ e di fallire causa incompatibilita’ tra il server VNC e la nuovissima versione di X presente sul sistema. A questo punto non avendo voglia di attendere una patch (se mai arrivera’) ho deciso di cambiare VNC server utilizzandone uno perfettamente integrato con l’Xserver: X11VNC
Per l’installzione e’ sufficiente dare un:
#apt-get install x11vnc
dopo di che lo possiamo lanciare semplicemente con:
#x11vnc
altrimenti
#x11vnc -many
-many significa che quando una sessione termina il server resta in attesa di una nuova connessione.
A questo punto ho deciso di lanciarlo all’avvio della macchina semplicemente editando /etc/rc.local ed aggiungendo quanto segue:
Se si tratta di Debian Sid
## Starto VNC server in ipv4
killall -9 vino-server
nohup x11vnc -many -display :0 \
-auth $(ps aux | grep -v grep | grep /usr/bin/Xorg | cut -d" " -f30) &
Nel caso di una Ubuntu
## Starto VNC server in ipv4
killall -9 vino-server
nohup x11vnc -many -xkb -display :0 &
Bash: cercare file e directory modificati oggi
Mi appunto qui di seguito due comandi, il primo mostra i files modificati oggi, il secondo le directory:
find -maxdepth 1 -type f -mtime -1
find -maxdepth 1 -type d -mtime -1
Rate-limit: salvaci dal DDoS
Questo interessantissimo modulo di IPTables ci permette di regolare le connessioni in arrivo sulla nostra macchina, in modo da limitare i danni, sia in caso di DDoS che di bruteforce, in quest’ultimo caso puo’ essere evitato con le seguenti regole:
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
--update --seconds 60 --hitcount 4 -j DROP
Dopo 4 tentativi in 60 secondi l’ip viene droppato.
Con la seguente regola invece possiamo limitare i pacchetti di tipo ICMP (molto spesso usati negli attacchi DDoS) a 3 richieste per secondo, il resto viene droppato:
iptables -I INPUT -p icmp --icmp-type echo-request -m limit !--limit 3/s -j ACCEPT
Un attacco DDoS invece su di un range di porte che va dalla 20100 alla 20400 e che accetta pacchetti UDP puo’ essere limitato cosi’:
iptables -A INPUT -p udp -m udp --dport 20100:20500 -m state --state NEW -m recent --set --name DEFAULT \
--rsource
iptables -A INPUT -p udp -m udp --dport 20100:20500 -m state --state NEW -m recent --update --seconds 10 \
--hitcount 10 --name DEFAULT --rsource -j DROP
Controllare lo stato del Raid HP
apt-get install cciss-vol-status
cciss_vol_status /dev/cciss/c*d0
Se il controller risulta sconosciuto:
cciss_vol_status -u /dev/cciss/c*d0
Come creare partizioni piu’ grandi di 2TB
In linux la formattazione del nostro nuovo HD da 3TB puo’ diventare complicata, soprattutto se la vostra distribuzione come nel mio caso non supporta GPT che combinato a parted ci permette di creare partizioni piu’ grandi di 2TB. Qui di seguito un how-to che comprende la compilazione del kernel su di una Ubuntu 10.04 nel caso che il supporto non sia abilitato.
Procuriamoci tutto il necessario:
sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev
sudo apt-get build-dep --no-install-recommends linux-image-$(uname -r)
Prepariamo l’ambiente dove andremo a ricompilare il nostro kernell
mkdir ~/src
cd ~/src
apt-get source linux-image-$(uname -r)
cd linux-2.6.32
cp -vi /boot/config-`uname -r` .config
Adesso procediamo alla castomizzazione del kernel
make menuconfig
Abilitiamo le seguenti opzioni
File Systems
Partition Types
[*] Advanced partition selection
[*] EFI GUID Partition support (NEW)
....
Dopo aver salvato ed essere usciti, prima di procedere all’effettiva compilazione diamo una spinta al nostro processore, nel caso di un quad core:
export CONCURRENCY_LEVEL=5
Sempre 1+$ilVostroNumeroDiCore
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-qualche-cosa kernel-image kernel-headers
Ovviamente e’ da sostituire -qualche-cosa con un contrasssegno che distingua il vostro nuovo kernel ad esempio -gpt
Adesso lo installiamo
cd ~/src
sudo dpkg -i linux-image-2.6.32.11+drm33.2-gpt_2.6.32.11+drm33.2-gpt-10.00.Custom_amd64.deb
sudo dpkg -i linux-headers-2.6.32.11+drm33.2-gpt_2.6.32.11+drm33.2-gpt-10.00.Custom_amd64.deb
Creiamo l’immagine del nuovo kernel
sudo update-initramfs -c -k 2.6.32.11+drm33.2-gpt
Aggiorniamo grub
sudo update-grub
sudo reboot
Adesso che abbiamo il supporto abilitato procediamo a partizionare l’HD da 3TB, per prima cosa con fdisk -l recuperiamo il device del disco, qui assumeremo essere /dev/sda
parted /dev/sda
Output:
GNU Parted 1.8.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
Battezziamo il disco:
mklabel gpt
Creiamo la partizione di 3TB:
mkpart primary 0 3001G
quit
non ci resta che formattare la partizione appena creata:
mkfs.ext4 /dev/sda1
mysqldump: Couldn’t execute ‘SELECT /*!40001 SQL_NO_CACHE */ * FROM `EVENTS`’: Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)
Dopo aver effettuato un disaster recovery, aver riacciuffato un DB per i capelli ed averlo sbattuto su di un altro server (versioni di MySQL differenti), se effettuo un mysqldump ricevo il seguente messaggio:
mysqldump: Couldn't execute 'SELECT /*!40001 SQL_NO_CACHE */ * FROM `EVENTS`': Cannot proceed because system tables used by Event Scheduler were found damaged at server start (1577)
Fixiamo il problema nel seguente modo:
# mysql_upgrade -f -p
# /etc/init.d/mysql restart
Tomcat 6 su Ubuntu 10.04 LTS
Mi appunto qui di seguito brevemente la procedura per installare Tomcat su di una macchina Ubuntu 10.04 LTS utilizzando il java connector di apache:
sudo apt-get install sun-java6-jre sun-java6-jdk
Scarichiamo Tomcat:
wget http://mirrors.publicshout.org/apache/tomcat/tomcat-6/v6.0.7/bin/apache-tomcat-6.0.7.tar.gz
Spacchettiamolo:
tar xzfv apache-tomcat-6.0.7.tar.gz
Copiamolo in una directory piu’ consona:
sudo cp -r apache-tomcat-6.0.7 /usr/local/
sudo ln -s /usr/local/apache-tomcat-6.0.7/ /usr/local/tomcat
Prepariamo l’init script /etc/init.d/tomcat e mettiamo al suo interno quanto segue:
#
# Startup script for the Tomcat server
#
# chkconfig: - 83 53
# description: Starts and stops the Tomcat daemon.
# processname: tomcat
# pidfile: /var/run/tomcat.pid
# See how we were called.
case $1 in
start)
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun/
export CLASSPATH=/usr/local/tomcat/lib/servlet-api.jar
export CLASSPATH=/usr/local/tomcat/lib/jsp-api.jar
export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
echo "Tomcat is started"
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
sh /usr/local/tomcat/bin/shutdown.sh
echo "Tomcat is stopped"
;;
restart)
export JRE_HOME=/usr/lib/jvm/java-1.5.0-sun/
sh /usr/local/tomcat/bin/shutdown.sh
echo "Tomcat is stopped"
sh /usr/local/tomcat/bin/startup.sh
echo "Tomcat is started"
;;
*)
echo "Usage: /etc/init.d/tomcat start|stop|restart"
;;
esac
exit 0
diamogli i permessi e abilitiamo lo startup al boot:
sudo chmod 755 /etc/init.d/tomcat
sudo update-rc.d tomcat defaults
a questo punto con sudo /etc/init.d/tomcat start dovremmo avviare il demone e puntando il browser su http://localhost:8080 (o usando links2) ne verifichiamo la disponibilita’.
A questo punto è necessario preparare il connector di Apache2 per tomcat:
sudo apt-get install libapache2-mod-jk
Creiamo il file /etc/apache2/workers.properties con al suo interno quanto segue:
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/lib/jvm/java-1.5.0-sun
ps=/
worker.list=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009
worker.ajp13.type=ajp13
Modifichiamo il file /etc/apache2/mods-available/jk.load e mettiamo al suo interno:
JkWorkersFile /etc/apache2/workers.properties
JkLogFile /etc/apache2/mod_jk.log
JkLogLevel debug
#JkMount /servlets-examples/* ajp13 #da decommentare se si usa tomcat 5.x;
JkMount /examples/* ajp13
Restartiamo Apache:
sudo /etc/init.d/apache2 restart
se puntiamo il browser su http://localhost/examples/ potremo vedere la pagina di esempi di Tomcat.
dos2unix missing (Ubuntu 10.04)
Sembra che in ubuntu 10.04 dos2unix e unix2dos non siano presenti, in realtà è stato semplicemente cambiato il nome nel pacchetto ‘tofrodos’. Ecco come sistemare:
#apt-get install tofrodos
#cd /usr/bin
#ln -s fromdos dos2unix
#ln -s todos unix2dos