ssh zamok puis une fois loggué
zamok% passwd
L'accès à une machine personnelle doit être plus difficile que l'accès à Zamok.
Sous Windows ou Mac OS 8.x peu d'espoirs... Sinon lisez la suite.
man 7 security par exempleTypiquement on modifie le fichier /etc/inetd.conf
# Internet server configuration database ftp stream tcp nowait root /usr/local/libexec/tcpd ftpd -l #telnet stream tcp nowait root /usr/libexec/telnetd telnetd #shell stream tcp nowait root /usr/libexec/rshd rshd #login stream tcp nowait root /usr/libexec/rlogind rlogind finger stream tcp nowait nobody /usr/local/libexec/tcpd fingerd -s #exec stream tcp nowait root /usr/libexec/rexecd rexecd #uucpd stream tcp nowait root /usr/libexec/uucpd uucpd #nntp stream tcp nowait usenet /usr/libexec/nntpd nntpd # run comsat as root to be able to print partial mailbox contents w/ biff, # or use the safer tty:tty to just print that new mail has been received. comsat dgram udp wait tty:tty /usr/libexec/comsat comsat ntalk dgram udp wait tty:tty /usr/libexec/ntalkd ntalkd #tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot #bootps dgram udp wait root /usr/libexec/bootpd bootpd # # "Small servers" -- used to be standard on, but we're more conservative # about things due to Internet security concerns. Only turn on what you # need. # #daytime stream tcp nowait root internal #daytime dgram udp wait root internal #time stream tcp nowait root internal #time dgram udp wait root internal #echo stream tcp nowait root internal #echo dgram udp wait root internal #discard stream tcp nowait root internal #discard dgram udp wait root internal #chargen stream tcp nowait root internal #chargen dgram udp wait root internal #
Votre inetd.conf devrait à peu près avoir cette tête là (à Samba près). Telnet ne tourne pas car on utilise ssh (idem pour rsh, rlogin). Finger tourne en mode "secure" au minimum. Tout service non nécessaire doit être commenté (inutile de faire tourner un serveur POP3 ailleurs que sur zamok...).
Éliminer le plus possible les exécutables set-uid root. Par exemple sendmail peut avantageusement être remplacé par postfix.
L'installation est propre à l'OS, je ne détaille pas. En gros il y a trois solutions : tcpd est installé par défaut ou bien on installe les binaires, puis on modifie inetd.conf pour appeler tcpd à la place des autres services, ou alors tcpd est intégré à inetd et il faut choisir la bonne options (man inetd, man tcpd).
Une fois l'installation effectuée, il faut mettre en place le filtrage dans /etc/hosts.allow :
# Fichier /etc/hosts.allow de la machine daemon.crans.org (imaginaire) # L'évaluation s'arrête dès qu'elle a trouvé une règle qui s'applique # Pour ne faire aucun filtrage : #ALL : ALL : allow # J'autorise tout ce qui vient de ma propre machine ALL : localhost : allow ALL : daemon.crans.org : allow # Les machines en qui j'ai "a priori" confiance : l'ENS! ALL : .ens-cachan.fr : allow # Pour filter un service # serviced = nom du demon associé # # serviced : .crackers.com : deny # refuse la connection # serviced : .hackers.org : allow # autorise # serviced : ALL : allow # tout ce qui reste # On traite finger de façon singulière. fingerd : ALL \ : spawn (echo Finger. | \ /usr/bin/mail -s "tcpd\: %u@%h[%a] fingered me!" root) & \ : deny # Le reste... ALL : ALL \ : severity auth.info : spawn (/usr/bin/finger -l @%h | \ /usr/bin/mail -s "tcpd\: %u@%h[%a] tried to use %d (denied)" root) & \ : twist /bin/echo "You are not welcome to use %d from %h."
Ce qui se passe : tous les services sont autorisés aux machines de l'ENS, sinon tout accès depuis une machine extérieure est interdit, loggué et mailé à l'administrateur.
Un bon administrateur se doit de lire régulièrement ses logs : /var/log/messages, /var/log/userlog (ajout d'utilisateurs/groupes), /var/log/setuid.* (les fichiers setuid depuis la dernière vérification, typiquement tous les jours), /var/log/secure...
Pour cela on utilise GnuPG ou PGP. GnuPG est plus politiquement correct, c'est donc ce que je vais utiliser.
Il faut d'abord se créer une clef, et récupérer celles des correspondants
à qui on veut écrire. man gpg est suffisant pour la création
de paires de clefs ou importer une clef par un fichier (obtenu très
souvent par copier/coller d'une page ou elle est stockée...). Mais
pour récupérer la clef pgp publique de quelqu'un par le net
a partir de son "KeyId" seulement, lire le man prend du temps et donne une
solution qui risque de bloquer certains. Voilà ce qu'il faut faire:
gpg --keyserver
wwwkeys.nl.pgp.net --recv-keys 0xA879BEF8 (la page man est
encore une fois imprécise: il faut savoir que sans le préfixe hexa classique
"0x", gpg peut ne pas reconnaître qu'il s'agit d'une KeyId ..) Je suppose que l'étape précédente a été correctement effectuée. Lancer pine, taper S (pour Setup), puis C (pour Config).
on veut d'abord des filtres à l'envoi : trouver la ligne sending-filters, puis taper C (pour ChangeVal). Le premier filtre va signer le courrier que l'on envoie, le deuxième va crypter pour l'expéditeur.
/usr/local/bin/gpg --clearsign , /usr/local/bin/gpg -a -e -r _RECIPIENTS_
(Attention l'emplacement de gpg peut varier.) Le deuxième filtre implique que l'on a la clef publique du destinataire.
On va filtrer à l'arrivée. Trouver la ligne display-filters puis éditer en rajoutant :
"-----BEGIN PGP" /usr/local/bin/gpg -d
Lors de la lecture d'un courrier crypté, pine lancera automatiquement gpg pour décrypter le message (non sans avoir demandé le password).
top |
dernière modif le 06.08.01 par K. |
![]() |
|||
| |
|
![]() |
|
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
| |
|||
![]() |
|||