Les indispensables de l’Admin système débutant sous Debian #CRC3

top

Ceci n’est pas un cours mais un petit “TIPS” pour vous aider à vous remettre dans le bain..

 Créer un fichier vide

touch le-nom-du-fichier

touch -t le-nom-du-fichier (-t utilise la date indiquée plutôt que la date actuelle)

 Modifier la permission d’un fichier ou dossier

chmod 755 le-nom-du-dossier-ou-fichier

chmod -R 755 le-nom-du-dossier (Modifie récursivement les autorisations des dossiers et leurs contenus)

Modifier le propriétaire d’un fichier ou Dossier

chown proprietaire le-nom-du-dossier-ou-fichier

chown -R proprietaire le-nom-du-dossier (Modifie récursivement l’appartenance des répertoires et leurs contenus)

Redémarrer un service sous Debian

/etc/init.d/lenomduservice start , stop

Editer un fichier sous debian

Sous Unix, et en particulier sous Linux, la configuration du système et des programmes se fait très souvent en éditant des fichiers textes qui contiennent des paramètres de configuration. Ces paramètres de configuration suivent une certaine syntaxe, différente pour chaque programme, et que l’utilisateur doit connaître. Généralement, il y a une instruction de configuration par ligne de texte. Le système ou le programme va alors lire son ou ses fichier(s) de configuration et s’adapter à la configuration demandée.

Presque tous les programmes et systèmes Unix sont conçus avec une règle qui dit qu’il ne tient pas compte des lignes du fichier de configuration qui commencent par un certain caractère (souvent #). L’utilisateur peut alors mettre des lignes de commentaires dans le fichier de configuration en commençant ces lignes par le caractère particulier. Il peut aussi facilement activer ou désactiver une ligne du fichier de configuration en enlevant ou en ajoutant le caractère particulier au début de la ligne. Le fait de désactiver ainsi une ligne de configuration se dit « commenter une ligne » et le fait d’activer ainsi une ligne de configuration se dit « décommenter une ligne ». Ces expressions seront régulièrement utilisées dans la suite de cette formation.

vi /etc/nom-du-fichier-a-editer  (Editeur incontournable sur un système unix/linux)

gedit  /etc/nom-du-fichier-a-editer (Editeur sous Gnome)

kedit /etc/nom-du-fichier-a-editer (Editeur sous KDE)

vim /etc/nom-du-fichier-a-editer (Version améliorer de vi mais à installer)

emacs /etc/nom-du-fichier-a-editer (Pour les puristes)

Changer son ip sous Debian

gedit /etc/network/interfaces

En statique :
auto eth0
iface eth0 inet static
address 192.168.0.7
netmask 255.255.255.0
gateway 192.168.0.254

En client DHCP :
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Redémarrer les services réseau :
/etc/init.d/networking restart

 

Vider le cache DNS  (Client)

Il suffit simplement de relancer le deamon NSCD :

/etc/init.d/nscd restart

Si cela ne marche pas, vous devez installer le paquet « nscd »

apt-get install nscd

Changer le nom d’hôte de votre Debian

Editez le fichier /etc/hostname

gedit /etc/hostname

 Redémarrer le service hostname

/etc/init.d/hostname.sh

Testez votre modification en utilisant les commandes

hostname

hostname -f

Affiche l’état de tout les processus en cours

ps -e

Affiche les informations mise à jour périodiquement sur les processus, l’utilisation de la mémoire, du CPU.

top

Plus complet regardez ceci : http://www.tontonfred.net/blog/?p=865

Déport d’affichage par SSH

SSH possède une fonction de déport d’affichage. Il faut que le serveur SSH distant ait autorisé cette fonction.

ssh -X login@serveur.exemple.org

 

 La programmation de tâches

Exécuter un commande périodiquement

La cron est un programme (installé par défaut) qui est chargé de lancer d’autres programmes de manière périodique et automatique. Chaque utilisateur peut définir avec sa crontab les programmes qu’il veut lancer périodiquement. Il lui suffit d’éditer sa cron et de définir la commande et sa périodicité d’exécution.

Par exemple, je veux que mon ordinateur me réveille tous les matins à 7h12 en jouant un mp3. J’édite ma crontab :

% crontab -e

Je me retrouve alors dans vim avec un fichier vide. J’ajoute la ligne :

12 7 * * * music123 ~/music/fichier.mp3

J’enregistre et je quitte ; les changements sont alors automatiquement pris en compte par le système.

Explications :

  1. Les 5 premiers ensembles de caractères séparés par des espaces (ici, 12 7 * * *) définissent la fréquence. Dans l’ordre, on trouve :
    • les minutes,
    • les heures,
    • le jour du mois,
    • le mois,
    • le jour de la semaine (sachant que Lundi vaut 1, Mardi vaut 2, etc.).

    Pour exécuter une commande chaque jour à 7h12, on fixe donc le champ minute à 12, le champ heure à 7, puis on met des étoiles dans les autres champs pour dire qu’il faut que ce soit exécuté tous les jours dans le mois, tous les mois et tous les jours de la semaine.

  2. Enfin, on trouve la commande à exécuter : (ici, music123 ~/music/fichier.mp3).

Quand la cron lance un programme, elle envoie par mail à l’utilisateur le texte que ce programme écrirait sur la console s’il était lancé à la main ; sauf si le programme n’a rien écrit. Pour éviter de recevoir un mail tous les matins qui me dit qu’il a bien joué mon fichier mp3, je modifie l’entrée dans la cron en renvoyant la sortie texte du programme vers /dev/null :

12 7 * * * music123 ~/music/fichier.mp3 1>/dev/null 2>&1

Autre exemple : j’ai une connexion permanente à Internet et je veux aussi que fetchmail aille chercher mes mails tous les quarts d’heure. J’édite ma cron et je rajoute la ligne suivante :

*/15 * * * * fetchmail –silent

Explications :

  1. Les 5 premiers ensembles de caractères */15 * * * * définissent la fréquence « toutes les quinze minutes ».
  2. J’exécute fetchmail avec l’option –silent qui n’écrit dans sa sortie que les messages d’erreur ; comme ça, je ne recevrais un mail que quand le rappatriement des mails se passe mal.

Exécuter une commande à une date donnée

Par exemple, pour exécuter les commandes date puis df -h le 28 septembre 2008 à midi 42, tapez :

% at 12:42 28.09.2008

Vous voyez alors apparaître le prompt du programme at pour taper les commandes :

at> date

at> df -h

Une fois que vous avez fini de taper les commandes, utilisez la combinaison de touches Ctrl+d. Le résultat de la série de commandes, appelée job, vous sera envoyé par mail juste après leur exécution.

Pour voir la liste des jobs en attente, utilisez la commande atq. Pour annuler un job, tapez atrm numéro_du_job.

Surveiller les connexions réseau du serveur “Humour”

  • netstat -lapute
  • netstat -taupe
  • netstat -nao
PDF Creator    Envoyer l'article en PDF   

Afficher les infos matériel sous Linux #CRC13 #TIPS

linux22

Questions de Olivier C : Comment obtenir les infos matériel en ligne de commande sous linux ?

infos sur le ou les processeurs  :  cat /proc/cpuinfo

infos carte mère et bios : dmidecode  et  lspci  et  lsusb

infos sur les périphériques montés : mount

Sinon il ya le fameux:

apt-get install lshw
root@home:~# lshw

Informations sur la machine

- La marque de mon PC
- Son numéro de série 
- Le modèle du PC

Informations concernant la carte mère

lshw me donne pour la carte mère :
- La référence de la carte mère
- Le constructeur de la carte mère
- Le numéro de série

Informations sur le bios

J’obtiens comme informations sur le bios :
- La version du bios
- Le fabriquant du bios

Caractéristiques du processeur

Pour le cpu la liste des informations que j’ai retenue est :
- La fréquence du processeur
- La marque du processeur
- Le socket du cpu
- La liste des instructions et des fonctionnalités supportées
- La fréquence du bus
- Les niveaux de cache du cpu et leurs tailles
- Le nombre de coeur
- La taille des instructions supportées (processeur 32bits ou 64 bits).

Informations sur la mémoire du pc

Concernant la mémoire vive du pc je retiens :
- La capacité totale de mémoire de la machine
- Le nombre de slot occupés et surtout le nombre de slot vides (utile pour prévoir un upgrade matériel sans démonter sa machine).
- La référence des barettes de ram
- La taille des barettes de mémoire
- La fréquence de la mémoire et même son temps de latence si vous avez de la chance

Autres informations intéréssantes

- Modèle, taille, et partitionnement des disques durs
- Liste du matériel pci et pci express (carte réseau, carte graphique, carte son …) avec les modèles et les constructeurs.

PDF    Envoyer l'article en PDF   

Introduction à Apache et Sécurisation de votre accés Web #RARE #CRC13

Apache est un serveur http libre, c’est un des serveurs http les plus utilisé sur Internet avec plus de 65% des sites d’Internet en Novembre 2011  (contre environ 20% pour IIS).

Apache est conçu pour prendre en charge de nombreux modules lui donnant des fonctionnalités supplémentaires : interprétation du langage PerlPHPPython et Ruby, serveur proxyCommon Gateway InterfaceServer Side Includes, réécriture d’URL, négociation de contenu, protocoles de communication additionnels, etc. Néanmoins, il est à noter que l’existence de nombreux modules Apache complexifie la configuration du serveur web. En effet, les bonnes pratiques recommandent de ne charger que les modules utiles : de nombreuses failles de sécurité affectant uniquement les modules d’Apache sont régulièrement découvertes.

On trouvera une documentation complète sur apache (en anglais) sur le site suivant :
http://httpd.apache.org/docs/.

Sur une distribution de la famille Debian pour installer Apache : apt-get install apache2

Pour installer php5 : apt-get install libapache2-mod-php5

Sur une distribution de la famille Debian lancer le service apache :
# /etc/init.d/apache2 start.
Pour vérifier que le service apache tourne :
# ps -ef|grep apache
Pour relancer apache après un changement de configuration, tapez :
# /etc/init.d/apache2 start.

La configuration globale d’apache s’effectue par modification du fichier de configuration /etc/apache2/apache2.conf. Apache pouvant gérer plusieurs serveurs, on trouve des compléments pour la configuration de chaque serveur dans /etc/apache2/site-enabled. Les fichiers de /etc/apache2/site-enabled sont inclus dans apache2.conf par un Include et suivent la même syntaxe. Les fichiers dans /etc/apache2/site-enabled correspondent aux serveurs activés et sont en fait un lien symbolique vers un fichier dans /etc/apache2/site-available, qui contient la liste de tous les serveurs disponibles. Par défaut, il n’y a qu’un seul serveur activé : le serveur par défaut. Ce qui suit décrit les principaux paramètres, et leur valeur attribuée par défaut à l’installation.

Dans apache2.conf:

DocumentRoot /var/www/html C’est le chemin par défaut du site Web

DirectoryIndex index.html index.php index.htm…Nom de la page d’index

Apache dans Webmin

Sécuriser Apache et son serveur

Tout d’abord Retour sur SSH qui va permettre d’accéder à votre serveur pour l’administrer. Merci a Alsacreation pour la personnalisation des scripts..

Configuration SSH

Afin de sécuriser l’accès SSH au serveur, éditons le fichier /etc/ssh/sshd_config. Nous allons changer le port de connexion par défaut pour éviter quelques attaques par bruteforce sur le port 22, qui est bien connu pour héberger ce service. N’oubliez pas de préciser ce nouveau port (dans Putty ou en ligne de commande ssh sous Linux) à la prochaine connexion.

vi /etc/ssh/sshd_config

Port 2222                  # Changer le port par défaut
PermitRootLogin no         # Ne pas permettre de login en root
Protocol 2                 # Protocole v2
AllowUsers dew             # N'autoriser qu'un utilisateur précis

Redémarrez le service SSH après ces modifications :

/etc/init.d/ssh restart

Alerte login Root

Vous pouvez éditer le fichier /root/.bashrc qui est exécuté au démarrage d’une sesion root pour envoyer un e-mail de notification. De cette façon, vous serez prévenu lorsqu’un login est effectué.

vi /root/.bashrc

Ajoutez la ligne (en modifiant l’adresse e-mail de destination) :

echo 'Accès Shell Root le ' `date` `who` | mail -s `hostname` Shell Root de `who | cut -d"(" -f2 | cut -d")" -f1` monitoring@test.com

Profitons-en pour un peu de personnalisation esthétique avec ces lignes :

alias ls='ls $LS_OPTIONS --color=auto'
alias ll='ls $LS_OPTIONS -al --color=auto'
alias vi='vim'

 Mise en place d’un Firewall (source alsacreations)

vi /etc/init.d/firewall

#!/bin/sh

# Vider les tables actuelles
iptables -t filter -F

# Vider les règles personnelles
iptables -t filter -X

# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP

# ---

# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# ---

# SSH In
iptables -t filter -A INPUT -p tcp --dport 2222 -j ACCEPT

# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 2222 -j ACCEPT

# DNS In/Out
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

# NTP Out
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

Si vous hébergez un sevreur web (Apache) :

# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT

# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT

Si vous hébergez un serveur FTP :

# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT

# FTP In
modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Si vous hébergez un serveur de mail avec SMTP, POP3 et IMAP :

# Mail SMTP:25
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

# Mail POP3:110
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

# Mail IMAP:143
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

# Mail POP3S:995
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

N’oubliez pas de tester vos régles !!! Exemples, elles pourraient vous empêcher d’accéder à votre accés ssh si elles sont trop restrictives.

N’oubliez pas non plus de redémarrer le sevice firewall aprés les modifs..

######################################################################

IPtables / Netfilter

IPtables (associé à Netfilter) est un des meilleurs firewalls pour Linux, et certainement le plus répandu. Vous pourrez trouver de nombreux scripts de configuration à son sujet. En voici un, à adapter à votre configuration. A tout instant, utilisez la commande iptables -L -v pour lister les règles en place.

Celles-ci portent sur 3 chaînes : INPUT (en entrée), FORWARD (dans le cas d’un routage réseau) et OUPUT (en sortie). Les actions à entreprendre sont ACCEPT (accepter le paquet), DROP (le jeter), QUEUE et RETURN.

Arguments utilisés :

  • i : interface d’entrée (input)
  • i : interface de sortie (output)
  • t : table (par défaut filter contenant les chaînes INPUT, FORWARD, OUTPUT)
  • j : règle à appliquer (Jump)
  • A : ajoute la règle à la fin de la chaîne (Append)
  • I : insère la règle au début de la chaîne (Insert)
  • R : remplace une règle dans la chaîne (Replace)
  • D : efface une règle (Delete)
  • F : efface toutes les règles (Flush)
  • X : efface la chaîne
  • P : règle par défaut (Policy)
  • lo : localhost (ou 127.0.0.1, machine locale)

######################################################################

Fail2ban

Fail2ban est un script surveillant les accès réseau grâce aux logs des serveurs. Lorsqu’il détecte des erreurs d’authentification répétées, il prend des contre-mesures en bannissant l’adresse IP grâce à iptables. Cela permet d’éviter nombre d’attaques bruteforce et/ou par dictionnaire.

Installation

apt-get install fail2ban

Configuration

vi /etc/fail2ban/fail2ban.conf

loglevel
Niveau de détail des logs (défaut 3)
logtarget = /var/log/fail2ban.log
Chemin vers le fichier de log (description des actions entreprises par fail2ban)

Les services à monitorer sont stockés dans jail.conf. Il est recommandé d’en effectuer une copie nommée jail.local qui sera automatiquement utilisée à la place du fichier exemple.

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

vi /etc/fail2ban/jail.local

Quelques paramètres globaux :

ignoreip = 127.0.0.1
Liste des adresses IP de confiance à ignorer par fail2ban
bantime = 600
Temps de ban en secondes
maxretry = 3
Nombre d’essais autorisés pour une connexion avant d’être banni
destmail monitoring@test.com
Adresse e-mail destinataire des notifications
action
Action à entreprendre en cas de détection positive (voir dans /etc/fail2ban/action.d/)

Chaque section possède ses propres paramètres qui prennent le pas sur les globaux s’ils sont mentionnés :

enabled
Monitoring activé (true) ou non (false)
maxretry, bantime, ignoreip, destmail
Voir ci-dessus
port
Port IP concerné
logpath
Fichier de log à analyser pour détecter des anomalies
filter
Filtre utilisé pour l’analyser du log

Les filtres par défaut sont stockés dans /etc/fail2ban/filter.d. Ils contiennent en général une instruction failregex suivie d’une expression régulière matchant la détection d’une authentification erronée. Par exemple pour le service Courier :

failregex = LOGIN FAILED, ip=[<HOST>]$

Note : Celle-ci peut être précisée directement dans jail.local à la section appropriée pour prendre le pas sur la directive filter.

Modifiez les ports le cas échéant dans la section ssh si vous avez suivi la recommandation ci-dessus…

enabled = true
port    = 2222

Après modification de la configuration, n’oubliez pas de redémarrer fail2ban : /etc/init.d/fail2ban restart

Rkhunter

Rootkit Hunter

Rootkit Hunter est un programme de détection de rootkits. Vous pouvez l’installer grâce à :

apt-get install rkhunter

Il procédera à des détections journalières anti-rootkits et enverra des notifications par e-mail si nécessaire. Il est conseillé de l’installer très tôt car il calcule l’empreinte MD5 des programmes installés afin de détecter d’éventuels changements. Editez /etc/default/rkhunter pour indiquer l’adresse de notification et l’exécution journalière :

vi /etc/default/rkhunter

REPORT_EMAIL="monitoring@test.com"
CRON_DAILY_RUN="yes"

En cas de fausses détections positives sur des répertoires ou fichiers existants et sains, éditez /etc/rkhunter.conf pour les ajouter à la liste des éléments autorisés.

vi /etc/rkhunter.conf

ALLOWHIDDENDIR=/dev/.udev
ALLOWHIDDENDIR=/dev/.static

Vous pouvez également utiliser chkrootkit qui est un équivalent.

Empêcher l’accès aux sous dossiers

Bloquer l’accès à PhpMyAdmin par exemple.

Sur un reverse proxy

/etc/apache2/apache2.conf
RewriteCond %{THE_REQUEST} /phpmyadmin/
RewriteRule ^.*$ - [G,L]

Via le .htaccess

Renvoie un code 403.

RewriteRule ^phpMyAdmin - [F]

Empêcher l’accès à la racine de apache

/etc/apache2/sites-available/default
et /etc/apache2/sites-available/default-ssl
<Directory /var/www/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                deny from all
</Directory>

Désactiver le listage des répertoires

Changer « Indexes » en « -Indexes ».

/etc/apache2/sites-available/default
/etc/apache2/sites-available/default-ssl
et les configurations des vhosts

Attribuer les permissions correctement

cd /var/www
chown www-monsite:www-monsite -R *
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
PDF Writer    Envoyer l'article en PDF   

Afficher les services Actifs sous Linux #CRC13 #RARE

Un tout petit peu plus complète que la commande d’hier ;)

service --status-all|grep -i pid

Sinon après un peu de recherche sous debian il ya:

apt-get install chkconfig
# chkconfig -l 

# chkconfig -l

acpid                     0:off  1:off  2:on   3:on   4:on   5:on   6:off
alsa-utils                0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
atd                       0:off  1:off  2:on   3:on   4:on   5:on   6:off
bluetooth                 0:off  1:off  2:on   3:on   4:on   5:on   6:off
bootlogd                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
bootlogs                  0:off  1:on   2:on   3:on   4:on   5:on   6:off
bootmisc.sh               0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
checkfs.sh                0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
checkroot.sh              0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
console-setup             0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on
cpufrequtils              0:off  1:off  2:on   3:on   4:on   5:on   6:off
cron                      0:off  1:off  2:on   3:on   4:on   5:on   6:off
dbus                      0:off  1:off  2:on   3:on   4:on   5:on   6:off
...

Significations:

* 0 System Halt * 1 Single user * 2 Full multi-user mode (Default) * 3-5 Same as 2 * 6 System Reboot


PDF Download    Envoyer l'article en PDF   

Partage NFS sous Debian #CRC13

Le protocole NFS (Network File System) permet de partager des fichiers dans les réseaux Unix. A ne pas confondre avec : ;)

Configuration côté Serveur

On commence par installer NFS sur le serveur

apt-get install nfs-kernel-server

Pour partager un répertoire:

Editez le fichier /etc/exports et rajoutez la ligne suivante pour partager le répertoire /home/test/ à la nomdelamachine.tontonfred.com :

/home/test nomdelamachine.tontonfred.com(rw,root_squash)

On relance le service

/etc/init.d/nfs-kernel-server reload

 

  • secure : cette option impose l’utilisation d’un port réservé (inférieur à 1024) comme origine de la requête.
  • rw : exporte le répertoire en lecture / écriture
  • ro : exporte le répertoire en lecture seule
  • async : le serveur NFS va pouvoir répondre que le fichier a été écrit sur le support de stockage, même si cela n’a pas encore été fait. Améliore les performances du serveur.
  • sync : le serveur NFS va écrire physiquement les fichiers sur le support de stockage avant de répondre. Réduit les performances du serveur.
  • root_squash : option par défaut. transforme les requètes provenant de l’UID 0 / GID 0 vers le UID et GID du compte anonyme.
  • no_root_squash : ne transforme pas les requètes provenant de l’UID 0 / GID 0. A utiliser avec précaution.
  • all_squash : transforme tous les UID/GID vers le UID/GID de l’utilisateur anonyme
  • anonuid : permet de spécifier le UID de l’utilisateur anonyme.
  • anongid : permet de spécifier le GID de l’utilisateur anonyme.

 

Configuration côté Client

mount -t nfs <nom ou adresse IP du serveur NFS>:<répertoire partagé> <point de montage>

mount -t nfs tontonserveur:/home/partage /mnt

Si on veut remonter le dossier à chaque boot du client :

on edite le fichier /etc/fstab

Et on rajoute :

tontonserveur:/home/partage /mnt nfs defaults 0 0

 

Sources :Alexis de Lattre ;Debian.org
Word To PDF    Envoyer l'article en PDF   

Introduction à Samba sous Gnu/Linux #CRC13

Samba est un logiciel libre qui supporte le protocole CIFS (Common Internet File System), anciennement appelé SMB (Server Message Block), sous licence GNU GPL 3, il est utilisé pour partager des ressources (fichiers, imprimantes …) à travers un réseau entre des postes Microsoft Windows et un serveur de fichier sous Linux.

À partir de la version 3, on peut intégrer un serveur Samba à un domaine Microsoft Windows Server, soit en tant que contrôleur de domaine principal (PDC) ou en tant que membre d’un domaine. On peut également le joindre à un domaine Active Directory. Il fonctionne sur la plupart des systèmes Unix, comme GNU/Linux, Sun Solaris, AIX et les variantes de BSD, y compris MacOSx Server (qui a été ajouté au client Mac OS X en version 10.2). Samba fait partie intégrante de presque toutes les distributions GNU/Linux.

Voici la liste des ports TCP et UDP utilisés par les protocoles SMB et CIFS pour le partage de fichiers et d’imprimantes.

Port Protocole Nom du service
135 TCP et UDP Localisateur de services RPC
137 TCP et UDP NetBIOS Name Service (nbname)
138 UDP NetBIOS Datagram Service (nbdatagram)
139 TCP NetBIOS Session Service (nbsession)
445 TCP et UDP Services de dossiers partagés Windows

Installation de Samba pour quelques grandes familles de distribs :

Si vous êtes sous Mandriva la famille Mandrake :

# urpmi samba samba-common samba-client

Sous Fedora et la famille Red-hat :

# yum install samba samba-common samba-client

Sous Debian, Ubuntu, linuxmint… :

# apt-get install samba samba-common smbclient smbfs samba-doc

Sous Slackware :

Samba est déjà présent sur le CD-ROM, l’installez en faisant :

# installpkg /chemin_du_fichier/samba-xxx.tgz

  • ATTENTION AUX DIFFERENCES EN FONCTION DES DISTRIBUTIONS
  • ATTENTION AUX DIFFERENTES VERSIONS DE SAMBA

Une fois SAMBA installé il faut se rendre à l’endroit ou se trouve le fichier de configuration.

Dans /etc ,dans /etc/samba en fonction de la distribution.

Le fichier de configuration principale est: smb.conf

Il suffit ensuite d’utiliser un éditeur de fichier pour éditer, modifier, compléter celui-ci.

ex: vi /etc/samba/smb.conf

La commande « testparm », sert à vérifier que le fichier de configuration de samba ne comporte pas d’erreurs. Elle sert également à connaitre le rôle de son serveur de fichier Samba. Vous pouvez lancer cette commande de n’importe ou.

La section [global] contient les options communes à tous les répertoires partagés.

Voici quelques options utilisables :

workgroup 
Le nom du groupe de travail.
server string 
La description du serveur, qui apparaitra à coté de son nom dans l’explorateur Windows. Si la description contient la variable %h, il sera remplacé par le nom d’hôte de la machine.
encrypt passwords Attention aux soucis en fonction des versions
Détermine si les mots de passe doivent être cryptés avant d’être transmis. C’est fortement recommandé et tous les systèmes Windows à partir de 98 et NT4 SP3 utilisent cette fonctionnalité par défaut.
log file 
Le nom du fichier qui contiendra le journal des activités du serveur. On peut avoir un journal par machine client en utilisant %m dans le nom du fichier. Le %m sera remplacé par le nom de la machine client.
max log size 
Taille maximale du fichier journal, en Ko.
Ensuite on retrouve les partages sous cette forme:[<nom du partage>] 

Les paramètres principaux sont les suivantes :

comment 
La description du répertoire partagé.
path 
Le chemin du répertoire partagé. C’est le contenu du répertoire indiqué qui sera partagé.
read only 
Détermine si les clients pourront écrire ou non dans le répertoire partagé.
public 
Autoriser ou non les connexions sans mot de passe.
valid users 
Liste des seuls utilisateurs autorisés à se connecter séparés par des espaces. Si on veut autoriser tous les utilisateurs il ne faut pas mettre cette option.
browseable 
Détermine si le partage apparaitra dans la liste des partages du serveur.

De nombreuses autres options sont disponibles. Elles sont détaillées dans la page de man de smb.conf

EXEMPLE

[global]
workgroup = CRC12
server string = Serveur Samba sur %h
encrypt passwords = true
log file = /var/log/samba/log.%m
max log size = 1000
socket options = TCP_NODELAY
[cdrom]
comment = Samba server's CD-ROM
read only = yes
locking = no
path = /cdrom
guest ok = yes
[partage]
path = /media/d/partage
available = yes
browsable = yes
public = yes
writable = yes
[tontonfred]
comment = Site web
path = /var/www/tontonfred.net
read only = no

Si vous décidez de rendre privé un partage :( Commande pour créer un user Samba)

smbpasswd -a <nom de l’utilisateur>

 

Pour accéder aux partage sous Windows, il suffit d’ouvrir le voisinage réseaux d’une station Windows et de vérifier si la machine y est.

Attention dans Authentification :

security = share  =========>Accès sans mot de passe

security = user   ==========>Accès avec demande de mot de passe

Cas particulier: accéder à un dossier partagé par Windows 7 (Source Ubuntu-fr)

Il est possible que vous ayez de la difficulté à accéder à des dossiers partagés par un ordinateur fonctionnant avec Windows 7, même en saisissant correctement vos informations d’identification du poste distant. Ceci est dû apparemment à une incompatibilité entre les modes departage de Windows 7 et ceux des précédentes versions de Windows (sur lesquels se base Samba). Pour corriger la situation, vous devez modifier certains paramètres concernant la gestion des partages par Windows 7.

  1. Dans votre ordinateur fonctionnant sous Windows 7, ouvrez une session à l’aide d’un compte d’administrateur;
  2. Ouvrez l’éditeur de base de registre. Appuyez sur le bouton Démarrer, puis dans le champ Rechercher les programmes ou fichiers, inscrivez regedit et appuyez sur la touche [Entrée] de votre clavier;
  3. Développez l’arborescence jusqu’à la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\ puis:
    • Modifiez la valeur de la clé everyoneincludesanonymous de 0 vers 1;
    • Modifiez la valeur de la clé NoLmHash de 1 vers 0;
  4. Développez l’arborescence jusqu’à la clé de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters, puis:
    • Modifiez la valeur de la clé restrictnullsessaccess de 1 vers 0;
  5. Redémarrez votre ordinateur.

Pour se connecter en ligne de commande à un partage à partir de Linux, on peut utiliser la commande:

smbclient //<nom du serveur>/<nom du partage> -U <utilisateur>

Il est également possible de monter un partage Samba avec

smbmount //<nom du serveur>/<nom du partage> <répertoire local>

Différentes options sont disponibles. On peut les consulter dans man smbclient et man smbmount.

Par exemple, pour monter un répertoire “public” il faut préciser qu’il faut se connecter en guest :

smbmount //serveur/partage /point_de_montage -o guest

Même chose à partir d’un Windows Client

net use z: \\10.0.0.10\monrepertoire  monpassword /user:toto /persistent:no

 

Le fonctionnement de Samba repose principalement sur trois services (daemons): smbd , nmbd et winbindd

  • smbd 
    Ce service est celui qui permet le partage des fichiers et des imprimantes. Son paramètrage se fait par l’intermédiaire du fichier deconfiguration /etc/samba/smb.confsmbd vérifie toutes les trois minutes ce fichier pour prendre en compte les modifications ; pour une application immédiate des changements, relancez ce service
  • nmbd 
    Ce service sert à l’envoi et la découverte des noms NetBIOS (nom des machines) dans le réseau local. Il est également utilisé pour la résolution de noms et la fonction WINS, lorsque votre serveur Samba est le serveur d’un réseau NetBIOS. Ses paramètres sont aussi renseignés dans le fichier de configuration /etc/samba/smb.conf.
  • winbindd 
    Ce service n’est utilisé que lorsqu’un serveur Samba intègre un domaine NT ou pour gérer les relations d’approbation entre le serveur Samba et un domaine Windows / Active Directory.

Quand vous effectuez une modification dans le fichier smb.conf, il faut redémarrer le service Samba en relation avec la modification.

/etc/init.d/samba restart

service samba restart

/etc/init.d/smbd restart

Pour optimiser le fonctionnement de Samba on peut utiliser des variables d’environnement:

Variables du client
%a Architecture du client
Exemple: Win95, WfWg, WinNT, Samba …
%I Adresse IP du client
%m Nom NetBios du client
%M Nom DNS du client
Variables utilisateur
%g Groupe primaire de l’utilisateur %u
%H Répertoire home de l’utilisateur %u
%u Nom de l’utilisateur Unix courant
Variables de partage
%P Racine du partage actuel
%S Nom du partage actuel
Variables du serveur
%h Nom DNS du serveur Samba
%L Nom NetBios du serveur Samba
%v Version de Samba
Variables diverses
%T La date et l’heure courantes

Pour configurer Samba il existe des interfaces graphique, soit propre à la distribution soit des outils tiers que l’on rajoute.Comme Webmin et Swat

Samba Contrôleur de Domaine

Modifier les paramètres important du smb.conf :

[global]
# Nom du groupe de travail ou du domaine
workgroup = tontonfred.net

# Nom qui apparait lors du parcours reseau (%h = hostname)
server string = %h

# Configuration des logs du serveur
log file = /var/log/samba/%m.log

# Taille maximal des logs (en kb)
max log size = 1000

# Mode d'authentification
# - share = ok pour tous
# - user = oblige d'avoir un compte sur le serveur samba
# - domain = pour joindre un domaine
security = user

# Activation du cryptage des mots de passe
encrypt passwords = yes

#Emplacement du fichier des utilisateurs samba
smb passwd file = /etc/samba/smbpasswd

# L'option ci-dessous definit Samba comme le Controleur de domaine principal (maitre).
domain master = true

# Le niveau d'OS indique l'importance de ce serveur en tant que candidat au role de controleur principal lorsqu'une élection est provoquée
os level = 255

# Permettre d'utiliser les profils errants sur le serveur samba
domain logons = Yes

# Gestion de l'authentification sur le domaine
wins support = no

Redémarrer le service Samba et tester le rôle avec testparm pour avoir :

Le plus important est ROLE_DOMAIN_PDC

Pour joindre un client Xp ou Seven, il faut tout d’abord avoir créer un compte samba à l’utilisateur root, soit: smbpasswd -a root

ensuite il faut créer des comptes machines pour les pc sous Seven/xp, cad :
adduser –force-badname nomduclientwindows$ 
smbpasswd -a -m nomduclientwindows (sans le $)

Ensuite il faut joindre le domaine avec le client Windows avec l’utilisateur root comme vous avez l’habitude de le faire avec un Domaine Windows.

N’oubliez pas de modifier le registre de Seven

Si problème avec Xp modifier le registre comme ceci :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\parameters
“RequireSignOrSeal”=dword:00000000

Pour les visiteurs lisant ce billet, attention on ne gére pas dans cette exemple les partages administratifs de Windows pour les profils itinérants .Ils seront vus ici dans un autre billet ultérieurement.

Sources:

  • http://fr.wikibooks.org/wiki/Administration_r%C3%A9seau_sous_Linux/
  • http://www.samba.org/
  • http://doc.ubuntu-fr.org/samba
PDF Creator    Envoyer l'article en PDF   

Installation Sme-Server #LINUX Services réseau #CRC13

THESMESERVER

Depuis quelques semaines, je commence à migrer les serveurs de messagerie encore en prod tournant sous SME-SERVER. Cette distribution a toujours répondu à mes attentes mais depuis quelques mois la fréquence des mises à jour et releases a diminué et pour la sécurité j’ai décidé de l’abandonner. C’est dommage la communauté Française de cette distrib aurait bien besoin d’un coup de pouce pour revenir dans les distributions “Pro” incontournables.

Edit du 14/01/2013 Depuis ce billet une nouvelle version est téléchargeable depuis Juillet 2012. Et les dernières MAJ majeures datent de AOUT 2012 .. A l’heure d’Aujourd’hui il me reste encore 2 SME en prod avec depuis ce billet 0 problème..

smeserver1

Toutefois c’est une distribution robuste, facile à installer, facile à administrer et elle constitue un excellent point de départ quand on parle de services réseau. C’est pourquoi j’ai décidé de vous en parler, et décider de faire notre premier TD d’introduction “Serveur Linux” avec cette distribution.

On distingue 2 modes de fonctionnement pour cette distribution :( site officiel)

Serveur uniquement : SME ne gère pas la connexion à Internet ; c’est généralement un autre système (passerelle et pare-feu) déjà en place qui en a la charge. Au niveau des fonctionnalités, SME ne gère donc pas la sécurité du réseau et n’offre alors que ses fonctions de serveur, à savoir serveur Web, serveur de courrier, partage de fichiers (par FTP, Samba ) etc..

Serveur et passerelle : SME gère la connexion globale à Internet ; c’est par lui que vont transiter toutes les données entre les ordinateurs de votre réseau local et Internet. Ainsi, en plus de partager une connexion unique à Internet pour toutes vos machines, SME va s’intercaler de façon transparente dans les transferts de données afin de protéger les accès à votre réseau local et de minimiser les risques d’intrusion. Les fonctionnalités offertes par SME sont alors les mêmes qu’en mode serveur uniquement et sont, pour la plupart, directement accessible depuis Internet.

Voici, de façon simplifiée, les fonctionnalités les plus intéressantes qu’apporte cette distribution (ce n’est qu’un aperçu) :

  • Installation et configuration d’une simplicité exemplaire
  • Prise en charge du RAID (1, 5 et 6) logiciel
  • Installation de logiciels et mises à jour aisées grâce au système des packages RPM
  • Personnalisations du système faites à partir de templates simples à créer ou à modifier
  • Possibilité d’administrer complètement le serveur à distance à partir de la console du serveur (en passant par SSH) ou du gestionnaire du serveur (depuis n’importe quel navigateur)
  • Connexion et reconnexion automatique à Internet, que ce soit en ADSL (protocoles PPPoE et DHCP intégrés) comme en RTC et également avec certaines lignes spécialisées
  • Possibilité d’utiliser certains serveurs DNS dynamique quand on héberge soi-même un site sur une connexion avec adresse IP dynamique
  • Règles de pare-feu (firewall) pré-configurées pour bloquer certaines attaques extérieures. Globalement, l’aspect sécurité est pris en compte à tous les niveaux
  • Serveur HTTP pour créer ses propres sites Web (éventuellement sécurisés). Perl, PHP4 et MySQL sont intégrés dans la distribution pour “dynamiser” vos sites
  • Serveur FTP pour partager vos données sur Internet
  • Serveur de messagerie sécurisé pour envoyer et recevoir des mails directement depuis chez soi, avec possibilité d’accéder à distance (via Internet, par exemple) à ses comptes de messagerie depuis un client de messagerie ou une interface WebMail sécurisée
  • Filtres antivirus et anti-pourriels pour la messagerie qui permettent de se prémunir de ces fléaux de plus en plus répandus
  • Serveur de fichier Samba et AppleShare compatibles Windows et Machintosh
  • Des clients HTTP, FTP, NTP, LDAP, messagerie (avec un système d’analyse de logs) permettent parfois de se sortir de situations délicates
  • Le système des i-bays (concept facilitant la création de serveurs virtuels) apporte une souplesse d’utilisation et une solution à de nombreux problèmes pour des réseaux ayant un grand nombre d’utilisateurs, ou pour héberger plusieurs sites
  • Redirection de certains ports entrants vers des machines spécifiques
  • Possibilité de faire des sauvegardes sur bandes
  • etc.

Mise en place de la structure du TD :

TDSME

Installation d’une SME SERVER (Environ 15 min)

Voici les principales étapes :

Après le redémarrage, on configure le serveur.

C’est ici que l’on choisit le mode passerelle ou serveur uniquement.

Attention par défaut le rôle DHCP est activé. Pensez à le désactiver si vous n’en avez pas besoin.

Après redémarrage on obtient ce prompt:

En se connectant en admin on obtient cette fenêtre :

En se connectant en root on obtient cette fenêtre :

Pour effectuer une première configuration il vous suffit de vous connecter à partir d’un navigateur internet pouvant atteindre (via TCP/IP) votre serveur.

Le mot de passe de “root” est celui de “admin”

Pour se connecter en web il faut utiliser “admin”

Comme ceci: https://IP_du_Serveur_SME/server-manager

Vous obtiendrez cette fenêtre :

Voici quelques captures d’écran qui présentent des fonctionnalités de la Sme-Server

Il est possible d’effectuer des sauvegardes à partir de l’interface http

Il est possible également de visualiser les logs de la machine y compris les logs de la partie messagerie.

On configure très facilement un accès VPN, SSH, FTP…

Directement on peut également configurer IMAPs, POPs et l’accès Webmail (Horde)

On trouve sur cette fenêtre un récapitulatif des adresses importantes du serveur.

Sur une Sme Server d’origine nous avons les fonctionnalités d’origine mais il est tout à fait possible de rajouter pratiquement n’importe quelles fonctionnalités. On peut même ajouter ces fonctionnalités dans l’interface http quand cela s’avère utile.

Sources: http://smeserver.fr/index.php Captured by tontonfred & Louis

PDF    Envoyer l'article en PDF   

Intro manipulation Shell #CRC13

 

Exo 1 Déplacements dans une arborescence de répertoires et listage du contenu

  • Quel est votre répertoire courant ? Placez-vous dans votre répertoire principal ou bien la racine (si ce n’est pas déjà le cas) Affichez le contenu de votre répertoire principal

 

  • Utilisation de l’aide en ligne :
    consultez le manuel en ligne pour voir les différentes options de la commande ls
  • Regardez le contenu du premier niveau de l’arborescence Unix

 

Exo 2 Création et manipulation de répertoires

  • Replacez-vous dans votre répertoire principal
    Créez un répertoire d’exercice de nom ex_unix
  • Descendez dans ce répertoire
    créez-y deux sous-répertoires dir1 et dir2

  • Déplacez-vous dans le répertoire dir2 Créer le fichier fich

  • Déplacez-vous dans le répertoire dir2
    créé précédemment, déplacez le fichier dans le répertoire dir1

  • Détruisez le répertoire dir2. Opération qui se fait en deux étapes (à moins d’utiliser la commande rm -r) : destruction des fichiers se trouvant dans le répertoire destruction du répertoire proprement dit

Exo3 Manipulation et visualisation de fichiers

  • Créer un fichier 1.txt
    Expérimentez les différentes commandes de visualisation de fichiers-texte que sont : cat, more, head et tail
  • Concaténez tous vos fichiers texte sur un seul fichier de nom visu.txt Vérifiez le résultat en affichant le fichier ainsi créé

  • Faites une copie du fichier visu.txt sous le nom vis2.txt

  • La commande ln permet de réaliser un lien avec un autre fichier ou répertoire.
    Créez un lien pour le fichier fichier1

PDF Writer    Envoyer l'article en PDF   

Système de fichiers, Arborescence, périphériques sous LINUX #CRC13

Système de Fichiers

Les données sont normalement présentées à l’utilisateur et aux programmes selon une organisation structurée, sous la forme de répertoires et de fichiers. Pour pouvoir stocker ces données structurées sur un périphérique, il faut utiliser un format qui les représente sous la forme d’une succession de blocs de données : c’est ce qu’on appelle un système de fichiers.

Les systèmes de fichiers les plus courants sont la fat (disquettes et clefs usb), ntfs (Windows), Ext2, Ext3 et Ext4 (Linux), iso 9660 (cd) et udf (dvd).

Pour votre info:

Le nombre de répertoires d’un répertoire est illimité en ext4. Il était de 32000 en ext3.

Système de fichier Taille maximum d’un fichier Taille maximum du système de fichier
Ext4 16 To 1024 Po
Ext3 2 To 16 To
ReiserFS 3 8 To 16 To
XFS 8192 Po 8192 Po
ZFS (Solaris) 16384 Po 16384 Po

 L’arborescence

Contrairement au système de fichiers Windows, il n’existe pas de lecteurs A:, C:, etc.

L’entrée du système de fichiers se situe à la racine, notée /.

Ensuite, il existe un certain nombre de répertoires présents par défaut. Le Tableau 10.1 explique les fonctions des plus importants d’entre eux (pour plus de détails, vous pourrez regarder le manuel man hier une fois votre installation effectuée).

Les périphériques

Une des originalités des systèmes Unix est leur manière d’accéder aux périphériques. Chaque périphérique du système (souris, disque dur, lecteur de cd, carte son, etc.) est représenté par un fichier spécial (Tableau 10.2). Écrire dans un tel fichier va envoyer des commandes au périphérique. Lire un tel fichier permet d’en recevoir des données. C’est une méthode très simple qui a fait ses preuves !

Les partitions

Pour connaître la position de vos disques durs ide ou sata et de vos lecteurs de cd (primary master, primary slave, secondary master ou secondary slave), le plus simple est de regarder dans le bios.

Vous pouvez aussi le savoir à partir des branchements des nappes ide et des cavaliers sur les disques durs ou les lecteurs de cd : primary correspond à la première nappe ide, et secondary à la seconde ; sur chaque nappe, on peut brancher au plus deux périphériques, un master et un slave (cela se règle avec un cavalier sur le périphérique).

Sur un disque dur ide ou sata, les partitions sont numérotées de la façon suivante :

primaires apparition sur le disque de 1 à 4
lecteurs logiques apparition dans la partition étendue de 5 à 20

Exemples :

Si vous avez 4 partitions primaires, elles sont numérotées dans l’ordre hda1/sda1 (hda1 pour un disque ide / sda1 pour un disque sata), hda2/sda2, hda3/sda3 et hda4/sda4.

Si vous avez dans l’ordre : 2 partitions primaires, 1 partition étendue avec 3 lecteurs logiques dedans, et 1 dernière partition primaire à la fin, ça donne :

  • Les deux premières partitions primaires sont hda1/sda1 et hda2/sda2,
  • La partition étendue est hda3/sda3,
  • Les lecteurs logiques de la partition étendue sont, dans l’ordre, hda5/sda5, hda6/sda6 et hda7/sda7,
  • La dernière partition primaire est hda4/sda4.
Extrait Doc officiel Debian
PDF Download    Envoyer l'article en PDF   

Petit test de Fedora 18 en attendant le dégel …

Image de prévisualisation YouTube

Et test de SAMBA 4 for Active Directory ….;)

samba4

Pour installer les tools VM ou fusion (Attention à votre version de noyau)

Avant de lancer la compilation des tools :( numéro de kernel a adapter à votre install)

sudo yum install kernel-*
sudo cp /usr/src/kernels/3.7.2-201.fc18.x86_64/include/generated/uapi/linux/version.h /lib/modules/3.7.2-201.fc18.x86_64/build/include/linux/

 

 

sambawebmin

Word To PDF    Envoyer l'article en PDF