#contents
** サーバー証明書 ( Spirits.hmuna.com ASOF 2006-5 ) [#tf57c3f9]
- &ref(server_mail.crt,center,mail.hmuna.com の証明書);
- &ref(server_www.crt,center,www.hmuna.com の証明書);
- &ref(server_wiki.crt,center,wiki.hmuna.com の証明書);

** 最近の更新 (FC2 server 関連) [#s5348c7b]
*** [[Fedra2Apache]] [#y5de09e0]
*** [[Fedra2Mail]] [#u7469984]
*** ftp server [#ac27f135]
- user : ftpusr
- pass : anonymous
- server_directory : /opt/ftp_ext
*** DHCP server の設定 [#e24f7fb9]
- [[設定方法:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/539usedhcpd.html]]
- /etc/dhcpd.conf の内容
 [root@power root]# cat /etc/dhcpd.conf
 ddns-update-style interim;
 ignore client-updates; 
 
 subnet 192.168.1.0 netmask 255.255.255.0 {
 
 # --- default gateway
         option routers                  192.168.1.1;
         option subnet-mask              255.255.255.0; 
 
         option nis-domain               "hmuna.com";
         option domain-name              "hmuna.com";
         option domain-name-servers      192.168.1.1;
 
         option time-offset              -18000; # Eastern Standard Time
 #       option ntp-servers              192.168.1.1;
 #       option netbios-name-servers     192.168.1.1;
 # --- Selects point-to-point node (default is hybrid). Don't change this unless
 # -- you understand Netbios very well
 #       option netbios-node-type 2;
 
         range dynamic-bootp 192.168.1.128 192.168.1.254;
         default-lease-time 21600;
         max-lease-time 43200; 
 
         # we want the nameserver to appear at a fixed address
 #       host ns {
 #               next-server marvin.redhat.com;
 #               hardware ethernet 12:34:56:78:AB:CD;
 #               fixed-address 207.175.42.254;
 #       }
 }
- dhcp.conf の内容 (R2Dボードのネットワークブート対応を追加)
         # RTS7751R2D network boot setting
         host RTS7751R2D {
                 hardware ethernet 00:00:E1:6B:5F:B0;
                 fixed-address 192.168.1.100;
                 filename "/tftpboot/rts7751r2d/boot/zImage-2.6.8.1";
                 option root-path "/tftpboot/rts7751r2d";
         }
* プロバイダーの設定 [#j92f2822]
** 動的グローバルIP の割付 ・・・・ [[IIJmio:http://www.iijmio.jp/]] Fiber Access/DF の設定 [#l5192d05]
グローバル・アドレスは唯一無二でなけれぱならず、この割り当てと運用管理は、NIC (Network Information Center) と呼ばれる組織によって一元的に行われています。米国およびその他埴域をlnterNlC、アジア太平洋地域を [[APNIC:http://www.apnic.net/]] (Asia Pacific Network lnformation Center) そして日本国内を [[JPNlC:http://www.nic.ad.jp/]] (Japan Network lnformation Center) が統括しています。

これまでは Bフレッツのマンションタイプを利用したブロードバンド接続サービス上で、 IIJ のプロバイダーを利用して 動的ローカルIPアドレスを PPPoE 接続により取得してインターネット接続を行っていたが、自宅サーバー設置の第一段階として 動的グローバルIPをWAN側のポートに割り振って運用する必要が発生した。 IIJ の個人用プロバイダーサービス  [[IIJ4U:http://www.iij4u.or.jp]]  のオプションである [[IIJmio:http://www.iijmio.jp/]] のメニュー利用してこれを実現する。
 < IIJ4U 契約内容 ・・・・ 1998/02/20 契約 >
 
 PPP ID        : pf0024171
 PPP password  : UFQ4uty2
 Mail account  : munakata 
 Mail password  : FHH8ybg3
 Sub domain   : kk
 Mail adress  : munakata@kk.iij4u.or.jp
[[IIJmio:http://www.iijmio.jp/]] のサービスを利用するために、まず mio のユーザー登録を行い以下のアカウントを設定し、更に 動的グローバルIP を1つ PPPoE 経由で取得できるサービスである [[IIJmio FiberAccess/DF:http://www.iijmio.jp/guide/outline/bd/]] の契約を以下の通り行った。
 < IIJmio 契約内容 ・・・・ 2004/05/16 契約、2004/07/03 解約 >
 
 mio ID               : MA6219956
 mio password          : freedman
 契約者               : 宗像尚郎
 IIJmio FiberAccess/DF : bd3198049
 PPP ログイン名    : bd3198049@iij.ad.jp
この新しい PPPoE 接続情報を ルーターの PPPoE 設定に反映して再接続したところ、下記の通りの接続情報を取得することができた。 このアドレスは 動的IPアドレス なので再接続時 及び 一定時間経過後に新しいアドレスに変化する可能性がある。

&ref(WAN_port_info.JPG);

** 固定グローバルIP の割付 ・・・・ [[IIJmio:http://www.iijmio.jp/]] Fiber Access/SF の設定 [#h37e2d10]

 < IIJmio 契約内容 ・・・・ 2004/06/29 契約 >
 
 mio ID               : MA6219956
 mio password          : freedman
 IIJmio FiberAccess/SF : bn3221914
 PPP ログイン名    : bn3221914@bnf1.ad.jp
 IP アドレス(固定)    :  210.138.152.229
 
&ref(WAN_port_info.JPG);
** DNS逆引き の結果 [#jb13cb73]
&ref(ReverseDNS.JPG);

** 静的グローバルIP の割付 [#ba853e1f]
メールサーバーを運用する時には IPアドレスが変化しない 静的IPアドレス を割り振る必要があり、IIJmio では [[FiberAccess/SF:http://www.iijmio.jp/guide/outline/bn/]] というサービスを利用する必要がある。 但し 動的IPが 月額 [[2,100円:http://www.iijmio.jp/guide/outline/bd/#ryoukin]] に対し 静的IPは [[8,400円:http://www.iijmio.jp/guide/outline/bn/#ryoukin]] と費用が高いので当面は 動的IP で運用する。

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

* 独自ドメインの運用 [#f7ccf3bb]
** ドメインの参照 ・・・ DNS サーバーの階層構造 [#p8a03085]
クライアントから入力されたドメイン名をIPアドレスに変換するのは DNSサーバーの役割で、通常はブロバイダ側に用意されています。プロバイダーの DNSサーバーもインターネット上に存在するすべてのコンピューターのドメイン名とIPアドレスを把握しているわけではないので、問い合わせのあったドメイン名に対応するIPアドレスがわか
らない場合、DNSサーバーはさらに上位のDNSサーバーに問い合わせを行います。上位のDNSサーバーには、[[InterNIC:http://www.internic.net/]] (Intemet Network Information Center) が管理する「ルートネームサーバー」や、[[JPNlC:http://www.nic.ad.jp/]] (Japan Nelwork Information Center) が管理する「JPドメインDNSサーバー」などがあり、問い合わせのあったドメイン名の文字列を解析します。そして、その結果をもとにあらためて下位にある各DNSサーバーを追跡し、IPアドレスを調査します。

&ref(Domain_struct.jpg);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** 独自ドメインの申請 ・・・・ [[Value-Domain:https://www.value-domain.com/login.php]]  を利用したドメイン取得 [#x6c6bb80]
今回ドメイン名の申請を [[Value-Domain.com:https://www.value-domain.com/?ref=hogemoge]] という申請代行業者を利用して行った。 1年単位の契約で各種の [[CCTLD:http://www4.plala.or.jp/nomrax/TLD/]] のドメイン名を申請することができるもの。 今回は [[Verisign:http://www.verisign-grs.com/]] が運用する一般的な .com ドメインとして hmuna.com というドメインを年間費用 990円 で申請・取得した。 はじめに Value-Domain へのユーザー登録を行い以下のアカウントを取得した。
 < Value-Domain 登録内容 > ・・・・ DiCE による DNSレコード自動更新設定に必要
 
 ユーザー名 : kittyfred
 パスワード : freedman
[[Value-Domain:https://www.value-domain.com/login.php]] のトップページから上記のアカウントでログインして hmuna.com のドメイン登録内容を設定する必要がある。%%現在は Value-Domain の ネームサーバー を利用して ダイナミックDNS の形態で運用する設定となっている。%% 固定IP運用となったのでDNSエントリーを下記のように変更した(2005-1-14) hmuna.com あてのメールを転送する設定 や 無償(広告付き) Web サーバーを利用する設定が可能であるが、現在は使用していない。 DNS情報は Value-Domain の NDS サーバー  %%と Dynamic DNS サーバーに二重に同時に設定していてIPアドレス変更時に同時に更新させる。 ここに WWW などのホスト名を指定した場合には IP更新時に ホスト名に対しても変更をかけないと hmuna.com だけのアドレスが更新されたおかしな状況になるので注意、ここでは下図の通り WWW などのホスト名を指定せず(* と指定)miniDNS 側だけでサブドメインの設定を行う。%% に設定している (独自のDNSサーバーを利用できない=逆引きに対応できない のは IIJ の個人向けサービスの制約 このため一部のメールサーバーから受信拒否されることがある。


// &ref(ValueDNS.jpg);
&ref(ValueDNS_new.jpg);

 <Iijima@lineo.co.jp>: host ns.lineo.co.jp[203.141.200.203] said: 501
     <munakata@hmuna.com>... Sender domain must exist (in reply to MAIL FROM
    command)

- Lineo などで発生した COLOR(RED){メール受信時に送信者のドメイン名(ドメインだけ=hmuna.com)が逆引きできないと、メールを弾く問題} の対策のために hmuna.com を追加で登録した。
- hmuna.com のドメイン延長手続きを行った ( 新しい有効期限 = 2011.5.16 ) @2006/04/16
&ref(ValueDNS_new2.jpg);

- リモート電源制御装置の名前を登録、power を廃止した → 2006-05-14 時点の設定~
&ref(valu_200605.JPG);

 < hmuna.com ドメインの登録内容 >
 ドメイン名     : hmuna.com
 ドメインパスワード : freedman8310

Verisign(ENOM) の[[データベース:http://www.verisign-grs.com/cgi-bin/whois?whois_nic=hmuna.com&type=domain]] で検索した hmuna.com の情報

 < WHOIS hmuna.com >
 
 Domain Name: HMUNA.COM
 Registrar: ENOM, INC.
 Whois Server: whois.enom.com
 Referral URL: http://www.enom.com
 Name Server: DNS1.NAME-SERVICES.COM
 Name Server: DNS2.NAME-SERVICES.COM
 Name Server: DNS3.NAME-SERVICES.COM
 Name Server: DNS4.NAME-SERVICES.COM
 Name Server: DNS5.NAME-SERVICES.COM
 Status: REGISTRAR-LOCK
 Updated Date: 16-may-2004
 Creation Date: 16-may-2004
 Expiration Date: 16-may-2005

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** 無償DNSサーバーの利用 ・・・・ [[miniDNS:http://www.minidns.net/]] の登録 [#rb462617]
結果的には Value-Domain の DNS レコードだけでも機能することがわかったが、無償のDNS サービスである [[miniDNS:http://www.minidns.net/]] にユーザー登録を行った。 このような DynamicDNSサービス を利用する最大の目的は DNSレコードの動的な更新を利用できるからである (通常のプロバイダーのDNSレコードは動的に [[DiCE:http://www.hi-ho.ne.jp/yoshihiro_e/dice/]] などのツールを利用して自動更新させることができない)。 更に DynamicDNS サービスを利用すると独自ドメインを(お金を払って)取得しなくても、DNS サービスのサブドメインとして独自サーバーを公開することができるというメリットもあるが、今回は独自ドメインを運用することが目的なのでこの機能は利用しない。 今回利用した  [[miniDNS:http://www.minidns.net/]]  は、サブドメインを利用する設定と 独自ドメインを利用する設定の両方が選択的に利用可能で、[[鷹の巣:http://sakaguch.com/SetminiDNSjp.html]] の解説ぺージなどを参考に  [[miniDNS:http://www.minidns.net/]]  の設定を行う。 

 < miniDNS のアカウント > ・・・・ DiCE による DNSレコード自動更新設定に必要
 
 ログイン名 : freedman
 パスワード :  fr4386

上記のアカウントを利用して [[miniDNS:http://www.minidns.net/]] Webページの左側のメニューから ログイン してDNS レコードを登録・編集する。 現在は トップドメイン(hmuna.com)と httpサーバー(www.hmuna.com)を別々に設定している。 画面の中の IPアドレス は当然動的に変化するものであるが、DNSレコード設定時に手動で現在割り振られている IP アドレスを設定しDNSレコードをオンラインにする。

&ref(miniDNS_admin.jpg);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** DynamicDNS サービスによる DNS レコードの更新 ・・・・ [[DiCE:http://www.hi-ho.ne.jp/yoshihiro_e/dice/]] によるDNSの自動更新 [#yb717d35]
動的IPアドレスを利用しているので、再接続や一定時間の経過に伴ってプロバイダーから WAN(PPPoE) ポートに付与されているグローバルアドレスが変化した時に、この変更を DNSレコードに反映させる更新処理が必要になる。 DiCE が対応している フリーのDNS サイトの [[リスト:http://www.hi-ho.ne.jp/yoshihiro_e/dice/#LIST]] を参照することができる。

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

*** DynamicDNS サーバーの登録 [#b88bf61c]
現在 WAN(PPPoE)側に割り振られたグローバルIPアドレスを 5分毎にチェックするようにDiCE を設定している。 IPアドレスの変化を検出した場合 と 指定した一定の時間(現在は14日に設定)が経過した場合に 指定された DNS サーバーに対して IP アドレスの更新をかけることができる。現在 DNS レコードを Value-Domain と miniDNS の2つの DNS レコードに登録している。更に miniDNS にはトップドメイン(hmuna.com)と WWWサーバー(www.hmuna.com)の2つのエントリーが設定されているので IPアドレス変化時にはすべてのレコードを更新させられるように DiCE に3つのエントリーを設定した。

&ref(DiCE_1.jpg);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

*** 動的IP変化時の DNS への更新設定 [#x396894e]
現在 WAN(PPPoE)側に割り振られたグローバルIPアドレスを 5分毎にチェックするようにDiCE を設定している。 IPアドレスの変化を検出した場合 と 指定した一定の時間(現在は14日に設定)が経過した場合に 指定された DNS サーバーに対して IP アドレスの更新をかけることができる。DiCE には予め主要なフリーの DynamicDNS サーバーの IP更新手順がプログラムされているが ドメイン名、ホスト名、ユーザーアカウント、パスワード などを下記設定画面で適切に設定しなければならない。

&ref(DiCE_2.jpg);

各エントリーに対する設定一覧

|エントリー|CENTER:サービス|ホスト名|CENTER:ドメイン名|ユーザ名|パスワード|IPアドレス|
|Value-Domain トップドメイン更新|VALUEDOMAIN|CENTER:*|hmuna.com|CENTER:空白|freedman8310|CENTER:空白|
|miniDNS トップドメインの更新|CENTER:miniDNS|CENTER:空白|hmuna.com|CENTER:freedman|CENTER:fr4386|CENTER:空白|
|miniDNS WWW サーバーの更新|CENTER:miniDNS|CENTER:www|hmuna.com|CENTER:freedman|CENTER:fr4386|CENTER:空白|

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

*** IPが変化した時の DiCE 動作(ログ画面) [#zd93f56a]

 ○ 5/22 16:32 IPアドレスが変わりました 203.180.72.247 -> 210.149.14.24
 ★ 5/22 16:32 にValueDomain の更新が実行されました。
   IPアドレスを更新しました
 ★ 5/22 16:32 にminiDNS の更新が実行されました。
   IPアドレスを更新しました
 ★ 5/22 16:32 にminiDNS (WWW) の更新が実行されました。
   IPアドレスを更新しました
 ○ 5/22 16:43 IPアドレスが変わりました 210.149.14.24 -> 203.180.123.171
 ★ 5/22 16:43 にValueDomain の更新が実行されました。
   IPアドレスを更新しました
 ★ 5/22 16:43 にminiDNS の更新が実行されました。
   IPアドレスを更新しました
 ★ 5/22 16:43 にminiDNS (WWW) の更新が実行されました。
   IPアドレスを更新しました

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

* ブロードバンドルータの設定 [#y3c332cd]
** IP マスカレード の設定 ・・・ WAN からのアクセスを muna-server に転送する [#ic54c02c]

&ref(IP_masq.JPG);

** ウェルノウンポート一覧 [#ob0fa939]
|echo|CENTER:7||www-http|CENTER:80||microsoft-ds|CENTER:445|
|daytime|CENTER:13||pop2|CENTER:109||syslog|CENTER:514|
|ftp-data|CENTER:20||pop3|CENTER:110||printer|CENTER:515|
|ftp|CENTER:21||sunrpc|CENTER:111||talk|CENTER:517|
|telnet|CENTER:23||auth|CENTER:113||router|CENTER:520|
|smtp|CENTER:25||nntp|CENTER:119||uucp|CENTER:540|
|domain|CENTER:53||ntp|CENTER:123||pptp|CENTER:1723|
|bootps|CENTER:67||netbios-ns|CENTER:137||msnp|CENTER:1863|
|bootpc|CENTER:68||netbios-dgm|CENTER:138||||
|tftp|CENTER:69||netbios-ssn|CENTER:139||||
|gopher|CENTER:70||snmp|CENTER:161||||
|finger|CENTER:79||irc|CENTER:194||||

** QTYPE一覧 [#y80ea624]
|A|CENTER:1||TXT|CENTER:16|
|NS|CENTER:2||ISDN|CENTER:20|
|CNAME|CENTER:5||AAAA|CENTER:28|
|SOA|CENTER:6||SRV|CENTER:33|
|PTR|CENTER:12||AXFR|CENTER:252|
|MX|CENTER:15||*|CENTER:255|

** セキュリティポリシー の設定 1・・・ 基本ポリシーを "遮断" にした運用 [#h90bd023]
WAN からのサーバーアクセスが出来なかったので現在は不採用

|Action|IN|OUT|>|>|CENTER:IP/Mask|>|>|CENTER:Port|DNS Q|Protocol|TCP flag|h
|~|~|~|Src|-|Dst|Src|-|Dst|~|~|~|h
|pass|lan|lan||||||||any||
|pass|own_app|lan|||||syslog/syslog|||udp||
|pass|lan|own_app||||||bootps/bootpc||udp||
|pass|own_app|lan||||bootps/bootpc||||udp||
|cut|any|any||||microsoft-ds/microsoft-ds|or|microsoft-ds/microsoft-ds||tcp||
|cut|any|any||||netbios-ssn/netbios-ssn|or|netbios-ssn/netbios-ssn||udp||
|cut|any|any||||netbios-ssn/netbios-ssn|or|netbios-ssn/netbios-ssn||tcp||
|cut|any|any||||microsoft-ds/microsoft-ds|or|microsoft-ds/microsoft-ds||udp||
|pass|any|any||||||||icmp||
|pass|any|any||||ntp/ntp|or|ntp/ntp||udp||
|pass|any|any||||domain/domain|or|domain/domain||udp||
|pass|pppoe|lan|||192.168.1.20/32|pop3/pop3|or|pop3/pop3||tcp|+syn|
|pass|pppoe|lan|||192.168.1.20/32|ftp-data/ftp|or|ftp-data/ftp||tcp|+syn|
|pass|pppoe|lan|||192.168.1.20/32|www-http/www-http|or|www-http/www-http||tcp|+syn|
|pass|lan|pppoe||||||www-http/www-http||tcp||
|pass|pppoe|lan||||||www-http/www-http||tcp||
|pass|lan|pppoe||||||443/443||tcp||
|pass|pppoe|lan||||443/443||||tcp||
|pass|pppoe|lan||||||8080/8080||tcp||
|pass|lan|pppoe||||||ftp-data/ftp||tcp||
|pass|pppoe|lan||||ftp-data/ftp||||tcp||
|pass|lan|pppoe||||||pop3/pop3||tcp||
|pass|pppoe|lan||||pop3/pop3||||tcp||
|pass|lan|pppoe||||||smtp/smtp||tcp||
|pass|pppoe|lan||||smtp/smtp||||tcp||
|pass|lan|pppoe||||||9120/9120||tcp||
|pass|pppoe|lan||||9120/9120||||tcp||
|pass|lan|pppoe||||||995/995||tcp||
|pass|pppoe|lan||||995/995||||tcp||

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** セキュリティポリシー の設定 2・・・ 基本ポリシーを "許可" にした運用 (指定したポート以外は最後に閉じる設定) [#l5c7e5df]

・ セキュリティポリシー設定一覧 ---- ( OPTーAIR 設定ファイル  &ref(config_OPT_pass.bin); )
|Action|IN|OUT|>|>|CENTER:<---- IP/Mask ---->|>|>|CENTER:<---- Port ---->|DNS Q|Protocol|TCP flag|h
|~|~|~|Src|-|Dst|Src|-|Dst|~|~|~|h
|cut|PPPoE|any|10.0.0.0/8|||||||any||
|cut|any|PPPoE|||10.0.0.0/8|||||any||
|cut|PPPoE|any|172.16.0.0/12|||||||any||
|cut|any|PPPoE|||172.16.0.0/12|||||any||
|cut|PPPoE|any|192.168.0.0/16|||||||any||
|cut|any|PPPoE|||192.168.0.0/16|||||any||
|cut|any|any||||microsoft-ds/microsoft-ds|or|microsoft-ds/microsoft-ds||tcp||
|cut|any|any||||netbios-ssn/netbios-ssn|or|netbios-ssn/netbios-ssn||udp||
|cut|any|any||||netbios-ssn/netbios-ssn|or|netbios-ssn/netbios-ssn||tcp||
|cut|any|any||||microsoft-ds/microsoft-ds|or|microsoft-ds/microsoft-ds||udp||
|pass|any|any||||domain/domain|or|domain/domain||udp||
|pass|any|any||||ntp/ntp|or|ntp/ntp||udp||
|pass|PPPoE|LAN||||domain/domain||||udp||
|pass|PPPoE|OWN_app||||domain/domain||||udp||
|pass|any|any||||||||icmp||
|cut|LAN|any||||||1243/1243||TCP||
|cut|LAN|any||||||12345/12345||TCP||
|cut|LAN|any||||||27374/27374||TCP||
|cut|LAN|any||||||31785/31785||TCP||
|pass|PPPoE|lan|||192.168.1.11/32|||www-http/www-http||tcp|+syn|
|pass|PoE|lan|||192.168.1.11/32|||ftp-data/ftp||tcp|+syn|
|pass|PPPoE|lan|||192.168.1.11/32|||smtp/smtp||tcp|+syn|
|pass|PPPoE|lan|||192.168.1.11/32|||pop3/pop3||tcp|+syn|
|pass|PPPoE|lan|||192.168.1.11/32|||443/443||tcp|+syn|
|pass|PPPoE|lan||||||||tcp|+ack|
|pass|PPPoE|lan||||ftp-data/ftp||||tcp||
|cut|PPPoE|any||||||||any||



** フィルター設定2 の状態で外部から portscan した結果 [#z30bbbd0]

 [root@muna-linux root]# nmap localhost
  
 Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
 Interesting ports on muna-linux (127.0.0.1):
 (The 1592 ports scanned but not shown below are in state: closed)
 Port       State       Service
 22/tcp     open        ssh
 23/tcp     open        telnet
 80/tcp     open        http
 111/tcp    open        sunrpc
 139/tcp    open        netbios-ssn
 631/tcp    open        ipp
 783/tcp    open        hp-alarm-mgr
 6000/tcp   open        X11
 32771/tcp  open        sometimes-rpc5
 
 Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds

 [root@muna-linux root]# nmap 192.168.1.1
  
 Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
 Interesting ports on  (192.168.1.1):
 (The 1600 ports scanned but not shown below are in state: filtered)
 Port       State       Service
 80/tcp     open        http
  
 Nmap run completed -- 1 IP address (1 host up) scanned in 174 seconds


&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;
*** ポートの状態を外部から確認するサイト : http://scan.sygate.com/stealthscan.html [#j53fb2d4]
* Apache (1.x 系) の SSL 対応  --- http://bitarts.jp/tech/linux を元に最新版を導入 [#d5a6aa3c]

はじめに /usr/src 下に openssl と mod_ssl のソースをコピーして展開する

** Open SSL( http://www.openssl.org/ )のインストール [#m729358c]

 openssl-0.9.7d.tar.gz を上記サイトより /usr/src にダウンロード
 tar xzvf openssl-0.9.7d.tar.gz
 cd ./openssl-0.9.7d
 ./config
 make
 make test
 
 make install

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;
** mod-ssl の構築 [#ne9e8869]
 $ cd mod_ssl-2.8.4-1.3.20
 $ ./configure \
 --with-apache=../apache_1.3.20 \
 --with-ssl=/usr/local/ssl

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** mod-ssl を組み込むために  apache を再構築する [#w3a5fae8]
~ ./configure で明示的に指定して Apache モジュールをスタティックに組み込む
apache の configure を利用して Makefile を自動編集してから make → make install する。 configure のオプションは configure --help で参照可能であるが、多くの基本モジュールは最初から組み込まれるようになっている。PHP などの3rdパーティ製のモジュールは --activate-module= というコマンドで指定して組み込む。  

 [root@muna-linux apache_1.3.29]# make clean
 [root@muna-linux apache_1.3.29]# ./configure \ 
                                 --activate-module=src/modules/php4/libphp4.a \
                                 --enable-module=ssl \
                                 --enable-module=auth
 [root@muna-linux apache_1.3.29]# make
 [root@muna-linux apache_1.3.29]# make install

httpd -l コマンドを利用して組み込まれているモジュールを確認することができる。

 [root@muna-linux root]# /usr/local/apache/bin/httpd -l
 Compiled-in modules:
   http_core.c
   mod_env.c
   mod_log_config.c
   mod_mime.c
   mod_negotiation.c
   mod_status.c
   mod_include.c
   mod_autoindex.c
   mod_dir.c
   mod_cgi.c
   mod_asis.c
   mod_imap.c
   mod_actions.c
   mod_userdir.c
   mod_alias.c
   mod_access.c
   mod_auth.c  <----------------------
   mod_setenvif.c
   mod_ssl.c   <----------------------
   mod_php4.c  <----------------------
 suexec: disabled; invalid wrapper /usr/local/apache/bin/suexec

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** DSO [Dynamic Shared Objects] を利用して Apache にダイナミックにモジュールを組み込む [#mf9d3f04]

httpd は必要なときだけ、各モジュールのライブラリをロードするため、実行時に必要になるメモリの節約など、パフォーマンスの向上に効果あります。
また、Apache のインストール後に、PHPなどモジュールを追加するときなどに、インストールが簡単になるなどのメリットもあります。--enable-module=so  もしくは、--enable-shared=*** で指定します。

 例1)
 ./configure --enable-module=so

上記の例では、DSOをサポートしたApacheをインストールしています。
ただし、組み込まれるすべてのモジュールは staticに組み込まれます。~
(今後、追加でインストールするモジュールを、DSO形式として追加することが可能になります。)

 例2)
 ./configure --enable-shared=cgi --enable-shared=asis

上記の例では、Apache を DSOをサポートしたものにしてインストールし、mod_cgi と mod_asis をDSO形式で組み込みます。そのほかのモジュールは static に組み込まれます。--enable-shared=*** の指定を行った際は、--enable-module=so は省略可能です。

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** apache2 に WebDAV を導入する [#f0d75938]
*** WebDAV とは [#d99c8472]
WebDAV(Web-based Distributed Authoring and Versioning)は、RFC 2291「WWWにおける分散オーサリングおよびバージョン管理プロトコルの要件」で提唱され、RFC 2518「分散オーサリングのためのHTTP拡張 --WEBDAV」で具体的に定義されているプロトコルの名称。つまり、ネットワークによる分散環境下でのWebコンテンツなどの編集(Authoring)やリビジョン管理(Versioning)を行うことを目的に規定されたプロトコルである  

*** WebDAV のインストール [#yd0fbf90]
Apache2からはWebDAVが標準で組み込まれているので、これを利用する。Apacheからバージョン2のApacheソースコードをダウンロードする。

 cd /usr/local/src 
 wget http://www.apache.jp/dist/httpd/httpd-2.0.49.tar.gz 
 tar zxvf httpd-2.0.49.tar.gz 

 cd httpd-2.0.49 
 ./configure --enable-dav \
 --enable-headers \
 --enable-so

 make make install コンパイル後、インストール 
 WebDAVコンテンツ用のディレクトリを作る
 usradd -d /home/dav -s /bin/false dav
 chown nobody.nobody /home/dav
 chmod 770 /home/dav 
 mod_dav ロックファイルのディレクトリを作る
 mkdir /usr/local/apache2/var
 chown nobody.nobody /usr/local/apache2/var
 chmod 770 /usr/local/apache2/var 

これでインストール自体は完了。ただ、このままでは2バイト文字のファイル名が文字化けしてしまうので、モジュールを組み込む。


*** mod_encode の導入 (WebDAV で日本語のファイル名を扱うために必要) [#fd470356]

WebDAV Resources JPから mod_encoding-20021209.tar.gz と mod_encoding.c.apache2.20040616 の2つをダウンロード 

 tar zxvf mod_encoding-20021209.tar.gz 
 cd mod_encoding-20021209 
 ./configure --with-apxs=/usr/local/apache2/bin/apxs 
 cp ../mod_encoding.c.apache2.20040616 mod_encoding.c 
 cd lib 
 ./configure 
 make make install 
 cd ../ 
 make 
 gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib - Llib -liconv_hook 
 cp mod_encoding.so /usr/local/apache2/modules/ 
 ln -s /usr/local/lib/libiconv_hook.so /usr/local/apache2/lib/libiconv_hook.so.1 

実際のインストール手順

 [root@hmuna src]# cd mod_encoding-20021209
 
 [root@hmuna mod_encoding-20021209]# cd lib/
 [root@hmuna lib]# ./configure
 [root@hmuna lib]# make
 [root@hmuna lib]# make install
 [root@hmuna lib]# cd ../
 
 [root@hmuna mod_encoding-20021209]# ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-iconv-hook=/usr/local/include
 [root@hmuna mod_encoding-20021209]# cp ../mod_encoding.c.apache2.20040616 mod_encoding.c
 [root@hmuna mod_encoding-20021209]# make
 [root@hmuna mod_encoding-20021209]# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,Wall -L/usr/local/lib -Llib -liconv_hook
 [root@hmuna mod_encoding-20021209]# cp /usr/src/mod_encoding-20021209/mod_encoding.so /usr/local/apache2/modules/
 [root@hmuna mod_encoding-20021209]# ln -s /usr/local/lib/libiconv_hook.so /usr/local/apache2/lib/libiconv_hook.so.1

WebDAV に対応した httpd.conf (最後に WebDAV 関連の設定を追加 ) → &ref(httpd.conf_WebDAV);~

** Log Rotation の設定 (一週間毎にログファイルを更新する) [#i39d9bc9]

設定は /etc/logrotate.d の下に apache2 という設定ファイルを用意する → &ref(apache2);~

** 鍵の作成 と 証明書の発行を行う [#aaeae320]

 cd /usr/local/ssl
 ./bin/openssl genrsa -des 1024 > ./private/key.pem

 [root@muna-linux openssl-0.9.7d]# cd /usr/local/ssl/
 [root@muna-linux ssl]# ./bin/openssl genrsa -des 1024 > ./private/key.pem
 Generating RSA private key, 1024 bit long modulus
 ...........................................++++++
 ............++++++
 e is 65537 (0x10001)
 Enter pass phrase: <---- munakatafreedmanhisao
 Verifying - Enter pass phrase:

パスフレーズを毎回入力するのは サーバーの自動起動の支障になるので
パスフレーズを作成したキーから削除しておく

 [root@muna-linux ssl]# ./bin/openssl rsa -in private/key.pem -out    private/key.pem
 Enter pass phrase for private/key.pem:
 writing RSA key

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** 公開鍵の申請情報 CSR の作成 [#j94d0b86]
 [root@muna-linux ssl]# ./bin/openssl req -new -days 365 -key private/key.pem -out csr.pem
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:JP
 State or Province Name (full name) [Some-State]:Kanagawa
 Locality Name (eg, city) []:Yokohama
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:private
 Organizational Unit Name (eg, section) []:.
 Common Name (eg, YOUR name) []:munakata
 Email Address []:munakata@kk.iij4u.or.jp
 
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:.
 An optional company name []:.

CSR &ref(csr.pem); をベリサインなどの認証局に送ると以下のようなサキュアサーバID(サイト証明書)が発行される。~
これをcerts/cert.pemと言う名前で保存する。 以下の手順で、認証局を使わず自分で署名することも可能。

 [root@muna-linux ssl]# ./bin/openssl x509 -in csr.pem -out certs/cert.pem \
                        -req -signkey private/key.pem -days 365
 Signature ok
 subject=/C=JP/ST=Kanagawa/L=Yokohama/O=private/CN=munakata~
 /emailAddress=munakata@kk.iij4u.or.jp
 Getting Private key

生成された自分で署名したサイト証明書 &ref(cert.pem);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** Apache 1.3.29 用に開発された SSL モジュール ( mod_SSL ) のインストール [#w7abd432]

Apache 用の SSL モジュール mod_ssl ( http://www.modssl.org/ )を/usr/src にダウンロードして展開。~
Apache の各バージョン毎に mod_ssl が用意されているので、今回は Apache 1.3.29 のものを導入する。~
configure 時に apache と openssl のインストール位置を指定する。

 [root@muna-linux src]# tar xzvf mod_ssl-2.8.16-1.3.29.tar.gz
 [root@muna-linux src]# cd mod_ssl-2.8.16-1.3.29
 [root@muna-linux mod_ssl-2.8.16-1.3.29]# ./configure  --with-apache=../apache_1.3.29 --with-ssl=/usr/local/ssl/
 Configuring mod_ssl/2.8.16 for Apache/1.3.29
  + Apache location: ../apache_1.3.29 (Version 1.3.29)
  + Auxiliary patch tool: ./etc/patch/patch (local)
  + Applying packages to Apache source tree:
    o Extended API (EAPI)
    o Distribution Documents
    o SSL Module Source
    o SSL Support
    o SSL Configuration Additions
    o SSL Module Documentation
    o Addons
 Done: source extension and patches successfully applied.
  
 Now proceed with the following commands (Bourne-Shell syntax):
  $ cd ../apache_1.3.29
  $ SSL_BASE=/path/to/openssl ./configure ... --enable-module=ssl
  $ make
  $ make certificate
  $ make install

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** Apache 1.3.29 に mod_ssl と php4 を両方インストールする手順 [#u8d01722]

上記の手順で apache の configure を利用して mod_ssl をコンパイルオプション指定して make すると、以前静的に組み込んでいた php4 のモジュールがコンパイル時に組み込まれないために、httpd.conf の中に AddType で php の指定が入っていても php4
が実行できなくなった。 改めて mod_ssl と php4 の両方が静的に組み込まれるように apache を configure → make し直した。

 [root@muna-linux apache_1.3.29]# make clean
 [root@muna-linux apache_1.3.29]# ./configure \ 
                                 --activate-module=src/modules/php4/libphp4.a \
                                 --enable-module=ssl
 [root@muna-linux apache_1.3.29]# make
 [root@muna-linux apache_1.3.29]# make install

このようにして apache を再構築して ssl を有効にして機動したサーバーに対して外部からサービスを確認する ( http://www.websitepulse.com//tools.php3 )と ssl と php の両方が有効であることが分かる。

&ref(web_test.jpg);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** BASIC 認証による Apache 1.3.29 のユーザ認証を組み込む [#m8af26ef]

mod_auth は基本モジュールなので最初からスタティックに組み込まれているはずであるが、念のために mod_auth が最初から組み込まれていることが確認

* SSL を使って apache を起動するための証明書関係の準備 [#ve65c7f8]
** openssl のコマンドは /usr/local/ssl 下にインストール済(デフォルトの位置) [#nc5e8133]

 [root@hmuna openssl-0.9.7d]# cd /usr/local/ssl/

** private key を生成する [#j17031fc]

今回は パスフレースとして "munakatafreedmanhisao" を使用している

 [root@hmuna ssl]# openssl genrsa -des3 1024 > server.key 
 Generating RSA private key, 1024 bit long modulus
 .++++++
 .............................++++++
 e is 65537 (0x10001)
 Enter pass phrase:
 Verifying - Enter pass phrase:
 
 [root@hmuna ssl]# cp server.key /usr/local/apache/conf/ssl.key/server.key

&ref(server.key);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** private.key からサーバー証明書を申請するデータ(csr)を作成する [#pe98604a]

 [root@hmuna ssl]# openssl req -new -key server.key -out server.csr
 Enter pass phrase for server.key:
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
  
 Country Name (2 letter code) [GB]:JP 
 State or Province Name (full name) [Berkshire]:Kanagawa
 Locality Name (eg, city) [Newbury]:Yokohama
 Organization Name (eg, company) [My Company Ltd]:munakata
 Organizational Unit Name (eg, section) []:admin
 Common Name (eg, your name or your server's hostname) []:www.hmuna.com
 Email Address []:munakata@kk.iij4u.or.jp
  
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:

&ref(server.csr);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** サーバー証明書(crt)を自分で発行する (通常は外部の認証期間から有償で発行してもらう) [#sfe57e5b]

 [root@hmuna ssl]# openssl req -new -key server.key -x509 -days 365 -out server.crt 
 Enter pass phrase for server.key:
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.

 Country Name (2 letter code) [GB]:JP
 State or Province Name (full name) [Berkshire]:Kanagawa
 Locality Name (eg, city) [Newbury]:Yokohama
 Organization Name (eg, company) [My Company Ltd]:munakata.com
 Organizational Unit Name (eg, section) []:admin
 Common Name (eg, your name or your server's hostname) []:www.hmuna.com
 Email Address []:munakata@kk.iij4u.or.jp

 [root@hmuna ssl]# cp server.crt /usr/local/apache/conf/ssl.crt

&ref(server.crt);

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** private.key と サーバー証明書(crt) を使用して apache を起動 [#n96d4c01]

起動時に毎回パスフレーズを聞かれる

 [root@hmuna ssl]# /usr/local/apache/bin/apachectl startssl
 Apache/1.3.29 mod_ssl/2.8.16 (Pass Phrase Dialog)
 Some of your private key files are encrypted for security reasons.
 In order to read them you have to provide us with the pass phrases.
  
 Server www.hmuna.com:443 (RSA)
 Enter pass phrase:
  
 Ok: Pass Phrase Dialog successful.
 /usr/local/apache/bin/apachectl startssl: httpd started 

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** 起動時にパスフレーズを聞かれないように private.key を再構築 [#oa8366d6]

 [root@hmuna ssl]# openssl rsa -in server.key -out server_wo_auth.key
 Enter pass phrase for server.key:
 writing RSA key
 
 [root@hmuna ssl]# ls -l
 合計 56
 drwxr-xr-x    2 root     root         4096  6月 29 22:20 bin
 drwxr-xr-x    2 root     root         4096  6月 29 22:32 certs
 -rw-r--r--    1 root     root          688  7月  4 14:43 csr.pem
 drwxr-xr-x    3 root     root         4096  6月 29 22:20 include
 drwxr-xr-x    3 root     root         4096  6月 29 22:20 lib
 drwxr-xr-x    6 root     root         4096  6月 29 22:18 man
 drwxr-xr-x    2 root     root         4096  6月 29 22:20 misc
 -rw-r--r--    1 root     root         7782  6月 29 22:20 openssl.cnf
 drwxr-xr-x    2 root     root         4096  6月 29 22:26 private
 -rw-r--r--    1 root     root         1326  7月  4 17:12 server.crt
 -rw-r--r--    1 root     root          716  7月  4 17:05 server.csr
 -rw-r--r--    1 root     root          963  7月  4 17:03 server.key
 -rw-r--r--    1 root     root          887  7月  4 17:26 server_wo_auth.key

 Apache 2.x での証明書の配置
 
 [root@hmuna munakata]# ls -l /usr/local/apache2/conf/
 合計 552
 -rw-r--r-- 1 root root 348 7月 10 21:11 access.conf
 -rw-r--r-- 1 root root 348 7月 10 21:11 access.conf.default
 -rw-r--r-- 1 root root 2011 7月 18 13:18 highperformance-std.conf
 -rw-r--r-- 1 root root 2011 7月 10 21:05 highperformance.conf
 -rw-r--r-- 1 root root 35741 7月 18 13:18 httpd-std.conf
 -rw-r--r-- 1 root root 37785 7月 22 20:12 httpd.conf
 -rw-r--r-- 1 root root 36200 7月 10 22:14 httpd.conf.bak
 -rw-r--r-- 1 root root 43685 7月 10 21:11 httpd.conf.default
 -rw-r--r-- 1 root root 44285 7月 10 21:29 httpd.conf_1orig
 -rw-r--r-- 1 root root 44285 7月 10 21:29 httpd.conf_1orig~
 -rw-r--r-- 1 root root 36747 7月 18 02:44 httpd.conf_WebDAV
 -rw-r--r-- 1 root root 43823 7月 10 21:11 httpd.conf_old
 -rw-r--r-- 1 root root 44056 7月 10 21:11 httpd.conf_works
 -rw-r--r-- 1 root root 37770 7月 22 20:04 httpd.conf~
 -rw-r--r-- 1 root root 12959 7月 10 21:05 magic
 -rw-r--r-- 1 root root 12965 7月 10 21:11 magic.default
 -rw-r--r-- 1 root root 14993 7月 10 21:05 mime.types
 -rw-r--r-- 1 root root 14979 7月 10 21:11 mime.types.default
 -rw-r--r-- 1 root root 357 7月 10 21:11 srm.conf
 -rw-r--r-- 1 root root 357 7月 10 21:11 srm.conf.default
 -rw-r--r-- 1 root root 10916 7月 18 13:18 ssl-std.conf
 -rw-r--r-- 1 root root 11004 7月 10 21:39 ssl.conf
 -rw-r--r-- 1 root root 10988 7月 10 21:29 ssl.conf~
 drwxr-xr-x 2 root root 4096 6月 29 22:24 ssl.crl
 drwxr-xr-x 2 root root 4096 7月 4 17:06 ssl.crt
 drwxr-xr-x 2 root root 4096 6月 29 22:24 ssl.csr
 drwx------ 2 root root 4096 7月 10 21:19 ssl.key
 drwxr-xr-x 2 root root 4096 6月 29 22:24 ssl.prm


&ref(server_wo_auth.key);

 [root@hmuna ssl]# cp server_wo_auth.key /usr/local/apache/conf/ssl.key/

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** private.key の変更を /usr/local/apache/conf/httpd.conf に反映 [#t16e1d7b]

&ref(httpd.conf);

 #   Server Certificate:
 #   Point SSLCertificateFile at a PEM encoded certificate.  If
 #   the certificate is encrypted, then you will be prompted for a
 #   pass phrase.  Note that a kill -HUP will prompt again. A test
 #   certificate can be generated with `make certificate' under
 #   built time. Keep in mind that if you've both a RSA and a DSA
 #   certificate you can configure both in parallel (to also allow
 #   the use of DSA ciphers, etc.)
 SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
 #SSLCertificateFile /usr/local/apache/conf/ssl.crt/server-dsa.crt
 
 #   Server Private Key:
 #   If the key is not combined with the certificate, use this
 #   directive to point at the key file.  Keep in mind that if
 #   you've both a RSA and a DSA private key you can configure
 #   both in parallel (to also allow the use of DSA ciphers, etc.)
 #SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
 SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server_wo_auth.key
 #SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server-dsa.key

&heart; [[KnoweldgeBase トップページに戻る>Knowledge_Bank]] &heart;

** 新しいプライベートキーを使って apache を再起動 [#w182b9b1]
 [root@hmuna ssl]# /usr/local/apache/bin/apachectl stop
 /usr/local/apache/bin/apachectl stop: httpd stopped
 [root@hmuna ssl]# /usr/local/apache/bin/apachectl startssl
 /usr/local/apache/bin/apachectl startssl: httpd started
* [[写真ブラウザー Gallery のインストール>GalleryInstall]] [#uc51d435]
* [[自宅のメールサーバーの設定>Home_mail]] [#xa362500]
* [[OpenSSH サーバーの設定>OpenSSH]] [#v3d91067]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS