Différences entre les versions de « Trucs & Astuces Linux »

De BlaxWiki
Aller à la navigationAller à la recherche
Ligne 6 : Ligne 6 :
Il peut arriver que l'on pingue internet (resolution dns & gw ok) mais pas d'accès internet via IE ou lynx. Cela est souvent du à un problème de négociation sur le switch ou sur l'eth  
Il peut arriver que l'on pingue internet (resolution dns & gw ok) mais pas d'accès internet via IE ou lynx. Cela est souvent du à un problème de négociation sur le switch ou sur l'eth  
qui est en half duplex
qui est en half duplex
</pre>
===== DNS =====
<pre>
Lorsque l'on modifie le resolv.conf, il faut restarter les différents services qui l utilisent (sendmail, etc..) car ceux ci ne le lise qu un fois lorsqu ils démarrent et apres le garde en cache
</pre>
</pre>



Version du 24 novembre 2016 à 14:15

Cette page regroupe quelques trucs & astuces sur des problèmes divers rencontrés

Accès internet
Il peut arriver que l'on pingue internet (resolution dns & gw ok) mais pas d'accès internet via IE ou lynx. Cela est souvent du à un problème de négociation sur le switch ou sur l'eth 
qui est en half duplex
DNS
Lorsque l'on modifie le resolv.conf, il faut restarter les différents services qui l utilisent (sendmail, etc..) car ceux ci ne le lise qu un fois lorsqu ils démarrent et apres le garde en cache
ELF & no such file or directory
Il peut arriver qu un programme ne se lance pas et marque "no such file or directory" alors que le fichier mentionné est bien
présent. Cela arrive lorsque l OS est en 64 bits et que le soft est en 32 bits, et que le package ia32-libs sous debian (ou glibc.i686 suivant les OS) n'est pas installé.
Enregistrement de session
Si l'on veut logguer les commandes qui sont faites dans les sessions des users, ajouter dans /etc/profile :
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$(whoami) [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'

On peut mettre ca dans une autre local bien sur, puis rajouter dans le rsyslog.conf : local6.*                /var/log/session.log.
Cela va nous donner des choses comme :
Jul  8 12:48:55 serveur benj: benj [351]: Jul/06 -- 21:23:03 su [0]
Jul  8 12:48:56 serveur benj: benj [351]: Jul/08 -- 12:48:56 ls [0]
Jul  8 12:48:57 serveur benj: benj [351]: Jul/08 -- 12:48:57 dir [0]
Jul  8 12:48:59 serveur benj: root [32543]: Jul/08 -- 12:48:49 tail -f /var/log/ben.log  [130]
Jul  8 12:50:25 serveur benj: root [32543]: Jul/08 -- 12:50:02 vim /etc/rsyslog.conf [0]

Cela ne loggue pas ce qui est fait en ssh sans shell, pour ca il faut utiliser snoopy master qui loggue tout
Grub
On peut avoir des problèmes avec grub lors d'un grub install, voir https://wiki.blaxeen.com/index.php/Creation_de_VM_linux#Installation_de_grub pour la solution
History & date
Pour avoir la date et l'heure des commandes passées dans l'history, il faut rajouter dans /etc/profile ou .bashrc : export 
Debian : export HISTTIMEFORMAT='%F %T '
Centos : export HISTTIMEFORMAT="%h/%d -- %H:%M:%S "
Interface bridge en boucle
Il peut arriver que lorsqu'on fait une mauvaise conf d'interfaces eth & bridge, et que dans /var/log/message on ait ce message en boucle, et qu en faisant un brctl show, le brige
apparaisse et disparaisse. Il faut déplacer les 2 fichiers de conf des interfaces back275 et eth1.275 ailleurs que dans /etc/sysconfig/network-scripts/ (les renommer ne sert à rien).
Puis faire des ifconfig back275 down, ifconfig eth1.275 down (voir des brct delbr back275), et le problème devrait se résoudre

Mar 21 16:37:27 kvm1 kernel: back275: port 1(eth1.275) entering disabled state
Mar 21 16:37:27 kvm1 kernel: device eth1.275 entered promiscuous mode
Mar 21 16:37:27 kvm1 kernel: back275: port 1(eth1.275) entering disabled state
Mar 21 16:37:27 kvm1 kernel: device eth1.275 entered promiscuous mode
Interface ethX
Si on a des pb d interrfaces (eth2 au lieu de eth0) , et cela est valable aussi lorsqu on fait des images d OS en tar.GZ, il faut supprimer ce qu il y a dans le fichier /etc/udev
/rules.d/70-persistent-net.rules (ou similaire suivant les OS), mais le fichier doit exister
Log martians & route & syslog
Dans certaines circonstances il peut être intéressant d'activer les logs martians pour la résolution de problème, par exemple des problèmes de routes manquantes.
Le cas est arrivé sur un serveur syslog qui recevait des logs d'un switch. Le tcpdump voyait bien les paquets arriver sur l'eth0 du serveur, syslog écoutait bien sur eth0, mais rien
ne logguait, et un strace sur le pid de syslog ne voyait pas l'ip du switch. 
En fait, le paquet arrivait sur eth0, mais la route pour joindre le switch passe par eth1 (alors que les paquets arrivent sur eth0), on a donc une route assymétrique, et meme si le 
paquet ne repart pas hors du serveur, il lui faut quand meme une chemin de routage cohérent. Il a fallu ajouter une route pour l'ip du switch en lui demandant de passer par eth0,
et là le serveur syslog a bien réussi à récuperer les logs du switch.
L'activation des logs martians a permis de mettre en évidence cela
Loggin en root en boucle
Il peut arriver que lorsqu'on veuille se logguer en root, il demande bien le login et le mdp, mais il le redemande en boucle (sans mettre de message Acces denied ou invalid password).
Dans le cas que j'ai rencontré, cela arrive lorsque le selinux (ou autre systeme de sécurité) est activé. Il faut alors le désactiver ou le modifier pour pouvoir se logguer (reboot en 
mode pxe ou livecd obligé). IL faut aussi vérifier que dans /etc/securetty on ait bien les différentes tty (ou Stty pour la console)
No route to host
Il peut arriver que depuis un serveur l'on arrive bien à pinguer une ip Y, mais lorsque l'on veut faire un ssh, wget ou autre on a le message : " No route to host", alors que la route
existe bien. Cela signigie en général qu'il y a un firewall entre les 2 qui filtre ce service
Partitionnement d'un disque & /dev/sdaX
Lorsque l'on créé des partitions sur un disque, au moment du formatage avec mkfs.ext3 il se peut que le /dev/sdaX n'ait pas toutes les partitions (qu'il ait juste sda1 et sda2 et pas
sda3,4...), il faut alors rebooter. Avec des kernels récents on peut utiliser partprobe (partprobe /dev/sdb ; echo $?) ou partx -a /dev/sda pour mettre à jour la table des partitions
 dans /dev. Si le /dev/sdX n'existe pas il n y a pas d autres moyen que de rebooter
Problème mot de passe & entropie
Les programmes tel que mkpasswd ou passwd (entre autres) se servent de /dev/random ou /dev/urandom pour générer des chiffres & lettres aléatoires. Si ces mots de passe comportent  
toujours les mêmes lettres, il y a de fortes chances que /dev/random ou /dev/urandom ne soient pas bon.
Prompt bash
Souvent le prompt par défaut  n'utilise pas le fqdn du serveur, ce qui peut etre embetant. Sous Debian, pour corriger cela, dans le /etc/bashrc et /root/.bashrc (ou /etc/bash.bashrc 
suivant les distrib), modifier la ligne avec PS1 pour remplacer le "h:" par "H:".
Bien renseigner le fqdn dans /etc/hostname, et faire /etc/init.d/hostname.sh start pour le prendre en compte.
Sous debian, décommenter aussi les lignes suivantes dans le /etc/bash.bashrc (voir changer aussi le /root/.bashrc et mettre dans le /etc/hosts le fqdn en premier sur la ligne du 
127.0.0.1)

case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
    ;;
*)
    ;;
esac 
Warning: `xxxx' uses 32-bit capabilities (legacy support in use)
On peut avoir ce warning au restart de certain soft (proftp, bind...), il faut dans ce cas là installer libcal-devel. La recompilation peut etre nécessaire pour ne plus avoir ce 
message.
Yum et curl
Yum se sert de pycurl (donc de curl) pour fonctionner. Si curl est compilé avec une version d'openssl différente de celle sur le system ou compilé sans openssl, voilà le message 
d'erreur que l'on a :
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
   /usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback