• +237 661562859
  • Support professionnel
  • +4917620410241
Comment sécuriser un serveur privé dédié

Vous avez souscrit à un serveur dédié (VPS) sur Camoo Hosting, alors ceci pourait vous être très utile. Il est important d'avoir le control absolut sur le traffic des données de ou vers votre serveur.

Avec un pare-feu (firewall) vous avez les options suivantes

  • 1) Bloquer une adresse IP spéciale ou un groupe d'IP (Blacklisting)
  • 2) Fermer tous les ports par défaut
  • 3) Ouvrir un port spécial
Dans cet article, nous supposons que vous avez déjà installé Fail2ban dans votre système.

Créons avant tout notre fichier blacklist.ip:

touch /usr/local/etc/blacklist.ip

Dans ce fichier, vous pourrez ainsi y ajouter ligne par ligne une ip-adresse avec ou sans masque que vous désirez bloquer de votre serveur

Dans certains cas, vous serez obligés de faire une exception pour une ip-adresse vers un port précis.

Créons aussi un fichier whitlist.ip

touch /usr/local/etc/whitelist.ip
Maintenant nous pouvons créer notre fichier init (HowTo)
touch /etc/init.d/firewall
chmod +x /etc/init.d/firewall
vi /etc/init.d/firewall

#!/bin/sh
# custom firewall
# https://www.camoo.hosting

#needed modules
modprobe ip_conntrack_ftp

BLACKLIST=/usr/local/etc/blacklist.ip
WHITELIST=/usr/local/etc/whitelist.ip

#trigger for your ports
#PORTDESCRIPTION
 #22:SSH 25:SMTP 53:DNS 80:HTTP 443:HTTPS

IN_ALLOWED_TCP="22 25 53 80 443"
OUT_ALLOWED_TCP="22 25 53 80 443" 
IN_ALLOWED_UDP="53"
OUT_ALLOWED_UDP="53"
IN_ALLOWED_ICMP=" "
OUT_ALLOWED_IMCP=" "

case "$1" in
   start)
      # Clear iptables
      service fail2ban stop
      iptables -F

      #Defaults
      iptables -P INPUT DROP
      iptables -P OUTPUT DROP
      iptables -P FORWARD DROP

      # loopback communication
      iptables -A INPUT -i lo -j ACCEPT
      iptables -A OUTPUT -o lo -j ACCEPT

      # persist on connections
      iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 # block ISC.SANS
       iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.' -j DROP
       iptables -I INPUT -p tcp --dport 443 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.' -j DROP
       iptables -I INPUT -p tcp --dport 443 -m string --to 60 --algo bm --string 'GET /tmUnblock.' -j DROP
       iptables -I INPUT -p tcp --dport 80 -m string --to 60 --algo bm --string 'GET /tmUnblock.' -j DROP

      # Ban blacklisted IPs
      for x in `grep -v ^# $BLACKLIST | awk '{print $1}'`; do
        echo "Blocking $x..."
        iptables -A INPUT -t filter -s $x -j DROP
      done

       # Allow whitelisted IPs
       for x in `grep -v ^# $WHITELIST | awk '{print $1}'`; do
         echo "Allowing $x..."
         iptables -A INPUT -t filter -s $x -j ACCEPT
       done

      # TCP rules in
      for port in $IN_ALLOWED_TCP; do
        echo "Accepting TCP port $port"
        iptables -A INPUT -t filter -p tcp --dport $port -j ACCEPT
      done

      # TCP rules out
      for port in $OUT_ALLOWED_TCP; do
        echo "Allowing sending over TCP port $port"
        iptables -A OUTPUT -t filter -p tcp --dport $port -j ACCEPT
      done

      # UDP rules in
      for port in $IN_ALLOWED_UDP; do
        echo "Accepting UDP  port $port"
        iptables -A INPUT -t filter -p udp --dport $port -j ACCEPT
      done

      # UDP  rules out
      for port in $OUT_ALLOWED_UDP; do
        echo "Allowing sending over UDP port $port"
        iptables -A OUTPUT -t filter -p udp --dport $port -j ACCEPT
      done

      # ICMP rules in
      for port in $IN_ALLOWED_ICMP; do
        echo "Accepting ICMP  port $port"
        iptables -A INPUT -t filter -p icmp --dport $port -j ACCEPT
      done

      # ICMP rules out
      for port in $OUT_ALLOWED_ICMP; do
        echo "Allowing sending over ICMP port $port"
        iptables -A OUTPUT -t filter -p icmp --dport $port -j ACCEPT
      done

      # Dropping startup requests
      iptables -A INPUT -t filter -p tcp --syn -j DROP
      service fail2ban start
      ;;
   stop)
     service fail2ban stop
      iptables -F
      iptables -P INPUT ACCEPT
      iptables -P OUTPUT ACCEPT
      echo "Warning! Firewall is stopped, server is unprotected now!"
      ;;
   restart)
      $0 stop
      sleep 1
      $0 start
      ;;
      *)
      echo "Usage $0 {start|stop|restart}"
      ;;
esac
cd /etc/init.d
update-rc.d firewall defaults

Attention

Avant de démarrer le script rassurez vous, que le port de votre connexion par ssh se trouve bien dans IN_ALLOWED_TCP. Surtout si vous avez remplacé le port de défaut 22 par un autre

/etc/init.d/firewall restart

Impotant

Si vous installez un module sur le serveur, vérifiez si ce ce dernier neccessite un port spécial et ouvrez le!


  • IN_ALLOWED_TCP Liste des ports ouverts de l'exterieur vers notre serveur par TCP
  • OUT_ALLOWED_TCP Liste des ports ouverts de l'interieur vers l'esterieur par TCP
  • IN_ALLOWED_UDP Liste des ports ouverts de l'exterieur vers notre serveur par UDP
  • OUT_ALLOWED_UDPListe des ports ouverts de l'interieur vers l'esterieur par UDP
Laisser un commentaire

Votre adresse de messagerie et numéro de téléphone ne seront pas publiés

Avez-vous des questions?

Adresse
Camoo Hosting
BP 3891 Yaoundé, Cameroun
CAMOO SARL
Téléphone

+237 222 31 20 27 / +237 661562859
Appelez-nous pour obtenir de l’aide ou du soutien rapide.

Adresse e-mail

support@camoo.hosting
Avez-vous une autre préocupation? N’hésitez pas à nous écrire!

Prêt à commencer?

Nous sommes toujours heureux de vous aider.

Support Hebegement Web Cameroun
Avez-vous des questions?