Paranoïa

GRUB2 – ajouter un mot de passe – proteger le boot – securite

Afin de protéger votre machine, il peut être pertinent de protéger le chargeur de démarrage par mot de passe.

Ceci pour éviter que n’importe qui puisse, en accédant à votre machine physiquement, sans aucun outil, accéder au compte root et opère des modifications.

Il y a 2 façons pour avoir l’accès root, le mode « rescue » (ou mode de récupération) et le passage de paramètres au chargeur de boot, tellement simple (pour mémo, au menu grub, on appuye sur « e », puis on change le « ro » en « rw » et on ajoute en fin de ligne (après quiet splash le plus souvent) init=/bin/bash, et on boote. Voilà on est root en local sur la machine, mince alors.

Bref, évidemment, vous aurez mis un mot de passe au BIOS, en autorisant uniquement le boot sur le disque dur local (pas d’USB, pas de lecteur optique)…et vous aurez crypté votre home (http://forum.inforeseau.com/ubuntu-10-04-crypter-son-home-apres-installation-tuto-memo-t630.html), naturellement, afin que même si quelqu’un vole votre machine/disque dur, ça soit un peu compliqué d’accéder à vos données.

Évidemment, malgré ça, vous n’êtes pas a l’abri du fait que quelqu’un sorte le disque de votre machine, insert un keylogger/rootkit, remette le disque en place, et donc, votre séquence de boot est corrompue, mais c’est un autre problème.

Donc, histoire que ça ne soit pas trop facile localement, on va protéger l’accès à GRUB avec mot de passe, de manière manuelle.

Note : Commencez toujours par faire une copie de sauvegarde des fichiers avant modification, comme ça en cas de soucis, vous bootez sur un livecd et replacez le fichier d’origine !

Pour cela on va éditer le fichier /boot/grub/grub.cfg et ajouter juste avant « ### BEGIN /etc/grub.d/10_linux ### » les lignes suivantes :
[bash]set superusers="superadmin"
password superadmin ze_password
password un_utilisateur autre_password[/bash]
(Note, ces comptes sont indépendants des comptes du système, ce sont des identifiants/mots de passe propre à GRUB).

Ceci suffit déjà à empêcher l’accès au menu « edit » lors du boot ! Ensuite, il faut ajouter une demande de mot de passe pour le mode rescue, à la ligne qui ressemble à ça :
[bash]menuentry ‘Ubuntu, avec Linux 2.6.32-25-generic (mode de récupération)’ –class ubuntu –class gnu-linux –class gnu –class os [/bash]
On ajoute à la fin –users un_utilisateur :
[bash]menuentry ‘Ubuntu, avec Linux 2.6.32-25-generic (mode de récupération)’ –class ubuntu –class gnu-linux –class gnu –class os –users un_utilisateur[/bash]

Et voilà, pour accéder au mode RESCUE (récupération) il faut le mot de passe ! hé hé hé.
Évidemment il faut appliquer cette restriction à chaque version de kernel si vous en avez plusieurs (chaque ligne qui commence par « menuentry »).

Ceci sera par contre modifié en cas de mise à jour du kernel ou en modifiant GRUB par l’interface graphique, donc à refaire à chaque fois si vous choisissez cette méthode « manuelle », mais très didactique.

Pour empêcher la lecture de vos identifiants par un utilisateur, on va enlever les droits de lecture sur le fichier /boot/grub/grub.cfg comme suit :
[bash]chmod -r /boot/grub/grub.cfg[/bash]

Il existe un moyen de faire cette modification de manière permanente (persistant même en cas de mise à jour), en 4 étapes, et de crypter le mot de passe (à partir de grub 1.98), comme expliqué ici :
http://ubuntuguide.net/how-to-setup-boot-password-for-grub2-entries ou là http://www.ubuntugeek.com/how-to-set-grub-2-password-protection.html

Soit, étape 1 :
Ajouter ce qui suit à la fin de /etc/grub.d/00_header :
[bash]cat << EOF
set superusers="superadmin"
password superadmin ze_password
password un_utilisateur autre_password
EOF[/bash]

Note, ceci suffit déjà à empêcher l’accès aux commandes de GRUB2, en appliquant un « sudo update-grub »

Etape 2 (les installations de linux) :
A partir de là on va gérer l’automatisation de la demande d’identifiants pour toutes les entrées de Grub, et ce pour toutes mise à jour.
Pour protéger les installations de Linux sur la partition principale, on va modifier le fichier /etc/grub.d/10_linux comme suit :
[bash]printf "menuentry ‘${title}’ ${CLASS} {\n" "${os}" "${version}"[/bash]
devient :
[bash]printf "menuentry ‘${title}’ ${CLASS} –users un_utilisateur {\n" "${os}" "${version}"[/bash]

Etape 3 (les installations de memtest) :
On va changer toutes les lignes qui contiennent « menuentry » dans /etc/grub.d/20_memtest comme suit :

[bash]menuentry "Memory test (memtest86+)" {[/bash]
en
[bash]menuentry "Memory test (memtest86+)" –users un_utilisateur {[/bash]

Etape 4 (les autres systèmes détéctés) :
On va éditer le fichier /etc/grub.d/30_osprober pour ajouter la demande de mot de passe au menu d’accès aux autres systèmes.
Pour toutes les lignes de ce fichier qui commencent par « menuentry », on ajoute avant l’accolade de fin « –users un_utilisateur » (sans les guillemets).

Voilà, lancez un petit
[bash]sudo update-grub[/bash]
et tout devrait être protégé par mot de passe, et ça sera le cas à chaque mise à jour. En cas de problème, restaurez les fichiers que vous aurez sauvegardé au préalable.

Enfin pour ce qui est de l’utilisation d’un mot de passe crypté, il faut voir ici au point No 7 :
http://www.ubuntugeek.com/how-to-set-grub-2-password-protection.html
En gros, on génère le hash du mot de passe avec l’utilitaire
[bash]grub-mkpasswd_pbkdf2[/bash]
Note : il faut être patient, la génération du hash prend tu temps, avec par défaut une boucle sur 10000 itérations.
Puis au lieu d’utiliser simplement la chaine « password user pass » dans le fichier de config, on utilise la chaine suivante :
[bash]password_pbkdf2 un_utilisateur la_chaine_envoyée_par_grub-mkpasswd_pbkdf2[/bash]

J’ai donc testé ça, et ça fonctionne très bien ! Ca permet, en cas de vol de votre disque, que le voleur ne puisse pas connaître votre mot de passe en clair ! :D

Note : Pour autoriser de multiples utilisateurs sur un même menu, il suffit d’ajouter des identifiants séparés par des virgules, comme ceci : –users user1,user2 { etc.

Sources :
http://start.ubuntuforums.org/showthread.php?p=9675892 (posts 18/19/20)
http://www.ubuntugeek.com/how-to-set-grub-2-password-protection.html (partie cryptage utilisable que à partir de grub 1.98)
http://ubuntuguide.net/how-to-setup-boot-password-for-grub2-entries (pour préserver les changements au fur et à mesure des mises à jour)
http://grub.enbug.org/Authentification

Loading

Tags: , , , ,

dimanche, octobre 17th, 2010 GNU - Linux, Paranoïa, Technologie Un commentaire

Firewall iptables : Rediriger un port vers un autre

Pour plusieurs raisons, on peut avoir besoin de rediriger un port vers un autre, pour permettre par exemple, d'acceder à un service sur plusieurs ports sans avoir à changer la configuration du service.

Ici je veux permettre l'utilisation du smtp (port 25, sur le port 26) :

Dabord, autoriser la connexion au port voulu :
en tcp :
[bash]iptables -A INPUT -p tcp –dport 26 -j ACCEPT[/bash]
en udp :
[bash]iptables -A INPUT -p udp –dport 26 -j ACCEPT[/bash]

Puis rediriger le port vers celui du service concerné (ici le SMTP 25) :
[bash]iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 26 -j REDIRECT –to-port 25
iptables -t nat -A PREROUTING -i eth0 -p udp –dport 26 -j REDIRECT –to-port 25[/bash]

Et voilà ! Tout le traffic arrivant sur le port 26 sera renvoyé en local sur le 25. On pourra ainsi contourner un blocage du port 25 chez certains opérateurs pour l'envoi des mails, en utilisant le port 26.

Ensuite, par exemple, nous avons une machine sur notre reseau qui heberge un serveur web (port 80), et on souhaite rediriger tout le traffic du port 80 vers cette machine. Voici la règle qui permet de faire ça :
Autoriser les connexions au port voulu (sur la machine frontale) :
[bash]iptables -A INPUT -p tcp –dport 80 -j ACCEPT[/bash]
Interception de tous les paquets entrant sur eth0, et on les renvoie sur 192.168.1.2 :
[bash]iptables -t nat -A PREROUTING -j DNAT -i eth0 -p tcp –dport 80 –to-destination 192.168.1.2[/bash]
Traitement des réponses et masquage des paquets de la machine interne, comme etant emis de la notre :
[bash]iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0 -p tcp –dport 80 -d 192.168.1.2[/bash]

Sources et références :

http://www.debian-administration.org/articles/73
http://aide.sivit.fr/index.php?2007/04/04/172-redirection-de-ports-avec-iptables
http://www.cyberciti.biz/faq/linux-port-redirection-with-iptables/
http://www.go2linux.org/iptables-port-26-redirection-accept-email-on-another-port
http://www.lea-linux.org/documentations/index.php/Reseau-secu-iptables

Loading

Tags: , , , , , , , , ,

samedi, octobre 9th, 2010 GNU - Linux, Paranoïa, Technologie 4 Comments

Les brevets logiciels tuent l’innovation et la recherche

On peut lire dans cet article

http://www.lemondeinformatique.fr/actualites/lire-pour-contrer-android-microsoft-porte-plainte-contre-motorola-31829.html

à quel point les brevets sont mauvais pour l'innovation, pour les utilisateurs, et l'humanité en général.

 

Je ne crie pas particulièrement contre les protagonistes présents dans cet article, mais l'illustration est flagrante. Ici, une entreprise crée un système meilleur que le concurrent, reconnu par le marché et les utilisateurs. Que se passe t il donc ? Le détenteur de l'ancien produit, dépassé, moins bon, et délaissé par les utilisateur au profit de quelquechose reconnu comme meilleur, va utiliser les brevets logiciels pour tenter d'en bloquer le développement !!

Ceci illustre pleinement l'utilisation des brevets logiciels : Empecher les améliorations, et enfermer les utilisateurs en les forçant à utiliser des produits mal conçus, alors qu'il existe des solutions pour aller de l'avant !

Plutot que de tirer profit de cet enseignement (la création d'une solution meilleure) et de sortir un système encore meilleur, les entreprises titulaires de brevets logiciels vont plutôt choisir la voie minable, qui consiste à retenir tout le monde par le bas, plutôt que de proposer mieux ! Ca n'est pas sans rappeler la politique ! Critiquer et revendiquer c'est facile, mais proposer mieux, ça alors, on y aurait pas pensé !

C'est pourquoi, dans le cadre de telles pratiques, les logiciels propriétaires et les brevets logiciels sont mauvais ! Mauvais pour le marché, mauvais pour les utilisateurs, mauvais pour l'humanité. Les brevets logiciels sont une prison pour la technologie.

En cela, les solutions open source sont bien meilleures, et seront toujours meilleures, c'est pourquoi elles me passionnent. A chaque fois que ce genre d'articles passe dans l'actualité, ça illustre un peut plus l'absurdité des brevets logiciels, le mauvais usage qu'on peut en faire, et à quel point le logiciel libre est bien meilleur ! Le logiciel libre offre le choix à l'utilisateur, à tous les niveaux !  Les brevets sont,une plaie et conçus pour garantir le remplissage du portefeuille des plus filous, ceux qui savent tirer les ficelles, au détriment de ceux qui produisent, et sont le réel moteur.

Oui, les brevets logiciels représentent une forme d'esclavage à plusieurs niveaux de la chaine économique qu'ils représentent.

Voilà, c'est dit, c'est moi qui le dit, ça ne couvre pas tous les cas de figure, ni tout ce que peut représenter le libre, mais simplement ce que m'a inspiré le contenu l'article en question ;)

Loading

Tags: , , , , , , ,

mardi, octobre 5th, 2010 Paranoïa, Technologie Aucun commentaire
Not f'd — you won't find me on Facebook
novembre 2024
L M M J V S D
 123
45678910
11121314151617
18192021222324
252627282930  
 

 
Suivez moi sur twitter - follow me on twitter
 
Follow on LinkedIn
[FSF Associate Member]
 
Free Software, Free Society
VIRTUALISATION :
Compacter une image virtualbox VDI
Bon petit tutoriel esxi
Marche d'appliances vmware
Installer ESXi sur un disque IDE
Installer ESXi 3.5 sur un disque USB
Installer proxmox avec DRBD et migration / réplication à chaud
Installer OSSEC avec VMware
Information sur le VDI
SECURITE - FIREWALL :
Ouvrir des ports dynamiquement iptables - knockd
Autre tres bon tuto knockd
Docs Arp poisoning - Anglais
Metasploit test de pénétration
Zone H - sites piratés en temps réel
Blog invisible things
Tips protection sécurité wordpress
Pfsense - distribution firewall opensource - adsl internet failover
Iproute 2 mini how to - linux advanced routing
ClearOS - la passerelle sécuritaire lan - wan
HAUTE DISPONIBILITE :
CDN - Accélération de la distribution de données
drbd iscsi ocfs2 dm multipath tutoriel
Load balancing LVS
Load balancing opensource list
HA-Proxy :
HAproxy - http load balancer
Simple tutoriel HAproxy
HAproxy - debian tutoriel
Centos - Ip failover
Configuratoin DM-Multipath Redhat
VMware Doubletake - continuité
Quelques liens sur la réplication MySQL : Manuel MySQL, chapitre sur la réplication
Manuel MySQL, Tutoriel clair sur la mise en place
Autre tuto sur la mise en place de la réplication MySQL
Références pour optimisation du serveur MySQL
Utilisation de EXPLAIN mysql pour optimiser vos bases
optimiser vos bases - requetes et index
STOCKAGE RESEAU :
Un outil de clonage disque en reseau
Internet NAS 250Go 250 accès VPN
Server ISCSI avec Ubuntu tuto
ISCSI centos redhat tutoriel
Gérer et étendre un LVM
Créer sa piratebox ! trop cool
Deaddrops, les clés USB dans les murs, aussi cool !
OPTIMISATION WORDPRESS :
Télécharger Xenu
Comment utiliser Xenu
optimisation hébergement wordpress
Super howto wordpress (En)
Test de charge serveur web - Load impact
VPN - ROUTEUR - LAN:
Zeroshell - le mini-routeur wifi tout en un
Retroshare, votre réseau d'échange crypté!
Openvpn sur centos redhat
Intégrer Linux dans active directory
Routage inter-vlan avec Linux
Routage avec OSPF
Network Weathermap
TENDANCES - WEB:
Boutons twitter
Analyser les tendances des recherches Google
Protocole sitemap - robots.txt
Creer des animations CSS3
Code php pour interagir avec twitter
E reputation
Jquery
TRUCS ET ASTUCES GNU/LINUX :
Tuxmachines.org - Actus et tips linux
Configurer GRUB2 et grub2 ici
Panoet - en anglais - tips & tricks
Readylines tips and trick pertinents
Squid Clamav - proxy antivirus
Apprendre Unix en 10 minutes
13 tips sur les expressions régulières
IE Sous linux IES
LDAP 2.4 Quickstart guide
Tutoriel LDAP
Installation annuaire LDAP
Serveur Mail Postfix - Dovecot - LDAP - MDS
Créer un linux personnalisé en ligne - custom linux
Super site sur linux - en
Capistrano - déploiement automatisé
MONITORING :
Nagios tutoriel et doc
Nagios plugin NRPE tuto
Nagios plugin NRPE autre tuto
Nagios plugin NRPE officiel
Zabbix - fonctionnalités
Zabbix - installation
Guide MRTGsys - grapher la charge locale
MRTGsys - ajouter des graphs
MRTGsys - interpréter les données
Shinken - Monitoring
Thruk Monitoring webinterface
Shinken - Tutoriel
Shinken - Référence chez Nicolargo
AUTRES LIENS :
RemixJobs IT jobs
USB Multiboot
Reset mot de passe windows
Java python et autres tips, intéressant !
Forum inforeseau
Open Clipart
Excellent comic en ligne
Inforeseau.fr