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):

 

 

Pour pouvoir utilser la commande il faut faire partie du groupe. La commande permet d'ouvrir une session dans la session avec les permissions de . Pour revenir aux permissions de base de l'utilisateur qui a fait un , il suffit de tapez (pour fermer la session de ).Une solution plus élégante que le su est la commande sudo.

 

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

juste avant la règle

# 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

qui a pour effet d'annuler toutes les règles qui la succèdent ...
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.