Sécurité sous Linux
Quelque soit votre version de système UnixSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., si celui-ci est connecté à un réseau, il est attaquable (et sera attaqué !).
Certains vont me dire qu'il ne faut pas tomber dans la paranoïa, ok, mais quand je vois le nombre de tentativeS d'accès illicites sur mes serveurs par jour , je crois qu'il y a un minimum à faire !
Ne serait ce que pour ne pas avoir un bot chez moi !
Après, aucune protection n'est sûr à 100 %, les vrais hackers parviendront sûrement à entrer, mais les petits jeunes de 15/16 ans auront du mal...
Sous linuxSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public. (et dérivés), pour protéger au mieux votre serveur, certaines opérations sont à faire:
Liste non exhaustive, que je complèterai au fur et à mesure...
Protéger l'utilisateur root
La première cible sera l'utilisateur rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix., puisqu'il va permettre à un hackeur d'avoir tous les droits sur votre machine.
Il faut donc éviter cela:
- En limitant les terminaux où peut se connecter l'utilisateur rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix..
- En interdisant les connexions à distance de l'utilisateur rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix..
Vérifiez en passant que vous n'avez bien qu'un seul utilisateur rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix. dans le fichier /etc/passwd
Seul l'utilisateur rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix. devrait avoir un UID à 0. sinon, vous avez été hacké !
Interdire les visiteurs
Par le passé, il était commun d'avoir un utilisateur nommé guest sans mot de passe. Celui-ci pouvait donc accueillir n'importe qui en visite sur votre serveur...
Mais ça, c'est du passé, les hackeurs vont vites apprécier cet utilisateur pour glaner des informations sur votre système et ainsi déterminer qu'elle faille peut potentiellement être exploitée...
Donc, l'utilisateur guest est interdit de séjour.
Dans le fichier /etc/passwd, vérifiez qu'il n'existe pas, sinon, il faut le supprimer !
userdel -f -r guest
-f force la suppression même si l'utilisateur est connecté, ainsi que le groupe de même nom (si USERGROUPS_ENAB est à yes dans etc/login), son répertoire et sa messagerie (même si ce répertoire est partagé par un autre utilisateur).
-r supprime tous les fichiers de l'utilisateur
De même, contrôler qu'il n'existe aucun utilisateur sans mot de passe (absence de x ou de mot de passe crypté dans la colonne 2 du fichier /etc/passwd).
Si votre
système code les mots de passe dans /etc/passwd, il y a un souci. Il faudrait
utiliser /etc/shadow à la place qui est en lecture seul pour le rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix. uniquement.
SSH
Dans le fichier de configuration, vous ne devez pas avoir PermitEmptyPasswords yes qui autoriserait la connexion d'utilisateur sans mot de passe !
Voire changer le port d'écoute via Port port ou ListenAddress ip:port
Limitez les accès à certains utilisateurs ou groupes
AllowUsers utilisa1 utilisa2
AllowGroups grp1 grp2
Positionnez Protocole 2 et non 1...
SSH sur debian et dérivés
DebianSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., UbuntuSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., RaspbianSyst?me d'exploitation de type Linux (Debian) pour Raspberry Pi., ...
Je ne sais pas qui est ce con qui a eu cette idée farfelue, mais quelqu'un a activé l'affichage de votre version ssh qui retourne en plus est la version du système d'exploitation !!!
Dans le fichier /etc/ssh/sshd_config, ajoutez ou décommantez la ligne suivante:
Banner none
On pouvez trouver sur d'anciennes distributions DebianBanner no
Cela cachera au moins la version de votre système d'exploitation !
Puis relancez le service ssh
service ssh restart
Sécurité de votre serveur Web Apache et de vos sites
Si vous avez l'intention d'utiliser un serveur web apache et de créer des sites, il faut les sécuriser !
Puis cachez donc ce php ...
Dans le fichier php.ini qui se trouve sous /etc ou sous /etc/php5/apache2 ou encore /etc/php/version/apache2 (5 car version de 5 php, sinon, la version que vous avez comme 7.0...), modifiez la ligne contenant expose_php = On pour le mettre à off
expose_php = Off
Vous devrez relancer Apache...
F.T.P.
Lorsqu'un serveur FTP est installé, certains utilisateurs ne doivent pas accéder au serveur ! Entre autre rootroot est le nom par défaut de l'utilisateur Unix ayant tous les privilèges. Il peut donc accéder à tous les répertoires, administrer le serveur, ... Aussi appelé super utilisateur ou super user. root peut aussi représenter le répertoire racine / sur un système Unix., des erreurs de manipulations pourraient rendre instable votre système !
Pour cela, le fichier /etc/ftpusers devrait interdire tous les utilisateurs dont l'accès ftp n'est pas "approprié".
Il peut être intéressant de limiter l'accès des filesystems aux utilisateurs de FTP à un répertoire spécialisé FTP (chrooté) plutôt qu'à l'ensemble du système (pour ne pas rendre visible ou modifiable des données sensibles) et de crypter la transmission entre le client et le serveur (ssh). L'installation du démon vsftp serait plus approprié dans ce cas.
Bannière de getty
Les getty sont des programmes surveillant les ports des terminaux tty (physique ou virtuel). Lorsque qu'une connexion est établie, celui-ci affiche un message de bienvenue qui peut être un peu trop bavard...
Modifiez le contenu des fichiers issue.net ou issue pour qu'ils ne donnent plus d'informations (même minimes) sur le système utilisé.
Paramétrez login
Et après getty, arrive login:
Un fichier login.def permet de paramétrer login (timeout, ...), donc voyez si vous avez besoin de l'adapter.
Suivant votre configuration, ce fichier peut être sous /etc/pam.d/login
Nom de votre machine
Le nom de votre machine peut-être affiché un peu partout. Et en autre lors d'un login ... Or, le nom de la machine est généralement par défaut le nom physique de la machine ou le nom du système d'exploitation.
Par exemple sur raspberryNano-ordinateur monocarte concu par le créateur de jeux vidéo David Braben pi, vous obtiendrez:
raspberrypi login:
Changez le !
Cela se fera généralement en deux temps:
Modifiez le nom du fichier /etc/hostname
sur
certaines distributions (debianSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group.
D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., raspbien, ubuntuSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group.
D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public.), ce nom peut être "dupliqué"
dans le fichier /etc/hosts à l'adresse ip 127.0.1.1. Modifiez le aussi.
(Des explications ici)
Redémarrez la machine (shutdown -r now) pour prendre en compte ces modifications.
telnet
Le service telnet est à éviter autant que possible. Préférez le protocole ssh. Car toutes les informations sont transmises en clair sur le réseau donc y compris l'utilisateur et son mot de passe.
Sinon, limité l'accès au stricte minimum via le service tcp wrappers tcpd et modifiez la bannière issue.net ou issue.
Limiter les accès aux services
Vous pouvez (devez ?) configurer les accès à vos services (démons)
- Via inetd ou xinetd
- Via TCP Wrapper
Lister les programmes avec SUID/SGID
find / -type f \( -perm -02000 -o -perm -04000 \) -ls
Une idée
pourrait être de garder une liste des programmes avec SUID/SGID dans un fichier
(protégé sur une autre machine) et de vérifier (commande diff sous
LinuxSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group.
D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., winmerge sous
windowsSouvent associé au système d'exploitation de Microsoft pour les PC compatibles. Initialiement, un simple gestionnaire de fenêtres fonctionnant sous DOS. Windows ou au singulier Window peut aussi représenter une fenêtre (traduction du mot anglais Window !) dans d'autres gestionnaires de fenêtres pour d'autres systèmes d'exploitation. Window peut aussi représenter la touche Windows sur un clavier pour PC compatible (il y a deux touchent "window": Entre Ctrl et Alt à gauche du clavier ou entre Alt Gr Ctrl à droite par exemple)., fc sous DOSDisk Operating System, système d'exploitation pour IBM PC. Voire aussi MS-DOS pour les PC compatibles. L'ancêtre de Microsoft Windows. par
exemple) qu'elle ne change pas alors que vous n'avez pas installé de paquets
récemment, si la liste venait à changer (apparation d'un nouveau programme),
il y a des chances pour qu'un hacker soit rentré dans votre machine (il a alors
les droits d'administration sans que vous en ayez connaissance) ! Pensez par
contre à maj la liste d'origine après l'installation de nouveau paquets !
Lister les fichiers sans propriétaire
find / -nouser -o -nogroup
Protéger vos fichiers systèmes de l'écriture
Sous linuxSystème d'exploitation multitâche et multi-utilisateur(1969). UNIX est une marque déposée de l'Open Group. D'autres systèmes "compatibles UNIX" existent: BSD, Linux, Android, OS X pour les plus connus du grand public., utilisez la commande chattr
Eprouvez la sécurité de votre réseau
Il y a tout d'abord les tests d'accès ip à faire via une machine, essayez de vérifier que le blocage ip est bien actif et/ou que cette machine se fait bannir lors de tentatives de connexions infructueuses.
Mais aussi utilisez l'utilitaire nmap pour vérifier ce que remonte(nt) votre/vos machines à des inconnus.
Il y a aussi les tests via internet comme https://www.grc.com/x/ne.dll?bh0bkyd2