MODOP – Tuning Linux kernel parameters

1°) Paramètres KERNEL

# arrêter les messages de bas niveau sur la console
kernel.printk = 4 4 1 7 

#Evite un panic KERNEL brute , Redémarre le Kernel aprs 10sec 
kernel.panic = 10 

# Désactive la journalisation de la Magic SysRq key 
kernel.sysrq = 0 

# Allocation maximale (bytes) autorisée d'un segment de mémoire partagée pour le Kernel
kernel.shmmax = 4294967296 

# Allocation minimale (bytes) d'un segment de mémoire partagée pour le Kernel
kernel.shmall = 4194304 

# Fixe comme PID le plus haut pour le fichier coredump
kernel.core_uses_pid = 1 

# Allocation maximale (octets) d'un seul fichier en standby
kernel.msgmnb = 65536 

# Allocation maximale (octets) autorisée d'un seul fichier en standby
kernel.msgmax = 65536
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
kernel.printk = 4 4 1 7
kernel.panic = 10
kernel.sysrq = 0
kernel.shmmax = 4294967296
kernel.shmall = 4194304
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536

2°) Contrôle SWAP au niveau KERNEL

# Limitation basse pour le swap géré au niveau Kernel
vm.swappiness = 20 

# Allocation maximale absolue de mémoire système avant d'écrire des données sur le disque
vm.dirty_ratio = 80 

# Pourcentage de mémoire système qui amène à écrire des données sur le disque
vm.dirty_background_ratio = 5
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
vm.swappiness = 20
vm.dirty_ratio = 80
vm.dirty_background_ratio = 5

3°) Contrôle Fichier au niveau KERNEL

# Limitation de fichier ouverts sous linux 
fs.file-max = 2097152 
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
fs.file-max = 2097152

4°) Paramètres Socket Network au niveau KERNEL

# Nombre maximum de paquets reçu par l'interface réseau 
net.core.netdev_max_backlog = 262144 

#Tampon de réception de socket par défaut 
net.core.rmem_default = 31457280 

# Tampon de réception de socket maximal 
net.core.rmem_max = 67108864 

# Tampon d'envoi de socket par défaut 
net.core.wmem_default = 31457280 

# Tampon d'envoi de socket maximal 
net.core.wmem_max = 67108864 

# Modifier le nombre de connexions entrantes 
net.core.somaxconn = 65535 

# Augmenter la quantité maximale de mémoire tampon 
net.core.optmem_max = 25165824
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.core.netdev_max_backlog = 262144
net.core.rmem_default = 31457280
net.core.rmem_max = 67108864
net.core.wmem_default = 31457280
net.core.wmem_max = 67108864
net.core.somaxconn = 65535
net.core.optmem_max = 25165824
net.ipv4.tcp_timestamps = 0

5°) Paramètres ARP Network au niveau KERNEL

# taille du cache ARP interne du noyau
net.ipv4.neigh.default.gc_thresh1 = 4096 
net.ipv4.neigh.default.gc_thresh2 = 8192 
net.ipv4.neigh.default.gc_thresh3 = 16384 

# Fréquence avec laquelle on vérifie les entrées ARP valides
net.ipv4.neigh.default.gc_interval = 5 

#Fréquence de vérification des entrées ARP périmées
net.ipv4.neigh.default.gc_stale_time = 120
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.neigh.default.gc_thresh1 = 4096
net.ipv4.neigh.default.gc_thresh2 = 8192
net.ipv4.neigh.default.gc_thresh3 = 16384
net.ipv4.neigh.default.gc_interval = 5
net.ipv4.neigh.default.gc_stale_time = 120

6°) Paramètres des messages Network au niveau KERNEL

#Nombre maximal d'entrées de connexion autorisées
net.netfilter.nf_conntrack_max = 10000000 

# désactivons la récupération des connexions
net.netfilter.nf_conntrack_tcp_loose = 0 

# Délai (seconde) d'expiration de la connexion établie
net.netfilter.nf_conntrack_tcp_timeout_established = 1800 

# Délai (seconde)d'expiration pour une requête
net.netfilter.nf_conntrack_tcp_timeout_close = 10 

# Délai (seconde) d'attente avant l'expiration pour une requête
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 10

# Délai (seconde) de fin d'attente pour une requête
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 20 

# Délai (seconde) d'attente du dernier message
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 20 

# Délai (seconde) d'attente synchro réception d'un message
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20 

# Délai (seconde) d'attente synchro envoi d'un message
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 20 

# Délai (seconde) d'attente pour la fin d'un message
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 10
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.netfilter.nf_conntrack_max = 10000000
net.netfilter.nf_conntrack_tcp_loose = 0
net.netfilter.nf_conntrack_tcp_timeout_established = 1800
net.netfilter.nf_conntrack_tcp_timeout_close = 10
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 10
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 20
net.netfilter.nf_conntrack_tcp_timeout_last_ack = 20
net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20
net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 20
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 10

7°) Paramètres IPv4 Network au niveau KERNEL

#définit le port min/max d'une connexion réseau utilisable comme port source
net.ipv4.ip_local_port_range = 1024 65000 

# Désactivation de la fragmentation d'un message/packet IPv4
net.ipv4.ip_no_pmtu_disc = 1
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_no_pmtu_disc = 1

Partie Routage

# Désactivation du routage IP IPv4
net.ipv4.ip_forward = 0 

# Désactivation updates table de routage 
net.ipv4.route.flush = 1 

# Nombre maximum d'entrées dans le cache Route
net.ipv4.route.max_size = 8048576 
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.route.flush = 1
net.ipv4.route.max_size = 8048576

Partie ICMP

# Activer l'ignorance des requêtes ICMP 
net.ipv4.icmp_echo_ignore_all = 1

# Activer l'ignorance des requêtes Brodcoast
net.ipv4.icmp_echo_ignore_broadcasts = 1 

#Activer le rejet des trames non RFC
net.ipv4.icmp_ignore_bogus_error_responses = 1 
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

Partie TCP

# Désactiver le démarrage lent TCP
net.ipv4.tcp_slow_start_after_idle = 0 

# Définir Algo du contrôle de gestion TCP
net.ipv4.tcp_congestion_control = htcp 

# Allocation total du buffer maximum allouable TCP
net.ipv4.tcp_mem = 65536 131072 262144 

# Allocation total du buffer en lecture maximum allouable TCP
net.ipv4.tcp_rmem = 4096 87380 33554432

# Allocation total du buffer en écriture maximum allouable TCP
net.ipv4.tcp_wmem = 4096 87380 33554432 

# Allocation du pool de buckets tcp-time-wait (attaques DOS simples)
net.ipv4.tcp_max_tw_buckets = 1440000 

# Activer les SOCKET time_wait Recycle
net.ipv4.tcp_tw_recycle = 1

# Activer les SOCKET time_wait REUSE
net.ipv4.tcp_tw_reuse = 1 

# Nombre maximal de sockets TCP pour les HANDLE
net.ipv4.tcp_max_orphans = 400000 

# Activer window scaling défini par la norme RFC1323.
net.ipv4.tcp_window_scaling = 1 

# Activer le contrôle de la pile TCP
net.ipv4.tcp_rfc1337 = 1 

# Activer la protection des cookies TCP SYN 
net.ipv4.tcp_syncookies = 1 

# Nombre de SYNACK pour une tentative de connexion TCP
net.ipv4.tcp_synack_retries = 1 

# Nombre de SYN pour une tentative de connexion TCP
net.ipv4.tcp_syn_retries = 2 

# Nombre max de demandes de connexion mémorisées sans accusé de réception du client 
net.ipv4.tcp_max_syn_backlog = 16384 

# Activation de timestamps
net.ipv4.tcp_timestamps = 1 

# Activation acknowledgments (SACKS)
net.ipv4.tcp_sack = 1 
#net.ipv4.tcp_fack = 1 

# Activation ECN lors de connexion entrante
net.ipv4.tcp_ecn = 2 

# Durée de timeout des connexions orphelines 
net.ipv4.tcp_fin_timeout = 10 

# Fréquence d'envoi des message KEEPALIVE 
net.ipv4.tcp_keepalive_time = 600 

# Temps à laquelle les connexions sont KILL sans réponse
net.ipv4.tcp_keepalive_intvl = 60 

# Nombres de sondes keepalive TCP envoyé avant de KILL les connexions sans réponse
net.ipv4.tcp_keepalive_probes = 10 

# Active l'enregistrement des metrics TCP dans le cache route
net.ipv4.tcp_no_metrics_save = 1 
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_mem = 65536 131072 262144
net.ipv4.tcp_rmem = 4096 87380 33554432
net.ipv4.tcp_wmem = 4096 87380 33554432
net.ipv4.tcp_max_tw_buckets = 1440000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_orphans = 400000
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_ecn = 2
net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 10
net.ipv4.tcp_no_metrics_save = 1

Partie UDP

# Allocation total du buffer maximum allouable UDP
net.ipv4.udp_mem = 65536 131072 262144 

# Allocation total du buffer en lecture maximum allouable UDP
net.ipv4.udp_rmem_min = 16384

# Allocation total du buffer en écriture maximum allouable UDP
net.ipv4.udp_wmem_min = 16384 
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.udp_mem = 65536 131072 262144
net.ipv4.udp_rmem_min = 16384
net.ipv4.udp_wmem_min = 16384

Partie Divers

# Désactiver l'acceptation de la redirection des packets sur toutes les interfaces 
net.ipv4.conf.all.send_redirects = 0 

# Désactiver le routage source IP 
net.ipv4.conf.all.accept_source_route = 0 

# Activer la protection contre l'usurpation d'adresse IP
net.ipv4.conf.all.rp_filter = 1

# Activer la journalisation des paquets falsifiés, des paquets routés à la source et des paquets de redirection 
net.ipv4.conf.all.log_martians = 1

# Désactiver l'acceptation de la redirection ICMP 
net.ipv4.conf.all.accept_redirects = 0
[root@vps-e7276df3 chris]# vi /etc/sysctl.conf

[root@vps-e7276df3 chris]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.accept_redirects = 0

Views: 8

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *