サーバー構築

Linuxの知っていれば得をする対策方法のまとめ

Linuxの知っていれば得をする対策方法のまとめ
目次
  1. NIC自動起動
  2. IPv6プロトコルを無効にする
  3. locate(高速検索ツール)
  4. SYNフラッドやDDoS攻撃対策
  5. TCP/IP で TIME_WAIT 状態が残る時間を短くする
  6. Error: Driver ‘pcspkr’
  7. SCPで巨大なファイルの転送に失敗する場合の対処
  8. sysctl コマンドのまとめ

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 の失敗対策で 01 のまま。0 にすると通信が遅くなる
IPv6 を無効にする設定ファイルで止めるsysctl の disable_ipv6 で止められる(既定は 0 = 有効)
locatelocate を入れるplocate 1.1.23(mlocate は Debian 13 に無い)
NIC の自動起動/etc/network/interfaces の autoVPS の多くは同じ。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