Administration sous Fedora Core
Ce fichier rassemble des informations sur l'administration en géréral de Linux (en particulier pour Fedora Core de RedHat).
0. Configuration du réseau |
10. VncServer |
Copyright © by Martial DUPRAZ (2004-2005)
Voici les fichiers à configurer ainsi que les valeurs à insérer afin de configurer le réseau sur une machine linux.
/etc/sysconfig/network-scripts/ifcfg-eth0 |
||
BOOTPROTO=none TYPE=Ethernet DEVICE=eth0 MTU="" NETMASK=255.255.255.0 BROADCAST=192.168.0.255 IPADDR=192.168.0.253 NETWORK=192.168.0.0 ONBOOT=yes |
Activation du DHCP Type de trame Carte réseau concernée Maximum Transfert Unit Masque de sous reseau Adresse de broadcast Adresse IP de la machine Adresse IP du reseau Active au démarrage |
|
/etc/sysconfig/network |
||
NETWORKING=yes GATEWAY=192.168.0.254 HOSTNAME=proxy |
Activation du réseau Passerelle Nom d'hote |
|
/etc/resolv.conf |
||
nameserver 192.168.0.253 nameserver 127.0.0.1 |
Serveur DNS Primaire Serveur DNS Secondaire |
vi est un des éditeurs de textes les plus célèbres, pour le lancer :
vi nom_du_fichier
pour passer en mode insertion i
pour passer en mode commande esc
pour sauver le fichier (en mode commande) :w
pour quitter (en mode commande) :q
supprimer un caractère (en mode commande) x
supprimer une ligne (en mode commande) dd
copier une ligne (en mode commande) yy
coller une ligne (en mode commande) pp
quitter un fichier sans enregistrer :q!
1. tar 2. ls |
3. find 4. rm |
5. ps & kill 6. du |
7. ifconfig 8. user |
9. chmod 10. mount |
11. grep 12. apt |
2.1. tar
tar est la commande utilisée pour effectuer des sauvegardes avec ou sans compression vers des fichiers d'archives ou des périphériques.
tar -Pcvf /dev/st0 /Server (copie le dossier /Server sur le périphérique /dev/st0)
tar -xvf /dev/st0 /Server (extrait le dossier /Server depuis le périphérique /dev/st0)
tar -cf NX.tar fichier1 fichier2 fichier3 (créer une archive NX.tar contenant les fichiers : fichier1 fichier2 fichier3)
Options diponibles pour tar |
|||
-P |
Présèrve le / dans l'archive |
-d |
Compare une archive à des fichiers |
2.2. ls
La commande ls sert à lister les fichiers et dossiers sur un disque.
Options disponibles pour ls |
|||
2.3. find
La commande find sert à retrouver un fichier ou un dossier sur un disque.
Exemples pour find |
find / -name monfichier (recherche dans toute l'arborescence le fichier monfichier) |
2.4. rm
La commande rm sert à supprimer un fichier ou un dossier.
Exemples pour rm |
rm -r /nomdossier (supprime le dossier mondossier et tous ses enfants) |
2.5. ps & kill
La commande ps sert à voir les processus actifs
La commande kill sert à tuer ou à redémarrer un processus.
Exemples pour ps et kill |
ps -ax | more (affiche la listes des processus et marque une pause à chaques écrans |
2.6 du
La commande du sert à afficher la taille d'un dossier.
Exemples pour du |
du (affiche la taille du dossier courant en octets) |
2.7. ifconfig
La commande ifconfig sert à afficher ou modifier les paramètres d'une carte réseau et se situe dans /sbin/.
2.8. useradd, passwd, groupadd, usermod
Ces commandes servent à gérer les utilisateurs d'un système Linux.
Ajout et suppression d'un groupe |
/usr/sbin/groupadd plaine --- /usr/sbin/groupdel plaine |
Ajout et suppression d'un utilisateur |
/usr/sbin/useradd -g plaine -d /home/dh dh --- /usr/sbin/userdel -r dh |
Ajout de son mot de passe |
/usr/sbin/passwd dh |
Intégration de l'utilisateur dans le groupe root |
/usr/sbin/usermod -g root dh |
Liste des utilisateurs : /etc/passwd
Liste des groupes : /etc/group
2.9 chmod
La commande chmod permet de modifier les droits (lecture, écriture, exécution) sur un fichier ou un dossier selon les utilisateurs (utilisateurs, groupes, autres). Il suffit d'additionner les nombres afin d'affecter les droits.
Nous changeons les droits sur le fichier /toto.
User |
Group |
Other |
chmod 700 /toto (l'utilisateur seul à tous les droits sur son fichier) chmod 750 /toto (l'utilisateur à tous les droits et son peut lire et exécuter) chmod 770 /toto (l'utilisateur a tous les droits et son groupe aussi) chmod 775 /toto (l'utilisateur et son groupe ont tous les droits, les autres peuvent lire et executer) chmod 777 /toto (Tout le monde a tout les droits) |
||
Read |
400 |
40 |
4 |
||
Write |
200 |
20 |
2 |
||
Execute |
100 |
10 |
1 |
2.10 mount
La commande mount ser à "monter" un périphérique de stockage dans un dossier afin de pouvoir le lire.
mount /dev/cdrom /mnt/cdrom mount -t vfat /dev/sda1 /mnt/usb |
Monte le lecteur CD dans /mnt/cdrom Monte la clé USB dans /mnt/usb |
2.11 grep
La commande grep sert a rechercher une chaine de caractère dans une entrée donnée.
grep -r tagada /Server rpm -qa | grep -i httpd |
Recherche dans /Server les fichiers contenant tagada Recherche si le rpm httpd est installé |
apt-get update rpm -qa install dovecot |
Met à jour la base de données de téléchargement Télécharger et installe le paquetage dovecot |
Pour arreter, démarrer ou redémarrer un service, les scripts se trouve dans /etc/rc.d/init.d/, il faut alors taper la commande suivante :
/etc/rc.d/init.d/httpd restart (redémarrage du serveur web Apache)
Les possibilités sont : start, stop, restart et status.
Liste des principaux services |
|
Serveur Web Apache |
httpd |
Le serveur Apache est un serveur Web très utilisé sur Internet. Sa configuration se fait dans le fichier httpd.conf.
On peut sécuriser un serveur Apache à l'aide du fichier .htaccess situé dans le répertoire que l'on veut sécuriser et stocker le login et mot de passe dans le fichier .htpasswd situé sur le serveur.
Stucture du fichier httpd.conf |
ServerRoot "/etc/httpd" (définit où le serveur Web est installé) |
Le fichier .htaccess est à placer dans le répertoire que l'on veut sécuriser (ici Private).
Structure du fichier .htaccess |
AuthUserFile /var/www/pass/.htpasswd (définit ou le fichier des login et password est stocké) |
Pour des raisons de sécurité, il ne faut pas placer le fichier .htpasswd dans le site Web.
Création du fichier .htpasswd |
[root@glop root]# htpasswd -c /var/www/pass/.htpasswd toto (-c est utilisé pour créer le fichier) [root@glop root]# htpasswd /var/www/pass/.htpasswd tutu |
5. Serveur Samba
5.1. Mode Standalone
Le serveur Samba est un serveur de fichiers pour les clients Windows. Sa configuration s'effectue dans le fichier smb.conf
Options du fichier smb.conf |
workgroup = Workgroup (Nom du groupe de travail Windows) |
Utilisateurs Samba |
|
smbpasswd -a dh (Ajoute l'utilisateur dh et le pass) smbpasswd -x dh (Supprime l'utilisateur dh) |
smbpasswd -d dh (Désactive l'utilisateur dh) smbpasswd -e dh (Active l'utilisateur dh) |
Connexion à un partage Samba ou Windows |
mount -t smbfs -o username=toto,password=pass //192.168.0.161/Tools /Server/Net (Monte le partage Tools) umount -t smbfs //192.168.0.161/Tools (Démonte le partage précédemment créer) |
5.1. Mode Controleur de domaine
Le serveur Samba peut agir en tant que controleur de domaine sur un réseau afin de gérer les ouvertures de session des postes clients.
Options du fichier smb.conf |
[Global] |
La commande testparm permet de tester le serveur Samba.
La commande
smbclient -L //host -U% permet de tester les connexions au domaine.
Maintenant, ajoutons les machines qui pourront se connecter au domaine.
addgroup pc (on ajoute le groupe de machine PC) adduser nom_client$ -g pc -s /dev/false -d /dev/null (on ajoute au groupe la machine en question) smbpasswd -m -a nom_client$ (on ajoute cette machine au fichier Samba) |
Notons qu'il faut ajouter un $ après le nom de la machine.
Modifications sur les clients Windows |
Windows XP : [HKEY_LOCAL_MACHINE\ SYSTEM\ ControlSet001\ Services\ Netlogon\ Parameters] "requiresignorseal"=dword:00000000 |
Nous alllons mettre en place une stratégie de mot de passe. Nous utiliserons la base SAM "tdbsam" qui est le fichier /etc/samba/passdb.tdb. Nous modifierons le fichier /etc/pam.d/samba afin de gérer les synchronisations entre les mots de passe, puis nous verrons comment ajouter des policies sur les mots de passe avec l'utilitaire pdbedit.
Migration de smbpasswd vers tdbsam |
pdbedit -i smbpasswd -e tdbsam (ceci va créer le fichier passdb.tdb) |
Modification de /etc/pam.d/samba |
Ajouter ces 2 lignes : password required pam_smbpass.so nullok use_authtok try_first_pass session required pam_unix.so |
Gestion des policies |
pdbedit -u md -v (affiche toutes les informations de l'utilisateur md) pdbedit -L (affiche les utilisateurs samba) pdbedit -P "maximum password age" -C 2592000 (les mots de passe seront à changer tous les mois) pdbedit -P " password history" -C 4 (le mot de passe est mémorisé sur 4 changements) Attention, il faut changer le mot de passe de l'utilisateur pour qu'on obtienne le changement de la policy dans l'utilisateur. Les policies disponibles sont : minimum password age, reset count minutes, disconnect time, user must logon to change password, password history, lockout duration, min password length, maximum password age, bad lockout attempt |
Le serveur ProFTP est un serveur ftp qui permet de servir des fichiers depuis n'importe où.
Options du fichier proftpd.conf |
ServerName "Serveur FTP" (Nom du serveur FTP vu par les utilisateurs) |
Le serveur MySQL est un serveur de base de données tout comme SQL Server.
Quelques commandes avec MySQL |
mysql nom_db (passer en ligne de commande MySQL) |
Le serveur BIND est un serveur DNS qui permet de faire de la résolution de nom en local ainsi que de forwarder les requêtes vers l'extérieur du réseau.
Par contre, je n'installe pas le RPM bind-chroot, si vous l'installez, les chemins d'accès à certains fichiers changeront.
Fichier root.hints |
$ dig root-server.net . ns>/var/named/root.hints (Création du fichier root.hints) |
Authentification avec rndc |
$ /usr/sbin/dnssec-keygen -a hmac-md5 -b 128 -n user rndc (génération de la clé cryptée) $ cat Krndc.+157+14529.private (création des fichiers avec la clé cryptée) |
Fichier rndc.conf |
# Remplacer le “secret par la clé générée ci-dessus. |
Fichier named.conf |
options { zone "." {(Ceci est la zone de recherche pour tous les noms de domaines) zone "0.0.127.in-addr.arpa" {(Ceci est la zone de recherche de loopback) zone "habiter.local" {(Ceci est la zone de recherche du réseau local) zone "0.168.192.in-addr.arpa" {(Ceci est la zone de recherche inverse du réseau local) # Les informations du type file font référence aux fichiers de zone à créer dans /var/named/ |
Fichier 127.0.0 |
$TTL 2D |
Fichier 192.168.0 |
$TTL 2D |
Fichier 0.168.192 |
$TTL 2D |
Fichier resolv.conf |
search habiter.local |
Test de la configuration |
/usr/sbin/named-checkconf (Teste le fichier de configuration named.conf) |
Redémarrer le démon Named et tous doit fonctionner (en théorie), sinon bonne chance et surtout bon courage.
Options disponibles pour rpm |
|||
-i |
Installe un nouveau package |
-q |
Fais une requête sur un RPM, installé ou non |
Installation d'un packetage |
rpm -ivh /Server/Tools/clamav0.83-2.rpm |
Recherche d'un paquetage installé |
rpm -qa | grep -i sql (le -i permet d'outrepasser le respect de la casse en cas de majuscule sur le nom du rpm sql) |
Suppression d'un paquetage |
rpm -ev clamav0.82-2.rpm |
/root/.vnc/xstartup |
unset SESSION_MANAGER |
Lancement et configuration |
vncserver (Lancement du serveur VNC) |
Suppression de la partition |
/sbin/fdisk /dev/hdd |
Création de la partition |
/sbin/fdisk /dev/hdd Tapez n et suivez les instructions |
Création du système du fichier |
/sbin/mkfs.ext3 /dev/hdd1 |
Le service crontab va servir à lancer des scripts automatiquement. Pour ouvrir ce service, tapez crontab -e.
Il va falloir saisir le fichier de cette manière : minute heure jour mois semaine commande
Exemples de planification de tâches |
|
00 23 * * * /Server/Scripts/./Sauve.sh | Sauvegarde tout les jours à 23 H |
0,15,30,45 * * * * /Server/Scripts/.fetchmail.sh | Vérification des mails tous les quarts d'heure |
0 1 1 * * /Server/Scripts/./script.sh | Exécution 1er jour de chaque mois |
0 1 * * mon /Server/Scripts/./script.sh | Exécution tous les lundis |
0 1 1,15 * * /Server/Scripts/./script.sh | Exécution le 1er et le 15 de chaque mois |
0 1 1-15 * * /Server/Scripts/./script.sh | Exécution tous les jours entre le 1er et le 15 |
1 */5 * * /Server/Scripts/./script.sh | Exécution tous les 5 jours (1, 6, 11...) |
Le server NX est l'équivalent du serveur Citrix sous Microsoft. La partie serveur s'installe sur la machine Linux qui doit être gérée à distance et s'appuie sur SSH. La partie cliente s'installera sur Windows.
Partie Serveur |
rpm -ivh compat-libstdc++-8-3.3.4.2.i386.rpm (dépendance requise) rpm -Uvh nx-1.4.0-0.fdr.4.i386.rpm rpm -Uvh freenx-0.3.1-0.fdr.0.noarch.rpm scp /var/lib/nxserver/home/.ssh/client.id_dsa.key md@192.168.5.15 (user@adresseIP) vi /var/lib/nxserver/home/.ssh/client.id_dsa.key (contient la clé du serveur, copier la) |
Partie Cliente |
Installer le logiciel NX-Client |
Le programme Clam-AV est un antivirus très performant.
clamd.conf |
LogFile /var/log/clamav/clamd.log (Définit le fichier de log) TCPSocket 3310 (Définit le port d'écoute du demon) TCPAddr 127.0.0.1 (Définit l'adresse d'écoute du démon) |
Utilisation |
freshclam -l /Server/Rapports/RAP-AV-MAJ.txt (Met à jour l'antivirus et écris le rapport) clamscan -r / -l /Server/Rapports/RAP-AV.txt (Scanne tout le système et écris le rapport) clamscan -r / --move /Server/Virus (Scanne tout le système et déplace les fichiers vérolés) |
Le programme Squid est un serveur proxy. Les clients auront à spécifier le proxy dans leurs navigateurs.
squid.conf |
visible_hostname proxy (Définit le nom d'hote du serveur Squid) |
15.2. Mode transparent
Il peut être judicieux de paramétrer le proxy en mode transparent afin que les utilisateurs n'aient pas le choix pour acceder à Internet et que l'on ne soit pas obligé de paramétrer chaque PC du parc.
Tout d'abord, il faut rajouter ces lignes dans le fichier de configuration de Squid.
squid.conf |
httpd_accel_host proxy |
Il faut activer le routage afin que le proxy soit la passerelle par défaut du réseau.
sysctl.conf |
net.ipv4.ip_forward=1 (Activation du routage sur le serveur) |
Modifications du système |
|
# iptables -t nat -F |
Nettoyage des tables nat si besoin |
Il faut maintenant redémarrer les services réseaux et squid et mettre en passerelle sur le client l'adresse IP du serveur Squid.
15.3. Visualisation des accès
Après avoir installer Squid avec succès, nous pouvons installer sarg qui va nous permettre d'analyser les logs de Squid afin de savoir qui fait quoi sur internet.
Je pars du principe qu'un serveur Apache est fonctionnel et que son répertoire est /Server/Web.
sarg.conf |
access_log /var/log/squid/access.log (Définit le fichier de log utilisé par Squid) output_dir /Server/Web (Definit le répertoire de sortie pour les pages web) resolve_ip yes (Affiche les noms des PC plutot que les adresses IP) |
Procédons à la création des pages web.
sarg -l /Server/Squid/Access.log (Génère les pages web de squid dans le dossier prédéfinit) rm -f /Server/Web/200* (Supprime les pages web afin d'en recréer plus tard) /usr/sbin/squid -f /etc/squid/squid.conf -z (Vide le cache de Squid, il faut d'abord arrêter le service Squid) |
Le programme Hylafax est un serveur de fax sur lequel les clients envoient des fax qui seront émis vers l'exterieur.
Il faut d'abord installer les paquetages tiff, ghostscript et hylafax.
Test du modem |
|
echo "ATZ" > /dev/ttyS0 |
Envoi un signal au modem, si le modem clignote ou bip, c'est qu'il est reconnu et qu 'il fonctionne |
Installation du modem dans Hylafax |
|
/usr/sbin/faxaddmodem |
Lancement du script d'ajout de modem |
/etc/hylafax/etc/hosts.hfaxd |
localhost |
Il faut maintenant redémarrer hylafax ainsi que faxgetty. Pour cela, j'ai fais un script.
/Server/Scripts/Hylafax.sh |
/etc.rc.d/init.d/hylafax restart |
Passons donc à la phase de test.
Test d'envoi de fax |
|
sendax -n -d 0,0412345678 /Toto.pdf faxstat -s faxrm 23 |
Envoi le fichier Toto.pdf vers le numéro spécifié. Permet de voir l'état de Hylafax Supprime le job 23 (envoi de fax) |
Pour utiliser hylafax avec des clients Windows, je vous conseille
WHFC.
Un chapitre concernant la gestion de fichier.
Suppression des fichiers selon une extension
|
find /home -name *.tmp -exec rm -iv {} \; |
Recherche de fichier selon une date de modification
|
find / -mtime +30 -atime +30 -print |
Recherche de fichier supérieur à 2
Mo
|
|
find / -type f -size +2000 -print |
Le serveur RSync sert à synchroniser des dossiers situés
sur des postes distants avec lui même.
Il faut faire tourner le démon rsyncd, il s'appuie sur xinetd dans Fedora
Core. Pour cela , éditez le fichier /etc/xinetd.d/rsync et modifiez le
suivant cet exemple puis redémarrez le démon xinetd :
/etc/xinetd.d/rsync
|
service rsync |
16.1. Initiative par le client
Nous allons configurer le serveur rsync afin que le client Microsoft puisse
se synchroniser avec le serveur. Editez ou créez le fichier /etc/rsyncd.conf
/etc/rsyncd.conf
|
|
hosts allow = * |
Pour le client, on configure un poste Windows avec le logiciel
cwRSync. On crée un script dans C:\Program Files\cwRsync\bin qui s'appele
Synchro.cmd.
Synchro.cmd
|
|
@echo off |
Ce script copie le dossier Perso dans le module Web du serveur
RSync.
16.2. Initiative par le serveur
Nous allons configurer le serveur rsync afin que le client Microsoft agisse
comme serveur, c'est donc le système RedHat qui agira comme client. Nous
installons sur le PC Microsoft, le logiciel cwRSyncServer.
Attention : Sur Windows XP, le pare feu doit être désactivé.
rsyncd.conf
|
|
hosts allow = * |