====== Administration serveur ====== ===== Quelques procedures d'install ===== * [[tomcat|tomcat_install]] * [[qmail|postfix]] ===== Quelques opérations classiques ===== ==== Ajouter un utilisateur pour du ftp ==== * Pure-ftpd #remplacer par le login souhaité pure-pw useradd -d /path/2/ftp/ -y 2 -N 1000 -u 1001 -g 1001 # cela va demander le pass # -y 2 => 2 connexions simu max # -N 1000 => 1000 Mo de quota # -u & -g correspondent à uid et guid (pas obligés de figurer dans /etc/passwd) # pour modifier un param, ici mettre le quota à 500Mo pure-pw usermod -N 500 # ATTTENTION, une fois les modifs de users effectuées, il faut lancer pure-pw mkdb # pour que cela devienne effectif ! #lister tous les users et leur home pure-pw list # pour voir toutes les infos d'un user pure-pw show # les autres commandes possibles pure-pw --help ===== Configuration pure-ftpd ===== Ex de conf sous debian sur http://www.littleboboy.net/archives/2004/09/28/exemple-de-configuration-de-pureftpd-sous-debian et une autre bonne doc sur http://www.labo-linux.org/cours/module-2/chapitre-02-pureftpd/ Les fichier de conf sont tous dans ''/etc/pure-ftpd/conf/''. Pour les méthodes d'authentification, il s'agit de liens de ''/etc/pure-ftpd/auth/'' vers certains /etc/pure-ftpd/conf/fichiers. Chaque fichier du rep de conf contient une valeur et a le nom du paramètre. pure-ftpd-wrapper (fournit par debian) lit ces fichiers de conf pour lancer pure-ftpd avec les bons params. ===== Apache ===== ==== Auth by group ==== Pour gérer les accès par groupe, dans la conf du vhost AuthType Basic AuthName "Le libellé de la demande d'authentification" AuthUserFile /path/2/fichier.users.passwd AuthGroupFile /path/2/fichier.groups.users Require group group1 group2 Le fichier /path/2/fichier.users.passwd se remplit avec le classique ''htpasswd /path/2/fichier.users.passwd utilisateur_a_ajouter'', et le fichier /path/2/fichier.groups.users a la syntaxe group1: user1 user2 group2: user1 user3 # etc. ===== ssh ===== Une doc complète sur http://www.fredshack.com/docs/openssh.html ==== Créer un accès par clé ==== * générer une paire de clés privée/publique (ssh-keygen ou puttygen.exe sous windows) au format ssh2 * sur le serveur, copier la clé publique dans le fichier /home_du_user_concerne/.ssh/authorized_keys sur une ligne sous la forme\\ from="IP.de.laquelle.on_veut_se_connecter" ssh-rsa cle_publique_complete adresse_mail@domaine.tld * dans le client ssh, préciser le nom du user et la clé privée à utiliser.\\ * sous linux, ssh-keygen met automatiquement (lors de la génération) la clé privée dans $HOME/.ssh/id_dsa et la clé publique dans $HOME/.ssh/id_dsa.pub (id_rsa si on utilise rsa au lieu de dsa pour crypter). * sous windows, dans putty, créer une session où on précise session/host_name, (cocher ssh), Connection/auto-login username, Connection/SSH/Preferred SSH protocol version => 2, Connection/SSH/Auth/Private key file for authentification ; et enregiostrer cette session. ===== LVM ===== LVM (pour Logical Volume Manager) permet le resize de partition sans les effacer, (permet aussi d'avoir une même partition sur plusieurs disques physiques, de faire des snapshots de partition à chaud, etc...) * lvm howto http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html-1page/LVM-HOWTO.html * http://www.lea-linux.org/documentations/index.php/Leapro-pro_sys-lvm * http://sluce.developpez.com/lvm/#L4.1.1 Pour manipuler les partitions, utiliser parted en GiB et le laisser aligner (en octets on doit tomber sur des multiples de 2MiB, donc commencer la partition 1 à 2097152B, soit 512x4096 B = 2 MiB), pour préciser que la partition n°2 sera en lvm, c'est ''(parted) set 2 lvm on'' ==== creation ==== # creation de la partition (type Linux LVM, 8e) avec fdisk # on scanne vgscan -v # on créé le physical volume pvcreate /dev/sdbX # on créé le volume group vgcreate nomVolumeGroup /dev/sdbX # et enfin notre logical volume lvcreate -L xxxG -n nomVolumeLogique nomVolumeGroup; #ici, xxx Go mais on peut donner la taille en K ou M # et on a dispo notre /dev/nomVolumeGroup/nomVolumeLogique # reste à créer le filesystem mkfs -v -c -j -L monLabel /dev/nomVolumeGroup/nomVolumeLogique ==== infos ==== * pvdisplay : infos sur les physical volumes déclarés * lvdisplay : infos sur les logical volumes déclarés ==== resize ==== === agrandissement === - démontage (ici ''umount /dev/grosdisk/lv1'', utiliser -l si ça veut pas pour cause de "resource busy"). - ''lvextend -L+42G /dev/grosdisk/lv1'' (ajoute 42Go) - ''lvextend -l +300 /dev/grosdisk/lv1'' (ajoute 300 PE, ''vgdisplay'' pour savoir combien il en reste de dispo) - ''e2fsck -f /dev/grosdisk/lv1'' pour vérifier le filesystem - ''resize2fs /dev/grosdisk/lv1'' pour resizer le filesystem (à la taille de la partition si pas de taille précisée) - et on remonte ''mount /dev/grosdisk/lv1''. === réduction === - démontage (ici ''umount /dev/grosdisk/lv1'', utiliser -l si ça veut pas pour cause de "resource busy"). - ''e2fsck -f /dev/grosdisk/lv1'' pour vérifier le filesystem - ''resize2fs /dev/grosdisk/lv1 50G'' pour resizer le filesystem à 50Go - ''lvreduce -L 50G /dev/grosdisk/lv1'' (fixe à 50Go) - et on remonte ''mount /dev/grosdisk/lv1''. ==== Modifications ==== Pour modifier un LV (activer ou pas le mirror par ex), c'est lvconvert. **Attention**, pour avoir un mirror (raid1 sur au moins 2 PV donc), il faut au moins 3 PV (le 3e pour le log), sinon il répond qu'il y a pas assez de place (pour mettre son log, mais vu le message on comprend pas pourquoi il dit ça). exemples # Passer backup en raid1, on a crée 2 partition avec fdisk, un sdb3 de 10Go et un sdb4 du reste pvcreate /dev/sdb3 pvcreate /dev/sdb4 # on les ajoute au vg (vg2 ici) vgextend vg2 /dev/sdb3 vgextend vg2 /dev/sdb4 # et on peut passer notre lv "backup" en mirroir (attention, ça prend qq heures) lvconvert -m1 /dev/vg2/backup # si vraiment on peut pas avoir un 3e PV, on peut s'en sortir avec un log en RAM, mais ça demandera à lvm de le reconstruire à chaque boot), ça donnerait lvconvert -m1 --mirrorlog core /dev/vg2/backup # Pour supprimer le mirroir lvconvert -m0 /dev/vg2/backup # pour passer le log du disque en RAM (pour récupérer un PV par ex) lvconvert --mirrorlog core /dev/vg2/backup # et pour le remettre sur le disque lvconvert --mirrorlog disk /dev/vg2/backup # pour passer de linear en stripped, pour faire du raid0 et doubler les perfs disques (au prix de la sécurité des datas) lvconvert --stripes 2 --stripesize 256 /dev/vg2/video ===== Paquets utiles ===== Pour un serveur en debian etch, une liste de paquets utiles # serveur apache / php5 / mysql5 mysql-server openssl apache2 libapache2-mod-auth-plain php5 php5-cli php5-curl php5-gd php5-imagick php5-mcrypt php5-ming php5-mysql php5-sqlite3 php5-tidy php5-xsl # autres services pure-ftpd nfs-user-server libapache2-svn nfs-user-server # utilitaires de base apt-file iftop joe findutils gcc hdparm htop lftp logrotate lynx make ntpdate perl python rsync screen sudo tethereal unzip whois zip # autres applis utiles munin phpmyadmin rsnapshot subversion # pour rsnapshot perl -MCPAN -e 'install qw(Lchown)' # pour un smtp minimal mailx ssmtp # pour activer le dépot multimedia (pas forcément utile sur un serveur de prod) debian-multimedia-keyring # utilitaires annexes imagemagick libfreetype6 lame # et pour les swftools, il faut aussi (enfin, pas vraiment car il refuse de compiler avec la lbc6 de etch) libfreetype6-dev libungif-bin t1lib-bin libjpeg62-dev libt1-dev libungif4-dev # pour des paquets perso vite faits (attention, pas dans etch, à prendre dans sarge car ceux de sid n'ont pas la bonne libc6) installwatch checkinstall ===== Install basique ===== Sur un nouveau sd, install de base # à la 1re connexion root, on change le passwd et on installe sa clé ssh # màj paquet aptitude update && aptitude upgrade && aptitude dist-upgrade # je commence par mon éditeur favori (remplacer joe par vim ou emacs pour les fans d'autres éditeurs) aptitude install joe # que l'on configure (-option en début de ligne pour l'activer, --option pour désactiver) joe /etc/joe/joerc # cf http://ll.lairdutemps.org/linux/aliases#joe # on passe au .bashrc avec .bash_aliases et .bash_prompt # on configure ses locales (en-GB.utf8 par défaut, en activant quand même fr.utf8 et iso-8859-1 pour en et fr) dpkg-reconfigure locales # on s'occupe de son hostname echo #myhost.domaine.tld# > /etc/hostname # scripts persos : mkdir /home/bin # un script pour envoyer un mail au reboot joe /home/bin/mailAfterBoot.sh chmod +x /home/bin/mailAfterBoot.sh # que l'on ajoute au rc.local joe /etc/rc.local # on peut passer à l'install des paquets "basiques" aptitude install apt-build apt-file iftop joe findutils gcc hdparm htop lftp logrotate lynx make ntpdate perl python rsync screen sudo tshark unzip whois zip Ensuite, reste à installer les services voulus...