lundi 22 décembre 2008

DRAC depuis le net

Sur la machine cliente :

ssh -L 443:LOCAL_DRAC_IP:443 -L 5900:LOCAL_DRAC_IP:5900 -L 5901:LOCAL_DRAC_IP:5901 -l user -N WAN_IP

Puis :

FF --> https://localhost

Et voila :)

lundi 27 octobre 2008

Find usage

Dans répertoire courant,
Lister les fichiers modifiés il y a MOINS de 20 jours :
$ find . -type f -mtime -20 -exec ls {} \;
Lister les fichiers modifiés il y a PLUS de 20 jours :
$ find . -type f -mtime +20 -exec ls {} \;
Effacer les fichiers modifiés il y a PLUS de 20 jours :
$ find . -type f -mtime +20 -exec rm -rf {} \;
Déplacer les fichiers modifiés il y a PLUS de 20 jours dans /home/tmp :
$ find . -type f -mtime +20 -exec mv {} /home/tmp/. \;
Plus généralement avec une commande :
$ find . -type f -mtime +20 -exec my_command {} /home/tmp/. \;
Trouver les fichiers de plus de 100M :
$ find . -type f -size +100M -exec ls {} \;
Trouver les fichiers avec une permission de 644 :
$ find . -perm 644
Trouver les fichiers dans le répertoire courant avec un filtre par fichier xargs :
$ find . -type f | xargs grep "toto@titi.com"
Trouver des fichiers et rediriger dans un TAR :
$ find . -type f -print0 | tar -czvf backup.tar.gz --null -T -
Exclure des répertoires courants :
$ find . -type f -print0 -not -path "." -not -path ".." | xargs -0 ...votre_commande...
Copier les fichiers (ex: csv) en préservant la structure des répertoires :
$ find . -name '*.csv' -exec cp --parents \{\} /target \;

vendredi 17 octobre 2008

Figer un paquet (debian-like)

Demander à figer un paquet :
# echo "nom_du_paquet hold" | dpkg --set-selections
Marquer un paquet pour installation :
# echo "nom_du_paquet install" | dpkg --set-selections
Voir le statut des paquets :
# dpkg --get-selections

lundi 6 octobre 2008

Vnc Server on display :0 (debian way)

1. Install the "vnc4server" package (universe). This will provide
"/usr/lib/xorg/modules/extensions/libvnc.so" (The vnc.so module for VNC
4.1.2 was changed from vnc.so to libvnc.so.)
2. Add "vnc" to the Module section in /etc/X11/xorg.conf
Section "Module"
...
Load "vnc"
EndSection
3.a.If your VNC server is running in a secure environment, you can
disable authentication with the following configuration:
Section "Screen"
...
Option "SecurityTypes" "None"
EndSection
3.b. If your VNC server is NOT running in a secure environment, you will
need to set a VNC password using the vncpasswd program:
# vncpasswd
Password:
Verify:
Then tell the VNC module where the password is stored in xorg.conf:
Section "Screen"
...
Option "SecurityTypes" "VncAuth"
Option "UserPasswdVerifier" "VncAuth"
Option "PasswordFile" "/root/.vnc/passwd"
EndSection
4. Logout and restart X (Ctrl-Alt Backspace)






mercredi 3 septembre 2008

Customiser son PS1

Voilà un petit lien pour customiser son Shell prompt (PS1) :


Et voilà le mien (à ajouter en fin de .bashrc par exemple) :

export PS1='\n\e[1;30m[\e[1;33m\u\e[m\e[1;30m@\e[m\e[0;33m\h\e[m\e[1;30m:\e[m\e[1;34m\w\e[m \e[1;30m]\e[m\n$ '

ou

export PS1="\e[32;32m[\t]\e[0m \e[33;33m\u\e[0m\e[31;31m@\[\e[34;34m\H\e[0m $ "

dimanche 31 août 2008

m0n0wall

Si vous cherchez à transformer votre Soekris net45xx / net48xx ou bien un simple PC en routeur, il existe une petite distro, qui possède ses avantages :
  • Administrable en mode web (XML)
  • Secure (FreeBSD oblige),
  • Légère - 12 Mo
  • Rapide à installer (2 minutes, nan j'exagère un peu moins...)
  • Plein, plein de fonctionnalités (Dnsmasq, IPsec Tunnels, Traffic shapper...)
Alors m0n0wall est fait pour vous !

Pour l'installation c'est très simple il suffit de récupérer l'image, puis de suivre le guide !

Pour faire rapide, installation sur CF pour net45xx depuis un Linux (ou bien un cousin) :

# gunzip -c net45xx-xxx.img | dd of=/dev/hdX bs=16k

mercredi 27 août 2008

X11 [Dual Screen] - xorg.conf - Tips

Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "aticonfig-Screen[0]" 0 0
Screen "aticonfig-Screen[1]" RightOf "aticonfig-Screen[0]"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "Synaptics Touchpad"
Option "Xinerama" "on"
EndSection

mercredi 13 août 2008

Installation d'une Debian GNU/Linux Etch sur un Soekris net4501 (méthode Debootstrap)

Ingrédients :
- Avoir une Compact Flash (CF) de 1Go (ou plus, ça marche avec une
512... mais bon soyons fous au prix d'une CF aujourd'hui...!)
- Un lecteur de carte/USB (!)
- Une machine Debian GNU/Linux (Etch ou autre) opérationnelle, avec une
connexion internet
- Un serveur DHCP
- Un câble Null-Modem 9 broches (si vous voulez vous amuser avec Minicom)
- Un Soekris net4501
- De la patience...
** Sur la machine qui va servir à installer le système minimum faire : **
Connecter la CF sur votre lecteur de carte
dmesg (pour voir le nom de votre CF reconnu dans le système)
fdisk /dev/sdX (probablement, où X = une lettre)
mkfs.ext3 /dev/sdX
Créer 2 partitions principales :
--
Swap --> 128 Mo (ID 82) (tune2fs -c 0 /dev/sdX, recommandé pour une CF)
Ext3 --> le reste (ID 83)
--
apt-get install minicom (équivalent HyperTerminal, pour les windowziens :-)
apt-get install debootstrap
mount -t ext3 /dev/sdXY /mnt/CF
debootstrap --arch i386 etch /mnt/CF/ ftp://ftp.de.debian.org/debian/
(boire un café !)
mount -t proc proc1 /mnt/CF/proc
mount -o bind /dev /mnt/CF/dev
chroot /mnt/CF
apt-get install locales console-data console-common
dpkg-reconfigure locales console-data
apt-get install initrd-tools
apt-get install linux-image-2.6.24[...]486 (ou installer un autre kernel)
apt-get install pciutils bzip2 sysfsutils dhcp3-client resolvconf
openssh-server openntpd ntpdate [...vous pouvez ajouter d'autres paquets...]
Modif "/etc/hosts" à
--
127.0.0.1 localhost
--
Modif "/etc/hostname" à
--
net4501 # (par exemple)
--
Modif "/etc/network/interfaces" à
--
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
auto eth0
iface eth0 inet dhcp
--
Modif "/etc/fstab" à
proc /proc proc defaults 0 0
/dev/hda1 none swap sw 0 0
/dev/hda2 / ext3 defaults,errors=remount-ro 0 1
--
!! Il est à noter que le Soekris verra vos partitions en /dev/hdXY... Et
plus en /dev/sdXY puisque normalement il n'y aura que le lecteur CF sur
votre système !!
--
passwd (pour fixer le mot de passe root)
apt-get install grub
--
Lancer grub
> root (hd1,1) !! remplacer par les informations correctes dans votre
système, il s'agit là de la partition bootable de votre soekris !!
> setup (hd1)
> quit
--
Eventuellement faire un "update-grub" pour créer "menu.lst" s'il n'est pas créé avec la commande précédente
--
Modif "/boot/grub/menu.lst" à
--
# Activer la console série, unit 0 est /dev/ttyS0, unit 1 est
/dev/ttyS1..., ajouter ces 2 lignes au début du fichier
[...]
serial --unit=0 --speed=19200 --word=8 --parity=no --stop=1
terminal --timeout=5 serial console
[...]
# Modifier les paramètres de boot du kernel en conséquence :
kernel /boot/vmlinuz-2.6.24[..]486 root=/dev/hda1 ro console=tty0
console=ttyS0,19200n8
[...]
--
Mettre la CF dans votre Soekris, puis le démarrer
Lancer minicom et configurer votre connexion série comme il faut, la
vitesse de connexion sur un soekris net4501 est de 19200 8N1 (voir
Remarques)
Normalement tout se passe bien et cela démarre :)
Au démarrage, cela va se bloquer sur "crond", mais en fait non.
Connectez vous en SSH (après avoir récupéré l'adresse IP de votre
Soekris dans les logs de votre serveur DHCP) --> ssh
root@<adresse_IP_du_Soekris>
Une fois connecté, pour avoir la console au démarage :
Modif fichier "/etc/inittab" à
--
[...]
T0:23:respawn:/sbin/getty -L ttyS0 19200 vt100 (il suffit en général de
décommenter la ligne qui est déjà configurée)
[...]
--
Normalement maintenant au boot vous devriez voir apparaitre le prompt de
login !
** Sur le Soekris net4501 (en SSH ou console) **
hwclock --set --date="<mois>/<jour>/<année_2_digits>
<heure>:<minute>:<seconde>" (le Soekris étant surement réglé sur
1980...ce qui pose des problèmes à la commande "apt-get" dans beaucoup
de cas...)
tzconfig
... A vous de jouer, la route est longue mais la voie est libre !

*************** Remarques ***************
Minicom :
--
Erreur --> appuyer sur une touche pour continuer (en boucle)
--
1/ Faire Ctrl-A, puis Z, puis O, puis "configuration du port série",
puis lettre F (contrôle d'erreur matériel), mettre à "NON"
2/ Grub (Stage 2 ce lance), mais le clavier est inaccessible...
3/ (Re)Faire Ctrl-A, puis Z, puis O, puis "configuration du port série",
puis lettre F (contrôle d'erreur matériel), mettre à "OUI"
4/ Le clavier est de nouveau accessible ! Booter en appuyant sur
entrée.

*************** MAJ ***************
- Il faut mieux utiliser PuTTY qui donne de meilleurs résultats que Minicom ^^

mardi 12 août 2008

rTorrent avec Screen

Pour démarrer rtorrent dans un "screen" (et fixer son niveau de priorité
d'execution) :
#!/bin/bash
cd /<my_torrents_dir>
screen -dmS rTorrent nice -n 15 rtorrent
Pour reprendre ce même "screen" :
#!/bin/bash
stty stop undef
stty start undef
screen -r rTorrent

Scripts en vrac

-- Script simple Netfilter (pour une GW connecté au net) --

#!/bin/sh
# Firewalling
PATH=/bin:/sbin:/usr/sbin:/usr/bin
PPP=ppp0
case "$1" in
start)
echo -n "Turning on firewall"
### ACTIVER LE FILTRAGE ###
echo 1 > /proc/sys/net/ipv4/ip_forward
### RAZ ###
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
### RULES ##
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT
### MASQUERADING ###
iptables -t nat -A POSTROUTING -o $PPP -j MASQUERADE
echo "..."
;;
stop)
echo -n "Turning off firewall"
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
echo "..."
;;
restart)
$0 stop
sleep 2
$0 start
;;

*)
echo "Usage: /etc/init.d/iptables.sh {start|stop|restart}"
exit 1
;;
esac

---------------------------

-- Ping check --

#!/bin/bash

PINGLAT=$(ping -c1 8.8.8.8 | grep -i time | head -n 1 | awk '{print $7}' | awk 'BEGIN {FS="[=]|[ ]"} {print $2}')
PINGTHRESHOLD=350
PINGLATINT=$(echo "$PINGLAT/1" | bc)

echo $PINGLATINT

if [ $PINGLATINT -gt $PINGTHRESHOLD ]
 then play -q ~jdoe/Musique/bip.mp3
 else exit 0
fi

---------------------------

-- Memproc --

#!/bin/bash

if [ "$1" = "" ] ; then
  echo -n "Nom du process : "
  read process
else
  process=$1
fi

ps aux | grep $process | grep -v grep | awk 'BEGIN { sum=0 } {sum=sum+$6; } END {printf("Taille RAM utilisée: %s Mo\n",sum / 1024)}'

---------------------------

lundi 4 août 2008

Tunnel SSH dynamique

Où comment créer un tunnel dynamique simple et rapide :

#ssh -D 9999 -p 22 user@serveurssh

Pour surfer depuis Firefox, par exemple il faut configurer ensuite le proxy en Socks V5 sur localhost:9999, et voilà :)

lundi 21 juillet 2008

IPSec / FreeSWAN tips

Comment arrêter un seul tunnel quand vous en avez plusieurs ?

# ipsec whack --terminate --name <mon_tunnel>

Comment redémarrer un seul tunnel quand vous en avez plusieurs ?

# ipsec whack --initiate --name <mon_tunnel>

Comment relire la configuration d'un seul tunnel quand vous en avez plusieurs ? Ceci en vous évitant de redémarrer totalement ipsec...

# ipsec auto --replace <mon_tunnel>

Regénérer la clef d'une machine :

# /usr/lib/ipsec/rsasigkey --random /dev/urandom 2048 > /etc/ipsec.secrets
ou
# ipsec newhostkey --output /etc/ipsec.secrets (à tester)

Lire la clef d'une machine :

# ipsec showhostkey --left

Bref voilà qq petites commandes bien utiles...

jeudi 12 juin 2008

Colorier les logs avec CCZE

Savez vous qu'il existe un moyen très simple de colorier les logs ?
Debian:
#apt-get install ccze
Exemple d'utilisation avec vsftpd (serveur FTP):
#tail -f /var/log/vsftpd.log | ccze -p vsftpd
Et voilà plein de zoli logs en couleurs, if you please !



mercredi 21 mai 2008

LVM Howto

Debian Squeeze :

(disque utilisé /dev/hdb, par exemple)

# apt-get install lvm2

# pvcreate /dev/hdb
pvcreate -- physical volume "/dev/hdb" successfully created

# vgcreate vg0 /dev/hdb
vgcreate -- volume group "vg0" "/dev/hdb" successfully created

# lvcreate -L 100M -n monvolumelogique vg0

(pour un volume logique de 100 Mo)

-- Voir aussi --

lundi 28 avril 2008

Cron format

#Minute (0-59)  Hour (0-23)  Day of Month (1-31)  Month (1-12 or Jan-Dec)  Day of Week (0-6 or Sun-Sat)  Command 
      0             2                12                     *                          0,6              /usr/bin/find

mardi 25 mars 2008

vendredi 7 mars 2008

GRUB

Démarrer Linux
title GNU/Linux
kernel (hd1,0)/vmlinuz root=/dev/hdb1
Démarrer MS Windows
title MS Windows
rootnoverify (hd0,0)
makeactive
chainloader +1
Démarrer MS Windows (disque 2 / partition 2)
title MS Windows
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,1)
makeactive
chainloader +1
Démarrer MS Windows (seconde mouture installée sur le 1er disque)
title MS Windows
unhide (hd0,0)  #la première partition est masquée
hide (hd0,1)  #la seconde partition est vue ou démasquée
rootnoverify (hd0,0)
makeactive
chainloader +1
Démarrer FreeBSD
title FreeBSD
root (hd0,2,a)
kernel /boot/loader

vendredi 29 février 2008

Pinger une plage d'adresse avec "nmap"

Ouvrir un Terminal, une Konsole (ou ce que vous voulez !) et faire :
# nmap -sP -T Normal 192.168.1.1-254

jeudi 21 février 2008

SSH -- Régénération des clefs d'un host (debian way)

Pour le RSA :
# ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""

Pour le DSA :
# ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -N ""

ou encore :

# rm -rf /etc/ssh/ssh_host_*
# dpkg-reconfigure -plow openssh-server

mardi 5 février 2008

Apache2, HTTPS (debian)

-- Etch --

Generating certificate
#openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem
This will complete the certificate now you need to make sure you have the correct permissions for .pem file if not use the
following command to set the correct permissions
#chmod 600 /etc/apache2/apache.pem
By default the server will listen for incoming HTTP requests on port 80 - and not SSL connections on port 443. So you need to enable SSL support by entering the following entry to the file /etc/apache2/ports.conf save and exit the file.
Listen 443
Enable SSL Support
If you want to enable SSL support for your apache web server you need to use the following comamnd
#a2enmod ssl
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.
Now you need to restart the apache2 server using the following command
#/etc/init.d/apache2 restart
Configuring SSL Certificate to Virtual Hosts in Apache2
First you need to edit the /etc/apache2/sites-available/default file change
NameVirtualHost *
to
NameVirtualHost *:80
NameVirtualHost *:443
Now you need to configure Virtual hosts using port 80
Example
ServerAdmin webmaster@localhost
.
.
.
configure Virtual hosts using port 443 the main difference is you need to use the following two lines for each SSL hosts.
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
Example
ServerAdmin webmaster@localhost
.
.
.
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem
Now you need to restrat your apache web server using the following comamnd
# /etc/init.d/apache2 reload

-- Squeeze --

Méthode 1 - FAST - (with make-ssl-cert):

cd  /etc/apache2/ssl/
/usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
a2enmod ssl
vi /etc/apache2/sites-available/001-deblabapachessl
-VirtualHost *:443-
[...config...]
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
-/VirtualHost-
apache2ctl configtest
/etc/init.d/apache restart
https://your_server/
Enjoy !

Méthode 2 - OLD SCHOOL - (with openssl):

cd  /etc/apache2/ssl/
openssl genrsa -out deblabapache.org.key 4096
openssl req -new -key deblabapachessl.org.key > deblabapachessl.org.csr
openssl x509 -req -days 365 -in deblabapachessl.org.csr -signkey deblabapachessl.org.key -out deblabapachessl.org.crt
a2enmod ssl
vi /etc/apache2/sites-available/001-deblabapachessl
-VirtualHost *:443-
[...config...]
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/deblabapachessl.org.crt
SSLCertificateKeyFile /etc/apache2/ssl/deblabapachessl.org.key
-/VirtualHost-
apache2ctl configtest
/etc/init.d/apache restart
https://your_server/
Enjoy !

-- Voir aussi --

DD et GZIP (1)

Voilà on commence par ces petites commandes :

# Pour effectuer un backup à chaud d'une partition vers une autre machine par le réseau
$ dd if=/dev/hda1 | gzip -9 | ssh <user_name>@<IP_Machine> 'dd of=/tmp/hda1.img'

# Créer un zip d'une image disque
$ dd if=/dev/hda | gzip > /mnt/hdb1/system_drive_backup.img.gz

# Et maintenant restaurer cette image
$ gzip -dc /mnt/hdb1/system_drive_backup.img.gz | dd of=/dev/hda

# Backup TAR d'un fichier ou d'un répertoire et SSH
$ tar cjvf - *my_files* | ssh me@me.com 'cat > /path_to_file/my_files.tar.bz2'