On peut ajuster les performances de son Noyau Gratuitement.
Les réglages du noyau sont utilisés pour personnaliser le comportement de votre système Linux opensuse au démarrage.
Avant d'avoir adopter définitivement Opensuse Tumbleweed, j'ai expérimenté ces réglages sur :
- Arch Linux
- Linux Mint & LMDE
- Fedora
& Debian Testing...
Çà vaut le coup d'y regarder et faire des réglages selon votre configuration matériel.
La 1ère chose :
- Adapter votre swap, si vous l'avez configurer (swap pas obligatoire selon la quantité de mémoire physique et utilisation de travail , multimédia en générale)
vm.swappiness = 10
vm.vfs_cache_pressure = 50
vm.dirty_background_ratio = 10
vm.dirty_background_bytes = 0
vm.dirty_ratio = 20
vm.dirty_bytes = 0
vm.dirty_writeback_centisecs = 500
vm.dirty_expire_centisecs = 3000
vm.dirty_background_ratio est le pourcentage de mémoire système qui peut être rempli et doivent encore être écrites sur le disque - avant les processus d'arrière-plan. Ma config est de 10%, de 8 go , c'est 800 Mo de données qui peuvent être stockées dans la RAM avant écriture.vm.dirty_ratio est la quantité maximale absolue de mémoire système pouvant être remplie vm.dirty_background_bytes et vm.dirty_bytes vm.dirty_expire_centisecs est la durée pendant laquelle quelque chose peut rester dans le cache avant de devoir être écrit. Dans ce cas, c'est 30 secondes.
vm.dirty_writeback_centisecs est la fréquence à laquelle les processus se réveillent et vérifient si du travail doit être fait.vm.vfs_cache_pressure : Cette option contrôle la tendance du noyau à récupérer la mémoire utilisée pour la mise en cache des objetsvm.swappiness :réduire la valeur de swappiness signifie que le noyau sera moins susceptible d'échanger des pages mémoire moins fréquemment utilisées. Ainsi, le noyau sera plus susceptible de conserver ces pages en cache dans la RAM pour un accès plus rapide.Il est préférable d'éviter de swaper, et que tous les processus se passe en mémoire, car plus rapide que le swap. retenez que le swap, est une alternative au risque de manque de mémoire.
Coucou
Juste un petit rappel de cette rubrique :
- Uniquement des propositions techniques avancées
- Pour les résolutions de problèmes, voir les rubriques concernées.
Ceci afin d'éviter les doublons de rubriques.
Précisions concernant sysctl
J'ai utilisé le paramètre
net.ipv4.icmp_echo_ignore_all comme exemple.
Défini à 1, l'hôte ne renverra aucun paquet "echo_reply"; défini à 0, il enverra un paquet echo_reply (à chaque paquet echo_request reçu).
- Voir la valeur actuelle d'un paramètre
- avec la commande sysctl (en root)
# sysctl net.ipv4.icmp_echo_ignore_all
net.ipv4.icmp_echo_ignore_all = 1
et pour récupérer la valeur précise, c'est avec l'option -n (en root)
toto-PC:/home/thierry # sysctl -n net.ipv4.icmp_echo_ignore_all
1
- avec la commande cat (fonctionne aussi avec un utilisateur non root); toutes les paramètres sont disponibles dans le dossier /proc/sys/
thierry@toto-PC:~> cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1
- Configurer un paramètre dont la valeur est utilisée par le noyau.
- temporairement et instantanément
- à chaque boot (donc durablement)
Il est préférable de créer un fichier .conf dans le dossier/etc/sysctl.d plutôt que d'écrire directement dans le fichier /etc/sysctl. Le risque étant qu'une mise à jour change le fichier /etc/sysctl, alors que ce n'est pas le cas avec les fichiers .conf du dossier /etc/sysctl.d
J'ai créé par exemple le fichier exemple.conf (on pourrait y écrire plusieurs lignes, chacune d'elles définirait un paramètre):
thierry@toto-PC:~> cat /etc/sysctl.d/exemple.conf
net.ipv4.icmp_echo_ignore_all=1
Après le redémarrage de mon ordinateur, il est devenu impossible de la pinguer d'un autre hôte.
Essai de ping d'une VM ubuntu (192.168.0.233):
thierry@thierry-VirtualBox:~$ ping -c 2 192.168.0.81
PING 192.168.0.81 (192.168.0.81) 56(84) bytes of data.
--- 192.168.0.81 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1005ms
Vu du sniffer wireshark, aucun paquet paquet echo reply:
1 0.000000000 192.168.0.233 192.168.0.81 ICMP 98 Echo (ping) request id=0x0001, seq=1/256, ttl=64 (no response found!)
2 0.985117040 192.168.0.233 192.168.0.81 ICMP 98 Echo (ping) request id=0x0001, seq=2/512, ttl=64 (no response found!)
Remarque:
Il est possible d'utiliser le fichier que l'on a créé instantanément sans redémarrer, avec la commande sysctl et l'option -p
toto-PC:/home/thierry # sysctl net.ipv4.icmp_echo_ignore_all
net.ipv4.icmp_echo_ignore_all = 1
toto-PC:/home/thierry # vim /etc/sysctl.d/exemple.conf
toto-PC:/home/thierry # cat /etc/sysctl.d/exemple.conf
net.ipv4.icmp_echo_ignore_all=0
toto-PC:/home/thierry # sysctl -p /etc/sysctl.d/exemple.conf
net.ipv4.icmp_echo_ignore_all = 0
toto-PC:/home/thierry # sysctl net.ipv4.icmp_echo_ignore_all
net.ipv4.icmp_echo_ignore_all = 0
Mon ordinateur est répond maintenant au ping "echo-request" par un ping "echo-reply"…
Tout cela fonctionne notamment avec
les paramètres concernant la mémoire d'échange (swap) présentés par
@yoman dans le post précédent.
Ils sont présents dans
/proc/sys/vm/…
Bonjour
Très bon post sur ICMP, pour poursuivre dans la même lancée je te propose un peu plus de sécurité dans la gestion des
ICMP & et
ICMPv6, pour les personnes qui ont accès à leur réseau LAN depuis l’extérieure.
Dans SYSCTL pour ICMP & ICMPv6, (cf post de
@denebe
# Désactiver l'envoi de réponses ICMP en broadcast (DoS protection)
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Désactiver les réponses ICMP à l'écoute des requêtes broadcast
net.ipv4.icmp_echo_ignore_all = 1
# Désactiver les annonces d'erreur ICMP
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Ne pas accepter les erreurs ICMP causées par le forwarding
net.ipv4.conf.all.log_martians = 1
# Ignorer les réponses ICMP pour les paquets multicast ou anycast
net.ipv4.icmp_echo_ignore_multicast = 1
# Désactiver l'envoi de réponses ICMPv6 en broadcast (DoS protection)
net.ipv6.icmp.echo_ignore_broadcasts = 1
# Désactiver les réponses ICMPv6 à l'écoute des requêtes broadcast
net.ipv6.icmp.echo_ignore_all = 1
# Désactiver les annonces d'erreur ICMPv6
net.ipv6.icmp.ignore_bogus_error_responses = 1
# Ne pas accepter les erreurs ICMPv6 causées par le forwarding
net.ipv6.conf.all.log_martians = 1
# Ignorer les réponses ICMPv6 pour les paquets multicast ou anycast
net.ipv6.icmp.echo_ignore_multicast = 1
Pour Parefeu IPTAPBLES IPV4
# Autoriser le ping (ICMP echo-request)
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
# Bloquer les types d'attaques ICMP
iptables -A INPUT -p icmp --icmp-type redirect -j DROP
iptables -A INPUT -p icmp --icmp-type source-quench -j DROP
iptables -A INPUT -p icmp --icmp-type time-exceeded -j DROP
iptables -A INPUT -p icmp --icmp-type parameter-problem -j DROP
Rendre la règle persistante selon les outils de votre OS.
Pour Parefeu IPTAPBLES IPV6
# Autoriser le ping (ICMPv6 echo-request)
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
# Bloquer les types d'attaques ICMPv6
ip6tables -A INPUT -p icmpv6 --icmpv6-type destination-unreachable -j DROP
ip6tables -A INPUT -p icmpv6 --icmpv6-type packet-too-big -j DROP
ip6tables -A INPUT -p icmpv6 --icmpv6-type time-exceeded -j DROP
ip6tables -A INPUT -p icmpv6 --icmpv6-type parameter-problem -j DROP
Rendre la règle persistante selon les outils de votre OS.
Cette configuration devrait permettre de maintenir le trafic réseau normal, d'autoriser les pings pour les tests réseau, et de renforcer la sécurité en minimisant les risques d'attaques ICMP et ICMPv6.
Je n'ai pas testé avec le parefeu d'Opensuse, j'ai toujours utilisé iptables ou ufw
ATTENTION CES CONFIGURATIONS PEUVENT ÊTRE AMELIORÉES OU CORRIGÉES