Debian GNU/Linuxのインストールからそれなりに堅牢なベースとなるサーバー構築までの設定手順を整理、まとめ。最短ルートにて環境できるようにするメモ。
インストール時
lvm、パーティション分割、パッケージ(tasksel)はsshサーバーと標準ツールでインストール。インストール時に気合を入れてカスタマイズしなくてもあとで何とかなる。
「~パーティションを分割」を選んでいると、/homeにがっつり容量を確保されるので、インストール直後に/homeを削っておく。???の部分は設定したホスト名が入っているはず。
# umount /home # e2fsck -f /dev/mapper/???-home # resize2fs /dev/mapper/???-home 10G # lvreduce -L 10G /dev/mapper/???-home # mount /home
余らした領域は、各パーティションが足りなくなりそうだったときに、足してあげればよい。
# pvdisplay --- Physical volume --- : Free PE xxxxxx :
ここでルートパーティションを少し広くしておくと安心。LVMパーティションの拡張方法⇒https://setting-tool.net/lvm-extend
良く使うツールのインストール
- extundelete (ジャーナルからのファイル復旧)
- ntp、ntpdate(時刻合わせサーバー・クライアント)
- wget(HTTPなどでのファイルダウンロード)
- dnsutils(nslookup、digコマンドなど)
- vim(エディタ:好み?癖?の問題)
- lv(ビューア)
を入れておく。
# aptitude install extundelete ntp ntpdate wget dnsutils vim lv
削除するツール
rcpbind (nfsを使わない=111ポートを閉じる=サーバーサービスを利用しているなど)
# aptitude purge rpcbind
設定
vimを標準エディタに設定する
# update-alternatives --config editor alternative editor (/usr/bin/editor を提供) には 3 個の選択肢があります。 選択肢 パス 優先度 状態 ------------------------------------------------------------ * 0 /bin/nano 40 自動モード 1 /bin/nano 40 手動モード 2 /usr/bin/vim.basic 30 手動モード 3 /usr/bin/vim.tiny 10 手動モード 現在の選択 [*] を保持するには Enter、さもなければ選択肢の番号のキーを押してください: 2 update-alternatives: /usr/bin/editor (editor) を提供するために 手動モード で /usr/bin/vim.basic を使います
atd(バッチキュー)を使わない場合
# update-rc.d atd disable 再起動時に起動させない (# update-rc.d -f atd remove initスクリプト削除) # /etc/init.d/atd stop いま止める
acpid(電源管理)もいらなければ止める。ただしVPSなどでは利用していることがあるので止めないほうが良い。
# update-rc.d acpid disable # /etc/init.d/acpid stop
予備コンソールを起動させない(3-6をコメントアウト、再起動後に有効、1のコンソールで壊れたら2を使わずに2で1を復活させる)
# vi /etc/inittab 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6
IPv6の無効化
/etc/sysctl.d/以下にnet.ipv6.conf.all.disable_ipv6=1を記載したconfファイルを置き、再起動する。
# vi /etc/sysctl.d/disable_ipv6.conf
net.ipv6.conf.all.disable_ipv6 = 1
SSH(sshd)のポート番号変更とIPv6の無効化
/etc/ssh/sshd_configの先頭のほうにある下記の部分を編集。
# What ports, IPs and protocols we listen for Port xxxx 22番以外のポートに変更 # Use these options to restrict which interfaces/protocols sshd will bind to #ListenAddress :: ListenAddress 0.0.0.0 コメントアウトを削除してIPv4のみに限定
1つのターミナルが生きているうちに、sshdを再起動して接続確認をしておく。
# /etc/init.d/ssh restart
iptablesの設定(iptables-persistentの利用)
iptables-persistentでiptablesを管理する
# aptitude install iptables-persistent
IPv6を使わない場合はすべてDROPに変更してして塞いでおく
# vi /etc/iptables/rules.v6 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] COMMIT
IPv4はSSHと必要なものを開けてあとは閉じておく。
# vi /etc/iptables/rules.v4 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # たとえばHTTP -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT # SSHで設定したポートを指定 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_log: " --log-level 7 -A INPUT -j REJECT --reject-with icmp-port-unreachable -A FORWARD -j REJECT --reject-with icmp-port-unreachable -A OUTPUT -j ACCEPT COMMIT
いちおう単純DROPにせず、--reject-with icmp-port-unreachableでREJECTを返しておく。
また、iptableのログを/var/log/iptables.logに出力するようにしておく(このままだとsyslogが汚れる)。
# vi /etc/rsyslog.d/iptable.conf (ファイルを作成) :msg,contains,"iptables_log" -/var/log/iptables.log & ~
# /etc/init.d/rsyslog restart
そして設定を反映させ、SSHなど接続確認をしておく。
# /etc/init.d/iptables-persistent reload
Nginx+WordPressのインストール手順⇒https://setting-tool.net/install-wordpress