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à :)