Outils pour utilisateurs

Outils du site


server:installation

Ceci est une ancienne révision du document !


À faire

  • Installer Apache
  • Installer MySQL
  • Installer PHP
  • Installer pare-feu (iptable ? fail2ban ?)
  • Installer serveur NTP ?

Préparation du disque d'installation

Télécharger l'image du disque d'installation à cette adresse. J'ai choisi l'image d'installation de taille réduite (netinst) qui nécessite une connexion à Internet.

Créer une clé USB d'installation avec UNetbootin.

Dans sa documentation, Debian préconise Win32DiskImager et décourage l'usage d'UNetbootin, pouvant engendrer des problèmes.

Dans mon cas, l'installation était cependant corrompue avec Win32DiskImager mais pas avec UNetbootin.

Installation du système

Booter sur la clé USB au démarrage (F12 dans le cas présent).

Suivre les instructions données dans ce tutoriel.

Personnalisations :

Ne pas forcer l'installation UEFI.

Schéma de partitionnement du disque : separate /home, /var, and /tmp partitions et garder les valeurs proposées.

Installer sudo

apt install sudo
usermod -aG sudo toto

Il est ensuite nécessaire de se reconnecter pour que le changement soit pris en compte et que toto ait accès à la commande sudo.

Configurer une IP statique

Éditer le fichier /etc/network/interfaces en assignant une IP statique à l'interface réseau souhaitée :

sudo nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
 
source /etc/network/interfaces.d/*
 
# The loopback network interface
auto lo
iface lo inet loopback
 
# The primary network interface
auto eno1
iface eno1 inet static
        address 192.168.1.10
        netmask 255.255.255.0
        gateway 192.168.1.1

Redémarrer le service réseau :

sudo service networking restart

ou

/etc/init.d/networking restart

Si l'interface n'est pas définie en auto, alors il sera nécessaire de la remonter manuellement avec la commande ifup ou en redémarrant la machine.

Sources

Configurer le pare-feu

Afficher les règles de filtrage en IPv4 :

sudo iptables -L

Garder les règles après un reboot :

sudo apt-get install iptables-persistent

Répondre oui pour la sauvegarde des règles actuelles.

Il y a à présent deux fichiers de configuration à éditer pour configurer le pare-feu :

  • /etc/iptables/rules.v4 pour IPv4
  • /etc/iptables/rules.v6 pour IPv6

On édite la configuration pour IPv4 :

sudo nano /etc/iptables/rules.v4

Contenu par défaut :

# Generated by iptables-save v1.6.0 on Sun May  5 09:35:53 2019
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Sun May  5 09:35:53 2019

Tout est autorisé par défaut.

J'ai suivi les indications données dans le tuto, donc :

  • Le trafic transfert (FORWARD) est bloqué
  • Le trafic sortant est non filtré
  • Le trafic entrant est bloqué, sauf ce qui nous intéresse
# Generated by iptables-save v1.6.0 on Sun May  5 09:35:53 2019
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [687:218631]
 
# Allow internal traffic on the loopback device
-A INPUT -i lo -j ACCEPT
 
# Continue connections that are already established or related to an established connection
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 
# Drop non-conforming packets, such as malformed headers, etc.
-A INPUT -m conntrack --ctstate INVALID -j DROP
 
# Accept SSH
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
 
# Chain for preventing ping flooding - up to 6 pings per second from a single
# source, again with log limiting. Also prevents us from ICMP REPLY flooding
# some victim when replying to ICMP ECHO from a spoofed source.
-N ICMPFLOOD
-A ICMPFLOOD -m recent --name ICMP --set --rsource
-A ICMPFLOOD -m recent --name ICMP --update --seconds 1 --hitcount 6 --rsource --rttl -m limit --limit 1/sec --limit-burst 1 -j LOG --log-prefix "iptables[ICMP-flood]: "
-A ICMPFLOOD -m recent --name ICMP --update --seconds 1 --hitcount 6 --rsource --rttl -j DROP
-A ICMPFLOOD -j ACCEPT
 
# Permit useful IMCP packet types.
# Note: RFC 792 states that all hosts MUST respond to ICMP ECHO requests.
# Blocking these can make diagnosing of even simple faults much more tricky.
# Real security lies in locking down and hardening all services, not by hiding.
-A INPUT -p icmp --icmp-type 0  -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmp --icmp-type 3  -m conntrack --ctstate NEW -j ACCEPT
-A INPUT -p icmp --icmp-type 8  -m conntrack --ctstate NEW -j ICMPFLOOD
-A INPUT -p icmp --icmp-type 11 -m conntrack --ctstate NEW -j ACCEPT
 
# Drop all incoming malformed NULL packets
-A INPUT -p tcp --tcp-flags ALL NONE -j DROP
 
# Drop syn-flood attack packets
-A INPUT -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
 
# Drop incoming malformed XMAS packets
-A INPUT -p tcp --tcp-flags ALL ALL -j DROP
 
COMMIT
# Completed on Sun May  5 09:35:53 2019

Redémarrer le service pour recharger et appliquer les règles :

sudo service netfilter-persistent restart

Sources

Liens utiles

server/installation.1557044194.txt.gz · Dernière modification: 2019/05/05 10:16 de kevin