Suite au tuto qui permet de sécuriser votre WHM & Cpanel via interface Web , je vous propose d’aller plus loin en sécurisant celui-ci via SSH!
J’ai réalisé un article sur comment se connecter sur un flux SSH : https://blog.avis-planethoster.com/information/comment-se-connecter-en-ssh-a-un-serveur-326
1. Update /Upgrade
Tout d’abord connectez-vous donc en SSH sur votre serveur et assurez-vous que tout vos packages soient mis à jour avec les commandes suivantes:
[root@serveur ~]# yum upgrade
[root@serveur ~]# yum update
Comme vous pouvez le voir Centos ne fournis pas APT mais bien YUM qui est l’équivalent aussi poussé pour ne pas dire plus !
2. Désactivation des fonctions PHP critiques
root@serveur [~]# nano /usr/local/lib/php.ini
et modifier les lignes suivantes :
magic_quotes = On safe_mode = On expose_php = Off Enable_dl= Off register_globals = off display errors = off disable_functions = system, show_source, symlink, exec, dl, shell_exec, passthru, phpinfo, escapeshellarg, escapeshellcmd, ini_set, popen, proc_open, allow_url_fopen
Attention pour l’installation d’un WHMCS vous devez avoir “safe_mode = Off ” & “enable_dl = On”
et redémarrer le service :
root@serveur [~]# service httpd restart
Vous venez de rendre votre Apache plus robuste à toute attaque extérieure et intérieure!
Changer de port le service SSH
3. SSH -Changer le port + monitoring
Suite à notre attaque chinoise qui se faisait par SSH , et que nous avons bloqué via cPHulk nous allons pousser plus loin notre défense.
Normalement le service SSH utilise le port 22 et les hackeur scan les ports d’un range d’IP afin de voir quels ports sont ouverts sur les machines afin de les attaques par la suite. Il faut savoir que SSH est une version “sécurisée” de telnet mais qui est quand même très prisée par les hackeurs : cela est dû à un manque de monitoring de ce service.
Si nous n’utilisons pas le port par défaut de SSH notre serveur ne sera pas dans la ligne de mire des méchants ! 😀
root@serveur [~]# nano /etc/ssh/sshd_config
Changez “#Port 22” par “Port 1789” par exemple.
Maintenant vous pouvez vous connecter en SSH par le Port 1789 et non le 22 !
Nous allons aussi monitorer le service afin de savoir quand une IP se connect sur le SSH et faire peur a un hakeur!
root@serveur [~]# nano /etc/motd "ALERTE! C'est une zone sécurisée. Votre adresse IP est enregistrée. Administrateur à été notifié" root@serveur [~]# nano /root/.bash_profile
et rajoutez
echo 'ALERTE - Acces Shell Root sur:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d"(" -f2 | cut -d")" -f1`" user@example.com
Maintenant quand quelqu’un se connecte en SSH , un message de dissuasion s’affichera et vous serez alerté par email !
4.0 Anti-Virus
Passons du coté de l’antivirus Linux,beaucoup de personnes disent que les systèmes d’exploitation Linux ne sont pas sensible au virus mais cela est faux !
Nous allons installer ClamAV qui est un antivirus pour OS de type Linux:
root@serveur [~]# yum install clamav ==> Ha non sa marche pas !
Maintenant il faut mettre a jour la base de donnée des antivirus:
root@serveur [~]# freshclam
Et il suffis de lancer l’antivirus avec la commande
root@serveur [~]# clamscan -r --remove /
Je vous conseil de créer un CRON pour automatiser la tache par exemple tout les jours a 2 heures du matin!
root@serveur [~]# crontab -e 02 1 * * * root clamscan -ri --remove /
Et voila l’antivirus a été installé , mis a jour et plannifié!
4.1 Rootkit
Linux est aussi fragile au Rootkit , il s’agit de logiciel malveillant qui sont souvent assez bien caché et qu’un utilisateur normal ou anti-virus ne détecte pas.
J’ai uploadé le tar.gz v1.3.8 sur mon serveur mais regardez tout de même si entre temps une nouvelle version n’est pas sortie ! (http://www.rootkit.nl/projects/rootkit_hunter.html)
root@serveur [~]# cd /root/ root@serveur [~]# wget https://blog.avis-planethoster.com/wp-content/uploads/2011/01/rkhunter-1.3.8.tar.gz root@serveur [~]# tar -zxvf rkhunter-1.3.8.tar.gz root@serveur [~]# cd rkhunter root@serveur [~rkhunter]# ./installer.sh
Il est donc maintenant installé , pour lancer le scan il faut exécuter la commande suivante :
root@serveur [~]# rkhunter -c
Vous pouvez le mettre aussi dans le CRON 😉
5. DNS
Notre Cpanel a par défaut un serveurs DNS récursifs ouvert!
Cela est assez dangereux car il existe une faille ISPrime appelé .NS qui permet de saturer un pc distant.
root@serveur [~]# nano /etc/named.conf
Trouvez
options {
Et rajouté en dessous :
additional-from-cache no; recursion no;
6. Logs
Nous allons plancher sur la surveillance des logs.
Personnellement au début que je me suis mis au distribution Unix , j’ai eu du mal a lire les logs et j’ai jamais trop aimé.
J’ai découvert un utilitaire de surveillance automatique de log qui vous les envois par email tout les jours. (Il vous envois qui se connect ou , les demande d’authentification , …)
root@serveur [~]# yum install logwatch
Voila c’est déjà installé , il suffis juste de configurer un fichier pour l’envoi du mail
root@serveur [~]# nano /usr/share/logwatch/default.conf/logwatch.conf
Et ajouté votre email a l’option “MailTo” & “MailFrom”
# Default person to mail reports to. Can be a local account or a # complete email address. MailTo = myemail@gmail.com # Default person to mail reports from. Can be a local account or a # complete email address. MailFrom = myemail@gmail.com
Voila tout les jours vous recevrez vos logs afin de connaitre la santé de votre serveurs.
Pour voir l’activer des IP connecté sur votre serveur:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
[TUTO en cours de création , je rajouterai bientôt : nmap,portsentry … ]
Merci pour ce tuto!
Je rajouterais juste l’installation et la configuration des iptables sous centos (primordial)
je vous laisse googled la config de celles-ci mais ATTENTION : avant de lancer votre serveur firewall autoriser bien l’accès au nouveau port SSH!!!
Perso j’ai fais cette erreur, mais heureusement j’avais mon Webmin de déblocé 😉
Peace
Je me suis arrêter à magic_quotes = ON …
Bonjour super tuto
simple clair etc
j’ai juste une question au niveau de la :
echo ‘ALERTE – Acces Shell Root sur:’ `date` `who` | mail -s “Alert: Root Access from `who | cut -d”(” -f2 | cut -d”)” -f1`” user@example.com
ou est ce qu’on doit mettre l’adresse mail, car en effet j’ai bien le message quend je me co va putty mais aucun mail n’a été envoyé…
Il suffit de remplacer le user@example.com par ton email !
Bonsoir, pour la partie : SSH -Changer le port + monitoring j’ai une question !!!
Une personne précise ceci : “ATTENTION : avant de lancer votre serveur firewall autoriser bien l’accès au nouveau port SSH!!!”
Que veut il dire par la ?
Ce tuto est il toujours d’actualité pour la dernière version à ce jour ?
Merci d’avance
Re,
Si par exemple tu change ton port SSH sur le 3006, il ne faut pas que ton iptables drop/bloques les packets sur ce port là! (Sinon tu scie la branche sur la quelle tu es !)
A+
Je pense que je viens de me faire hacker, impossible de me connecter sur WHM ou en SSH sur le serveur et ce même en appliquant une grande partie de la configuration de sécurité 🙁
Je ne sais pas comment reprendre la main , j’ai contacter le support d’OVH en urgence -_-
Voila j’ai réussi à reprendre la main et modifier le mot de passe root de WHM mais il faut que j’améliore la sécurité sachant que j’ai déjà fais beaucoup, je vais voir pour CSF&LFD (en espérant que ce soit facile à installer avec pas trop de bug)
Pour installer clamav il faut le télécharger ? ce n’est pas indiquer dans votre tuto, j’ai essayer avec la ligne de commande yum install clamav mais il me retourne :
No package clamav available.
Nothing to do
Doit on le télécharger ou l’installer via le manager de plugin ?
merci
Salut Gtraxx,
Si tu n’a pas la repository ; va voir sur https://blog.avis-planethoster.com/trucs-astuces/installer-clamav-sur-cpanel-centos-3118
Bien à toi.
Pour infos, vous pouvez ajouter à ce tuto le logiciel Lynis : http://www.rootkit.nl/projects/lynis.html qui franchement est fort sympathique 🙂
Bon tuto général, même si des choses dépendent du but de l’hébergement ..
safe_mode = On ou display_errors = OFF
ne ferait pas très bon ménage sur du shared par exemple ..
Oui c’est vrai!
Salut,
Moi j’ai un bug au moment de l’instalation de l’antivirus avec cpanel :
[20131113.233339]
[20131113.233339] Problems were detected with cPanel-provided files which are RPM controlled.
[20131113.233339] If you did not make these changes intentionally, you can correct them by running:
[20131113.233339]
[20131113.233339] > /usr/local/cpanel/scripts/check_cpanel_rpms –fix
[20131113.233339] The following RPMs are missing from your system:
[20131113.233339] cpanel-clamav-0.97.8-3.cp1140
[20131113.233339] cpanel-clamav-virusdefs-0.97.8-3.cp1140
[20131113.233339] cpanel-perl-514-File-Scan-ClamAV-1.91-1.cp1136
[20131113.233339] Removing 0 broken rpms:
[20131113.233339] rpm: no packages given for erase
[20131113.233340] Downloading http://httpupdate.cpanel.net/RPM/11.40/centos/6/i386/rpm.md5
…..
Et puis du coup quand je le fix :
ca a télécharger un fichier.
Puis quand je met :
root@serveurcasse [/home/casse-noisettes]# freshclam
bash: freshclam : commande introuvable
que faire ?
Merci
Je t’invite à créer un ticket directement chez cPanel : http://tickets.cpanel.net/
Ce que j’ai fais…
Sur cpanel 11.40, il faut écrire :
mettre à jour antivirus
: /usr/local/cpanel/3rdparty/bin/freshclam
lancer clam
/usr/local/cpanel/3rdparty/bin/clamscan
Et cela fonctionne 🙂
Merci pour ton tuto
J’ai une autre question :
Dans la configuration du root@serveur [~]# nano /usr/local/lib/php.ini
Je n’ai pas la ligne magic_quotes = On
mais j’en 3 légèrement différente, je met tout ON ?
; Magic quotes
;
; Magic quotes for incoming GET/POST/Cookie data.
;magic_quotes_gpc = Off
; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
;magic_quotes_runtime = Off
; Use Sybase-style magic quotes (escape ‘ with ” instead of \’).
;magic_quotes_sybase = Off