Le FAMP est peu convivial du fait q'il ne possède pas d'interface graphique. L'avantage en utilisant que la ligne de commande est que tout peut se faire à distance. Pour passser des commandes à distance nous utiliserons le openssh des ports BSD, qui est a priori plus sécurisé que ses homologues telnet, rlogin, rsh, ...
Par défaut ssh n'est pas accessible directement par le super utilisateur root, et il vaut mieux ne pas toucher à cette option. Nous allons donc créer un utilisateur qui nous permettra de nous logger à distance sur la machine. Cet utilisateur devra tout de même nous permettre de passer des commandes de root afin de modifier la configuration, il doit appartenir au groupe des super utilisateurs wheel
Ajouter un utilisateur sudoer
Loggez vous en root sur votre FAMP.
La commande adduser peut se paramtrer via /etc/adduser.conf (documentation francaise ici). Par défaut la commande pose les questions suivantes:
$ adduser
Username: NomDUtilisateur
Full name: le nom du nouvel utilisateur
Uid (Leave empty for default):
Login group [NomDUtilisateur]:
Login group is NomDUtilisateur. Invite NomDUtilisateur into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/NomDUtilisateur]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : NomDUtilisateur
Password : *****
Full Name : le nom du nouvel utilisateur
Uid : 1005
Class :
Groups : NomDUtilisateur
Home : /home/NomDUtilisateur
Shell : /bin/sh
Locked : no
OK? (yes/no):
Connnexion via ssh au famp
Il est supposé que vous savez vous servir d'un éditeur en ligne de commande. vi est un bon outil, il a l'avantage d'être universel dans le monde UNIX, et de foncftionner entièrement en ligne de commande. Maintenant éteignez l'écran du serveur qui consomme de l'énergie inutilement (euh si vous aviez un écran jusque là quoi ...) et ouvrez votre client ssh ( PuTTy sous windows ) sur votre poste de travail, logger vous avec l'utilisateur nouvellement créé et tapez su, entrez le password de root : vous êtes loggez en root via ssh sur votre famp
Toute les manipulations système qui suivent, peuvent être réalisées à partir d'un client ssh.
Installation de openSSH via les ports
$ portinstall openssh
Une fois installer il est nécessaire de s'assurer que l'openssh soit bien celui utilisé par le système pour se faire, si votre serveur est distant il serait bien d'actvié un rlogin ou un telnet, afin de ne pas perdre la main au moment du changement de démon.
Pour se faire on active telnet dans /etc/inted.conf il faut décommenter la ligne suivante
telnet stream tcp nowait root /usr/libexec/telnetd telnetd
d'autoriser le service inetd dans /etc/rc.conf en ajoutant la ligne$ inetd_enable="YES"
de lancer le démon inetd$ sudo inetd start
de se connecter en telnet à votre serveur. De modifier le démon sshd lancé par défaut dans le rc.conf
sshd_program=/usr/local/sbin/sshd
Eventuellement de faire en sorte que le fichier de conf utilisé par se nouveau démon soit celui de l'ancien en ajoutant dans le rc.conf
sshd_flags="-f /etc/ssh/sshd_config"
le mien est assez simple, il interdit le login de root et lance le serveur sftp pour des transferts cryptés
PermitRootLogin no
# override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server
Forcer la relcture du rc.conf avec
$ sudo /etc/netsart
relancer le démon openssh via votre connexion telnet
$ /etc/rc.d/ssh restart
normalement à ce stade là la commande suivante
$ ps -aux | grep sshd
doit afficher la ligne suivante
root 97649 0.0 0.2 2680 2088 ?? Is 4:46PM 0:00.04 /usr/local/sbin/sshd -f /etc/ssh/sshd_config
Et vous pouvez vous connectez en ssh sur votre machine, et en sftp si vous avez utilisez le même sshd_config que moi ...Maintenant il faut prendre un décision sur le devenir de Telnet, qui ne doit pas a priori resté ouvert aux quatre vents. Peronnellement j'ai décidé de le conserver comme entrée de secours, en cas d'un défaillance quelconque de ssh. Pour se faire je n'autorise la connexion telnet qu'à partir d'un de mes autres serveurs ayant l'IP X.X.X.X (à remplacer par une IP réelle bien entendu). Pour se faire dans le fichier /etc/hosts.allow j'ai ajouté les deux règles
# Telnet systeme via inetd solution cas de coup dur sur ssh
telnetd : X.X.X.X : allow
telnetd : ALL : deny
# Start by allowing everything (this prevents the rest of the file
# from working, so remove it when you need protection).
# The rules here work on a "First match wins" basis.
ALL : ALL : allow
il suffit maintenant de relancer inetd via
$ sudo /etc/rc.d/inetd restart
Et vous disposeze alors d'un ssh accessible de n'importe où et d'une entrée de secours accessible d'un et une seule adresse IP.



