サーバー拡張計画

現在Linuxサーバー機として使用しているのは、ヤフオクで入手したDynabook DynaBook Satellite 1800SA70C/4モデル(1万5千円くらい)。ものも良いし、前の持ち主のかたも大事に使っていたと見えて、快調に使えているのだが、メモリ128MB・ハードディスク10GBではさすがに非力すぎる。そこで、拡張計画について、畏友Kくん@上山に相談して考えてみた。

拡張メモリについてカタログには「PC100」と書いてあるが、こうした場合「PC133」でも大丈夫な場合が多いとのこと。ヤフオクで安く買える可能性が広がる話である。

ハードディスクは、PCカードスロットにUSB2.0かeSTAのインターフェイスを付けて、そこから外付けハードディスクにつなげるのが吉とのこと。RAIDも組んでみようかな。内蔵用ハードディスクとディスクケースを組み合わせるのも手だよな。だけど、ケースが高いところが考えどころ。NASも、バックアップ用にいいかも。日常用に使っているMac OS Xから音楽や写真をバックアップするのにもつかえるし。

Subversion + WebDAV

ApacheのWebDAV機能とsubversionを組み合わせると、セキュアで履歴管理機能がついたファイル共有が可能になるらしい。ということで奥村晴彦先生の説明やCentOS&Tracメモ/WebDAVでSubversionなどを参考に設定してみる。

  1. Apacheを、webDAV機能を有効にしてインストール
  2. subversionをインストール
  3. 「/home/www/svn」フォルダを作成
  4. 「/home/www/svn」フォルダで、「svnadmin create repos」を実行
  5. 「/usr/local/apache2/conf/httpd.conf」ファイルに次を追加
    # Subversion Repository
    Include /usr/local/apache2/conf/extra/subversion.conf
  6. フォルダにアクセスするユーザーのパスワードを設定
    shell# /usr/local/apache2/htpasswd -cm /etc/httpd/passwd j8takagi
  7. 「/usr/local/apache2/conf/extra/subversion.conf」ファイルを次の内容で作成
    <Location /svn>
       DAV svn
       SVNPath /home/www/svn/repos
          AuthType Basic
          AuthName "Repos"
          AuthUserFile /etc/httpd/passwd
          Require valid-user
    </Location>
  8. Apacheを再起動
    shell# /usr/local/apache2/bin/apachectl restart
  9. SVNモジュール関係のエラーになる場合は、ldconfigコマンドを実行してからApacheを再起動
  10. ブラウザで「http://www.j8takagi.net/svn/」にアクセス。
    ユーザー認証後、「Revision 0:/」と表示されれば成功らしい。

ただ・・・WindowsのExplorerからアクセスできない・・・

パケットフィルタリング

Linuxサーバーでは、iptablesでパケットフィルタリングの設定をする。
この設定をしないと、本当にすぐに狙われてしまう

次のような設定で良いかと思ったが、DNSサーバーをLinux機にしていたホストからの名前解決がうまくいかなくなった。

# 既存のルールを破棄
/sbin/iptables -F # 既存のルールを破棄
# ポリシーの設定
/sbin/iptables -P INPUT   DROP   # 受信はすべて破棄
/sbin/iptables -P FORWARD DROP   # 通過はすべて破棄
/sbin/iptables -P OUTPUT  ACCEPT # 送信はすべて許可
# ルールの追加
/sbin/iptables -A INPUT -i lo -j ACCEPT  # ループバックアドレスからのアクセスはすべて許可
/sbin/iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT # LAN内からのアクセスはすべて許可
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTPへのアクセスはすべて許可

追加で次の設定が必要ということか。

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

こうした点も含めて、ようこそVineLinuxで自宅サーバーへiptablesでファイヤーウォールの設定が参考になりそう。