Skip to content

snroki/debian-ssh

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Init :

git clone https://github.com/snroki/debian-ssh.git

cd debian-ssh && make run

ssh root@localhost -p 2222

Debian :

La base

Openssh

Dans le fichier suivant : vim /etc/ssh/sshd_config (on ne va pas le faire vu qu'on utilise docker)

  • Désactiver le login en tant que root : modifier la ligne PermitRootLogin yes en PermitRootLogin no

  • Optionnel : Activer uniquement le login par ssh key https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 et modifier la ligne PasswordAuthentication yes en PasswordAuthentication no

  • Optionnel : Changer le port ssh modifier la ligne #Port 22 en Port *whatever*

Iptables

  • Vérifier l'état actuel des tables : iptables -L, si la chain INPUT est en policy DROP jouer cette commande iptables -t filter -P INPUT ACCEPT

  • Purger les règles existantes : iptables -F

  • Rajouter une règle pour la connexion actuelle (histoire de pas perdre son shell ssh) : iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

  • Autoriser le loopback (permet la communication avec un dns local) : iptables -A INPUT -i lo -j ACCEPT

  • Refuser n'importe quelle connexion entrante : iptables -P INPUT DROP

  • Autoriser les connexions ssh : iptables -A INPUT -p tcp --dport 22 -j ACCEPT

  • Autoriser les connexions web (port 80 et 443) : iptables -A INPUT -p tcp --dport 80 -j ACCEPT et iptables -A INPUT -p tcp --dport 443 -j ACCEPT

  • Optionnel : Faire en sorte que ces règles restent même si votre serveur se redémarre : https://serversforhackers.com/video/firewall-persisting-iptables-rules

  • Optionnel : Si votre serveur a un ipv6 il faut jouer les mêmes règles pour les ip6tables

Fail2ban

  • Si docker : penser à démarrer le service rsyslog

  • Installation du package : apt install fail2ban

  • Editer la configuration : vim /etc/fail2ban/jail.conf (vous pouvez changer la conf pour la connexion ssh)

  • Penser à rajouter des configurations pour vos applications ! (ex sur le login wordpress)

MariaDB :

  • Installation du package : apt install mariadb-server

  • Rendre l'installation plus secure : mysql_secure_installation (supprime l'accès extérieur pour le user root + les databases de test + les users anonymes)

  • Optionnel : Créer une database et un user (qui n'a accès qu'à cette base) pour chaque appli ! (ne pas utiliser le root)

Php :

Pourquoi FPM : http://php.net/manual/en/install.fpm.php

Nginx :

  • Installation du package : apt install nginx

  • Optionnel : change l'utilisateur (ex : www-data) vim /etc/nginx/nginx.conf et modifier la ligne user par user www-data

  • Optionnel : mettre root directory dans le répertoire home de notre utilisateur

  • Optionnel : configurer son site correctement pour bloquer certains headers + ssl

https://www.abyssproject.net/2016/11/a-la-recherche-de-la-configuration-parfaite-pour-nginx/ https://poweruphosting.com/blog/secure-nginx-server https://gist.github.com/plentz/6737338

Pour aller plus loin :

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Makefile 67.4%
  • Shell 32.6%