Linuxの知っていれば得をする対策方法のまとめ
目次
NIC自動起動
ネットワーク再起動をした場合、デフォルトでeth0が起動しないので起動するようにする。
2026年11月時点の補足:Debian 13 の既定値
記事の sysctl の項目が、今の Debian でどうなっているかをDebian 13.7 の VPS(さくらのVPS・2GB プラン・3コア)で確かめました(2026年11月5日)。
$ /usr/sbin/sysctl net.ipv4.tcp_syncookies net.ipv4.tcp_fin_timeout net.ipv4.tcp_window_scaling net.ipv6.conf.all.disable_ipv6
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_window_scaling = 1
net.ipv6.conf.all.disable_ipv6 = 0
| 記事の項目 | この記事(2013年) | Debian 13(2026年11月時点) |
|---|---|---|
| SYN フラッド対策(tcp_syncookies) | 1 にする | 最初から 1 |
| TIME_WAIT(tcp_fin_timeout) | 短くする | 既定は 30秒(多くの場合このままでよい) |
| window scaling を無効にする | SCP の失敗対策で 0 | 1 のまま。0 にすると通信が遅くなる |
| IPv6 を無効にする | 設定ファイルで止める | sysctl の disable_ipv6 で止められる(既定は 0 = 有効) |
| locate | locate を入れる | plocate 1.1.23(mlocate は Debian 13 に無い) |
| NIC の自動起動 | /etc/network/interfaces の auto | VPS の多くは同じ。systemd-networkd や NetworkManager の環境もある |
⚠ 記事の「window scaling を無効にする」は、当時の古いルーターとの相性を避ける対策でした。今の回線で 0 にすると転送速度が大きく落ちるので、同じ症状が出ない限り触らないでください。設定は /etc/sysctl.d/ に 99-local.conf などの名前で置き、sysctl --system で読み込みます。
// 編集
# vi /etc/network/interfaces
// ~内容~
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
#auto lo
auto lo eth0 ← 修正:eth0を追加
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
IPv6プロトコルを無効にする
// 編集
# vi /etc/modprobe.d/aliases
// ~省略~
-alias net-pf-10 ipv6
+alias net-pf-10 off ← 修正:ipv6 → offにする。
locate(高速検索ツール)
ファイルを高速に検索する
// インストール
# apt-get install locate
// データベースを更新
# updatedb
// 使い方
# locate php.ini
SYNフラッドやDDoS攻撃対策
// 編集
# vi /etc/sysctl.conf
// syn flood攻撃対策
// Smurf攻撃対策
// ICMPエラー無視
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
// 設定を即座に反映する
# sysctl -p
TCP/IP で TIME_WAIT 状態が残る時間を短くする
TIME_WAIT は遅延パケット対策で猶予時間を持っている。CLOSEDまでの猶予時間を少し短めにしコネクションを解放を速くする。極端に短くすると通信エラーの原因になるかもしれない。 DoS攻撃対策にもなる。
// 編集
# vi /etc/sysctl.conf
// TIME_WAIT状態から開放される時間が短くする。(Default:60秒)
net.ipv4.tcp_fin_timeout = 30
// 設定を即座に反映する
# sysctl -p
Error: Driver ‘pcspkr’
あまり気にする事ではないが、pcspkr の kernel エラーが発生する事があるので対処します。
// 編集
# vi /etc/modprobe.d/blacklist
// ~省略~
blacklist snd-pcsp ← 最後に追加
SCPで巨大なファイルの転送に失敗する場合の対処
先方との兼ね合いで巨大ファイルの転送が失敗する時は、下記の設定を変更するとうまく行く場合がある。確かではない。ネットワークのスループットが低下する場合があるので転送後は元に戻す。
// window scalingを無効にする
# sysctl net.ipv4.tcp_window_scaling=0
// 元に戻す。(Default:1)
# sysctl net.ipv4.tcp_window_scaling=1
sysctl コマンドのまとめ
sysctl コマンドの使いそうな物だけまとめました。
// 扱えるパラメーター一覧
# sysctl -a | less
// 特定の値だけ表示
# sysctl net.ipv4.tcp_fin_timeout
net.ipv4.tcp_fin_timeout = 30
// 値を一時的に変える(再起動したら元に戻る)
# sysctl net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_fin_timeout = 30
// sysctl.conf に書いた設定を即座に反映する
# sysctl -p