Académique Documents
Professionnel Documents
Culture Documents
2
Serveur NFS VSFTPD est un deamon FTP très léger, rapide et sécurisé. Il peut gérer des services FTP de tous types.
VsFTPd est un serveur FTP conçu avec la problématique d'une sécurité maximale.
NFS (Network File System) est un protocole permettant de monter des disques en réseau. Le port utilisé par NFS Installation #yum install vsftpd
c'est 2049. NFS est compatible avec l'IPv4 et IPv6 Vérification # rpm -qa vsftpd
d’installation
Configuration Serveur Démarrage # systemctl start vsftpd
du service
Installation #yum install nfs-utils Activation au # systemctl enable vsftpd
Vérification d’installation # rpm -qa nfs-utils démarrage
Démarrage du service # systemctl start nfs-server du service
Activation au démarrage # systemctl enable nfs-server Nom et /etc/vsftpd/vsftpd.conf
du service chemin du
Nom et chemin du fichier /etc/exports fichier de
de configuration configuration
Syntaxe du fichier de <dossier partagé> <hôte>(<options>) Options de anonymous_enable=NO //Pas de connexions en mode
configuration configuration anonymous
Explication <dossier partagé> : chemin menant au dossier listen_port=21 // Spécifie le port d’écoute
partagé local_enable=YES // Autoriser les utilisateurs locaux
<hôte> : indique quel est l'hôte qui peut accéder write_enable=YES //Autoriser le droit d’écriture
à ce partage (@IP, local_umask=022 //Fixer le masque local a 022 (les fichiers
Nom Domaine, Adresse réseau) crées auront des droits en 755)
<options> : indique les options anon_upload_enable=NO //Refuser le upload pour les
de partage tel que : anonymous
rw : droit lecture et
anon_mkdir_write_enable=NO // Refuser l’ecriture pour
écriture,
ro : droit de lecture seule (option par les anonymous
defaut) idle_session_timeout=600 // Temps avant déconnexion sur
root_squash : spécifie que le root du une session inactive
serveur NFS n'a pas les droits de root max_clients=50 //Nombre maximum de connexion
sur le répertoire partagé simultanée max_per_ip=4 // Nombre maximum de connexion
no_root_squash : le contraire que venant de la même IP ftpd_banner=Bienvenue sur mon ftp
root_squash. perso //Bannière de bienvenue
all_squash : force le mapping de tous chroot_local_user=YES
les utilisateurs vers l'utilisateur chroot_list_enable=NO
anonyme. allow_writeable_chroot=YES //les trois lignes limite les
anonuid : indique l'UID de l'utilisateur
anongid : indique le GID de utilisateurs à leur répertoire
l'utilisateur anonyme
Exemple de conf /home/ofppt/testN 192.168.147.215(rw) Options : # Fichier de users
/home/ofppt/testN1 *(ro) ftpusers et userlist_file=/etc/vsftpd/user_list
/home/ofppt/testN2 user_list # Chargement de la liste
192.168.147.215(rw,all_squash,anonuid=1003,a userlist_file
nongid=1003) userlist_enable=YES
/home/ofppt/testN3 *(rw,no_root_squash) # On refuse les utilisateurs de la liste
Redémarrage du service # systemctl restart nfs-server userlist_deny=YES
Exporter le partage # exportfs -ra Redémarrage # systemctl restart vsftpd
Lister les info du montage #showmount -e <IP_serveur_NFS> du service
Client # ftp Nom Serveur FTP (ou Adresse IP)
Commande
Configuration Client
Client FileZilla, gFTP, AxyFTP par exemple
Créer un #mkdir /media/ntfPartgae graphique
dossier pour
contenir le Serveur SSH
partage
Montage # mount –t nfs
Secure Shell (SSH) est un programme mais aussi un protocole de communication sécurisé. Grâce à SSH, on peut se
temporaire <Adressi_ip_serveur>:<repserveur>
connecter à distance sur une machine et transférer des fichiers. Le numéro de port utilisé par le serveur est 22
< point_montage_local>
Montage 1- Editer le fichier /etc/fstab et OpenSSH (OpenBSD Secure Shell) est un ensemble d'outils informatiques libres permettant des communications
automatique ajouter :
sécurisées sur un réseau informatique en utilisant le protocole SSH.
via <ip_serveur>:<rep_serveur>
fstab <point_montage_local> nfs
defaults,nfsvers=3,auto,user 0 0
3
fichier de Structure du la section [global] contient les
configuration fichier de paramètres généraux du serveur.
Syntaxe du PermitRootLogin no // Désactiver les configuration la section [homes] contient les
connexions SSH en root paramètres pour l’accès aux
fichier de
répertoires des utilisateurs.
configuration AllowUsers user1 user2 user3 //Autoriser les la section [printers] contient les
utilisateurs
AllowGroups goupe1 groupe2 //Autoriser les paramètres pour l’ensemble des
groupes imprimantes connectées au système
DenyUsers user1 user2 user3 //Refuser les Les autres sections sont considérées
utilisateurs comme des déclarations de partage.
DenyGroups goupe1 groupe2 //Refuser les Option [global] workgroup = Le
groupes nom du groupe de
Banner /etc/banner //Afficher la bannière travail server string
Port numéro_du_port //Modifier le port d’écoute = La description du
PermitEmptyPasswords no //interdire mot de serveur
passe vide security = Type de sécurité (USER,
PasswordAuthentication yes //Autoriser ADS, SHARE, DOMAINE, SERVER)
l’authentification par mdp log file = le nom du fichier qui
MaxSessions 10 // spécifier le nombre maximal de contiendra le journal des activités du
sessions MaxAuthTries 4 // limiter le nombre de serveur max log size=taille maximale
de tentative d'authentification du fichier journal, en Kio.
ClientAliveInterval 600 // Envoie un message au Configuration 1. Créer un
client ssh après x secondes sans activité répertoire :
PubkeyAuthentication yes // Autoriser du partage :
#mkdir
authentification par clé LogLevel INFO //Activer Configuration
partage 2.
les logs du dossier Créer un
Redémarrage # systemctl restart sshd partager groupe :
#grouadd ntic
du service
3. Modifier les droits du répertoire :
Création de #ssh-keygen –t rsa –b 2048 #chgrp -R ntic partage
la paire de #chmod -R o+xw partage
clé Configuration 1. Creér un utilisateur : #useradd -G
Autoriser #ssh-copy-id –i ~/.ssh/id_rsa.pub du partage : groupe user
2. Définr un mot de passe Samba :
votre clef user@ipmachine Configuration
#smbpasswd -a user
publique de l’utilisateur
Test client #ssh utilisateur@AdresseIPduServeur (ou nom Configuration Ex de partage :
de domaine) du partage [ntic] //Nom du partage
Putty, WinSCP comment = Exemple de
Test :smb.conf partage //Description
Graphique path = partage
Transfert $scp Nom fichier //Chemin du partage
fichier/ Utilisateur@IPServeurCible:/Chemin public = no //Refuser
Ajouter l’option -r en cas de transfert de dossier connexion sans mot de passe valid
dossier users = user, @ntic // liste
$scp -r -p
user@serveur1:chemin/vers/dossier/source d'utilisateurs ou groupe autorisés
user@serveur2:chemin/vers/dossier/destination writable = yes // Droit
En IPV6 ajouter l’option -6 :$scp -6 d’écriture browseable = yes //
Répertoire visible create mask = 0765
Tunnel SSH $ssh -L port-local:HOSTNAME:port-distant // droits appliqués en rajoutant un 0
login@machinedistante devant. read only = Yes //
Proxy "SOCKS" : Lecture seule pour tous write list =
ssh -D port-local login@machine-distante user1,user2 //droit d’écriture pour la
liste
Serveur SAMBA
Vérification testparm
Redémarrage du #systemctl restart smb.service
Samba est une suite de logiciels permettant d'interconnecter Windows et toutes sortes d'Unix-like. La partie serveur service #systemctl restart nmb.service
de SaMBa est gérée par des programmes : Afficher #smbclient -L Localhost
l’arborescence #smbtree
smbd : il fournit les services de partage de fichiers et d’imprimantes Test Client #smbclient //@IP
nmbd : il répond aux requêtes NetBIOS de résolution de noms et de voisinage :smbclient serveurSamba/NomPartage -U user
Test Client #mkdir -p /mnt/samba
NB : désactiver SELINUX setsebool -P samba_enable_home_dirs on :smbmount # smbmount //@IP
serveurSamba/NomPartage
Installation #yum install -y samba* /mnt/smbmnt -o username=utilisateur
Vérification # rpm -qa samba Client Windows Dans la barre de recherche :
d’installation \\nomServeurSamba\NomPartage Créer
Démarrage du #systemctl start smb.service un lecteur réseau
service #systemctl start nmb.service
Activation au #systemctl enable smb.service
démarrage du #systemctl enable nmb.service
service
Nom et chemin /etc/samba/smb.conf Serveur Apache
du fichier de
configuration
Apache est le principal serveur web du monde de l’Open Source. Utilise par défaut le port 80 et 443(SSL) mais on
peut modifier le port dans le fichier de configuration.
4
Vérification #rpm -qa httpd Redémarrer le # systemctl restart httpd
d’installation service
Démarrage du # systemctl start httpd Recharger le # systemctl reload httpd
service service
Activation au #systemctl enable httpd Sécuriser 1. Installation du mod ssl : #yum install mod_ssl
démarrage du Apache2 avec 2. Création du certificat :
service SSL # openssl req -x509 -nodes -days 365 -newkey
rsa:1024 -out /etc/httpd/server.crt -keyout
Nom et /etc/httpd/conf/httpd.conf /etc/httpd/server.key
chemin du
fichier de 3. Vérifier dans le fichier «
configuration /etc/httpd/conf.d/ssl.conf » que la directive de
Syntaxe ServerRoot "/etc/httpd" //Chemin du dossier de configuration nommée Listen écouter sur le port
configuration configuration 443
Listen 80 // Port d’ecoute 4. Ex de configuration :
général <VirtualHost *:80>
DocumentRoot "/var/www/html" // le chemin de
l'accès au repertoire du site exactement le fichier ServerName ntic.local/
index.html définie par défaut Redirect / https://ntic.local/
ServerAdmin root@localhost //Adresse mail de </VirtualHost>
l’administrateur
Include …… //permet l’inclusion d’autres fichiers de <VirtualHost *:443>
ServerName ntic.local
configuration dans httpd.conf <Directory> …..
DocumentRoot /var/www/html/ntic
</Directory> //regroupe un ensemble de directives
qui ne s’appliquent qu’au répertoire précisé
SSLEngine on // Activer le moteur SSL
ErrorLog "logs/error_log" // Définit le chemin
SSLCertificateFile /etc/httpd/server.crt
vers le journal des erreurs //définit le certificat authentifiant le Serveur auprès
CustomLog "logs/access_log" combined //permet des clients
de contrôler la journalisation des requêtes destinées
SSLCertificateKeyFile /etc/httpd/server.key
au serveur.
//définit la clé privée du Serveur </VirtualHost>
AddDefaultCharset //paramètre le jeu de caractères
par défaut pour les pages de texte Timeout 300
//définit la durée, exprimée en secondes, pendant Serveur OpenLdap
laquelle le serveur attend des réceptions
MaxClients 150 //fixe une limite au nombre total
de processus serveur ou de clients connectés Open LDAP est une implémentation open source du protocole LDAP. Il est constitué de 3 éléments principaux :
simultanément
LogLevel warn // définit le niveau de détail avec slapd (Stand-alone LDAP Daemon) : démon LDAP autonome. Il écoute les connexions LDAP sur
lequel les messages d'erreur devraient être n'importe quel port (389 par défaut).
enregistrés dans les journaux d'erreurs
Des Bibliothèques implémentant le protocole LDAP.
VirtualHost 1. #touch /etc/httpd/conf.d/nomdoamine.conf Des Utilitaires, des outils et des exemples de clients.
2.
<VirtualHost 192.168.2.3:80> // Adresse IP de la
machine serveur, suivie du port 80 qui est le port http
ServerAdmin admin@ntic.local //Adresse mail Installation #yum install openldap-clients openldap-servers openldap-devel
de l’administrateur migrationtools
ServerName ntic.local // le nom de domaine du Vérification # rpm -qa openldap*
serveur d’installation
ServerAlias www.ntic.local // nom alternatif du
Démarrage du # systemctl start slapd
serveur
DocumentRoot /var/www/html/ntic.lcal/ // le service
chemin de l'accès au fichier index.html Activation au # systemctl enable slapd
ErrorLog /var/log/httpd/error_log //permet de démarrage du
définir le nom du fichier dans lequel le serveur va service
journaliser toutes les erreurs qu'il rencontre
CustomLog /var/log/httpd/access_log
Configurer le #slappasswd
combined //permet de contrôler la journalisation des mot de passe Le mot de passe est affiché crypter
requêtes destinées au serveur. root LDAP
</VirtualHost> Configuration 1- Editer le fichier /etc/openldap /ldap.conf modifier la ligne
Répertoire du 1. Création du répertoire pour le site : #mkdir - BASE dc=NomDomaine,dc=local
site p /var/www/html/ntic.local 2- Editer le fichier
2. Modification des droits : slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif et
#chown -R apache:apache ntic.local renseigner votre domaine
#chmod -R 755 ntic.local "cn=Manager,dc=NomDomaine,dc=local
3. Création du fichier index.html : #vim 3- Editer le fichier
/var/www/html/ntic.lcal/index.html 4. Exemple du slapd.d/cn\=config/olcDatabase\=\{2\}mdb.ldif, modfier le
fichier index : domaine puis ajouter le mot de passe crypté
<html> olcSuffix: dc=NomDomaine,dc=local
<head> olcRootDN: cn=Manager,dc=NomDomaine,dc=local
<title>Welcome to ntic.local</title> olcRootPW:
</head> {SSHA}ppNk4zYhzD9PUUohDERGxGJFRzaCzbuA
<body>
<h1>l’Exemple
de virtual host Configurer la #cp /usr/share/openldap-servers/DB_CONFIG.example
fonctionne base de données /var/lib/ldap/DB_CONFIG
</h1> LDAP #chown ldap:ldap /var/lib/ldap/*
</body> Mettre à jour le ldapadd -Y EXTERNAL -H ldapi:/// -f
</html> Schema /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H
Test de #apachectl configtest
ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL
configuration
-H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
5
Redémarrer le #systemctl restart slapd changetype: modify
serveur delete:description
Ex fichier ldif: dn: dc=ilham,dc=local 2. Lancer la commande :
Domaine, OU, ObjectClass: top ldapmodify -x -W -D "cn=Manager,dc=tmsir,dc=local" -f sup.ldif
groupe, user ObjectClass: domain Configuration 1. Installer le packet openldap client : # yum -y install
dc: ilham client Linux openldapclients nss-pam-ldapd
2. Configurer l’authentification LDAP :# authconfig-tui
dn: ou=tri,dc=ilham,dc=local 3. Tester : # getent passwd NomUtilisateur
ObjectClass: top
ObjectClass: organizationalUnit
ou: tri
Serveur OpenVPN
dn: cn=202,ou=tri,dc=ilham,dc=local
ObjectClass: posixGroup
cn: 202 Installation #yum install epel-release openvpn
gidNumber: Vérification # rpm -qa openvpn
202 d’installation
memberuid: ahmed Démarrage # systemctl start openvpn@server.service
description: testgroupe du service
Activation au # systemctl -f enable openvpn@server.service
dn: uid=ahmed,ou=tri,dc=ilham,dc=local démarrage du
ObjectClass: top
service
ObjectClass:
Nom et Copier le fichier de configuration du serveur dans
person
ObjectClass: chemin du /etc/openvpn : #cd /usr/share/doc/openvpn-
inetorgperson cn: fichier de 2.X.X/sample/sample-config-files/ server.conf
ahmed serraji sn: configuration /etc/openvpn
serraji Configuration push "route 10.1.0.0 255.255.0.0" //
givenname: ahmed push "redirect-gateway def1 bypass-dhcp" //
description: testuser rediriger tout son trafic via le serveur OpenVPN
uid: ahmed push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4" // Indiquer quels
telephonenumber: serveurs DNS il peut utiliser pour se connecter à
1233444 mail: OpenVPN
eee@jhhhh
Ex : fichier ldif 1. Création utilisateur linux :#useradd user user nobody group nobody // Exécute
utilisateur OpenVPN sans privilèges une fois démarré,
2. Copier les informations de l’utilisateur dans un fichier nommé donc fonctionner avec un utilisateur et un
généré par : passwd.txt : #grep user /etc/passwd > passwd.txt groupe de personne.
migrationtools 3. Créer le fichier ldif en utilisant le script migrate_passwd.pl :
/usr/share/migrationtools/migrate_passwd.pl passwd.txt > topology subnet
user.ldif server 10.8.0.0 255.255.255.0 //configure OpenVPN
Ajouter ldapadd -x -W -D "cn=Manager,dc=NomDomaine,dc=local" pour fonctionner comme un sous-réseau
objets -f NomFichier.ldif
:Importation -x : Authentification simple Configuration 1. #yum install easy-rsa
du -D : identifiant connexion à la base certificat 2. #mkdir –p /etc/openvpn/easy-rsa/keys
fichier ldif -W : demande le mot de passe 3. #cp –rf /usr/share/easy-rsa /2.0/*
-f : le nom du chier ldif /etc/openvpn/easy-rsa 4. Dans easy-rsa éditer le
fichier vars et modifier les lignes :
Chercher #ldapsearch -x -b "dn " export
Utiliser l’option -LLL :Afficher le resultat sans commentaires, KEY_COUNTRY="MA
" export
sans version LDIF
KEY_PROVINCE="JH"
Supprimer #ldapdelete -v –D "cn=Manager,dc=NomDomaine,dc=ma" export
-W "dn à supprimer" KEY_CITY="OUJDA"
Modifier un Ex : Ajouter l’attribut export
attribut : Ajout description 1. Créer le KEY_ORG="OFFSHO
fichier ldif suivant : RING" export
dn: uid=user,ou=stagiaire,dc=tmsir,dc=local KEY_EMAIL="ZTI@of
changetype: modify ppt.ma" export
add:description
KEY_OU="OFPPT"
description:
stagiaire ofppt 2. 5. Au niveau du dossier easy-rsa on va créer les
Lancer la certificats :
commande : #source. /vars
ldapmodify -x -W -D "cn=Manager,dc=tmsir,dc=local" -f ajout.ldif #. /clean-all
Modifier un Ex : Modifier l’attribut #. /build-ca
attribut description 1. Créer le fichier #. /build-key-server $( hostname )
:Modification ldif suivant : #./build-dh
dn: uid=user,ou=stagiaire,dc=tmsir,dc=local 6. Copier les fichiers ca.crt hostname.crt
changetype: modify hostname.key dh2048.pem dans /etc/openvpn :
replace:description #cp ca.crt hostname.crt hostname.key dh2048.pem
description: stagiaire NTIC de CMFMNTIOE /etc/openvpn
2. Lancer la commande :
ldapmodify -x -W -D "cn=Manager,dc=tmsir,dc=local" -f modif.ldif
Modifier un Ex : Supprimer l’attribut
attribut description 1. Créer le fichier Redémarrer # systemctl restart openvpn@server.service
:Suppression ldif suivant :
dn: uid=user,ou=stagiaire,dc=tmsir,dc=local le service
6
Test client Coté serveur: Copier les clefs dans la machine Sed : Manipuler sed -e "s/[Ff]raise/FRAISE/g" :
cliente les fichiers substitue toutes les chaînes Fraise
/etc/openvpn/easy-rsa/keys/ca.crt automatiquement ou fraise par FRAISE
/etc/openvpn/easy-rsa/keys/client.crt sed "20,30d" fichier : supprimer
/etc/openvpn/easy-rsa/keys/client.key les lignes 20 à 30 du fichier
/etc/openvpn/myvpn.tlsauth sed "/ntic/d" fichier : supprime les
Coté client : Crée un nouveau fichier avec lignes contenant la chaîne ntic
l’extension. ovpn avec les informations Cut : afficher $cut -c1 /etc/passwd : affichera la
des zones première colonne du fichier
client tls-client spécifiques d'un /etc/passwd.
ca /path/to/ca.crt fichier
cert -c1-5 : Permet de sélectionner
/path/to/client.cr les colonnes 1 à 5
t key -c14- : Permet de sélectionner
/path/to/client.ke de la colonne 14 à la dernière
y tls-crypt
/path/to/myvpn.t -c1-3,14-18 : Permet de
lsauth spécifier plusieurs plages de
remote-cert-eku "TLS Web Client colonnes.
Authentication" proto udp $cut -d: -f6 /etc/passwd : affichera
remote
your_server_ip le 6eme champ du fichier
1194 udp dev tun /etc/passwd, dont le séparateur
topology subnet (``:'')
pull user nobody
group nobody awk : appliquer un c ertain nombre d'actions
sur un fichier
awk -F ":" '{ $2 imprime chaque ligne du fichier
Quelques Commandes de base = "" ; print $0 }' /etc/passwd après avoir effacé le
/etc/passwd deuxième champs
awk 'END {print imprime le nombre total de lignes
Afficher la #fdisk –l ou #df –h / NR}' fichier du fichiers
capacité DD awk '{print imprime le dernier champs de
Afficher les #free $NF}' fichier chaque ligne
informations who | awk imprime le login et le temps de
RAM '{print $1,$5} connexion
Afficher les #lscpu ou #cat /proc/cpuinfo awk imprime les lignes de plus de 75
informations 'length($0)>75 caractères. (print équivaur à print $
CPU {print}' fichier
Ps : Afficher les #ps aux awk '$3>500' Imprime les lignes dont le GID est
processus actifs #ps aux |grep bind /etc/passwd superieur à 500
ainsi que cette awk -F : '$3 >= Imprime les lignes dont le GID est
ressource utilisée 500 {print "User superieur à 500 sous forme User
à un instant t : " $1 :nomutilisateur -GID :Numérogid
mount : monter # mount -t type_périphérique " - GID : " $3}'
un système de point_de_montage /etc/passwd
Ex : #mount -t ext4 /dev/hdb1 /mn Crontab
fichier
#mount mount -t vfat /dev/hda1 GRUB2 La configuration de GRUB2 est
/Dos/C/ composé de trois principales dans des
mkfs :formater Formater en ext4 : #mkfs.ext4 fichiers inclus :
/dev/votre_partition Formater en swap 1. /etc/default/grub - le fichier
: #mkswap /dev/Votre_partition contenant les paramètres du menu
de GRUB 2,
Formater en vfat : #mkfs.vfat
2. /etc/grub.d/ - le répertoire
/dev/Votre_partition contenant les scripts de création du
grep : rechercher $grep mot nomfichier menu GRUB 2, permettant
un mot dans un $grep -E [Aa]lias NomFichier notamment de personnaliser le
$ grep -E [0-4] NomFichier menu de démarrage,
fichier #ps aux | grep service 3. /boot/grub2/grub.cfg - le fichier
sort : trier les -r : trier en ordre inverse de configuration final de GRUB 2,
non modifiable.
lignes -R : trier aléatoirement 4. grub-mkconfig -o <destination>
-n : trier des nombres génère une entrée de menu de
wc :compteur -l : compter le niveau supérieur
lignes, mots et nombre de lignes le contenu du fichier /etc/default/grub
w : compter le GRUB_TIMEOUT=5
caractères
GRUB_DISTRIBUTOR="$(sed 's, release
nombre de mots
.*$,,g' /etc/systemrelease)"
-c : compter le nombre d'octets GRUB_DEFAULT=saved
$ls -l |wc -l GRUB_DISABLE_SUBMENU=true
#wc -l /etc/passwd GRUB_TERMINAL_OUTPUT="console"
#ps -aux |wc -l GRUB_CMDLINE_LINUX="crashkernel=auto
uniq : supprimer rd.lvm.lv=centos/root
les doublons rd.lvm.lv=centos/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"