Introducere
Sysctlpermite utilizatorului să ajusteze kernel-ul fără a fi nevoie să reconstruiască nucleul. De asemenea, va aplica imediat modificările, astfel încât serverul nu va trebui să fie repornit pentru ca modificările să intre în vigoare. Acest tutorial oferă o scurtă introducere sysctlși demonstrează modul de utilizare a acestuia pentru a regla anumite părți ale nucleului Linux.
comenzi
Pentru a începe să utilizați sysctl, consultați parametrii și exemplele enumerate mai jos.
Parametrii
-a : Aceasta va afișa toate valorile disponibile în prezent în configurația sysctl.
-A : Aceasta va afișa toate valorile disponibile în prezent în configurația sysctl sub formă de tabel.
-e : Această opțiune va ignora erorile despre cheile necunoscute.
-p : Acesta este utilizat pentru a încărca o configurație specifică sysctl, implicit o va folosi/etc/sysctl.conf
-n : Această opțiune va dezactiva afișarea numelor de chei atunci când imprimați valorile.
-w : Această opțiune este pentru modificarea (sau adăugarea) valorilor la cerere sysctl.
Exemple
$ sysctl -a
$ sysctl -n fs.file-max
$ sysctl -w fs.file-max=2097152
$ sysctl -p
Deci, mai întâi verificăm valorile implicite. Dacă dvs. /etc/sysctl.confeste gol, acesta va afișa toate tastele și valorile implicite. În al doilea rând, verificăm la ce valoare fs.file-maxeste și apoi setăm valoarea nouă 2097152. În cele din urmă, încărcăm noul /etc/sysctl.conffișier de configurare.
Dacă sunteți în căutarea de ajutor suplimentar, puteți utiliza man sysctl.
Securizarea și întărirea nucleului
Pentru a face modificările permanente, va trebui să adăugăm aceste valori într-un fișier de configurare. Utilizați în mod implicit fișierul de configurare pe care CentOS îl oferă /etc/sysctl.conf.
Deschideți fișierul cu editorul preferat.
În mod implicit, ar trebui să vedeți ceva similar cu acesta.
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
Să îmbunătățim mai întâi managementul memoriei de sistem.
Vom reduce la minimum cantitatea de schimburi pe care trebuie să o facem, vom crește dimensiunea mânerelor de fișiere și a cache-urilor inode și vom restricționa depozitele de bază.
# Minimizing the amount of swapping
vm.swappiness = 20
vm.dirty_ratio = 80
vm.dirty_background_ratio = 5
# Increases the size of file handles and inode cache & restricts core dumps
fs.file-max = 2097152
fs.suid_dumpable = 0
În continuare, permiteți ajustarea performanței optimizate a rețelei.
Vom schimba cantitatea de conexiuni primite și conexiunile primite, vom crește cantitatea maximă de memorii tampon și vom crește bufferele implicite și maxime de trimitere / primire.
# Change the amount of incoming connections and incoming connections backlog
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 262144
# Increase the maximum amount of memory buffers
net.core.optmem_max = 25165824
# Increase the default and maximum send/receive buffers
net.core.rmem_default = 31457280
net.core.rmem_max = 67108864
net.core.wmem_default = 31457280
net.core.wmem_max = 67108864
În cele din urmă, vom îmbunătăți securitatea generală a rețelei.
Vom activa protecția cookie-urilor TCP SYN, protecția anti-spoofing IP, ignorarea cererilor ICMP, ignorarea cererilor de difuzare și înregistrarea la pachete spoite, pachete sursă dirijate și pachete redirecționare. Împreună cu aceasta, vom dezactiva rutarea sursei IP și acceptarea redirecționării ICMP.
# Enable TCP SYN cookie protection
net.ipv4.tcp_syncookies = 1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter = 1
# Enable ignoring to ICMP requests and broadcasts request
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable logging of spoofed packets, source routed packets and redirect packets
net.ipv4.conf.all.log_martians = 1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route = 0
# Disable ICMP redirect acceptance
net.ipv4.conf.all.accept_redirects = 0
Salvați și închideți fișierul, apoi încărcați fișierul folosind sysctl -pcomanda.
Concluzie
În final, fișierul dvs. ar trebui să arate similar cu acesta.
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
# Minimizing the amount of swapping
vm.swappiness = 20
vm.dirty_ratio = 80
vm.dirty_background_ratio = 5
# Increases the size of file handles and inode cache & restricts core dumps
fs.file-max = 2097152
fs.suid_dumpable = 0
# Change the amount of incoming connections and incoming connections backlog
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 262144
# Increase the maximum amount of memory buffers
net.core.optmem_max = 25165824
# Increase the default and maximum send/receive buffers
net.core.rmem_default = 31457280
net.core.rmem_max = 67108864
net.core.wmem_default = 31457280
net.core.wmem_max = 67108864
# Enable TCP SYN cookie protection
net.ipv4.tcp_syncookies = 1
# Enable IP spoofing protection
net.ipv4.conf.all.rp_filter = 1
# Enable ignoring to ICMP requests and broadcasts request
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable logging of spoofed packets, source routed packets and redirect packets
net.ipv4.conf.all.log_martians = 1
# Disable IP source routing
net.ipv4.conf.all.accept_source_route = 0
# Disable ICMP redirect acceptance
net.ipv4.conf.all.accept_redirects = 0