BI posey

Oxydeon

Membre junior
13 Janvier 2009
96
2
Bloc de code:
[SIZE=1]# Seance 01 : connexions cryptées (ssh)


Description du protocole ssh
----------------------------
SSH est un protocole de communication sécurisé, 
il est très utilisé parce que il a l'avantage de crypter ses paquets et demander une authentification.
SSH échange des clés de chiffrement en début de chaque connexion,
une vérification par mot de passe est aussi effectuée.
C'est comme ça que l'intégrité des paquets est sure entre les deux hotes qui communiquent.
Ce système est beaucoup plus sur que d'autres procoles mais reste toujours vulnérable, 
par exemple dans le cas ou le mot de passe serait trop facile et pourrait donc être trouvé.


Preliminaires
-------------
Se connecter à l'adresse 127.0.0.1.
S'identifier avec le login et le mot de passe
>lambin
>azerty


Passer en mode privilégié pour pouvoir effectuer des modifications
>su
>azerty
                                        
Créez 2 utilisateurs en utilisant la commande " useradd ", choisissez les bonnes options. 


Créer un nouvel utilisateur avec -m pour créér un répertoire à l'utilisateur créé
le -m dit simplement que si le dossier précisé n'existe pas, alors il sera créé (avec le nom que tu donnes apres le -d)
>sudo useradd -m -d /home/usrone userone


-m pour créer un répertoire personnel


Changer le mot de passe du premier utilisateur
>sudo passwd userone
> one
> one


Créer un deuxième utilisateur de la même manière
>sudo useradd -m usertwo


Changer le mot de passe du deuxieme utilisateur
>sudo passwd usertwo
> two
> two






Enlever la connexion par mot de passe en modifiant "sshd_config"
Se remettre en mode privilégié pour modifier sshd_config
> vi /etc/ssh/sshd_config
modifier en "PasswordAuthentication no"


Relancer le service SSH après configuration du fichier
> /etc/init.d/ssh restart


Quitter le mode privilégié pour créér la clé
On utilise la commande ssh-keygen qui sert a generer les cles prive et publique. ( utilisateur userX )
On appui 3 fois enter ensuit il cree 2 fichier dans le repertoir du login "cle" et "cle.pub"


(>exit)
>ssh-keygen


choisir dans quel fichier stocker la clé
>cle.pub
définir clé
>mdpssh
>mdpssh







________________
# Seance 02 : Sécurité : sudo, find, grep


Passer en root:
>su
>azerty


Installer le package qui permet de mettre en place l'outil sudo
>apt-get install sudo
                                        
configurez-le pour permettre à l'utilisateur user_1 de contrôler le système 
> sudo adduser user_1 sudo


Configuration du fichier /etc/sudoers
>sudo visudo


Ecrire dans le fichier
>userone ALL=(ALL) ALL


explication:
- ALL: machine dans lequel les commandes suivantes sont autorisées pour cet utilisateur
- (ALL): désigne l’utilisateur dont on prend les droits, peut valloir ALL pour tous
- ALL: représente les commandes qui peuvent être executées par l’utilisateur


Ecrivez un script bash ou programme perl qui contrôle l’activité de l’utilisateur privilégié de manière régulière. 


Créer mon script bash
>vi script.sh


----------------------------
#!/bin/bash


echo "Tentave ratée";


cat /var/log/auth.log | grep "sudo" | grep "FAILED LOGIN";


echo "Tentative réussie";


cat /var/log/auth.log | grep "sudo" | grep ": TTY";


echo "Liste des commandes"


cat /var/log/auth.log | grep "sudo" | grep "COMMAND";


----------------------------



Dans notre cas :
#sauvegarde full chaque semaine le dimanche a 1h du matin
0 1 * * 0 root script.sh


#sauvegarder toute les minutes
0/5 * * * * root script.sh




OU


Le script sera execute chaque jour a 23h30 grace a la commande cron.
Il faut executer la commande crontab -e en puis il faut ajouter la ligne "30 23 * * * bash /home/lambin/script"




3.1 Donnez la commande qui affiche la liste des applications dont le suid est positionné à on 
> find / -type f -perm -4000 2> /dev/null


3.2 Donnez la commande qui permet de lister l’ensemble des répertoires du système qui sont accessibles en lecture-écriture par tous 
> find / -type d -perm 0666 2> /dev/null


3.3 Dans ces 2 cas, expliquez pourquoi sortir cette liste peut être intéressant dans une politique de sécurisation du système
Sortir cette liste permet de visualiser les dossiers accessibles par tous, 
elle permet aussi de se rendre compte de ceux qui sont modifiables par n'importe quel utilisateur et donc vulnérables.  
Il peut être interessant de les protéger pour éviter leur modification ou suppression.


# Seance 03 : Partitions et quotas


1. Créez et activez une nouvelle partition sur la moitié du second disque de la machine 
virtuelle qui est mise à votre disposition.


Passage en mode root
> su
> azerty


Lister l'ensemble des disques
> fdisk -l


Lancer fdisk sur le second disque
> fdisk /dev/sdb


Créer une nouvelle partition
> n 


Pour une partition primaire
> p 


Partition number
> 1 


First cylinder
> 1


Last cylinder (le total étant 261, on va jusqu'a 261/2)
> 130


On écrit la table de partition sur le disque, et on quitte fdisk
> w


On affiche le liste des disques pour vérifier que notre partition a bien été effectuée
> fdisk -l


On créé un système de fichier sur la nouvelle partition
> mkfs -t ext3 /dev/hdb1


On créé un repertoire temporaire
>mkdir /home_temp


On copie le contenu du repertoire /home dans le repertoire temporaire
>cp -rv /home /home_temp


2. Affectez cette nouvelle partition aux données des utilisateurs; travaillez en mode manuel. La nouvelle configuration ne doit pas modifier l'environnement des utilisateurs.


On affecte la nouvelle partition aux données des utilisateurs
> mount -t ext3 /dev/sdb1 /home


On récupère le contenu du repertoire /home
> mv /home_temp /home


3. Adaptez le système pour activer automatiquement cette partition.
On ouvre le fichier /etc/fstab avec un editeur de texte et on ajoute la ligne :
> /dev/sdb1 /home ext3 defaults 0 0


explication:
file system, mount point, type, options, dump, pass




3. Les quotas
Installer quota dans le systeme 
> sudo apt-get install quota


On ajoute la ligne  dans le fichier /etc/fstab  
> /dev/sdb1         /home         ext3         defaults,usrquota         0         2

Afin de permettre aux quotas de fonctionner, il faut créer un fichier pour les quotas utilisateur, et un autre pour les quotas de groupe, dans la racine du dossier à protéger. Ici il s'agit de /home.



Création des deux fichiers
> sudo touch /home/quota.group   #Création du fichier pour le groupe
> sudo touch /home/quota.user  #Création du fichier pour l'utilisateur


Application des droits
> sudo chmod 600 /home/quota.*


Une fois ces fichiers créés, il faut remonter la partition
> sudo mount -o remount /home


On verifie si les fichier de quota ont bien été crée 
> repquota -a

On suppose que on aura max 1000 utilisateurs sur notre systeme.

3.1 On place les quotas d'utilisateurs 
Exemple : setquota -u $user <limite soft> <limite hard> 0 0 /home
-> setquota -u userX 768 1024 0 0 /home
-> setquota -u userY 768 1024 0 0 /home






________________
# Seance 04 : nfs


1. Description du protocole nfs
   ----------------------------
NFS est l'abréviation de Network File System, c'est-à-dire système de fichiers réseau.
Il permet donc d&#8217;accéder à des fichiers via le réseaux entre système Unix mais aussi pour Windows.
Il fait partie de la couche application du modèle OSI et utilise le protocole RPC (Remote Procedure Call).
L&#8217;avantage de NFS est la possibilité d&#8217;utiliser u n répertoire d&#8217;un ordinateur de manière complètement transparente comme si il s&#8217;agissait d&#8217;un disque dur connecté directement à l&#8217;ordinateur.  


2. Configuration
Configuration et vérification du serveur nfs


Sur le serveur, il faut installer portmap, nfs-common, et nfs-kernel-server
> sudo apt-get install portmap nfs-common nfs-kernel-server


Si erreur: 
> apt-get update
> sudo apt-get install portmap nfs-common nfs-kernel-server


On ouvre le fichier contenant la liste des repertoires partagés et on écrit le repertoire dedans
> nano /etc/exports
ajouter au fichier:
> /home/serveur/dossierAPartager *(ro) 


** Soit une étoile pour que tout le monde y ait l&#8217;accès, soit une IP précise


*attention pas d'espace après les ',' ro = read only et ro_squash empêche le root du client d'appliquer ses droits sur le dossier partagé)


Lancer nfs 
> sudo /etc/init.d/nfs-kernel-server restart


Vérifier que le serveur tourne
> /etc/init.d/nfs-kernel-server status


Lancer nfs pour le serveur
> sudo /etc/init.d/portm/init.d/portmap restart


Vérifier sur le serveur
> showmount -a (on remarque que /tmp est monté chez le client et sur le serveur)






(( Pour mettre à jour les modifications si on modifie le fichier exports, on recharge le serveur NFS
> /etc/init.d/nfs-kernel-server reload    ))


Configuration et vérification du client nfs


Créer un nouvel utilisateur
> sudo useradd -m -d /home/usernfs usernfs
> sudo passwd usernfs
> nfs


Sur le client, il est faut installer nfs-common et portmap
>  sudo apt-get install portmap nfs-common


Ajouter un rep /nfsPartage chez le client
> mkdir /home/usernfs/nfsPartage


Modifier le fichier /etc/fstab pour monter automatique le dossier partagé
> nano /etc/fstab/
Ajouter la ligne
> ipServeur:/dossierAPartager        /home/nfs/nfsPartage                nfs     defaults     0       0


Monter la partition (/usr/share/doc) que le serveur (ip) partage sur le reseau
> mount -t nfs 172.17.91.187:/usr/share/doc /home/usernfs/nfsPartage


Vérifier la liste des partages actifs sur le client
> exportfs -v


Lancer nfs
> sudo /etc/init.d/portmap start




#Gestion des droits d'accès


Création d&#8217;un utilisateur lambda
> useradd -m -s lamba -u 2187 (uid = 2000 + dernier byte de l&#8217;adresse ip)




Création d&#8217;un fichier
> touch fichierTest


Vérifier les propriétés d&#8217;un fichier
> 


Se déconnecter de l&#8217;utilisateur lambda
> exit




Se connecter avec lambin
> lambin
> azerty


Vérifier les propriétés d&#8217;un fichier
> 




________________


# Seance 05 : samba


1. Description du protocole samba
   ------------------------------
   
Samba est un logiciel d'interopérabilité qui permet à des ordinateurs Unix de mettre à disposition des imprimantes et des fichiers dans des réseaux Windows, avec cet outil nous pourrons partager des fichiers
entre ces deux OS.


2. Configuration
Installation des paquets (liste des paquets et leurs intérêts)


Connexion avec lambin
> lambin
> azerty


Ouverture du root
> su root
> azerty


Mise à jour des sources des paquets
> apt-get update


Installation des paquets
> apt-get install samba smbfs




Configuration et vérification du serveur samba 
(uniquement les directives utiles pour l'exercice, que vous pouvez décrire à votre façon)


La configuation de samba se trouve dans le fichier smb.conf, qui lui se trouve généralement dans /etc/samba/smb.conf
Il faut donc editer ce fichier


Modification du workgroup dans smb.conf:
> sudo nano /etc/samba/smb.conf
ajouter la ligne
> workgroup = dsips

2.1. On ajoute dans le fichier /etc/samba/smb.conf dans la section [globale]:
        
# Autoriser l'accès a certains réseaux (le point final est important) 
hosts allow = 172.17.95.91. 172.17.95.114 
public = no
# mode de sécurité : (user / share / server) 
security = user 

2.2
et dans la section [home]
valid users = userX, userY
browseable = yes
read only = no









Vérification du client samba


Testez vos différents partages avec la commandes smbclient
On verifie les partages disponibles avec la commande


> smbclient -L 172.17.91.187 


On cree 2 dossier doc_partage et tmp_partage
Exemple : smbmount //servername/sharename /mountdirectory -o username=mywindowsusername,password=mywindowspassword
        


> smbclient //ip_server/nomRessource -U utilisateur
ou
> smbmount //172.17.95.91/doc /doc_partage -o username=userX,password=userX

Testez l'accès de vos partages samba à partir de votre station windows. 
3. En windows


Il faut ouvrir une invit de commande et lancer la commande suivante pour ajouter un lecteur reseau
> net use k: \\172.17.91.187




________________


# Seance 06 : backup

Script:
#!/bin/bash
REPERTOIRE_SOURCE="/home/"

# Repertoire Destination étant sur un disque dur différent de celui de /home
REPERTOIRE_DESTINATION="/backup_home/"
 
# Détecter la présence du volume de destination et interrompre l'opération si nécessaire
if [ ! -e "$REPERTOIRE_DESTINATION" ]
then
echo "Attention, le disque de sauvegarde n'est pas présent"
exit
fi
 
rsync -av --del --stats --filter "- .thumbnails/" --filter "- .Trash/" --filter "- *.tmp" --filter "- *.iso" --filter "- lost+found/" --filter "- .cache/" --filter "- .beagle/" $REPERTOIRE_SOURCE "$REPERTOIRE_DESTINATION"

#### End script


~ Script de récupération :


#!/bin/bash
if [ "$#" -ne "1"]
then
echo "Passez un nom de fichier en parametre"
exit
fi

fichier="$1"
user="$USER"

find "/backup_home/$user" -name "$fichier" -type f -exec /usr/bin/rsync -av {} "/home/$user/" \;[/SIZE]
 
Dernière édition par un modérateur:

Toum'aï

Membre calcifié
Modérateur
Club MacG
16 Décembre 2010
4 551
3 197
59
MarWest
On s'en cogne :mad:
 

ergu

passant qui passe
Club MacG
13 Octobre 2011
2 728
614
27
je sais bien qu'on s'en cogne, je demande juste que ce topic reste la jusqu'a ce soir ;) #examen ;)

Après les appli de prise de notes, voici les forum de prise de notes.
Pour prendre des notes, allez sur le forum,
ouvrez un fil au bar
et prenez des notes.

Toi aussi vient prendre tes notes en cours dans un fil au bar MacG - c'est gratuit et tellement plus "in" que leurs machin de markdown à la con.
 

Toum'aï

Membre calcifié
Modérateur
Club MacG
16 Décembre 2010
4 551
3 197
59
MarWest
ça fait un peu (beaucoup) ramène ta science... :eek: