Ceci est une ancienne révision du document !
Table des matières
Administration serveur
Quelques procedures d'install
Quelques opérations classiques
Ajouter un utilisateur pour du ftp
- Pure-ftpd
#remplacer <login> par le login souhaité pure-pw useradd <login> -d /path/2/ftp/<login> -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 <login> -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 <login> # 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
<Directory /path/2/dir/> 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 </Directory>
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…)
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
- 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)e2fsck -f /dev/grosdisk/lv1
pour vérifier le filesystemresize2fs /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
.
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 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 # -guess_non_utf8 # --guess_utf8 # --guess_crlf # --guess_indent # -autoswap (pour inverser ^k^b et ^k^k si besoin) # -nobackups (histoire de choix, j'aime pas la quantité de fichiers~ un peu partout, mais certains préfèrent ce "filet") # --autoindent # on passe au .bashrc avec .bash_aliases et .bash_prompt # on configure ses locales (en-GB.utf8 patr 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…