自宅サーバーのHDDを換装に合わせてサーバーの再構築をしました。
この記事では構築時の設定メモを書いてみます。
サーバー機能
自宅サーバーでは以下の機能を提供しています
- DHCPサーバー
- DNSキャッシュサーバー
- Sambaサーバー
- Web開発サーバー
DHCPとDNSは止めるわけにはいかないので、VMで代替を用意します。
セットアップ
サーバーOSにはUbuntu Server 12.04 LTSを使用しました。
これは「できるだけ新しいパッケージを使いたい」かつ「アップデートのサポートが長いもの」という条件から5年サポートのLTSを使用します。
パーティション分けは以下のようにしました。
/dev/sda1 /boot ext4 512MB
/dev/sda3 / ext4 60GB
/dev/sda5 swap 4GB
/dev/sda6 /home ext4 900GB
インストーラー時にセットアップするサーバーを選択できるので
OpenSSH, DNS, Sambaを選択してセットアップ
設定
●アップデート
インストールが完了したらパッケージのアップデートをかける前に、アップデートサーバーのアドレスを変更しておきます。
/etc/apt/source.list に設定されているので、jp.ubuntu.comからftp.jaist.ac.jpに変更しました。
変更したら以下のコマンドでアップデートします
sudo apt-get update
sudo apt-get dist-upgrade
●パッケージインストール
アップデートして再起動した後、自分が必要なパッケージをインストールします
私は以下のパッケージをインストールしました
zsh htop nmap sysstat build-essential
gitは新しいパッケージを使いたいのでppaからインストールします
ubuntu serverだとデフォルトでppaが利用できないので以下のパッケージをインストールします
ppa-purge python-software-properties
インストールしたらubuntuのパッケージ管理で最新のgitを使うのようにgitをインストールします
●コンソール数の変更
次にデフォルトだとコンソールの数が多いので4つに減らしました
/etc/default/console-setup
ACTIVE_CONSOLES=”/dev/tty[1-6] → ACTIVE_CONSOLES=”/dev/tty[1-6]
/etc/init/tty5.confと/etc/init/tty5.confを全行コメントアウト
そして再起動
●SSHの設定
/etc/ssh/sshd-configで以下の設定を変えます
port xxxxx(アクセスされないように隠してます)
passwrodLogin no
permitedRootRogin no
/etc/ufw/applications.d/openssh-serverのポート番号も変更しておきます
●ファイアーウォールの設定
Ubuntuではufwと呼ばれるiptablesを簡易的に設定できるツールがあるのでこれで設定します
DNSやSamba、開発用のWebサーバーは外には公開せず、SSHのみを外に開きます。
外向きのSSHもufw limitで接続回数に制限をかけます
sudo ufw reset
sudo ufw default deny
sudo ufw allow from 192.168.xx.0/24 to any app Samba
sudo ufw allow from 192.168.xx.0/24 to any app OpenSSH
sudo ufw allow from 192.168.xx.0/24 to any app Bind9
sudo ufw allow from 192.168.xx.0/24 to any app Apache
sudo ufw limit to any app OpenSSH
●DNSとDHCP
DNSはbind, DHCPはdhcp3-serverを利用しました
DNSは/etc/bind/db.root(ルートサーバーのアドレスリスト)を最新版に更新します
このDNSサーバーはキャッシュサーバーとして使うので
forwardersにプロバイダのDNSサーバーのIPアドレスを設定
forward only;
recursion yes;
dnssec-validation no;
のような設定にしました
DHCPは/etc/dhcp/dhcpd.confで設定
IPレンジとDNSのIP、ゲートウェイ設定などを行います
●NTPによる時刻同期
ntpdをインストールして時刻同期するようにします。
同期先サーバーはntp1.jst.mfeed.ad.jp〜ntp3.jst.mfeed.ad.jpを設定しました
●Sambaの設定
Samba3.6.3では共有設定はsmb.confではなくnetコマンドを使います
$ net usershare add “Public” /home/Public “Public” Everyone:F guest_ok=y
オプションの意味はaddの後から「共有名」「共有するパス」「コメント」「権限」「ゲスト許可」となっています
権限は「アカウント:F(full access)|R(Read Only)|D(Deny)」という形式になります
●最後に
設定が終わったら/etc/network/interfaceからDHCPから固定IPに変更します
iface eth0 inet dhcpをコメントアウトして以下の設定にします
iface eth0 inet static
address 192.168.xxx.xx
netmask 255.255.255.0
network 192.168.xxx.0
broadcast 192.168.xxx.255
gateway 192.168.xxx.1
dns-nameservers 127.0.0.1
UbuntuではDNSの設定はdns-nameserversで設定します。/etc/resolv.confは起動時に自動的に変更されます
設定が終わったらセットアップの間、代替サーバーとなっていたVMをシャットダウンしてセットアップしたサーバーに切り替えます
こんなかんじで移行しました。このあとにホームディレクトリのデータを移行などを行なって元気に稼働しております。