0
Posted by alex on Apr 12th, 2008

firewall.pngSous Linux on a droit à un outil très flexible qui agit comme firewall, routeur, passerelle et etc... Cet outil s'appele iptables.

Bon soyont honnête, il est puissant et flexible, mais il est chiant à configurer et il ne garde pas sa configuration, il faut donc la refaire à chaque démarrage.
Ensuite pour bannir un IP du serveur nous avons le /etc/hosts.deny qui est très pratique. Pratique ? Oui sans aucun doute. MAIS celui ci n'agit pas au niveau de la couche réseau du kernel directement comme le fait iptable, il est lu par les différents programmes. C'est à dire que si un programme n'est pas conçu pour le lire, alors le IP en question peut toujours s'y connecter...

Voila qu'on a un problème hein... Après avoir longuement réfléchie à la meilleure façon de proceder je me suis dit "Pourquoi ne pas utiliser le hosts.deny, mais de le faire interpreter par iptables ?".

Je m'explique:

Je ne voulais pas avoir de fichiers de configuration supplémentaires juste pour stocker la liste de IP à bannir. Comme le shell est un outil très puissant, j'ai pensé qu'à l'aide d'un petit script j'arriverais à faire gober le hosts.deny à iptables pour qu'il lise la liste de IP.

Le hosts.deny, comment c'est fait ?

C'est simple la syntaxe est la suivante: SERVICE:IP

Soit par exemple: SSH:241.23.43.65

Ou pour bloqué le IP sur tous les services ALL:241.23.43.65

Une entrée par ligne.

La solution:

Tapper cette petite ligne la dans le shell pour rafraichir les règles avec les IPs dans hosts.deny. Seules les IP précédée de ALL: seront bannies.

awk -F: '$1 =="ALL" {system("/sbin/iptables -A INPUT -s "$2" -j DROP")}' /etc/hosts.deny

awk prends chaque ligne du hosts.deny, compare la première colonne si elle égale ALL,si c'est le cas on appele iptables avec le IP à bannir.

Attention: Les règles disparaissent au redémarrage, il est donc bien de mettre cette ligne la dans le /etc/rc.local aussi pour qu'elle soit executé au démarrage, ou dans un cronjob pour que vous puissiez ajouter des IPs sans vous souciez de raffraichir !

Et voila, les Ip dans votre hosts.deny seront refusés violement par votre PC :)

Have fun

0 comment
2
Posted by alex on Mar 29th, 2008

J'ai trouvé de nombreux howtos qui expliquent comment changer le papier peint du bureau xfce automatiquement à chaque X minutes.

Pour être honnête la plupart étaient très mal fait et suggèraient defaire un cronjob qui "tuait" le desktop à chaque X minutes. C'est ridicule quand on sait que xfce possède un switch pour reloader le bureau sans le tuer !

Alors voici comment:

Tout d'abord aller dans les réglages du bureau pour faire la liste.

screen.png

Ensuite créer un cron avec pour commande:

export DISPLAY=:0; /usr/bin/xfdesktop -reload

Donc par exemple

 bash-3.1# crontab -e

*/5 * * * * export DISPLAY=:0; /usr/bin/xfdesktop -reload dans votre éditeur de cronjobs (crontab -e)!

Read more...
2 comments
2
Posted by alex on Mar 29th, 2008

Salut à tous,
Alors voila récement j'ai été confronté à un problème assez gênant. En effet l'éditeur par défaut sur mon système était nano. Puisque comme tout bon unix geek je déteste nano, eh bien j'ai voulu chercher comment changer cela. C'était embetant surtout que nano n'était pas installé sur mon système, donc les utilitaires dépendant de l'éditeur (crontab entre autre) ne fonctionnaient donc plus.
L'astuce fonctionne si votre éditeur par défaut est mcedit, emacs ou autre !

Voici comment:

Tout d'abord décider l'éditeur que vous souhaitez utiliser.

Ensuite vous devez trouver la variable d'environement qui définit l'éditeur, d'après mes test elle pourrait s'appeler VISUAL ou EDITOR. (remplacer nano par l'éditeur actuel)

Tapper: set|grep nano

vous allez voir quelque chose comme ça:

bash-3.1# set|grep nano

VISUAL=nano

pour changer l'éditeur il suffit de faire

export VISUAL=vi

Vérifiez que tout a fonctionner:

bash-3.1# set|grep vi

VISUAL=vi

Et voila :)

Read more...
2 comments
0
Posted by alex on Feb 9th, 2008

blog.alexou.net.jpg

Voici un petit guide qui résume comment compiler linux et l'installer dans grub. C'est très simple comme démarche, la partie la plus difficile est de configurer le kernel, mais bien souvent la configuration par défaut suffit.

Préalable: Un environement de développement bien installé avec GCC et toutes ses librairies, vous aurez besoin des librairies ncurses aussi.

Tout d'abord vous devez récuperer les sources du kernel le plus récent sur kernel.org, vous pouvez placer les fichiers n'importe où, mais normallement on les place dans /usr/src/linux-2.x.x ou encore simplement /usr/src/linux si vous ne comptez pas maintenir plusieurs kernel.

Connectez vous en root sur la console, et tappez les commandes suivantes:

bash# cd /usr/src
bash# wget "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.tar.gz"
bash# tar zxvf linux-2.6.24.tar.gz
bash# rm linux
bash# ln -s linux-2.6.2.4 linux

Explications: On télécharge l'archive tar.gz du kernel avec wget, on la décompresse avec tar , et on crée un lien symbolique du répertoire vers "linux" avec ln; comme ça on peut gerer plusieurs versions du kernel et /usr/src/linux pointera toujours vers la dernière version.

Maintenant qu'on a les sources, on doit configurer le kernel .

bash# cd linux
bash# zcat /dev/config.gz > .config # Optionnel, permet de commencer avec les parametres actuels.
bash# make menuconfig

make menuconfig va afficher un menu, vous pourrez alors choisir quelles options vous souhaitez compiler dans le kernel, en module, ou exclure. N'oubliez pas de sauvegarder avant de quitter. Il est temps de compiler !

bash# make bzImage
bash# make modules modules_install
bash# make install
bash# make clean

Ces quatres dernières étapes peuvent être très longues, dépendement de la puissance de votre PC. Le make clean peut être omis, mais il est préférable de tout nettoyer.

Si tout s'est bien déroulé vous voici avec un beau kernel tout frais :) . Il ne reste qu'à configurer GRUB et à redémarrer.

bash# vi /boot/grub/menu.lst

 

Vous devez rajouter:

title Mon Nouveau Kernel (2.6.24)
root (hd0,0)
kernel /boot/vmlinuz-2.6.24 ro root=LABEL=/12 rhgb quiet
initrd /boot/initrd-2.6.24.img

Regarder les paramêtres déja présents dans le fichier pour vous assurez que le root(...) est correct et que le ro root=LABEL=/12 rhgb quiet est adapté à votre système.

 

Si jamais vous compiler un kernel à distance, que vous n'avez pas d'accès physique à la machine, je vous conseille fortement de parametrer grub pour qu'il démarre une seule fois avec le nouveau kernel, comme ça en cas de panic du kernel, l'ordinateur vas pouvoir redémarrer sous l'ancien kernel:

Dans la console en tant que super utilisateur:

 

bash# grub
grub> savedefault --default=0 --once
grub> quit

 

Ici remplacer 0 par la position du kernel dans le fichier de config /boot/grub/menu.lst , on compte de haut en bas en partant de 0.

Si vous ne pouvez pas rebooter la machine à distance, alors vous pouvez ajouter panic=2 aux parametres du kernel pour qu'il redémarre en cas de panic après 2 secondes. Mais si il plante durement, alors vous êtes mal foutu :( .

 

Bonne chance :)

0 comment
Go to Top