Увод
Команде
Осигуравање и учвршћивање кернела
Закључак
Увод
Sysctlомогућава кориснику да фино подеси кернел без потребе да га поново гради. Такође ће одмах применити промене, тако да сервер неће морати да се поново покреће да би промене ступиле на снагу. Овај водич пружа кратак увод sysctlи показује како га користити за подешавање одређених делова Линук кернела.
Команде
Да бисте почели да користите сисцтл, прегледајте параметре и примере наведене у наставку.
Параметерс
-а : Ово ће приказати све вредности које су тренутно доступне у сисцтл конфигурацији.
-А : Ово ће приказати све вредности које су тренутно доступне у сисцтл конфигурацији у облику табеле.
-е : Ова опција ће игнорисати грешке о непознатим кључевима.
-п : Користи се за учитавање одређене сисцтл конфигурације, подразумевано ће се користити/etc/sysctl.conf
-н : Ова опција ће онемогућити приказивање имена кључева приликом штампања вредности.
-в : Ова опција је за промену (или додавање) вредности у сисцтл на захтев.
Примери
$ sysctl -a
$ sysctl -n fs.file-max
$ sysctl -w fs.file-max=2097152
$ sysctl -p
Дакле, прво проверавамо подразумеване вредности. Ако је ваш /etc/sysctl.confпразан, приказаће све подразумеване кључеве и вредности. Друго, проверавамо која је вредност fs.file-maxи затим постављамо нову вредност на 2097152. Коначно, учитавамо нову /etc/sysctl.confконфигурациону датотеку.
Ако тражите додатну помоћ, можете користити man sysctl.
Осигуравање и учвршћивање кернела
Да би промене биле трајне, мораћемо да додамо ове вредности у конфигурациони фајл. Користите конфигурациону датотеку коју ЦентОС подразумевано обезбеђује, /etc/sysctl.conf.
Отворите датотеку помоћу свог омиљеног уређивача.
Подразумевано, требало би да видите нешто слично овоме.
# 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
Сачувајте и затворите датотеку, а затим учитајте датотеку помоћу sysctl -pкоманде.
Закључак
На крају, ваш фајл би требао изгледати слично овоме.
# 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