User Tools

Site Tools


informatique:linux:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
informatique:linux:start [2008/08/24 20:47] – ajout "nettoyer sa debian" pteuinformatique:linux:start [2016/08/11 08:14] – lsblk pteu
Line 3: Line 3:
 ====== Index de la rubrique linux ====== ====== Index de la rubrique linux ======
  
-~~DIR::informatique:linux?cols=page;date;user;tags~~ +{{ http://upload.wikimedia.org/wikipedia/commons/thumb/3/35/Tux.svg/85px-Tux.svg.png}}
- +
-====== Astuces ======+
  
 ===== Nettoyer sa Debian ===== ===== Nettoyer sa Debian =====
 +
 Voici quelques commandes et utilitaires à installer afin de nettoyer/entretenir son système (source : http://forum.debian-fr.org/viewtopic.php?f=8&t=3826&sid=1f219a3a825538c5d970f1ce18ceb4a0) : Voici quelques commandes et utilitaires à installer afin de nettoyer/entretenir son système (source : http://forum.debian-fr.org/viewtopic.php?f=8&t=3826&sid=1f219a3a825538c5d970f1ce18ceb4a0) :
  
Line 24: Line 23:
   aptitude autoclean   aptitude autoclean
  
 +Toutes les questions que je me suis posées et dont j'ai trouvé une réponse.
 +Toutes les astuces, tips que j'ai grapillés ici et là.
 +
 +
 +===== Xorg =====
 +
 +Pour règler le gamma du bureau, on peut utiliser l'outil //xgamma// disponible avec les drivers ATI proprio (je crois) :
 +  xgamma -gamma 1.1
 +
 +
 +=====SUID / GUID=====
 +
 +  * présence du flag "s" dans les permissions : ''-rwxr-sr-x 1 root crontab 26668 2006-04-01 03:43 /usr/bin/crontab''
 +  * permet de lancer le fichier avec les droits de l'utilisateur ou du groupe
 +  * repèrer les fichiers SUID/SGID (non verif) ''find / ­type d \( ­perm ­04000 ­o ­perm ­02000 \)''
 +  * on peut interdire les SUID/GUID sur une partition en ajoutant l'option "nosuid" au montage
 +  * http://setuid.org répertorie les fichiers SUID/SGID
 +
 +
 +=====Sécuriser Apache=====
 +
 +Les modules obligatoires :
 +  * httpd_core : noyau de base d'Apache
 +  * mod_access : contrôle d'accès (nécessaire pour utiliser "order", "allow" et "deny")
 +  * mod_auth : authentification des utilisateurs (HTTP Basic Authentication)
 +  * mod_dir : choix l'index prioritaire du serveur (index.html)
 +  * mod_log_config : gestion des logs
 +  * mod_mime : détermination des types de contenus à partir de l'extension des fichiers
 +
 +Les autres :
 +  * mod_info : informations sur la configuration d'Apache
 +  * mod_autoindex : listage automatique du contenu des dossiers sans index
 +
 +Directives pour limiter la divulgation des informations de configuration d'Apache :
 +
 +  # Set to one of:  Full | OS | Minor | Minimal | Major | Prod
 +  ServerTokens OS
 +  # Set to one of:  On | Off | EMail
 +  ServerSignature On
 +
 +
 +=====Sécuriser Proftpd=====
 +
 +  * le fichier "/etc/ftpusers" contient les utilisateurs n'ayant pas accès au service
 +
 +
 +=====Interdire l'exécution sur /tmp=====
 +
 +Ca peut etre une faille de sécurité de laisser le droit d'exécution sur ''/tmp'' ; mieux vaut donc le monter avec des droits restreints : pour cela, il faut monter la partition ainsi (dans la ''fstab'') :
 +  /dev/sda3   /tmp    ext3   noexec,nosuid        2
 +
 +Si vous n'avez pas de partition spécifique pour /tmp, on peut l'émuler via un fichier :
 +
 +  * On créer un fichier de 40 Mo
 +
 +  cd /root
 +  dd if=/dev/zero of=/root/tmpMnt bs=1024 count=40000
 +  mkfs.ext3 -F /root/tmpMnt
 +
 +  * on le monte dans /tmp
 +
 +  mv /tmp /tmp.backup
 +  mkdir /tmp
 +  mount -o loop,noexec,nosuid,rw /root/tmpMnt /tmp
 +  chmod 0777 /tmp
 +
 +  * on modifie la fstab comme vu plus haut
 +
 +  if ! grep -qai tmpMnt /etc/fstab ; then 
 +     echo "/root/tmpMnt /tmp ext3 loop,noexec,nosuid,rw  0 0" >> /etc/fstab
 +  fi
 +
 +  * on monte toutes les entrées de la fstab (dont /tmp)
 +
 +  mount -a
 +
 +  * vérification que ça marche
 +
 +  cp /bin/ls /tmp/
 +  /tmp/ls
 +
 +
 +=====-- MARK -- dans messages=====
 +
 +Le journal ''/var/log/messages'' contient pleins de lignes dans le genre :
 +  Nov  2 09:22:56 tiga -- MARK --
 +C'est le syslogd qui les y ajoute toutes les 20 min pour qu'en cas de panne du système, on puisse savoir à quelle heure a eu lieu le problème.
 +
 +
 +=====Informations CPU=====
 +
 +Pour afficher des informations sur le processeur :
 +  cat /proc/cpuinfo
 +   processor       : 0
 +   vendor_id       : AuthenticAMD
 +   cpu family      : 6
 +   model           : 8
 +   model name      : AMD Athlon(tm) 
 +   stepping        : 1
 +   cpu MHz         : 1202.802
 +   cache size      : 256 KB
 +   fdiv_bug        : no
 +   hlt_bug         : no
 +   f00f_bug        : no
 +   coma_bug        : no
 +   fpu             : yes
 +   fpu_exception   : yes
 +   cpuid level     : 1
 +   wp              : yes
 +   flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp    mmx ext 3dnowext 3dnow ts
 +   bogomips        : 2410.41
 +
 +Si le matériel est compatible, on peut lire la température du processeur ainsi que les seuil limites de cette façon :
 +  cat /proc/acpi/thermal_zone/THRM/temperature /proc/acpi/thermal_zone/THRM/trip_points
 +   temperature:             27 C
 +   critical (S5):           100 C
 +   passive:                 100 C: tc1=4 tc2=3 tsp=60 devices=0xcbfeef80 
 +   active[0]:               100 C: devices=0xb13fd6e0
 +
 +Là on voit que je n'aurais pas dû laisser la fenêtre ouverte.
 +
 +
 +=====Ubuntu Edgy Eft sous VMWare=====
 +
 +Installer Ubuntu Edgy Eft sous VMWare se fait sans problèmes, à ceci près que les "VMWare-tools" ne s'installent pas, et ce malgré l'installation clean des //linux-header// et des //build-essential//.
 +
 +  sudo apt-get install build-essential
 +  sudo apt-get install linux-headers-`uname -r`
 +
 +En effet l'utilitaire de configuration (de tête //vmware-config.pl//) stop avec une erreur mentionnant X.org 7.1. De plus il fait sauter la carte réseau, obligeant un reboot de la machine virtuelle.
 +
 +Après une rapide recherche sur gg, il s'agit d'une incompatibilité entre la version 5.5.1 de VMWare et la version 7.x de X.org, fourni avec Edgy Eft. Ca devrait marcher avec la version 5.5.2.
 +
 +
 +=====Freeze au retour d'hibernation=====
 +
 +Sous Feisty fawn avec un portable Sony FE41M (core 2 duo mais surtout nvidia avec drivers proprios)
 +Une solution semble être http://forum.ubuntu-fr.org/viewtopic.php?id=86849 à vérif.
 +
 +
 +=====Chrooter un utilisateur ssh=====
 +
 +Le tuto est dispo sur lealinux http://www.lea-linux.org/cached/index/Trucs:Chrooter_un_utilisateur_(ssh,_terminal,_console,_etc...).html
 +
 +
 +=====Erreur sendfile Proftpd=====
 +
 +Proftpd utilise sendfile, qui peut poser problème avec certains systèmes de fichier (NFS ou SMB) :
 +  * With a network-mounted directories (e.g. NFS or SMB), the kernel may be
 +   unable to serve the network file through its own cache.
 + 
 +Il faut donc désactivé son utilisation par la directive
 +  UseSendfile off
 +dans le fichier de conf ''/etc/proftpd/proftpd.conf''.
 + 
 +source : http://www.proftpd.org/docs/directives/configuration_full.html#USESENDFILE
 +
 +
 +=====Taille du terminal=====
 +
 +Par défaut le terminal d'Ubuntu est ''gnome-terminal'' et il se lance en 80x24. Pour modifier sa taille :
 +  gnome-terminal --geometry=100x30
 +
 +On peut spécifier la position dans l'écran, en partant de l'origine (en **haut** à **gauche**) avec ''+'' ou de son opposé avec ''-'' :
 +  gnome-terminal --geometry=100x30+120-80
 +Là il va se lancer en 100x30 caractères, à 120 pixels de la gauche et 80 du bas de l'écran.
 +
 +
 +=====Lancer un script au démarrage=====
 +
 +Création du script :
 +  vi /etc/init.d/toto.sh
 +   !/bin/bash
 +   echo toto
 +
 +On le rend exécutable :
 +  chmod +x /etc/init.d/toto.sh
 +
 +On l'ajoute au démarrage :
 +  update-rc.d /etc/init.d/toto.sh defaults
 +
 +
 +=====Limiter la vitesse du CDRom=====
 +
 +Quand on regarde un cd/dvd, c'est encore mieux sans le bruit du lecteur.
 +eject, une commande que tout le monde a d'installer, a une option -x (sur les versions récentes)
 +  eject -x 8 /dev/cdrom
 +limite la vitesse du lecteur a 8x. c'est plus silencieux.
 +C'est réversible dès que le cd/dvd est éjecté
 +
 +
 +=====Modifier le groupe principal d'un utilisateur=====
 +
 +Pour modifier le groupe principal d'un utilisateur, il suffit de modifier le 4e champ de la ligne correspondante dans le fichier ''/etc/passwd'' :
 +  dude:x:1000:1001:,,,:/home/dude:/bin/bash
 +Ici il s'agit du groupe d'identifiant (gid) = 1001.
 +
 +On trouve le nom du groupe en question dans le fichier ''/etc/group'' :
 +  grep 1001 /etc/group
 +  masterusers:x:1001:toto,dude
 +(On constate que 2 utilisateur appartiennent à ce groupe : toto et dude.)
 +
 +Ainsi, les fichiers de l'utilisateur "dude" seront créés sous le groupe "masterusers" d'identifiant 1001.
 +  whoami
 +   dude
 +  touch toto
 +  ll toto
 +   -rw-r--r-- 1 dude masterusers 0 jun  2 01:54 toto
 +
 +
 +=====Activer le 3eme bouton de la souris=====
 +
 +Il faut éditer le fichier de conf du serveur X (X11 sous Ubuntu : ''/etc/X11/xorg.conf'') et y ajouter les lignes suivantes, dans la section ''Section "InputDevice"'' :
 +
 +  Option          "Buttons"       "5"
 +  Option          "ZAxisMapping"  "4 5"
 +
 +La première active le 3ème bouton et la seconde active le scroll up/down (le 3ème bouton a en fait 3 clics : le clic "du milieu", le scroll up et le scroll down).
 +
 +
 +=====Transfert de fichiers par le réseau plus rapide=====
 +
 +J'ai trouvé une bidouille astucieuse sur l'excellent qui permet, d'après mes tests, de [[http://www.hackszine.com/blog/archive/2008/11/linux_tip_superfast_network_fi.html|diviser par 2 le temps de copie de fichiers par le réseau]].
 +
 +  * Copie classique :
 +  dude@dude:~/Documents$ time `cp -R dev /Volumes/data/tmp/popo/`
 +   real 6m32.577s
 +   user 0m0.704s
 +   sys 0m23.531s
 +
 +  * Copie en "tarant" les fichiers à la volée, et le les envoyant dans le réseau grâce à netcat (''nc'')
 +
 +Sur la machine destination on doit passer la commande
 +  nc -l -p 1235 | tar -C . -xzf -
 +
 +Sur la machine source
 +  dude@dude:~/Documents$ time `tar -cz ./dev | nc tyr.rv 1235`
 +   real 3m13.514s
 +   user 2m35.526s
 +   sys 0m31.486s
 +
 +  * A travers un réseau  non sécurisé on peut tunneliser le transfert : depuis la machine destination :
 + 
 +  dude@tyr:/mnt/data/tmp/popo$ time `ssh dude@192.168.2.23 'tar -cz -C /Users/dude/Documents/ dev' | tar -zx`
 +   real 4m12.939s
 +   user 1m58.999s
 +   sys 1m44.563s
 +
 +=====Supprimer les ^M d'un fichier=====
 +
 +Il arrive que, lorsqu'on importe un fichier qui a été encodé sous Windows, apparaissent en fin de ligne le caractère ^M qui correspond à un retour à la ligne mal interprété par vi - entre autres. Pour les supprimer, il faut ouvrir le fichier sous vi, passer en mode commande, saisir '':%s/'' puis passer les combinaisons de touches ''ctrl+v'' puis ''ctrl+m'' (et enfin ''/ /g'', pour remplacer toutes les occurences par pour une chaine vide):
 +  <echap>
 +  :%s/^v^m//g
 +
 +=====Sauvegarder un FTP en local=====
 +
 +Dans mon cas je veux sauvegarder le contenu de mon site internet, disponible via FTP uniquement, sur mon serveur de sauvegarde. [[http://doc.ubuntu-fr.org/lftp|Sur la documentation d'ubuntu-fr ils expliquent tout]].
 +
 +Il suffit d'installer le client FTP lftp et de saisir la commande :
 +  lftp ftp://login:mdp@serveur_FTP -e "mirror -e -x dossier_ignoré_1 -x dossier_ignoré_2 /emplacement_distant /emplacement_local ; quit"
 +
 +Ça marche aussi dans l'autre sens, pour mettre à jour un site avec le dernier contenu située sur ma machine en local :
 +  lftp ftp://login:mdp@site_FTP -e "mirror -e -R -x dossier_ignoré_1 -x dossier_ignoré_2 /emplacement_local /emplacement_distant ; quit"
 +
 +Paramètres :
 +  * -e pour lftp : pour exécuter les commandes entre guillemets et ne pas quitter
 +  * -e pour mirror : supprime de la destination les fichiers qui ne sont pas dans la source
 +  * -R pour mirror : Reverse -> mets à jour un contenu local à partir d'un contenu distant
 +  * -x pour mirror : exclure les fichiers qui matchent cette pattern (on peut spécifier plusieurs paramètre "-x")
 +  * -i pour mirror : inclure les fichiers qui matchent cette pattern (on peut spécifier plusieurs paramètre "-i")
 +
 +Autre possibilité (à approfondir) : utiliser **yafc** en script par exemple :
 +  #!/bin/bash
 +  yafc login:pwd@server <<**
 +  put -nrv /dossier_local -o /dossier_distant
 +  bye
 +  **
 +
 +Paramètres :
 +  * -n : transfert le fichier uniquement si le fichier local est plus récent que celui distant
 +  * -r : récursif
 +  * -v : mode verbeux
 +
 +=====Gérer les droits d'un dossier partagé=====
 +
 +Dans le cas d'un dossier du genre incoming, qui doit être accessibles en rw aux utilisateurs ftp et smb, il faut activer le sticky bit sur chaque dossier, ce qui permet de conserver les droits du dossier père sur les nouveaux fichiers, qui que ce soit qui les créer ([[http://artisan.karma-lab.net/node/1698|source]]).
 +
 +=====Modifier l'adresse MAC d'une carte réseau=====
 +
 +
 +Pour changer l'adresse mac de eth0 :
 +  ifconfig eth0 down
 +  ifconfig eth0 hw ether 00:11:22:33:44:55
 +  ifconfig eth0 up
 +
 +voir
 +  /etc/init.d/networking restart
 +
 +On peut aussi modifier le fichier ''/etc/network/interfaces'' (TODO).
 +
 +=====Personnaliser le prompt du bash=====
 +
 +voir [[informatique:os:netbsd#colorer_le_bash|ici]] ou [[http://www.woueb.net/2009/01/05/personnaliser-bash-mise-en-forme-couleurs-prompt/#more-1058|là]].
 +
 +=====Analyser un processus=====
 +
 +Un bien grand mot pour décrire la façon de savoir quel binaire se cache derrière un processus. Il faut pour celà récupérer son PID, puis regarder le lien synbolique situé dans ''/proc/<PID>/exe'' :
 +
 +  ps
 +   PID TTY          TIME CMD
 +   20338 pts/4    00:00:00 bash
 +   20358 pts/4    00:00:00 ps
 +  
 +  ll -a /proc/20338/exe 
 +   lrwxrwxrwx 1 dude smbusers 0 avr 27 23:21 /proc/20338/exe -> /bin/bash*
 +
 +Dans le cas d'un processus suspect, on peut avoir des surprises : par exemple le lien qui pointe vers un exécutable bizarroïde situé dans ''/tmp''...
 +
 +=====Afficher l'heure dans l'historique des commandes=====
 +
 +Pour afficher la date et l'heure dans l'historique des commandes, ajouter cette ligne dans son ''.bashrc'' :
 +  HISTTIMEFORMAT="%m/%d_%H:%M:%S "
 +
 +=====Récupération d'un mot de passe root=====
 +Quand on perd le mot de passe root sous Linux, on n'est plus rien. Heureusment il existe une procédure de recovery :
 +  * rebooter
 +  * lors du menu grub, presser "E"
 +  * saisir :
 +<code>grub edit> kernel /boot/vmlinuz-2.6.8-2-386 root=/dev/sda1 rw init=/bin/bash</code>
 +  * valider, puis, au menu grub, presser "B"
 +  * au boot, on obtient un terminal root à partir duquel on peut modifier le mot de passe root
 +
 +=====Afficher un fichier avec les numéros de lignes=====
 +
 +<code>perl -ne 'print "$. - $_"' infile.txt</code>
 +
 +=====Débloquer un terminal=====
 +
 +Il arrive que votre terminal soit bloqué suite à une commande qui ne rend pas la main ; exemple :
 +<code>telnet 10.0.0.1
 +Trying 10.0.0.1...
 +Connected to 10.0.0.1.
 +Escape character is '^]'.
 +^C
 +^C
 +exit
 +quit
 +^^^X^X^X^A^Z^Z^Z^Z^Z^C^C^V^C^C^M</code>
 +Pour débloquer le terminal : ''^V^O<enter>'' (<ctrl+v><ctrl+o><enter>)
 +
 +La commande ''reset'' peut aussi fonctionner pour rétablir le titre de la fenêtre, après avoir lu un binaire par exemple.
 +
 +Source : [[http://www.commandlinefu.com/commands/view/4256/salvage-a-borked-terminal|commandlinefu]]
 +
 +=====Changer la langue du clavier=====
 +
 +Pour changer la langue du clavier (AZERTY ou QWERTY) :
 +<code>
 +setxkbmap [fr | us]
 +</code>
 +
 +NB : sous centOS
 +<code>
 +loadkeys fr
 +</code>
 +
 +=====Prendre un screenshot d'une machine distante=====
 +
 +Voici une commande pour prendre une capture d'écran d'une machine distante lorsqu'on est connecté dessus via SSH (PS : il faut qu'elle fasse tourner un serveur X évidemment) :
 +<code>DISPLAY=":0.0" import -window root screenshot.png</code>
 +
 +=====Créer un fichier temporaire automatique=====
 +
 +Certaines commandes requièrent qu'on leur fournisse un fichier en input ; c'est le cas de la commande mail par exemple, pour spécifier le corps (contenu) du mail.
 +Il faut donc créer ce fichier, ce qui est souvent fastidieux : par exemple :
 +
 +<code bash>
 +echo "Ceci est le corps du mail" > /tmp/mail.tmp
 +mail -s "Sujet du mail" destinataire@serveur.com < /tmp/mail.tmp
 +rm -f /tmp/mail.tmp
 +</code>
 +
 +Pour éviter la création du fichier temporaire, on encadre une commande par ''<('' et '')'' ce qui a pour effet de la faire passer par un fichier automatiquement :
 +
 +<code bash>
 +mail -s "Sujet du mail" destinataire@serveur.com <(echo "Ceci est le corps du mail")
 +</code>
 +
 +Plus simple, plus rapide et plus propre, ce second exemple fait la même chose que le premier code.
 +
 +=====Connaitre la date d'installation du système=====
 +
 +NB : ceci ne marche que si le système n'a pas changé de système de fichier depuis son installation.
 +<code bash>
 +tune2fs -l $(df -P / | tail -n1 | cut -d' ' -f1 ) | grep 'Filesystem created:'
 + Filesystem created:       Sun Jun  7 23:06:33 2009
 +</code>
 +
 +=====Augmenter le nombre de ports clients=====
 +
 +Quand on initie une connexion, les applications utilisent des ports > 1024 comme port coté client (le port serveur étant par exemple 25 pour un serveur de mail, ou 80 pour un serveur web). Sous Linux les applications sont limitées aux ports clients indiqués dans le fichier ''/proc/sys/net/ipv4/ip_local_port_range'', dans mon cas sous Debian Squeeze entre 32368 et 61000 :
 +<code bash>
 +cat /proc/sys/net/ipv4/ip_local_port_range
 +32768   61000
 +</code>
 +
 +Pour augmenter cette plage de ports (c'est utile pour mettre en place un serveur proxy par exemple) il faut modifier le contenu du fichier via la commande :
 +<code bash>
 +sysctl -n net.ipv4.ip_local_port_range="25000 65000"
 +</code>
 +
 +source : [[http://www.linuxscrew.com/2011/02/15/quick-tip-port-range/|Linux * Screw]]
 +
 +
 +=====Fichiers notoires=====
 +
 +====rhosts====
 +
 +Contient la liste des hosts / logins ayant accès sans authentification aux services //remote// comme rsh ou rlogin, par exemple l'utilisateur //dude// sur la machine //192.168.2.3//.
 +  192.168.2.3     dude
 +
 +====/etc/motd====
 +
 +Il contient le message de bienvenue qui s'affiche quand un utilisateur se connecte à la machine.
 +  cat /etc/motd
 +   Linux vtiga 2.6.18-4-686 #1 SMP Wed May 9 23:03:12 UTC 2007 i686
 +   
 +   The programs included with the Debian GNU/Linux system are free software;
 +   the exact distribution terms for each program are described in the
 +   individual files in /usr/share/doc/*/copyright.
 +   
 +   Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
 +   permitted by applicable law.
 +
 +====/etc/inittab====
 +
 +Configure le service //init//, à l'origine de tous les autres processus lancéssur le système
 +  * on règle le runlevel par défaut au démarrage :
 +
 +  id:5:initdefault:
 +
 +//on démarre ici en niveau d'exécution 5 (graphique)//
 +
 +  * on peut désactiver la combinaision de touches Ctrl+Alt+Suppr qui sert à redémarrer en commentant cette ligne :
 +
 +  ca:12345:ctrlaltdel:/bin/shutdown -r now
 +
 +  * le fichier contient des lignes du genre :
 +
 +  l0:0:wait:/etc/init.d/rc 0
 +  l1:1:wait:/etc/init.d/rc 1
 +  l2:2:wait:/etc/init.d/rc 2
 +
 +Cela indique les scripts lancés pour chaque //runlevel// ainsi que les paramètres envoyés.
 +Par ex. le dossier **/etc/rc3.d** contient des liens symboliques vers le fichiers de scripts qui seront chargés lors d'un runlevel 3.
 +
 +  * activer les mdp **shadow** : les mots de passe de chaque utilisateur ne sont plus sotckés dans **/etc/passwd** (lisible pour tous) mais sont hashés (md5 le plus souvent) dans **/etc/shadow** qui lui n'est lisible que par root.
 +
 +====/forcefsck====
 +
 +Ce fichier n'existe pas "normalement". On le créer afin de forcer un ''fsck'' au prochain démarrage de la machine.
 +<code>touch /forcefsck</code>
 +La machine, après avoir effectué le ''fsck'', supprime le fichier de sorte qu'elle ne le refera pas à tou les futurs démarrages.
 +
 +====/proc/meminfo====
 +
 +Pour récupérer des information sur la mémoire vive :
 +<code>cat /proc/meminfo
 +MemTotal:       968368 kB
 +MemFree:         34104 kB
 +Buffers:        128464 kB
 +Cached:         601764 kB
 +SwapCached:          0 kB
 +Active:         404812 kB
 +Inactive:       482104 kB
 +HighTotal:       62912 kB
 +HighFree:          192 kB
 +LowTotal:       905456 kB
 +LowFree:         33912 kB
 +SwapTotal:      979924 kB
 +SwapFree:       979272 kB
 +Dirty:             452 kB
 +Writeback:           0 kB
 +AnonPages:      156688 kB
 +Mapped:          21884 kB
 +Slab:            37704 kB
 +SReclaimable:    32008 kB
 +SUnreclaim:       5696 kB
 +PageTables:       1492 kB
 +NFS_Unstable:        0 kB
 +Bounce:              0 kB
 +WritebackTmp:        0 kB
 +CommitLimit:   1464108 kB
 +Committed_AS:   433792 kB
 +VmallocTotal:   114680 kB
 +VmallocUsed:      3188 kB
 +VmallocChunk:   111036 kB
 +HugePages_Total:     0
 +HugePages_Free:      0
 +HugePages_Rsvd:      0
 +HugePages_Surp:      0
 +Hugepagesize:     4096 kB
 +</code>
 +
 +===== Sécurité générale sous Linux =====
 +
 +//(Résumé d'une partie du bouquin **Sécurité sous Linux** de Aron Hsiao, ed. Campus Press)//
 +
 +
 +====Configuration de LILO====
 +
 +Lilo (Linux LOader) est le programme qui lance l'image de Linux, et qui se place dans le MBR.
 +  * au prompt : ''LILO boot: linux init=/bin/bash'' permet de lancer le programme **bash** à la place d'**init**, et donc de donner un shell root au pécore moyen de base sans authentification aucune.
 +  * le fichier de config est ''/etc/lilo.conf'' : il contient une section globale (en premier) et une 2nde section contenant les images à loader (qui commence au mot clé ''image='' ou ''other='').
 +  * lilo peut demander un mot de passe pour se charger grâce au mot-clé **password**. S'il est placé dans la section globale il sera demander pour loader n'importe quelle image ; s'il est placé après il sera demandé pour loader l'image qu'il suit.
 +
 +  password= "A9dl00!"
 +
 +le mot de passe est **en clair** dans le fichier de config
 +  * ''restricted'' permet à une image protégée par mot de passe d'être amorcée sans mot de passe à moins que des arguments en ligne de commande ne soient envoyés au noyau. A l'instar de //password//, **restricted** peut se mettre dans les 2 sections pour avoir une portée différente.
 +  * ''prompt'' permet de proposer une invite pour passer des paramètres au noyau (''LILO boot: '')
 +  * ''timeout'' permet de définir le temps d'attente avant un boot automatique sur l'image par défaut
 +  * pour prendre en compte les modification, ou recharger lilo dans le MBR : ''# /sbin/lilo''
 +  * sécuriser le fichier de config pour interdire la lecture du fichier (souvenons nous que le pass est en clair dedans !) :
 +
 +  chmod 600 /etc/lilo.conf
 +
 +
 +====Les niveaux d'exécution====
 +
 +//Debian GNU/Linux utilise des runlevels (runlevels) légèrement différents de ceux-ci, qui sont documentés dans **/etc/inittab**//
 +  * 0 : arrêt système, tous les processus sont arrêtés
 +  * 1 : mode mono-utilisateur (argument ''single'' au boot). Aucun service n'est lancé sauf le réseau. Seul root peut se loggué, et uniquement en console.
 +  * 2 : mode multi-utilisateur minimal. Seuls quelques services sont démarrés.
 +  * 3 : mode multi-utilisateur complet (normal).
 +  * 4 : //non utilisé ou spécifié par l'utilisateur//
 +  * 5 : mode multi-utilisateur avec serveur X (système amorcé en X11R6)
 +  * 6 : reboot = tous les processus sont arrêtés, la machine redémarre
 +
 +  * ''/etc/securetty'' contient le liste des terminaux qui acceptent un login root
 +  * ''$HOME/.bash_logout'' est lancé lorsqu'un utilisateur se déloggue. Ca peut être interessant de rajouter ''/usr/bin/clear'' à la fin.
 +Ce fichier est issu de ''/etc/skel/.bash_logout'' lors de la création du compte utilisateur.
 +  * ''/etc/shells'' contient le liste des shells proposés à l'utilisateur quand il fait la commande ''chsh''
 +
 +
 +====Protections réseau====
 +(D'après http://www.dedibox-news.com/doku.php?id=distrib:debian:securiser_sa_debian)
 +
 +Se protéger contre les //Smurf Attack// :
 +  echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
 +
 +Eviter le //source routing// :
 +  echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
 +
 +Se protéger des attaques de type //Syn Flood// :
 +  echo "1" > /proc/sys/net/ipv4/tcp_syncookies
 +  echo "1024" > /proc/sys/net/ipv4/tcp_max_syn_backlog
 +  echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
 +
 +Désactivez l’autorisation des redirections ICMP:
 +  echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects
 +  echo "0" > /proc/sys/net/ipv4/conf/all/secure_redirects
 +
 +Eviter le log des paquets ICMP erroné:
 +  echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
 +
 +Active le logging des paquets aux adresses sources falficiées ou non routables :
 +  echo "1" > /proc/sys/net/ipv4/conf/all/log_martians
 +
 +
 +=====Utiliser un proxy http=====
 +
 +Pour utiliser un proxy HTTP sous Linux on peut utiliser la variable d'environnement http_proxy qui sera utilisable par toutes les applications qui en tiennent compte :
 +<code bash>
 +export http_proxy="http://login:password@IP_proxy:port"
 +</code>
 +("login:password" est facultatif)
 +
 +On peut rendre la manipulation pérenne en l'indiquant dans le fichier ''.bashrc'' de votre home.
 +
 +Pour certaine applications cela ne fonctionne pas ; par exemple j'obtiens ces erreurs sous debian 6.0.6 avec aptitude :
 +<code bash>
 +aptitude update
 +Err http://ftp.debian.org squeeze-updates Release.gpg
 +  Impossible d'initialiser la connexion à 3128: 80 (0.0.12.56). - connect (22: Argument invalide)
 +Err http://ftp.debian.org/debian/ squeeze-updates/contrib Translation-en
 +  Impossible d'initialiser la connexion à 3128: 80 (0.0.12.56). - connect (22: Argument invalide)
 +[..]
 +</code>
 +
 +Dans ce cas on peut préciser un proxy directement dans l'application ; dans le cas d'apt / aptitude il faut créer un fichier dans ''/etc/apt/apt.conf.d/'' avec le paramètre suivant :
 +<code bash>
 +vi /etc/apt/apt.conf.d/99proxy
 +Acquire::http::Proxy "http://IP_proxy:port";
 +</code>
 +
 +NB : désactiver la variable d'environnement au besoin :
 +<code bash>
 +unset http_proxy
 +</code>
 +
 +=====Le poste ne s’éteint pas=====
 +
 +Souvent cela arrive d'arrêter la machine avec la commande **halt** par exemple, et qu'elle reste "bloquée" à : ''System halted'' sans couper l'alimentation. Ceci a pour cause la mauvaise utilisation / compréhension des commandes pour arrêter la machine.
 +  * ''shutdown -r'' / ''init 6'' / ''reboot'' : pour arrêter-redémarrer la machine
 +  * ''shutdown -H'' / ''halt'' : arrête le système (mais pas "la machine" càd ne coupe pas l'alimentation électrique)
 +  * ''shutdown -h now'' / ''halt -p'' / ''poweroff'' : arrêt + coupure de l'alimentation électrique
 +  * ''shutdown -P'' : éteindre (power off) la machine
 +
 +Avec la commande **shutdown** on peut également :
 +  * ''-t <secondes>'' spécifier un délais avant l'action choisi
 +  * suivre l'action par une date (ex : ''shutdown -h now'')
 +  * ''-c'' :  annuler un shutdown en cours
 +  * ''-F'' : forcer le fsck (file system check) au reboot (ou ne pas faire de fsck : ''-f'')
 +
 +Donc pour conclure si on veut éteindre électriquement la machine il faut utiliser **shutdown -h now** ou l'un de ses alias.
 +
 +
 +=====Le fichier /etc/nologin=====
 +
 +Lorsque le fichier ''/etc/nologin'' existe, aucun utilisateur autre que root ne peut plus se connecter au système. Le contenu du fichier sera alors affiché en guise de message d'information, par exemple "Maintenance en cours !"
 +
 +=====Changer le kernel OVH=====
 +
 +Quand j'ai installé mon Kimsufi il y a quelques année j'ai installé Debian 7 dessus, avec le kernel OVH ("optimisé" pour la machine). Bon, je me rend compte maintenance que je n'ai pas de temps à perdre pour m'amuser à changer de kernel manuellement , je veux donc installer celui des dépôts apt (qui seront surveillés et mis à jour plus régulièrement que si c'était moi !). Voici comment procéder :
 +  * sauvegarder vos données, la base de toute manip.
 +  * installer le paquet ''linux-image*'' (le nom dépend de votre Linux)
 +<code bash>
 +aptitude install linux-image-amd64
 +</code>
 +  * "désactiver" le kernel OVH
 +<code bash>
 +mkdir /root/bck_kernel_OVH
 +mv /etc/grub.d/06_OVHkernel /root/bck_kernel_OVH/
 +</code>
 +  * actualiser le menu de Grub, le chargeur de démarrage
 +<code bash>
 +update-grub
 +</code>
 +  * redémarrer la machine
 +<code bash>
 +init 6
 +
 +# (reboot...)
 +
 +# vérification du noyau
 +uname -a
 +Linux ksXXXXXXXX.kimsufi.com 3.2.0-4-amd64 #1cront SMP Debian 3.2.73-2+deb7u3 x86_64 GNU/Linux
 +</code>
 +
 +Si tout se passe bien après quelques temps, on pourra virer les binaires du noyaux OVH pour faire de la place sur la partition /boot :
 +<code bash>
 +cd /boot
 +rm System.map-3.10.9-xxxx-grs-ipv6-64 bzImage-3.10.9-xxxx-grs-ipv6-64
 +</code>
 +=====Divers=====
 +
 +  * sur la debian est fournie la commande ''iconv'' qui permet de transcoder du texte de et vers n'importe quel jeu de caractères. Exemple :
 +<code bash>
 +iconv -f utf8 -t iso8859-15 fichier_utf8.txt
 +</code>
 +
 +  * il est intéressant de monter /usr, /bin et /sbin en "ro" car ils ne devraient être modifiés que lors d'une mise à jour du système
 +  * fichier sensible : /root/.bash_history
 +  * la documentation debian se situe ici : /usr/share/doc/debian/FAQ/index.html et dans /usr/share/doc/Debian/reference/index.html
 +  * lors de la mise à jour en kernel 2.6.25-2-686 (le 29/07/2008) il fallait ajouter la ligne suivante dans /etc/kernel-img.conf
 +<code bash>
 +do_initrd = Yes
 +</code>
 +
 +  * Le **bonding** sous Linux correspond à peu près l'équivalent de l'Etherchannel avec Cisco : il s'agit de créer une interface logique, aggrégat de (une ou) plusieurs interfaces physiques. L'exemple type est d'utiliser 2 cartes réseaux 100 Mbps pour créer une interface logique à 200 Mbps, supportant la perte d'une des cartes (dans ce cas le lien fonctionne en mode dégradé à 100 Mbps).
 +
 +  * (26/02/2015) sous Xubuntu 14.04 je me suis rendu compte que la commande ''dpkg--reconfigure locales'' ne me permettait plus de choisir les locales à installer ou supprimer (avant un menu interactif s'affichait). Pour désinstaller des locales sur la machine, j'ai édité les fichiers dans ''/var/lib/locales/supported.d/'' pour commenter les locales dont je ne voulais plus.
 +
 +  * pour afficher des informations sur les partitions (pas forcément montées)
 +<code bash>
 +lsblk -o name,mountpoint,label,size,uuid
 +NAME   MOUNTPOINT LABEL   SIZE UUID
 +sda                     278,9G 
 +├─sda1 /boot                1G 809a7481-b9c1-4c66-b281-e0bb181f8122
 +├─sda2 /                 39,1G 07a81e54-5d64-455f-abc1-2bee4efca61d
 +├─sda3 /usr/local        68,4G 24114522-c9ef-4d58-b095-c22954c2cc35
 +├─sda4                      1K 
 +├─sda5 [SWAP]            50,8G 7072ac54-57f6-4a3d-8cb6-a48860f42976
 +├─sda6 /var              11,7G ff92be9a-2855-4750-b8e9-f4b7519dbdbb
 +└─sda7 /tmp               9,8G 9cdb2958-9c5c-4887-8918-e5bf963fe275
 +sdc                      27,3T 
 +├─sdc1 /d5                5,5T ea56582d-bf21-44a7-98d5-a6c5552a899c
 +└─sdc2 /c2               21,9T c574b2b1-7866-40c0-8cad-947995f2d8f5
 +sdb                      27,3T 
 +├─sdb1 /d1                5,5T 5a5e8fb8-731e-4a1a-8ad4-b93f2d5ce537
 +├─sdb2 /d2                5,5T 49fec063-efc0-483c-92c4-1cdd84033660
 +├─sdb3 /d3                5,5T 08c1c937-20ca-4243-b332-e5f092c14975
 +├─sdb4 /d4                5,5T 790ccead-b4b2-43d6-8c3c-80396fa8d6d4
 +└─sdb5 /c1                5,5T 68d3b8ec-20e5-4b0d-984a-2de5b0132acb
 +</code>
 +
 +Liens :
 +    * http://sluce.developpez.com/bonding/
 +    * http://www.karlesnine.com/spip.php?article99
  
 ====== Liens ====== ====== Liens ======
Line 42: Line 741:
 Divers autres sites, articles, blogs : Divers autres sites, articles, blogs :
   * [[http://www.meusburger.net/matthias/Debian/|Trucs & astuces Debian]]   * [[http://www.meusburger.net/matthias/Debian/|Trucs & astuces Debian]]
 +  * [[http://www.cert.org/|CERT]] 
 +  * [[http://www.cri.uhp-nancy.fr/secinfo/index.php?id_rub=7|CERT Renater]] 
 +  * [[http://66.249.93.104/search?q=cache:UdyEIw6JdBoJ:etudiant.univ-mlv.fr/~mabdenne/rapports/DESS/rapport-DESS-securite.pdf+proftpd+followsymlinks&hl=fr&gl=fr&ct=clnk&cd=2&lr=lang_fr|Recueil d'infos Linux]]
informatique/linux/start.txt · Last modified: 2018/10/24 21:24 by pteu