Tutos geek

Tutoriaux linux, debian, android et autres

Sécurisation de votre VPS

14/01/2015 - 2 commentaires

Il y a quelque temps j'ai constaté des tentatives d'intrusion sur mon serveur, venant de chine, russie, thaïlande, ...
Mon VPS ne contenant rien de bien folichon je n'ai eu affaire qu'à des robots assez basiques, cherchant probablement à enrichir une armée de zombies spammeur ou DDoSeur.
Ils se sont donc cassé les dents sur mes défenses rudimentaires.

Comment les détecter ?

Chaque tentative de connexion SSH est consignée dans le fichier /var/log/xconsole.log

less /var/log/xconsole.log

Jan 14 11:21:31 vps12345 sshd[4050]: Failed password for mike from 212.123.45.67 port 22 ssh2
Un utilisateur dont l'adresse IP publique est 212.123.45.67 a essayé de se connecter en SSH à mon VPS sur le port 22 avec le nom d'utilisateur 'mike' mais a échoué.

Jan 14 11:22:02 vps12345 sshd[4050]: Accepted password for pumbaa from 212.123.45.67 port 1234 ssh2
Jan 14 11:22:02 vps12345 sshd[4050]: pam_unix(sshd:session): session opened for user pumbaa by (uid=0)
Nom d'utilisateur, port et mot de passe correct.

Donc quand vous avez votre fichier de log pourri par des milliers de "Failed password for XXX" c'est qu'on tente de pénétrer chez vous.

Comment les empêcher d'entrer ?

Mot de passe

Avoir des mots de passe très fort, surtout celui de 'root'.
Et quand je dis très fort je pense à minimum 20 caractères.
Comme ça devient dur à retenir (surtout si vous mettez des caractères spéciaux dedans, comme c'est recommandé) je vous conseil le très bon logiciel KeePass qui se souviendra pour vous de tous vos mots de passe. Je ferai probablement un billet là-dessus un jour.

su - #Pour passer en root
passwd

Configuration du SSH

vi /etc/ssh/sshd_config

Changer le port
Port 1234

Interdire la connexion en SSH à l'utilisateur 'root'
PermitRootLogin no

Maintenant le seul moyen de se connecter en 'root' est de se connecter avec un autre compte puis de lancer la commande
su -

Vérifier la version du protocole utilisée
Protocol 2

Redémarrer SSH
/etc/init.d/ssh restart

/!\ ATTENTION /!\
Ne fermez pas le terminal à ce moment. Ouvrez-en un nouveau et vérifiez que vous arrivez bien à vous connecter avec votre utilisateur habituel.
Souvenez-vous que le port à changé et que 'root' ne peut plus se connecter.

La suite

Les robots ne pourront - probablement - pas rentrer sur votre serveur mais ça ne va pas les empêcher d'essayer en boucle.
Pour les bannir définitivement l'utilisation de Fail2ban semble être intéressante.
Ça sera l'objet d'un prochain billet, quand je l'aurai installé chez moi.


Source : http://forum.ovh.com/showthread.php?102599-Attaque-SSH-sur-mon-VPS


Debian version : 6.0.10

BlogoText

11/12/2014 - Aucun commentaire

Quoi de plus légitime pour démarrer ce blog que de créer un tuto sur... comment installer un blog ? :)
Il me fallait quelque chose de simple et léger, facile à installer et à utiliser, histoire de pouvoir me concentrer sur le contenu plus que sur le design et la personnalisation.
Je me suis donc tourné vers BlogoText, du hollandais volant.

Installation

Commencez par télécharger et déployer l'archive
cd /var/www
wget http://lehollandaisvolant.net/blogotext/blogotext.zip
unzip blogotext.zip
chown -R www-data:www-data blogotext # Change le propriétaire de tous les fichiers

Créez une base de donnée (je reviendrai sur l'installation de MySQL dans un autre billet).
J'ai opté pour MySQL mais SQLite est aussi disponible.
mysql -u root -p
create user BLOGOTEXT_USER identified by 'UN_BON_PASSWORD';
create database BLOGOTEXT_DB;
grant all on BLOGOTEXT_DB.* to BLOGOTEXT_USER;

Et c'est tout !
Rendez-vous sur http://votre_site/blogotext, choisissez une paire de login/password, renseignez les champs MySQL défini plus haut et vous serez prêt à publier votre 1er billet.

Allons plus loin

Vous pouvez néanmoins paramétrer un peu votre installation.
Commencez par renforcer la sécurité en changeant le chemin d'administration (comme c'est indiqué dans le billet créé automatiquement à l'installation) et le sel.
mv ./admin/ ./NOM_DE_DOSSIER_ADMIN/ # Renomme le dossier admin
rm config/user.php # Supprime le fichier de configuration pour forcer la création d'un nouveau sel.
vi ./inc/conf.php
$GLOBALS['salt']= 'UN_BON_SEL';
$GLOBALS['dossier_admin'] = 'NOM_DE_DOSSIER_ADMIN';

Et vous pouvez aussi augmenter la tailler des fichiers maximale que vous pourrez téléverser uploader sur votre blog.
Attention : ceci modifie un fichier de configuration d'apache, cela impactera tous vos sites si vous en avez plusieurs.
vi /etc/php5/apache2/php.ini
upload_max_filesize = 20M
/etc/init.d/apache2 restart

C'est fini ?

Oui, mais je ferai un deuxième billet avec les modifications que j'ai apporté au code afin de correspondre à mes besoins (légère modification du thème, ajout d'une balise [file] (celle qui vous agresse les yeux avec le texte en jaune sur fond bleu =D), debug, ...


Debian version : 6.0.10
Apache version : 2.2.16
MySQL version : 5.1.73-1
BlogoText version : 2.1.0.0