Introduksjon
Kommandoer
Sikring og herding av kjernen
Konklusjon
Introduksjon
Sysctllar brukeren finjustere kjernen uten å måtte bygge om kjernen. Den vil også bruke endringene umiddelbart, og dermed trenger ikke serveren å startes på nytt for at endringer skal tre i kraft. Denne opplæringen gir en kort introduksjon til sysctlog demonstrerer hvordan du bruker den til å justere spesifikke deler av Linux-kjernen.
Kommandoer
For å begynne å bruke sysctl, se gjennom parameterne og eksemplene som er oppført nedenfor.
Parametere
-a : Dette vil vise alle verdiene som er tilgjengelige i sysctl-konfigurasjonen.
-A : Dette vil vise alle verdiene som for øyeblikket er tilgjengelige i sysctl-konfigurasjonen i tabellform.
-e : Dette alternativet vil ignorere feil om ukjente nøkler.
-p : Dette brukes til å laste en spesifikk sysctl-konfigurasjon, som standard vil den bruke/etc/sysctl.conf
-n : Dette alternativet vil deaktivere visning av nøkkelnavn når du skriver ut verdiene.
-w : Dette alternativet er for å endre (eller legge til) verdier til sysctl på forespørsel.
Eksempler
$ sysctl -a
$ sysctl -n fs.file-max
$ sysctl -w fs.file-max=2097152
$ sysctl -p
Så først sjekker vi standardverdiene. Hvis din /etc/sysctl.confer tom, vil den vise alle standardnøkler og verdier. For det andre sjekker vi hva verdien av fs.file-maxer og setter deretter den nye verdien til 2097152. Til slutt laster vi inn den nye /etc/sysctl.confkonfigurasjonsfilen.
Hvis du er ute etter ytterligere hjelp, kan du bruke man sysctl.
Sikring og herding av kjernen
For å gjøre endringene permanente, må vi legge til disse verdiene i en konfigurasjonsfil. Bruk konfigurasjonsfilen CentOS gir som standard, /etc/sysctl.conf.
Åpne filen med din favorittredigerer.
Som standard bør du se noe som ligner på dette.
# 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).
La oss forbedre systemminneadministrasjonen først.
Vi skal minimere mengden bytte vi trenger å gjøre, øke størrelsen på filhåndtak og inodebuffer, og begrense kjernedumper.
# 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
Deretter kan vi justere den nettverksoptimerte ytelsen.
Vi kommer til å endre mengden av innkommende tilkoblinger og innkommende tilkoblinger, øke den maksimale mengden minnebuffere og øke standard og maksimal sende/mottaksbuffere.
# 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
Til slutt skal vi forbedre generell nettverkssikkerhet.
Vi kommer til å aktivere TCP SYN-informasjonskapselbeskyttelse, IP-spoofing-beskyttelse, ignorering av ICMP-forespørsler, ignorering av kringkastingsforespørsler og logging til falske pakker, kilderutede pakker og omdirigeringspakker. Sammen med det skal vi deaktivere IP-kilderuting og ICMP-omdirigeringsaksept.
# 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
Lagre og lukk filen, og last deretter inn filen ved å bruke sysctl -pkommandoen.
Konklusjon
Til slutt skal filen din se ut som dette.
# 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