85% authorisation
This commit is contained in:
@@ -1,3 +1,139 @@
|
|||||||
# Travail pratique 5
|
# Travail pratique 5
|
||||||
|
|
||||||
## Objectif
|
## Objectif
|
||||||
|
|
||||||
|
Le but de ce tp est de sécuriser notre système embarqué en ajoutant utilisateurs politique de confidentialité etc...
|
||||||
|
|
||||||
|
On va aussi utiliser mdev pour gèrer les peripheriques
|
||||||
|
|
||||||
|
Faire des modifs noyeau.
|
||||||
|
|
||||||
|
## 1. Sécurisation du système et authentification
|
||||||
|
|
||||||
|
dans /etc/ `touch passwd` et `touch group`
|
||||||
|
|
||||||
|
Voici l'exemple du cours du contenu du fichier passwd :
|
||||||
|
|
||||||
|
`username : password : UID : GID : d e s c r i p t i o n : home_dir : shell`
|
||||||
|
|
||||||
|
Dans notre cas on va mettre :
|
||||||
|
|
||||||
|
`root::0:0:root user,,,:/root:/bin/sh`
|
||||||
|
|
||||||
|
On a un utilisateur root sans mot de passe avec une description "root user" qui a comme dossier par défaut le repertoire root et le shell localisé dans /bin/sh
|
||||||
|
|
||||||
|
Avec ca on va créer un repertoire /root et /home
|
||||||
|
|
||||||
|
`mkdir root` et `mkdir home`
|
||||||
|
|
||||||
|
Maintenant voici une ligne exemple pour le fichier group :
|
||||||
|
|
||||||
|
`groupname:x:GID:username1,username2 ,...`
|
||||||
|
|
||||||
|
Dans notre cas
|
||||||
|
|
||||||
|
`root:x:0:`
|
||||||
|
|
||||||
|
Maintenant que on a mis les valeurs basiques à la main on peut utiliser des commandes de busybox pour modifier et peupler ces fichiers automatiquement.
|
||||||
|
|
||||||
|
On peut utiliser la commande passwd pour changer le mot de passe root. Il faut trouver un mot de passe assez long sinon on se fait engeuler. J'ai choisi "Super2024"
|
||||||
|
|
||||||
|
Et si on verifier dans le fichier passwd on peut voir que ca a bien été changé.
|
||||||
|
|
||||||
|
`root:dDs2HI7zOXCjg:0:0:root user,,,:/root:/bin/sh`
|
||||||
|
|
||||||
|
Pour ajouter un utilisateur on peut utiliser adduser
|
||||||
|
|
||||||
|
`adduser -h /home/moi -s /bin/sh moi`
|
||||||
|
|
||||||
|
Dans ce cas on créée un utilisateur "moi" avec un home directory au même nom et le même shell que tout le monde.
|
||||||
|
|
||||||
|
J'ai donné un mot de passe classique également et maintenant le fichier passwd ressemble à ca :
|
||||||
|
|
||||||
|
```
|
||||||
|
root:dDs2HI7zOXCjg:0:0:root user,,,:/root:/bin/sh
|
||||||
|
moi:h/F/aO4UQZcSc:1000:1000:Linux User,,,:/home/moi:/bin/sh
|
||||||
|
```
|
||||||
|
|
||||||
|
on ajoute le group "addgroup nogroup"
|
||||||
|
|
||||||
|
`adduser -D -H -G nogroup -s /bin/false www`
|
||||||
|
|
||||||
|
Permet de crééer un user www avec la config par défaut mais -H empêche la création du home directory -s /bin/false empêche le user de se logger
|
||||||
|
|
||||||
|
Si on cat le repertoire group
|
||||||
|
|
||||||
|
```
|
||||||
|
moi:x:1000:
|
||||||
|
nogroup:x:1001:www
|
||||||
|
```
|
||||||
|
|
||||||
|
On peut aller modifier ensuite le fichier user pour set manuellement le repertoire www comme default home pour le user www
|
||||||
|
|
||||||
|
On a maintenant ce fichier passwd :
|
||||||
|
|
||||||
|
```
|
||||||
|
~ # cat /etc/passwd
|
||||||
|
root:dDs2HI7zOXCjg:0:0:root user,,,:/root:/bin/sh
|
||||||
|
moi:h/F/aO4UQZcSc:1000:1000:Linux User,,,:/home/moi:/bin/sh
|
||||||
|
www:x:1001:1001:Linux User,,,:/var/www:/bin/false
|
||||||
|
```
|
||||||
|
|
||||||
|
Maintenant on veut activer l'authentification au démarrage alors on ajoute cette ligne au init (trouvée dans le cours)
|
||||||
|
|
||||||
|
`::respawn:/sbin/getty 115200 ttyS0`
|
||||||
|
|
||||||
|
à la place de
|
||||||
|
|
||||||
|
`::respawn:-/bin/sh`
|
||||||
|
|
||||||
|
On peut désormais essayer de reboot notre linux pour voir si ces changements sont effectifs.
|
||||||
|
|
||||||
|
On a ce prompt :
|
||||||
|
|
||||||
|
```
|
||||||
|
192.168.144.100 login: root
|
||||||
|
Password:
|
||||||
|
login[46]: root login on 'ttyS0'
|
||||||
|
```
|
||||||
|
|
||||||
|
et ensuite on est bien connecté en root
|
||||||
|
On peut faire la même chose en essayant de se connecter en www
|
||||||
|
|
||||||
|
```
|
||||||
|
192.168.144.100 login: www
|
||||||
|
Password:
|
||||||
|
Login incorrect
|
||||||
|
login[45]: invalid password for 'www' on 'ttyS0'
|
||||||
|
```
|
||||||
|
|
||||||
|
On ne peut bien pas se connecter en tant que www
|
||||||
|
|
||||||
|
Maintenant on peut faire en sorte que httpd soit executé par uniquement ce user. On peut aller dans /etc/init.d et edit notre Script StartHttp en remplacant la ligne
|
||||||
|
|
||||||
|
`httpd -h /var/www`
|
||||||
|
|
||||||
|
par la ligne
|
||||||
|
|
||||||
|
`httpd -h /var/www -u www`
|
||||||
|
|
||||||
|
Pour que le service se lance au nom de www et que au cas ou le service soit compromis il ne puisse rien faire d'autre
|
||||||
|
|
||||||
|
Avant de mettre la ligne dans le script on peut tester en faisant un `killall httpd` voir que le site n'est plus up et ensuite on peut lancer la commande et voir si le site fonctionne à nouveau.
|
||||||
|
|
||||||
|
`chown www:nogroup /var/www`
|
||||||
|
|
||||||
|
Avec cette commande, le repertoire /www appartient à l'utilisateur www
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user