FreeBSD 8.1 Apache 2.2 構築備忘録

FreeBSD8.1上でのApache2.2の構築備忘録です。
引っかかった場所は特になかったので,かなり簡単に書き留めます。

1.pkg_addでApache2.2のインストール

pkg_add -r apache22<br>

2.http.confの設定
以下はVimで編集する場合です。

vi /usr/local/etc/apache22/httpd.conf<br>

編集内容は各自のお好みで。

3.rc.confに追加
/etc/ec.confに

apache22_enable="YES"<br>
を追加します。

4.Apacheの起動
/usr/local/etc/rc.d/apache22 start

以上になります。

BIND DNSサーバ 構築備忘録

BINDを利用して,DNSサーバを構築しました。
以前にもやったことはあるのですが,今回は丁寧に構築して書き留めておきたいと思います。

DNSに関しては,構築後に弄るところがDNSレコードぐらいなので,設定周りの注意点をほとんど忘れてしまいます。

今回は環境に依存したインストールなどの内容は省きます。
ちなみに,今回利用した環境はさくらVPS上のUbuntu 10.04です。

今回設定した内容は,

  • 外部向けのokumoto-home.netゾーン解決
  • 内部向けのルートゾーン解決及びキャッシュ

主なのは1つ目の外部向けゾーン解決です。
内部向けはlocalhostのみなので,飾りみたいなもんです(笑

「named.conf」の内容

options {<br>    //バージョンを隠す<br>    version "unknown";<br>    directory "/etc/bind";<br><br>    forwarders {<br>        8.8.8.8;<br>        8.8.4.4;<br>    };<br><br>    //デフォルト許可<br>    allow-query { localhost; }; //問い合わせ<br>    allow-recursion { any; }; //再帰問い合わせ<br>};<br><br>//外部向け<br>view "external" {<br>    //全ホスト<br>    match-clients { any; };<br>    match-destinations { any; };<br><br>    //全ホストに問い合わせを許可<br>    allow-query { any; };<br><br>    //okumoto-home.net<br>    zone "okumoto-home.net" {<br>        type master;<br>        file "okumoto-home.net.zone";<br>    };<br>};<br><br>//内部向け<br>view "internal" {<br>    //内部ネットワーク<br>    match-clients { localhost; }; //クライアント<br>    match-destinations { localhost; }; //サーバ側<br><br>    //ルートゾーン<br>    zone "." {<br>        type hint;<br>        file "named.root";<br>    };<br><br>};<br>

設定の時の注意ですが,allow-関連やmatch-関連が種類が多かったり理解していないと,サービスの起動はするものの,問い合わせを意図したとおりに受け付けてくれません。これでハマってしまい結構時間を取ったので,最初はアクセス制限などは緩めに設定するのがいいかもしれません。(最小限の構成で)

「match-clientsとallow-queryの違いってなんだろう・・・?」と混乱しました。
「match-clients」は,許可というよりマッチというニュアンスです。(そのままじゃないかw)分かりにくいですが,要はviewというのはそれぞれのクライアントに対する振る舞いのことで,match-clientsによってクライアントごとに違う振る舞いをする訳です。
まとまりませんが,今回の設定では,「内部」向けの振る舞いと,「外部」向けの振る舞いの2つのviewを定義したことで,あたかも1つのサーバで内部向けと外部向けの2つのサーバが動いている様に見えますね。(外からの見え方だからviewって名前が付いたのでしょうねw)
そう考えるとviewには必ず(?)match-clientsが必要という可能性がありますね。

外部向けゾーンファイルの内容

$TTL 86400<br>@ IN SOA ns1.okumoto-home.net. root.ns1.okumoto-home.net. (<br>                        2011031601 ; Serial<br>                        28800      ; Refresh<br>                        14400      ; Retry<br>                        3600000    ; Expire<br>                        86400   )  ; Minimum<br><br>        IN    NS      ns1.okumoto-home.net.;<br>ns1     IN    A       XXX.XXX.XXX.XXX;<br>@       IN    A       XXX.XXX.XXX.XXX;<br>        IN    MX 10   okumoto-home.net.; //メールサーバ<br>mail    IN    A       XXX.XXX.XXX.XXX; //mail.okumoto-home.netの解決<br>okumoto-home.net. IN TXT "v=spf1 ip4:XXX.XXX.XXX.XXX -all" //送信元偽装対策<br>www     IN    A       XXX.XXX.XXX.XXX; //www.okumoto-home.netの解決<br>blog    IN    CNAME   ghs.google.com; //blog.okumoto-home.netのBloggerへのエイリアス<br>

※XXX.XXX.XXX.XXXにはグローバルIPを入れます。

ルートゾーンファイルの作成

dig . ns @8.8.8.8 > named.root<br>

FreeBSD 8.1 isc-dhcpd で DHCPサービス構築

今回はFreeBSD + isc-dhcpd を利用して,DHCPサービスの構築をしてみます。
サーバ構築の中ではマイナーなサービスに感じますが,それはDHCPが当たり前の存在になっているからだと思います。
「ブロードバンドルータ」には機能が標準搭載だからでしょうね。

それでは,構築作業について記述します。

  1. インストール
  2. インストール作業ですが,今回は「isc-dhcpd41-server」というパッケージを利用しました。

    cd /usr/ports/net/isc-dhcpd41-server<br>make<br>make install<br>

    でもいいですが, 今回は「pkg_add」コマンドでバイナリパッケージを利用しました。 使い方は簡単!

    pkg_add -r isc-dhcpd41-server<br>

    以上です。 -rオプションは,リモートからパッケージを取ってくるというオプションです。 これでインストールは完了です。

  3. 設定
  4. 次に設定に入ります。 まずは,「dhcpd.conf」の設定から行きましょう。

    vi /usr/local/etc/dhcpd.conf<br>

    で編集に入ります。 中身を見たら,sampleのconfigが入っていたので,全部消しちゃいます。(vimならggしてからdGとか)  今回の設定構成です。

  • IP: 192.168.1.0/24
  • DHCPによって割り当てる範囲: 192.168.1.10 – 192.168.1.50
  • DNSサーバ:
    • Primary: 8.8.8.8
    • Secondary: 8.8.4.4
    DNSサーバはGoogleのDNSです。
  • デフォルトゲートウェイ: 192.168.1.1
「dhcpd.conf」は以下のような内容になります。
option domain-name-servers 8.8.8.8, 8.8.4.4;<br><br>default-lease-time 600;<br>max-lease-time 7200;<br><br>ddns-update-style none;<br><br>log-facility local7;<br><br>subnet 192.168.1.0 netmask 255.255.255.0 {<br>        range 192.168.1.10 192.168.1.50;<br>        option routers 192.168.1.1;<br>        option subnet-mask 255.255.255.0;<br>        option broadcast-address 192.168.1.255;<br>}<br>
次に,「rc.conf」の設定します。 以下の内容を追加しました。
#DHCP Server<br>dhcpd_enable="YES"<br>dhcpd_flags="-q"<br>dhcpd_conf="/usr/local/etc/dhcpd.conf"<br>dhcpd_ifaces="[DHCPを提供するイーサネット]"<br>dhcpd_withumask="022"<br><br>dhcpd_chuser_enable="YES"<br>dhcpd_withuser="dhcpd"<br>dhcpd_withgroup="dhcpd"<br>dhcpd_chroot_enables="YES"<br>dhcpd_devfs_enable="YES"<br>
  • 起動
  • 起動は,普通に以下のコマンドを実行します。
    /usr/local/etc/rc.d/isc-dhcpd start<br>
  • 確認
  • クライアントマシンで,DHCPからIPアドレスなどの情報を得られれば成功です。

    DHCPは当たり前すぎるせいか,意外とその仕組を知らなかったりします。
    一見自機のIPアドレスの情報を割り当てているだけの様に思われますが,実はゲートウェイのアドレスや,DNSサーバのアドレスも伝えているのです。
    またWINSやNTPなどの通知もできるようです。

    ネットワーク系はサーバ構築しながら勉強になりますね!

    Ubuntu 10.10 Server Edition 構築日誌-1 導入編

    今回は,Ubuntu Serverを導入してみたいと思います。

    とは言っても,導入に関しては何も苦がなく,日本語でもインストールができるので,インストールに関しては省略します。

    インストール後の設定を主に書いていきます。

    まず直したのは,日本語設定です。
    インストール中に日本語を選択したので,勝手に環境設定も日本語になっていました。
    何が不便かというと,コンソール上での日本語表示です。

    SSHでの接続には,問題ありませんが直でコンソールを弄るとき,日本語が文字化けして全く読めない状態になります。なので,英語表記に戻します。

    .bashrcに

    LANG=C<br>

    を書きこむだけです。

    FreeBSDも扱っているせいで,ついsetなどを付けたくなっちゃいましたが。。。
    SSHからのログインの場合は,日本語表示という設定も出来るでしょうが,この程度の英語は簡単なので,普通に読めるのでいいでしょう。(エラーメッセージなんて日本語はあり得ませんし。)
    英語で読んでおくと,専門用語とかもゴロゴロ並んでいるので楽しいです。

    次は,SSHサーバのインストールです。
    正直,インストール中に入れちゃってもいいレベルです。
    結局そのまま動くので,apt-getからインストールするだけです。

    sudo apt-get install openssh-server<br>

    以上!

    あとは,サービスが勝手に動き出すのでもうSSHが使えます。
    インストール中にネットワーク接続した場合はDHCPによる接続になっているので,次にネットワーク設定をします。

    /etc/network/interfaces
    という設定ファイルに,

    auto eth0<br>iface eth0 inet dhcp<br>

    という行があります。

    これを,静的IPに変更します。

    auto eth0<br>#iface eth0 inet dhcp<br>iface eth0 inte static<br>address 192.168.10.1<br>netmask 255.255.255.0<br>network 192.168.10.0<br>broadcast 129.168.10.255<br>gateway 192.168.10.254<br>

    上記の設定は,それぞれのネットワークに依存するので,読み替えてください。

    そして,ネットワークの再起動は,

    sudo /etc/initr.d/networking restart<br>

    これで,ifconfigで設定の反映確認しておわりです。

    FreeBSDなら,この辺の設定は全部/etc/rc.confに書いちゃいますからね。
    FreeBSDのシンプルさには,驚きました。

    これで,IPアドレスも固定されたので,以降はSSHからのアクセスでいいでしょう。

    とりあえず,導入編はこれぐらいのところで。

    FreeBSD 8.1 構築日誌-3 main-srv1

    Sambaサーバ構築
    ようやく,Sambaの構築に入ります。
    ところで,ググったところportsのsamba3は地雷みたいですね。
    samba34辺りはいいみたいです。

    ということで,samba34で構築したいと思います。Samba4のActive Directoryのドメインコントローラ機能もいいな,と思いますがとりあえず安定版で行きたいと思います。(Samba4が安定版になったら,やろうかな)

    参考サイト: http://takaq1.plala.jp/freebsd/8_1r/samba/index.html

    cd /usr/ports/net/samba34<br>make config-recursive<br>

    設定画面に入ります。
    設定した内容は,「SWAT」を有効にする程度でした。
    SWAT入れたところで,使うだろうか・・・。大抵,設定ファイルからやっちゃうので,かえって邪魔に感じたりしますけど。

    さて,make install cleanです。
    どれぐらいかかるかな?
    今更ですが,Sambaの設定ファイルぐらい取っておけば良かった。
    共有設定程度だから,いいか。。。
    お好みの設定ファイルは取っておくべきですよね。

    そんなこんなで,Sambaのmakeが終わりました。
    rc.confにSambaを有効にする行を追加します。

    echo 'samba_enable="YES"' >> /etc/rc.conf<br>

    これで,再起動をします。
     SWATを使う場合は,「/etc/inetd.conf」をいじらないといけないようですが,とりあえずSWATは後回しにします。

    再起動後,いよいよ設定に入ります。
    smb.confは「/usr/local/etc」にあります。(Linuxだったら普通に/etcだけど)

    ファイルを見るとデフォルトのパーミッションが,リードオンリーなんですね。
    rootだけ許可しようか・・・。

    とりあえず,vimでの保存時に「!」を付けて回避しますw
    では,変更した部分を羅列します。

    [global]<br># workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH<br>workgroup = WORKGROUP<br><br># server string is the equivalent of the NT Description field<br>server string = File Server<br><br>hosts allow = 192.168.1. 127.<br><br>;load printers = yes #←コメントアウト<br>load printers = no #←追加<br>disable spoolss = yes<br><br># Charset settings<br>unix charset = UTF-8<br>dos charset = CP932<br>display charset = UTF-8<br><br># [printers]の範囲はコメントアウト<br><br>[homes]<br>comment = Home Directories<br>path = %H/samba<br>browseable = no<br>writable = yes<br><br>#Trash Box(ゴミ箱機能)<br>vfs objects = recycle<br>recycle:repository = .recycle<br>recycle:keeptree = no<br>recycle:versions = yes<br>recycle:touch = no<br>recycle:maxsize = 0<br>recycle:exclude = *.tmp ~$*<br><br>[public]<br>comment = Public Stuff<br>path = /home/samba<br>public = yes<br>writable = yes<br>only guest = yes<br><br>vfs objects = recycle<br>recycle:repository = .recycle<br>recycle:keeptree = no<br>recycle:versions = yes<br>recycle:touch = no<br>recycle:maxsize = 0<br>recycle:exclude = *.tmp ~$*<br>

    以上で,ユーザごとのホームディレクトリと共有ディレクトリの共有を設定しました。

    次に,この設定を使用可能にするために,ユーザの追加やディレクトリの作成を行います。
    参考サイト: http://fedorasrv.com/samba.shtml
    まず,既存ユーザにSambaサーバへのアクセスを可能にします。

    pdbedit -a [username]<br>

    新しいパスワード の入力を求めますが,UNIXへのログインとは別です。こちらで設定したパスワードは,Sambaアクセス専用になります。

    次に,新規ユーザ作成時にホームディレクトリ以下に自動的に「samba」というディレクトリを作るようにします。

    mkdir /usr/share/skel/samba<br>chmod 700 /usr/share/skel/samba<br>

    これで,ユーザ作成時に自動的に,ディレクトリが作成します。
    既存ユーザは,1つしかないので手動でやっちゃいました。

    次に,共有ディレクトリを作成します。

    mkdir /home/samba<br>chown nobody:nobody /home/samba<br>

    これで共有ディレクトリの作成が完了しました。

    あとは,

    /usr/local/etc/rc.d/samba restart<br>

    すればOKです。

    Windowsから,見てみると成功しました!!
    アクセス権も良さそうです。

    このサーバが,FreeBSDになって生まれ変わりました。
    早速ファイルサーバとして,使っていきたいと思います。

    これで1段落つきました。