目次

10.カーネルパラメータ

/etc/sysctl.d/99-sysctl.conf設定方法

#変更(/etc/sysctl.confのシンボリックリンク)
vi /etc/sysctl.d/99-sysctl.conf

#適用
sysctl -p

MagicSysRqKey設定

#ファイル・キャッシュの同期処理(sync処理)のみ有効にする。
kernel.sysrq = 16

#MagicSysRqKeyの確認コマンド
echo s > /proc/sysrq-trigger

#Emergency Sync completeと出ていれば完了
dmesg


https://qiita.com/Kernel_OGSun/items/6e540792a576e577e06f

kernel.panicの挙動設定

#パニック後(またはパニック後のdiskdump取得後)何秒で再起動処理を行うか(0は再起動しない)
kernel.sysrq = 1

coreダンプ出力設定

#setuidされたプロセスや、保護されたプロセスについてcoreダンプを生成しない
fs.suid_dumpable = 0

TCP/IPのポート不足対策設定

#TCP/IPのポート範囲を拡張する。(下限は32768より下げられるがMWの通信要件と重複しないよう設計する)
net.ipv4.ip_local_port_range = 32768 65000

#####下記はサーバのCPU張り付きや、ポート不足が顕著に出る場合は設定してみる#####
     #新しい接続に対して、TIME_WAIT 状態のソケットを再利用する
     net.ipv4.tcp_tw_recycle = 0

     #TIME_WAIT 状態のソケットを素早く再利用する
     net.ipv4.tcp_tw_reuse = 1

     #FIN-WAIT2 から TIME_WAIT に状態が変化するまでの時間
     net.ipv4.tcp_fin_timeout = 30


https://blog.ervin818.net/post/50411739410/port数が足りないときの対策
https://server.etutsplus.com/kernel-setting-tcp-fin-timeout/

IPv4モジュールの関連

#ICMP リダイレクトを無視します(MITM 攻撃を防ぎます)
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

#あり得ないパケット(不審なパケット)、無効なアドレスを持つパケットを記録します。
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

#ゲートウェイリストにデフォルトで列記されているゲートウェイに対してのみ、ICMP リダイレクトの受信を許可します。
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.default.secure_redirects = 1

#すべてのインターフェイスですべての IPv4 ICMP リダイレクトパケットの受信を無効にしない。
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

#IPv4のルーティングキャッシュを初期化する。
net.ipv4.route.flush = 1

https://qiita.com/makoto1899/items/8051e4355827accec841
https://qiita.com/JhonnyBravo/items/2d7f5036dc8e3aee345d

IPv6モジュールの関連

#IPv6を無効化する。
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

アプリケーションでtcp keepaliveが有効な場合のハーフコネクション・ハーフオープン対策

必要に応じて記載する。※各値はデフォルト値を記載しているのでチューニングする必要あり。

#keepalive packetを送信するまでの時間を秒単位で指定します 。デフォルトは2時間(7200秒)
net.ipv4.tcp_keepalive_time = 7200

#keepalive packetを送信する回数を指定します。デフォルトは9回
net.ipv4.tcp_keepalive_probes = 9

#keepalive packetを送信する間隔を秒単位で指定します。デフォルトは75秒
net.ipv4.tcp_keepalive_intvl = 75


https://qiita.com/keikmobile/items/5f2f427baf9121ccf40f

初期値

# 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).