Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Menu Linux

Menu Windows

iPhone

Raspberry

I. Partie LINUX

  • Préliminaire

Introduction Linux

LiveCD Linux

  • Installation

LiveCD Ubuntu

Installation Ubuntu

Ubuntu Studio

Cubuntu

Ubuntu-Mate

Ubuntu sur Netbook

Installation sur support USB

Installation sur support USB

Installation sans CD-ROM

Installation Second Ubuntu

Réinstallation sur mono-partition

Installations, mises à jour

Réinstallation/Migration version Ubuntu

Conversion Desktop->Serveur

Applications Ubuntu

Documentation-Aides

  • Aller plus loin

Arborescence Ubuntu

Recherche Ubuntu

Edition Linux

Shell/Terminal/Super Utilisateur

Commandes Linux (1)

Commandes Linux (2)

Utilisateurs, groupes, droits

Imprimante/Scanner Linux

Compression-Archivage

Déplacer le /home

Fusion de deux /homes

Changement d'ordinateur

Bureau-Gnome

Environnement graphique

Imagemagick

Dokuwiki

Second Dokuwiki

  • Réseau

Connexion Linux

Réseau Linux

Partage connexion

Paramétrage routeur

Répéteur Wifi

Analyse Réseau - Gestion parc

Partages Linux

Partage anonyme Samba

Exemple Partage Samba

Fichier partage Samba

Exemple Réseau NFS

Webmin

Usermin

Transferts Linux

Contrôle à distance

Contrôle à distance Linux

Authentification SSH

Ajaxplorer

Analyse Réseau - Gestion parc

Thunderbird sur un réseau

Inventaire informatique

Disque-Réseau

Serveur NAS DNS320

Disque USB

Serveur Linux

Serveur Ubuntu

Changement de serveur

Diffusion Multmedia

Serveur Proxy

Serveur de Proxy

Management serveur HP Proliant G6

OpenVPN

Sécurité Linux

Wake-on-LAN

Migration Linux Petite entreprise

Ubuntu One

  • Courrier

Courrier en Terminal

Hébergement comptes

  • Utiliser des applications Windows ou d'autres OS

Virtualisation (1): VirtualBox

Virtualisation (2): Proxmox

Wine: Applications Windows sous Linux

  • Téléphonie VOIP

Asterisk, TrixBox

Elastix

Routeur double Wan

  • Maintenance, dépannage

Sauvegarde

Sauvegarde Linux(1): Backup-Manager

Sauvegarde Linux(2)

Sauvegarde Partitions

Sauvegarde Nuage

Synchronisation Linux

Automatisation tâches cron

Rsyncd

Dépannage Ubuntu

Antivirus Linux

Spam & Publicité

Grub

Grub2

Grub-rescue

Partitions Linux

Fichier fstab

LVM

RAID

Installation RAID1

Installation RAID sur installation Ubuntu

Récupération de fichiers, partitions

  • BDD

BDD Linux

Access/MySQL

Talend Open Studio

II. Partie commune

Présentation

  • Internet/Réseau

Navigation Internet

Thunderbird (1)

Thunderbird (2)

Thunderbird (3)

Courrier GMail

Jabber

Fonctions Freebox

  • Création de site/blog

Joomla

Blog: Dotclear

Dreamweaver

  • Bureautique

OpenOffice/LibreOffice

  • Graphisme

Picasa

  • Photo

Photo: Théorie

Photo: Pratique

Diaporama, site photos

Retouche: Gimp

  • Gravure

Gravure CD

  • Vidéo

YouTube

  • BDD

BDD Linux

Access/MySQL

Gestion Bibliothèque/Archives

Généalogie

Redmine

III. Partie WINDOWS

  • Préliminaire

Logiciels Windows

Utilitaires Windows

Commandes DOS

  • Internet

Connexion Internet

Export OutlookExpress

Changement d'ordinateur

Agenda

Exploration/Dépannage Internet

  • Réseau

Partage Connexion

Partage Fichiers

Partage Imprimante

Transfert Fichiers

Transfert Windows

Analyse Réseau Windows

  • Dépannage

Prévention-dépannage Windows

  • Divers

Anti-virus

Installation périphérique Windows

Partitions Windows

Organisation disque dur

Sauvegarde-Synchronisation Windows

Putty

Contrôle à distance

BDD Windows

IV. Divers

Liseuse Kindle

securite_linux

Sécurité Linux

Les principales menaces effectives qui pésent sur un ordinateur ou un réseau local sont les suivantes:

  • un utilisateur du système: l'énorme majorité des problèmes liés à la sécurité provient de l'utilisateur lui-même, insouciant ou négligent,
  • une personne mal intentionnée: quelqu'un parvient à s'introduire, et à accéder ensuite à des données ou à des programmes en utilisant par exemple des failles connues et non corrigées dans les logiciels,
  • un programme malveillant: un logiciel destiné à nuire ou à abuser des ressources du système est installé (par mégarde ou par malveillance) sur le système, ouvrant la porte à des intrusions ou modifiant les données ; des données personnelles peuvent être collectées à l'insu de l'utilisateur,
  • un sinistre (vol, incendie, dégât des eaux).

Heureusement, le monde Linux est relativement bien pourvu du nécessaire pour parer aux attaques.

Mises à jour

Sous Linux, comme sous Windows, il est essentiel d'avoir un système à jour. L'avantage de Linux est que ces mises à jour sont fréquentes et rapides à faire, il faut les prendre à chaque fois qu'elles sont proposées.

Mots de passe

Il est important d'utiliser un bon mot de passe pour éviter qu'il ne soit découvert par des algorithmes conçus pour cet effet. Donc bannir tous les mots du dictionnaire, les noms ou prénoms à l'endroit ou à l'envers. Choisir un mot de passe de 8 caractères au minimum constitué de lettres (minuscules/Majuscules) et de chiffres. Il est un peu illusoire d'ajouter des caractères spéciaux (+, (, #…) car il devient trop compliqué à retenir et on est tenté de le marquer quelque part.

Pour changer le mot de passe de quelqu'un

sudo passwd <login>

Nota: Moyens rapides d'évaluer son mot de passe:

Résultats à prendre quand même avec des pincettes. Ne pas y mettre celui que l'on veut utiliser

Pwgen

  • Pour fabriquer ces mots de passe, on peut utiliser pwgen dont les options nombreuses permettent de l'adapter au but recherché. Faire un man pwgen pour les voir.
pwgen -s  # pour des mots de passe sécurisés, complètement aléatoires, mais difficiles à retenir
pwgen -B  # pour des mots de passe sans ambiguité, mais moins sécurisés
guy@xxxx:~$ pwgen -B
iez9ui9O Fahg4aip shei7Noh epah4Ing nuogei3I Ahneep4U Shitho3j jaim3koH
Quahz3ae vaodi9Te ooCh4joo Cee3eis7 wahz9Woh Eim4eth9 eegh9oY3 ius9aNg9
die7Ahp9 To9viewa Mie7bosh voNgaik9 ohJoht9w ri9waeH4 OoZiic7r Aiz9shuw
Ees4oxei Ohs3eum3 iePae7Ee due7ohRu ta3Oovuj sahhae3E muDe7aez aengiM3z
quoNgoh9 hooSahC3 ioy4Gaih rae3giM3 Tio3ieph rai9AhB9 Bi4Ahdoh oow4EiSe
ooYahph4 Etie4hic Ai9eiXa3 faz9neiG ahZ3zo7e Wei4ais4 eem7Ohsh ahz3Weef

Apg

On peut utiliser également apg (Automated Password Generator) pour générer des mots de passe aléatoires prononçables. L'option -t donne la prononciation.

~$ apg -t
LiccushMig (Lic-cush-Mig)
RotsUckShu (Rots-Uck-Shu)
yalipast} (yal-ip-ast-RIGHT_BRACE)
Avesikefs (Av-es-ik-efs)
CavvachZed (Cav-vach-Zed)
6CrafDyg (SIX-Craf-Dyg)

Secure Password Generator

Il existe aussi un outil graphique, Secure Password Generator, directement sur Internet http://www.pctools.com/guides/password/ avec des options semblables. On peut même choisir la longueur du mot de passe (l'application à télécharger n'existe seulement que pour iOS et Androïd).

Phrase

Une bonne solution est aussi d'utiliser une phrase, au choix de l'utilisateur, dans laquelle on retire des lettres au choix, on introduit des majuscules et des chiffres. C'est le moyen le plus facile à retenir.

Vérification

Pour tester sommairement les mots de passe d'une machine, installer le programme john et le lancer sur le fichier /etc/shadow.

sudo apt-get install john
sudo john /etc/shadow

Attention, il prend 100% de la puissance du processeur (préférer un PC avec processeur quatre-coeurs).

Keepass2

Keepass2 est le logiciel qu’il faut pour stocker tous ses mots de passe. En effet, grâce à lui, on peut sauvegarder dans un seul et même fichier l’ensemble de ses mots de passe. On peut protéger cette base de données par un seul et unique mot de passe, qu’il faudra retenir bien évidemment.

  • Il s'installe sur Ubuntu à partir du paquet keepass2.
sudo apt-get install keepass2
  • Il se lance en entrant dans le Dash keepass2.
  • Cliquer sur File/New pour créer la base de données kdbx et le Composite Master Key

  • Configuration par l'onglet Tools/Options (comprend 6 sous-onglets)

Nouvelle entrée

  • Lancer keepass2, cliquer sur File/Open, sélectionner la base de données keepass .kdbx,
  • Sélectionner la rubrique voulue (General, Network…) puis faire Edit/Add entry,
  • Entrer les différents paramètres

Ne pas oublier d'enregistrer après chaque changement

Utilisation

  • Double-cliquer dans la ligne sur l'URL, un navigateur s'ouvre à la page concernée,
  • Revenir dans Keepass2 (Alt+Tab), double-cliquer sur l'identifiant (attendre d'avoir eu l'apparition du thermomètre bleu en bas à droite de la fenêtre Keepass),
  • Revenir dans le navigateur (Alt+Tab), coller dans la case d'identification,
  • Revenir dans keepass2 (Alt+Tab), double-cliquer sur le mot de passe (attendre idem),
  • Revenir dans le navigateur (Alt+Tab), coller le mot de passe.

Pasaffe

Pasaffe est un gestionnaire de mots de passe. Il a le gros avantage d'être extrêmement simple à utiliser.

  • L'application est dans les dépôts, elle s'installe par Synaptic.
  • Au premier lancement, il faut définir le mot de passe principal afin de créer une nouvelle base de données, c'est celui-ci qui permet ensuite d’accéder à tous les autres. Prendre quelque chose de solide, c'est important.
  • Pour ajouter un mot de passe associé à une entité, cliquer sur la croix verte et rentrer les informations demandées.

  • Une fois fini, cliquer sur Valider, et dans la fenêtre principale, ne pas oublier de sauvegarder les changements en cliquant sur le petit disque dur avec la flèche verte.

  • Maintenant, quand on a besoin de s'identifier sur un site, il faut ouvrir Pasaffe, sélectionner l'URL et simplement:
    • cliquer sur le premier bouton (1) pour ouvrir l'URL dans le navigateur automatiquement,
    • puis cliquer sur le deuxième bouton (2) pour copier le nom d'utilisateur et le coller sur le site,
    • puis faire de même pour le mot de passe (3).

sudo

On peut renforcer l'utilisation de sudo en modifiant les droits du fichier /usr/bin/sudo. Au départ, on a

ls -la /usr/bin/sudo
-rwxr-xr-x 1 root root 136808 mars  30 21:57 /usr/bin/sudo

On change les droits par

sudo chown root:sudo /usr/bin/sudo
sudo chmod 4750 /usr/bin/sudo

On a obtenu enfin

ls -la /usr/bin/sudo
-rwxr-x--- 1 root sudo 136808 mars  30 21:57 /usr/bin/sudo

Maintenant quand un utilisateur hors du groupe sudo veut utiliser du sudo, il a en réponse:

bash: /usr/bin/sudo: Permission non accordée

Pare-feu

Le rôle du pare-feu est de mettre à l'abri le ou les ordinateurs en aval, vis à vis du monde extérieur de l'Internet. En fait, en Linux, on peut ne pas se compliquer la vie avec une bonne configuration des ordinateurs.

  • Netfilter est un module du noyau Linux qui offre, de base, la possibilité de contrôler, modifier et filtrer les paquets IP, et de suivre les connexions. Il fournit les fonctions de pare-feu, de partage de connexions internet et d'autorisation du trafic réseau. Iptables est l'interface "ligne de commande" permettant de configurer Netfilter.
  • Sous Ubuntu, il existe différents outils de pare-feu:
    • Firestarter qui est un "front-end" en mode graphique pour aider à configurer Netfilter,
    • Ufw (Uncomplicated Fire-Wall) maintenant incorporé depuis la version 8.04 , mais à activer.
      • Gufw en mode graphique
      • Nufw, autre dérivé d'Ufw.

On peut aussi mentionner Shorewall. Voir http://forum.ubuntu-fr.org/viewtopic.php?id=234461

Ufw

  • Vérifier la version installée
sudo ufw  --version  # donne la version d'ufw
  • Pour connaître l'état
sudo ufw status verbose
État : actif
Journalisation : on (low)
Par défaut : deny (entrant), allow (sortant)
Nouveaux profils : skip
  • Pour autoriser un port en TCP et en UDP
sudo ufw allow 53
  • Pour autoriser un port en TCP
sudo ufw allow 25/tcp
  • Pour autoriser Samba:
sudo ufw allow samba  # ce qui suppose samba installé
  • Pour interdire le port SSH par défaut (port 22):
sudo ufw deny to 192.0.2.15
  • Pour bloquer une adresse ou un protocole
sudo ufw deny ssh
  • Activation d'Ufw par:
sudo ufw enable  # à la question "La commande peut interrompre les connexions ssh existantes. Exécuter l'opération (o|n) ?", répondre **O**
  • Désactivation:
sudo ufw disable
  • On peut faire apparaître les règles par numéro:
~$ sudo ufw status numbered
État : actif

     Vers                       Action      Depuis
     ----                       ------      ------
[ 1] 22                         DENY IN     Anywhere
[ 2] Samba                      ALLOW IN    Anywhere
  • Pour supprimer une règle, on peut utiliser son NUM (numéro):
~$ sudo ufw delete 2
Suppression de :
 allow Samba
Exécuter l'opération (o|n) ? o
La règle a été supprimée

Attention, après l'activation ufw, s'il n'y a aucune règle autorisant un port, aucune connexion n'est plus possible de l'extérieur

  • Bien se méfier de ne pas se pénaliser soi-même avec les paramétrages. De base, tout ce qui sort est autorisé, tout ce qui entre est bloqué.
  • On peut limiter Ufw aux adresses IPV4 si on met dans /etc/default/ufw, "IPV6=no"

La documentation Ubuntu est sur

Gufw

C'est la version graphique d'ufw.

Exemple d'utilisation:

Règles IPtables

Iptables est une interface en ligne de commande permettant de configurer Netfilter installé de base sur Ubuntu.

Iptables fonctionne avec des tables, ces tables sont composées de chaîne. La table Filter est utile, elle permet de filtrer les paquets réseaux. Tout paquet entrant est analysé afin de déterminer sa source et sa destination.

Iptables s'utilise en root.

Elle est composée de trois sortes de chaîne :

  • INPUT : analyser les paquets entrants. Si le paquet est adressé au poste, il est confronté au filtre INPUT.
  • FORWARD : analyser et autoriser les trames à passer d'une interface à une autre, seulement dans le cadre d'une interface réseau servant de passerelle.
  • OUTPUT : analyser les paquets sortants. Si le paquet sort du poste, il passera par la chaîne OUTPUT.

À cette table, peuvent être affectées quatre politiques (policy) : DROP, LOG, ACCEPT et REJECT.

  • Lister l'ensemble des règles avec l'affichage des lignes
sudo iptables -L --line-numbers  # Par défaut, la commande n'affiche que la table "filter".

Ajout des règles

  • Principales options d'iptables
    • -A, –append chain rule-specification
    • -D, –delete chain rule-specification
    • -I, –insert chain [rulenum] rule-specification
    • -L, –list [chain]
    • -N, –new-chain new chain specification
    • -P, –policy chain target
    • -X, –delete-chain [chain]
  • De manière générale, l'ajout d'une règle se passe suivant la syntaxe :
sudo iptables -A (chain) -p (protocole) --dport (port) -j (décision)

Remplacer :

  • chain par la section voulue (INPUT ou OUTPUT)
  • protocole par le nom du prot</file>ocole à filtrer (TCP, UDP, ICMP (ping)…)
  • décision à prendre :
    • ACCEPT po6953~6961ur accepter le paquet,
    • REJECT pour le rejeter (ou bien DROP pour l'ignorer complètement)
  • Autoriser le trafic entrant par un port spécifique
sudo iptables -A INPUT -p tcp -i eth0 --dport xxx -j ACCEPT  

avec l'option -A pour ajout d'une règle, INPUT pour trafic entrant, -i eth0 pour la connexion filaire, –dport xxx pour le port de destination (pour SSH, on peut mettre ssh ou 22, le port par défaut), -j ACCEPT pour autoriser

  • Autoriser le trafic local (lo)
sudo iptables -I INPUT 2 -i lo -j ACCEPT  # à mettre en rang 2 dans INPUT
  • Autoriser tout le trafic Web (www) entrant :
sudo iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
  • Bloquer tout trafic entrant
sudo iptables -P INPUT DROP
  • Blocage IP (voir geoip plus bas)
sudo iptables -I GEOIP_REJECT -m geoip --src-cc CN,A1,A2 -j DROP

Dans le forum Ubuntu, certains se plaignaient d'être sniffés par un adresse installée en Chine. Pour bloquer ce gêneur, la consigne donnée est d'ajouter une ligne dans les IP Tables:

sudo iptables -I INPUT -s 61.139.105.163 -j DROP 

Vérifier la prise en compte

~$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       all  --  61.139.105.163       anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination L

geoip

GeoIP est une technique de Géolocalisation visant à localiser un utilisateur à partir de son adresse IP.

  • Pour pouvoir utiliser geoip, installer geoclue-ubuntu-geoip avec ses dépendances:
sudo apt-get install -y geoclue-ubuntu-geoip geoip-bin geoip-database libgeoip-dev libgeoip1 libapache2-mod-geoip
sudo service apache2 restart
  • Les commandes geoip comportent des codes-pays parmi lesquels on trouve :
  A1 – proxy anonyme
  A2 – fournisseur satellite
  CA – Canada
  CN – Chine
  DE – Allemagne
  EU – Europe
  FR – France
  GB – United Kingdom
  JP – Japon
  AP – Asie/Pacifique
  US – Etats-Unis
  • Bloquer tout IP étranger
sudo iptables -P INPUT DROP
sudo iptables -A INPUT -m geoip ! --src-cc CN -j DROP  # blocage Chine

Suppression d'une règle

Le plus simple est d'avoir listé au préalable les règles avec leur numération:

sudo iptables -I GEOIP_REJECT -m geoip --src-cc CN,A1,A2 -j DROP
sudo iptables -D INPUT 2  # pour la règle #2 d'INPUT

Réinitialisation

Si on a déjà modifié la configuration, pour la réinitialiser, taper :

sudo iptables -F  # F pour FLUSH, vide toutes les règles
sudo iptables -X  # supprime toutes les règles-utilisateur

Bibliographie

Flux Torrent

Les ports utilisés pour les transferts Torrent sont pris en général dans une gamme 6953~6961.

Sécuriser la mémoire partagée

/dev/shm peut être utilisé pour une attaque contre un service, tel httpd. Modifier /etc/fstab pour le sécuriser. Ouvrir un Terminal, éditer le fichier

sudo nano /etc/fstab

Ajouter la ligne suivante, sauvegarder et appliquer le changement en remontant fstab:

tmpfs     /dev/shm     tmpfs     defaults,noexec,nosuid     0     0
sudo mount -a

Protection attaques

Avant de commencer l’écriture d’un pare-feu, il est judicieux de sécuriser au maximum la couche réseau du système d’exploitation. Le noyau Linux est hautement configurable, et plusieurs options accessibles via le système de fichier /proc permettent une sécurité accrue:

  • /proc/sys/net/ipv4/conf/all/rp_filter

Cette option permet d’activer la protection anti-spoofing du noyau (le contenu doit être égal à 1). Ainsi, la plupart des paquets suspects seront directement éliminés avant même de passer nos rêgles de filtrage.

  • /proc/sys/net/ipv4/conf/all/accept_source_route

Ce paramètre est à désactiver (contenu à 0). Un attaquant peut utiliser le source routing pour générer du trafic venant prétendument du réseau local, mais qui sera rerouté par le chemin par lequel il était arrivé, c’est à dire le réseau de l’attaquant.

  • /proc/sys/net/ipv4/tcp_syncookies

Les SYN cookies permettent de lutter contre une attaque de type SYN flood, où un attaquant sature le réseau avec des connections incomplètes. Cette technique permet de continuer à accepter les connections légitimes en cas d’attaque.

  • /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  • /proc/sys/net/ipv4/conf/all/accept_redirects
  • /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

Ces options relatives au protocole ICMP sont à sécuriser pour éviter d’être la victime ou participant involontaire de certaines attaques de type déni de service (C'est en fait le réglage par défaut du système Ubuntu).

Configuration SSH

Pour le serveur SSH, il est possible d'améliorer la protection avec une configuration simple du fichier /etc/ssh/sshd_config (il faut avoir complété l'installation Ubuntu avec celle de ssh). Pour cela:

  • Editer le fichier de configuration
sudo vi /etc/ssh/sshd_config
  • Changer le port SSH par défaut (22) pour un autre.
# What ports, IPs and protocols we listen for
Port 10022 

La connexion se fait alors avec l'option p et le n° du port à utiliser

ssh <adresse_ip> -p 10022 

Le changement de port SSH ne concerne que les connexions entrantes.

Le port utilisé vers l'extérieur reste le port SSH par défaut, sauf paramétrage spécifié de la connexion

  • Changer le paramètre du PermitRootLogin en no:
PermitRootLogin no  # il est impossible de se loguer en superadministrateur  en  SSH
  • Authentification par clé. Dans ce cas, corriger ainsi:
PubkeyAuthentication  yes  # au lieu de no
AuthorizedKeysFile      %h/.ssh/authorized_keys  # ligne à décommenter
  • Affichage graphique déporté, mettre yes
X11Forwarding  yes # au lieu de no
  • UsePAM ( Pluggable Authentication Module), mettre à no pour ne plus avoir à saisir un mot de passe avec l'usage des clés. Va de pair avec PubkeyAuthentication
UsePAM  no
  • Connexions acceptées. Décommenter la ligne
#MaxStartups 10:30:60

Dans ce cas: le 10 représente le nombre de connexions acceptées sans qu'un utilisateur ait réussi à s'identifier, si cela passe au dessus de 10, il y a 30 % de chances que les suivantes soient bloquées, et ce pourcentage augmente linéairement jusqu'à 100 % lorsque le full est atteint, à 60 connexions.

  • Ajouter à la fin du texte une ligne AllowUsers pour spécifier le ou les utilisateurs privilégiés pouvant accéder en SSH:
AllowUsers paul jacques  # seuls les utilisateurs "paul" et "jacques" sont autorisés à entrer en SSH

"

Attention. Bien mettre un espace entre les noms des utilisateurs autorisés.

* Dans le même ordre d'idées, on peut n'autoriser uniquement que les utilisateurs du groupe sshusers (pour plus de sécurité)

  • Créer le groupe sshusers
groupadd sshuser  # Création du groupe sshusers
groupadd sshusers
  • Ajouter l'utilisateur à ce groupe
usermod -a -G sshusers <login>
  • Ajouter la ligne suivante dans /etc/ssh/*sshd-config
AllowGroups sshusers

Relancer la connexion SSH pour faire prendre effet aux changements

sudo service ssh restart

AllowUsers est prioritaire sur AllowGroups. S'il est utilisé, les seuls utilisateurs mentionnés, peuvent se connecter en SSH.

L'ordre de priorité de traitement est DenyUsers, AllowUsers, DenyGroups, et en finale AllowGroups

Limitation accès SSH

Fail2ban

fail2ban lit les logs de divers serveurs (SSH, Apache, FTP…) à la recherche d'erreurs d'authentification répétées et ajoute une règle iptables pour bannir l'adresse IP de la source.

  • Installation par la commande
sudo apt install fail2ban
  • Lancer ensuite fail2ban
sudo fail2ban-client -x start
  • Configuration par le fichier /etc/fail2ban/jail.conf. En fait, il est de loin préférable de faire une copie du fichier dans /etc/fail2ban/jail.local et de configurer ce fichier. Ce fichier jail.local sera automatiquement lu lors de l'initialisation de fail2ban.
sudo cp -a /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • Dans la partie JAILS, on trouve divers protocoles que l'on peut activer en fonction du besoin. Par exemple, [sshd]:
[sshd]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 4
  • Après un changement, relancer par
sudo fail2ban-client reload
  • Vérification par
~$ sudo fail2ban-client status
Status
 - Number of jail:	6
`- Jail list:		vsftpd, ssh, dropbear, proftpd, apache, ssh-ddos  # vsftpd est un FTP léger, dropbear un  SSH léger
  • Vérification du blocage du protocole sshd:
~$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	0
|  `- File list:	/var/log/auth.log
`- Actions
   |- Currently banned:	0 /etc/fail2ban/jail.local 
   |- Total banned:	0
   `- Banned IP list:	
  /etc/fail2ban/jail.local 
* On peut mettre en liste blanche une ou plusieurs IP du réseau, on peut aisément empêcher le blocage des IPs de son réseau en ajoutant dans le fichier **/etc/fail2ban/jail.local** ceci :
ignoreip = 192.168.xxx.0/24

On peut voir les tentatives de connexion ayant échoué

  • soit par le fichier /var/log/fail2ban.log
2013-03-30 14:06:23,207 fail2ban.actions: WARNING [ssh] Ban 121.8.154.28
2013-03-30 14:16:23,878 fail2ban.actions: WARNING [ssh] Unban 121.8.154.28
2013-03-30 15:11:16,503 fail2ban.actions: WARNING [ssh] Ban 222.186.25.35
2013-03-30 15:21:17,173 fail2ban.actions: WARNING sudo fail2ban-client status[ssh] Unban 222.186.25.35
2013-03-30 16:06:36,163 fail2ban.actions: WARNING [ssh] Ban 50.59.209.20
2013-03-30 16:16:36,831 fail2ban.actions: WARNING [ssh] Unban 50.59.209.20
  • soit par /var/log/auth.log. Une fois repoussée, la connexion n'est plus possible avec le même identifiant, le blocage par défaut est de 15 min (défini par le paramètre bantime = … dans /etc/fail2ban/jail.conf).

Une nouvelle connexion réussie avec un autre identifiant anulle le blocage.

Les bannissements en cours sont donnés par

sudo iptables -L

Anti-virus

Jusque maintenant, il est inutile d'installer un anti-virus pour protéger une distribution Linux. La justification est plutôt réservée à un serveur Linux travaillant au profit de clients Windows.

Pour se faire une idée sur le sujet, consulter http://doc.ubuntu-fr.org/virus

UPnP

Sur la Box, on a intérêt à supprimer l'accès UPnP qui diminuera une source d'attaques possibles. Mais cela coupera le fonctionnement de Skype ou autres…

/etc/hosts.deny

  • Installer denyhosts
  • Le Daemon DenyHosts est tout de suite opérationnel. Cependant, on peut personnaliser la configuration en éditant le fichier /etc/denyhosts.conf, options parmi lesquelles :
BLOCK_SERVICE = ALL ou sshd pour bloquer l'accès à tous les services ou seulement à ssh
DENY_THRESHOLD_INVALID = 5 indiquer le nombre d'échecs avec un login invalide avant blocage
DENY_THRESHOLD_VALID =10 indiquer le nombre d'échecs avec un login valide avant blocage
DENY_THRESHOLD_ROOT = 1 indiquer le nombre d'échecs avec le login root avant blocage
ADMIN_EMAIL = root@localhost indiquer l'adresse mail qui sera informée à chaque blocage d'une IP
SMTP_HOST = localhost définir le relay SMTP pour l'envoi des mails de notification
SMTP_PORT = 25 définir le port SMTP
SMTP_FROM = DenyHosts <nobody@localhost> définir le nom de l'expéditeur de la notification
SMTP_SUBJECT = DenyHosts Report définir le sujet du mail de notification

Il est intéressant de compléter le fichier /etc/hosts.allow avec les adresses IP à partir desquelles on se connecte le plus souvent. On peut même définir des plage d'adresse ou des domaines pour lesquels on sera jamais bloqué même en cas d'échec important.

La syntaxe dans le fichier /etc/hosts.allow sera de cette forme-là :

ALL: 192.168.1.
ALL: 192.168.12.
ALL: .mondomaine.com

rkhunter

Un rootkit est un programme qui maintient un accès frauduleux à un système informatique, leur détection est difficile, parfois même impossible tant que le système d'exploitation fonctionne. Certains rootkits résistent même au formatage car il peuvent s'introduire directement dans le BIOS. Ils existent sous Linux depuis longtemps (car le noyau est ouvert et modulaire).

Un Webkit quant à lui permet de prendre l'accès d'une machine via une faille puis par port http et de prendre l'accès sur le système.

Il existe néanmoins des programmes pour les détecter, par exemple rkhunter.

rkhunter contrôle notamment que les fichiers n'ont pas été modifiés en comparant les hash avec une base de données en ligne.

  • Pour installer rkhunter :
sudo apt-get install rkhunter 

Pour la configuration type du serveur de messagerie, prendre "Pas de configuration".

  • Mise à jour du programme :
sudo rkhunter --update
  • Lancer ensuite RootKit Hunter (la commande ci-dessous n'affiche que les avertissements):
sudo rkhunter --checkall --report-warnings-only

Configuration Samba

Pour renforcer la sécurité, modifier ainsi le fichier /etc/samba/smb.conf:

  • section Authentication
    • décommenter la ligne security = user
    • vérifier que la ligne map to guest = bad user n'est pas commentée
  • section Global, on peut augmenter la sécurité en ajoutant une ligne:
    • soit, hosts allow = IP1 IP2 IP3 IP4. Avec les différentes Ip des seuls PC du réseau autorisés à partager
    • soit, hosts allow = 192.168.0. qui est l'adresse de l'ensemble du réseau (ne pas oublier le point à la fin)

Sécurité par chroot

Ajout d'utilisateurs qui ont accès aux ssh ainsi qu'au chroot en RSSH, se reporter sur http://www.lea-linux.org/documentations/index.php/Admin-admin_env-chroot

Vérification des utilisateurs s'étant logués

  • Pour savoir qui s'est logué récemment, utiliser la commande last
~$ last
guy      pts/0        :0               Wed Jan 11 10:38   still logged in   
reboot   system boot  3.0.0-15-generic Wed Jan 11 10:30 - 14:55  (04:24)    
guy      pts/0        :0               Tue Jan 10 23:33 - 23:41  (00:07)    
reboot   system boot  3.0.0-15-generic Tue Jan 10 17:22 - 23:41  (06:18)    
reboot   system boot  3.0.0-15-generic Tue Jan 10 09:29 - 09:49  (00:19)    
reboot   system boot  3.0.0-15-generic Tue Jan 10 09:11 - 09:11  (00:00)    
guy      pts/0        :0               Tue Jan 10 08:52 - 09:10  (00:18)    
  • L'option -a permet de voir les adresses en intégralité.
last -a 
  • lastlog donne les connexions les plus récentes de tous les utilisateurs ou d'un utilisateur donné
  • Pour plus de précision, regarder le fichier /var/log/auth.log:
~$ sudo grep login /var/log/auth.log
Jan  8 09:38:35 guy lightdm: pam_succeed_if(lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "guy"
Jan  8 21:33:22 guy gnome-screensaver-dialog: gkr-pam: unlocked login keyring
Jan  8 22:30:36 guy useradd[11264]: new user: name=sshd, UID=114, GID=65534, home=/var/run/sshd, shell=/usr/sbin/nologin
Jan  9 00:47:46 guy gnome-screensaver-dialog: gkr-pam: unlocked login keyring
Jan  9 06:47:44 guy gnome-screensaver-dialog: gkr-pam: unlocked login keyring
Jan  9 08:48:24 guy gnome-screensaver-dialog: gkr-pam: unlocked login keyring
Jan  9 21:45:09 Oneiric64 lightdm: pam_succeed_if(lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "guy"
Jan  9 23:29:04 Oneiric64 lightdm: pam_succeed_if(lightdm:auth): requirement "user ingroup nopasswdlogin" not met by user "guy"

Logwatch

Logwatch est un système configurable d'analyse de fichiers journaux (log) distribué. Il parcourt et analyse les fichiers journaux, et envoie un rapport par courrier.

Installation

  • Installer logwatch
sudo apt-get update
sudo apt-get install logwatch
  • Créer un dossier cache
sudo mkdir /var/cache/logwatch

Configuration

Faire une sauvegarde de la configuration:

sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/

Editer le fichier de configuration selon ses propres besoins

sudo nano -w /etc/logwatch/conf/logwatch.conf

Valeurs suggérées:

Output = mail
Format = html
MailTo =   # ne rien mettre, c'est précisé par l'option mailto
Detail = Med  # ou High, si on veut plus de détail

Il y a plusieurs fichiers de configuration par service dans le répertoire /usr/share/logwatch/default.conf/logfiles/ .

Pour activer un rapport de service, le copier dans /etc/logwatch/conf/logfiles/ par exemple:

sudo cp /usr/share/logwatch/default.conf/logfiles/http.conf /etc/logwatch/conf/logfiles/ 

Utilisation

  • Pour avoir un rapport, lancer simplement
sudo logwatch
  • Pour envoyer un rapport, il faut avoir installé et configuré Postfix|
sudo logwatch  --mailto adresse@domaine.xxx

Automatisation

Pour automatiser l'envoi de rapport, créer un fichier /etc/cron.daily/logwatch contenant:

sudo nano /etc/cron.daily/logwatch
#!/bin/sh
# cron script for mail from logwatch
test -x /usr/sbin/logwatch || exit 0
/usr/sbin/logwatch --mailto <adresse_email>

Rendre éxécutable

sudo chmod +x /etc/cron.daily/logwatch

Relancer cron

sudo service cron restart

Recherche origine attaque

  • Il n'existe pas de commande Reverse Whois pour retrouver l'origine à partir de l'adresse IP, mais il existe des solutions en ligne gratuites , comme http://www.hashemian.com/tools/reverse-whois.php
  • La commande host fournit en partie la fonction
~$ host 8.8.8.8
8.8.8.8.in-addr.arpa domain name pointer google-public-dns-a.google.com.

Durcir le réseau avec sysctl

Le fichier /etc/sysctl.conf donne accès à tous les réglages sysctl.

  • Pour empêcher tout routage de paquets entrants et loguer les entrées, utiliser sysctl:
sudo nano /etc/sysctl.conf
  • Editer le fichier /etc/sysctl.conf et décommenter les lignes suivantes :
# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0 
net.ipv6.conf.default.accept_redirects = 0

# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1
  • Pour recharger sysctl avec les derniers changements, entrer:
sudo sysctl -p

Dépôt de plainte

En cas d'attaque informatique, suivre les indications de la page http://www.securiteinfo.com/conseils/porterplainte.shtml pour porter plainte.

Fichier .htaccess

Les fichiers .htaccess sont des fichiers de configuration d'Apache (serveur Web), permettant de définir des règles dans un répertoire et dans tous ses sous-répertoires (qui n'ont pas de tel fichier à l'intérieur). On peut les utiliser pour protéger un répertoire par mot de passe, ou pour changer le nom ou l'extension de la page index, ou encore pour interdire l'accès au répertoire.

Empêcher l'accès à des ressources

Un fichier .htaccess est composé de deux sections :

  • Une première section contient les chemins vers les fichiers contenant les définitions de groupes et d'utilisateurs :
AuthUserFile /repertoire/de/votre/fichier/.FichierDeMotDePasse
AuthGroupFile /repertoire/de/votre/fichier/.FichierDeGroupe
AuthName "Accès protégé"
AuthType Basic

AuthUserFile définit le chemin d'accès absolu vers le fichier de mot de passe. AuthGroupFile définit le chemin d'accès absolu vers le fichier de groupe. AuthName entraîne l'affichage dans le navigateur Internet de : « Tapez votre nom d'utilisateur et votre mot de passe. Domaine: "Accès protégé" » AuthType Basic précise qu'il faut utiliser AuthUserFile pour l'authentification.

      
* Une seconde section contient la définition des **conditions d'accès** : 
Require valid-user
{instruction d'accès à satisfaire }

require valid-user précise que l'on autorise uniquement les personnes identifiées. Il est également possible de préciser explicitement le nom des personnes autorisées à s'identifier : require user {username}

Sous Unix, le chemin d'accès vers les fichiers de mots de passe et de groupes est de la forme suivante :

/repertoire1/repertoire2/.../.FichierDeMotDePasse

Protection contre les robots

Tout moteur de recherche commence l'exploration d'un site web en cherchant le fichier robots.txt à la racine du site.

Le fichier robots.txt est un fichier texte contenant des commandes à destination des robots d'indexation des moteurs de recherche afin de leur préciser les pages qui peuvent ou ne peuvent pas être indexées sur le serveur Web.

Il est important de comprendre qu’il ne s’agit là que d’une indication sur ce que doivent faire les robots bienveillants, ce n’est en aucun cas un élément de sécurité. En effet, certains robots ignorent ce fichier, soit délibérément parce qu’ils cherchent des informations privées (des adresses électroniques par exemple, pour y envoyer du courrier indésirable).

Contenu

Le fichier robots.txt (écrit en minuscules et au pluriel) est un fichier ASCII se trouvant à la racine du site et pouvant contenir les commandes suivantes :

  • User-Agent: permet de préciser le robot concerné par les directives suivantes. La valeur * signifie "tous les moteurs de recherche".
  • Disallow: permet d'indiquer les pages à exclure de l'indexation. Chaque page ou chemin à exclure doit être sur une ligne à part et doit commencer par /. La valeur / seule signifie "toutes les pages du site".

Exemple

Déconseiller tous les robots d'accéder au site :

User-agent: *
Disallow: /

Snort

Snort® est un système opensource de détection et de prévention d'intrusion réseau. C'est l'outil le plus déployé aussi bien dans les entreprises que chez les particuliers. Il est géré par des règles.

Le logiciel est disponible dans les dépôts Ubuntu. Installer en même temps oinkmaster

sudo apt-get install snort oinkmaster oinkmaster snort-rules-default

Pour la configuration, se reporter à la documentation http://doc.ubuntu-fr.org/snort.

Serveur Proxy

Dans l'environnement des réseaux, un Proxy (ou serveur mandataire) est une fonction informatique client-serveur ou une machine qui a pour fonction de relayer les requêtes entre une fonction cliente et une fonction serveur. Ces serveurs assurent les fonctions suivantes :

  • accélération de la navigation : mémoire cache, compression des données, filtrage des publicités ou des contenus lourds (java, flash);
  • journalisation des requêtes (logging) ;
  • sécurité du réseau local ;
  • filtrage et anonymat.

La fonction du Proxy est présentée au chapitre Proxy

pfSense

pfSense est une distribution légère basée sur FreeBSD qui fournit des fonctions Firewall performantes. Il peut s'installer en entrée de réseau, soit sur un routeur configurable, soit sur un mini-ordinateur ayant deux prises Ethernet.

Voir l'article de la revue Linux Pratique n°81 (Janvier/Février 2014) page 62.

CloudFlare

Une solution d'accélération et de sécurisation de site Web est proposée par CloudFlare (http://www.cloudflare.com/).

Documentation

securite_linux.txt · Dernière modification: 2017/03/25 19:40 par g.rnd@free.fr