85% authorisation
This commit is contained in:
138
tp5.md
138
tp5.md
@@ -1,3 +1,139 @@
|
||||
# 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