Debian4.0(etch)、Squidを使ったフォワードプロキシ(forward proxy)
ぎりぎり一週間!
では、予告通りフォワードプロキシの紹介を・・
え?Apacheじゃないの!?って(;´▽`A``
いやいや、フォワードプロキシはフォワードプロキシじゃないですか〜
って、すいません。Apacheはまだ未検証なんです・・。
てなもんなで以下手順です。
1)パケージをインストールする。
aptitude install squid
2) /etc/squid/squid.conf を編集し設定を行う。
・visible_hostname の設定
visible_hostname forblue.net
※ホスト名は何でも良いです。
・許可IPアドレス設定
acl our_networks src 192.168.1.0/24 192.168.11.0/24
http_access allow our_networks
※ our_networksである、192.168.1.0/24 192.168.11.0/24 を許可する
という例になります。
・ポート変更
http_port 8080
※デフォルトではTCP 3128ポートとなっているのですが 8080ポートへ
変更するという例です。
3) Squidを再起動する。
/etc/init.d/squid restart
※インストール直後、場合によっては squidが起動しない場合も
あるのでその場合、restart ではなく start で。
まぁ、restart でもちゃんとスタートはかかるんですけどね(;´▽`A``
設定に関しては以上です。
えぇ、これだけです。
4)ブラウザにプロキシ情報を設定する。
※ブラウザの設定方法は割愛します。
参照URL:http://raijin.ddo.jp/pukiwiki/pukiwiki.php?ProxyServer%A4%CE%B9%BD%C3%DB
では、次回はログやらなんやらを!
2009年03月21日
2009年03月13日
Debian4.0(etch)にOracle Database 10g Express Edition(XE)をインストールする。
予告通りの一週間以内の更新です!
・・予告内容と違う?気にしない気にしない・・(;´▽`A``
◆Oracle Database 10g Express Editio とは
無料版のOracleデータベースです。
以上!(;´▽`A``
○Debian4.0(etch)にOracle Database 10g Express Edition(XE)をインストールする。
※swap領域が1024M以上必要。
1)以下を、etc/apt/sources.list に追記する。
deb http://oss.oracle.com/debian unstable main non-free
2)上記内容を取り込むために、apt-key を追加する。
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
3)パッケージリストを更新する。
aputitude update
4)Oracle Database XE をインストールする
aptitude install oracle-xe
5)初期設定を行う。
/etc/init.d/oracle-xe configure
以下を入力する。
※パスワード以外はそのまま Enter(デフォルト値)でOK。
Specify the HTTP port that will be used for Oracle Application Express [8080]:
# Web管理ポートの指定。
Specify a port that will be used for the database listener [1521]:
# DBポートの指定。
initial configuration:
Confirm the password:
# 管理パスワードの設定
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:
# OS起動時にOracle XE を起動させるかどうか。
6)環境変数の設定
※新たにインストールされたコマンドにはパスが通っていないため行う。
.bash_profile の末尾に以下を追記する。
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
※ログイン(or操作する)ユーザ毎に必要。設定後再接続で有効になる。
7)管理画面へのリモートからのアクセス許可をする。
以下コマンドを実行する。
sqlplus system
※パスワードは 5)初期設定で設定したもの。
以下クエリを実行
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
8)動作確認
http://oracle_xe_host:8080/apex にアクセスできればOK!
そっから先はまだ知らない・・。
参照URL:
http://www.oracle.com/technology/global/jp/tech/linux/install/xe-on-kubuntu.html
http://d.hatena.ne.jp/jitsu102/20090127/1233005894
でしたー
また来週っ
・・予告内容と違う?気にしない気にしない・・(;´▽`A``
◆Oracle Database 10g Express Editio とは
無料版のOracleデータベースです。
以上!(;´▽`A``
○Debian4.0(etch)にOracle Database 10g Express Edition(XE)をインストールする。
※swap領域が1024M以上必要。
1)以下を、etc/apt/sources.list に追記する。
deb http://oss.oracle.com/debian unstable main non-free
2)上記内容を取り込むために、apt-key を追加する。
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
3)パッケージリストを更新する。
aputitude update
4)Oracle Database XE をインストールする
aptitude install oracle-xe
5)初期設定を行う。
/etc/init.d/oracle-xe configure
以下を入力する。
※パスワード以外はそのまま Enter(デフォルト値)でOK。
Specify the HTTP port that will be used for Oracle Application Express [8080]:
# Web管理ポートの指定。
Specify a port that will be used for the database listener [1521]:
# DBポートの指定。
initial configuration:
Confirm the password:
# 管理パスワードの設定
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:
# OS起動時にOracle XE を起動させるかどうか。
6)環境変数の設定
※新たにインストールされたコマンドにはパスが通っていないため行う。
.bash_profile の末尾に以下を追記する。
. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
※ログイン(or操作する)ユーザ毎に必要。設定後再接続で有効になる。
7)管理画面へのリモートからのアクセス許可をする。
以下コマンドを実行する。
sqlplus system
※パスワードは 5)初期設定で設定したもの。
以下クエリを実行
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
exit
8)動作確認
http://oracle_xe_host:8080/apex にアクセスできればOK!
そっから先はまだ知らない・・。
参照URL:
http://www.oracle.com/technology/global/jp/tech/linux/install/xe-on-kubuntu.html
http://d.hatena.ne.jp/jitsu102/20090127/1233005894
でしたー
また来週っ
2009年03月08日
Apache2でProxy パート1
一週間毎。さて何の事やらね・・。
前回、Apacheモジュールにはいろいろなものがあり、徐々に解説していけたら
いいなー。的なことを書いたのですが、ひとつ最近導入したものがあるので、
それを紹介します。
○Debin4.0(etch) Apache2 を用いたリバースプロキシ設定。
Proxyにはフォワードプロキシ(Forward Proxy)と、リバースプロキシ(Reverse
Proxy)とがあり、今回はリバースプロキシの設定方法を紹介します。
○リバースプロキシとは
あるサーバの代理として、そのサーバへの要求を中継するプロキシサーバ。
代行されているサーバにアクセスしようとしたユーザは全てリバースプロキシを
経由することになるため、サーバが直接アクセスを受けることはなくなる。
※一般的にプロキシというと、上記とは逆のフォワードプロキシを思い浮かべる
人も多いかと思います。
が、なぜかリバースプロキシから入っていく私です(;´▽`A``
手順は以下の通りです。
1) Proxyモジュールをインストールする。
a2enmod proxy_http
※a2enmod proxy_http を実行すると、proxyモジュールも同時にインスト
ールされます。
2) /etc/apache2/mods-enabled/proxy.conf を編集する。
Deny from all
上記の下行に、下記を追記します。
Allow from all
3) proxy.conf を以下に作成する。
/etc/apache2/sites-available/xxx
※xxxは任意です。
下記conf例です。
※< で始まる行に関して、正しくUPされなくなるという理由から、スペースが
1つ入っていますのでご注意を。
-----------------------------------------------------------------------
○HTTP PROXY
-----------------------------------------------------------------------
< VirtualHost *>
ServerName www1-k1.forblue.net
ServerAdmin webmaster@forblue.net
DocumentRoot /var/www/www.forblue.net
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
< Proxy *>
Order deny,allow
Deny from all
Allow from all
< /Proxy>
ProxyRequests Off
ProxyPreserveHost Off
# HTTP:80→ HTTP:80
ProxyPass / http://192.168.1.11/
ProxyPassReverse / http://192.168.1.11/
# HTTP:80→ HTTP:other port
ProxyPass /proxy http://192.168.1.11:8080/proxy
ProxyPassReverse /proxy http://192.168.11:8080/proxy
# ※ /(ルート)には同時に複数選択できない。
# / を複数使用するためにはサブドメインを変える必要あり。
< /VirtualHost>
-----------------------------------------------------------------------
○ディレクティブ解説
・< Proxy *>〜< /Proxy>
アクセス制限を行います。
上記例では、Allow from all となっていますが、その内容は 2)と重複する
ため意味はありません。
・ProxyPass /xxx http://domain/
↑ ↑Proxy先URL(IPアドレス、ドメインどちらでも使用可)
|
パスを記入。最短は / のみとなる。
このディレクティブはリモートサーバをローカルサーバの名前空間にマップ
できるようにします。
ローカルサーバは通常の意味でのプロキシと しては動作せず、リモートサー
バのミラーとして振る舞います。
・ProxyPassReverse /xxx http://domain/
↑ ↑Proxy先URL(IPアドレス、ドメインどちらでも使用可)
|パスを記入。最短は / のみとなる。
このディレクティブは Apache に HTTP リダイレクト応答の Location,
Content-Location, URI ヘッダの調整をさせます。
これは、Apache がリバースプロキシとして使われている ときに、リバース
プロキシを通さないでアクセスすることを防ぐために 重要です。これにより
バックエンドサーバの HTTP リダイレクトがリバースプロキシとバックエンド
の間で扱われるようになります。
・ProxyPreserveHost On/Off
このオプションが有効になっている場合、ProxyPass で指定したホスト名の
代わりに、受け付けたリクエストのHost: 行を プロキシ先のホストに送ります。
※このオプションは通常は Off に設定してください。
・ProxyRequests On/Off
これは Apache のフォワードプロキシサーバとしての動作を 有効もしくは
無効にします。
○参照元:http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html
-----------------------------------------------------------------------
○HTTPS PROXY
※SSL設定に関する説明は前回までのBLOGを参照してください。
-----------------------------------------------------------------------
< VirtualHost ssl.forblue.net:443>
SSLEngine on
SSLCertificateFile /etc/apache2/keys/server.crt
SSLCertificateKeyFile /etc/apache2/keys/server.key
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLProxyEngine On
SSLProxyVerify none
ServerName ssl.forblue.net
ServerAdmin webmaster@forblue.net
DocumentRoot /var/www/ssl.forblue.net
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
ProxyRequests Off
ProxyPreserveHost Off
# HTTPS:443→ HTTP:80
ProxyPass /proxy http://192.168.1.34/
ProxyPassReverse /proxy http://192.168.1.34/
# HTTPS:443→ HTTPS:443
ProxyPass / https://ssl2.forblue.net/
ProxyPassReverse / https://ssl2.forblue.net/
# HTTPS:443→ HTTPS other port
ProxyPass /ssl2.forblue.net/ https://ssl.forblue.net:8080/
ProxyPassReverse /ssl2.forblue.net/ https://ssl.forblue.net:8080/
# ※HTTPS:443→ HTTPS xxx は同時に2ヵ所以上設定できない。
# ※またドメインが ssl.forblue.net となっていいることから、プロキシ先は
# 本人となっています。そのように本人に転送先にすることができます。
< /VirtualHost>
-----------------------------------------------------------------------
○ディレクティブ解析
・SSLProxyEngine On/Off
このディレクティブは、プロキシのためのSSL/TLSプロトコルを使用するのに
用います。
・SSLProxyVerify Level
このディレクティブは、リモートサーバが持つ証明書の有効/無効を検証し
ます。
Levelの種類
・none :リモートサーバは有効な証明書を提供する必要がありません。
※このLevelを用いることで、自己証明の利用が可能になります。
・optional :リモートサーバは有効な証明書を提供するかもしれません。
・require :リモートサーバは有効な証明書を提供しなければなりません。
・optional_no_ca :リモートサーバは有効な証明書を提供するかもしれ
ませんが、証明可能でない必要があります。
※直訳御免・・。
○参照元:http://httpd.apache.org/docs/2.0/ja/mod/mod_ssl.html
-----------------------------------------------------------------------
4) 作成した proxy.conf を有効にする。
a2ensite xxx
5) Apacheを再起動する。
/etc/init.d/apach2 restart
○上記で準備完了。
確認は実際に設定した バーチャルホストにアクセスし、リバースプロキシ先に
リバースプロキシからのアクセスログがあればOK!
※リバースプロキシにはアクセスログがありません。そのためアクセスログには
大元のアクセスが誰なのか分からなくなってしまいます。
次回予告!
・フォワードプロキシ設定
・リバースプロキシログ設定
※公開予定日
来週です。
来週って言ったら来週です!(;´Д`A ``
前回、Apacheモジュールにはいろいろなものがあり、徐々に解説していけたら
いいなー。的なことを書いたのですが、ひとつ最近導入したものがあるので、
それを紹介します。
○Debin4.0(etch) Apache2 を用いたリバースプロキシ設定。
Proxyにはフォワードプロキシ(Forward Proxy)と、リバースプロキシ(Reverse
Proxy)とがあり、今回はリバースプロキシの設定方法を紹介します。
○リバースプロキシとは
あるサーバの代理として、そのサーバへの要求を中継するプロキシサーバ。
代行されているサーバにアクセスしようとしたユーザは全てリバースプロキシを
経由することになるため、サーバが直接アクセスを受けることはなくなる。
※一般的にプロキシというと、上記とは逆のフォワードプロキシを思い浮かべる
人も多いかと思います。
が、なぜかリバースプロキシから入っていく私です(;´▽`A``
手順は以下の通りです。
1) Proxyモジュールをインストールする。
a2enmod proxy_http
※a2enmod proxy_http を実行すると、proxyモジュールも同時にインスト
ールされます。
2) /etc/apache2/mods-enabled/proxy.conf を編集する。
Deny from all
上記の下行に、下記を追記します。
Allow from all
3) proxy.conf を以下に作成する。
/etc/apache2/sites-available/xxx
※xxxは任意です。
下記conf例です。
※< で始まる行に関して、正しくUPされなくなるという理由から、スペースが
1つ入っていますのでご注意を。
-----------------------------------------------------------------------
○HTTP PROXY
-----------------------------------------------------------------------
< VirtualHost *>
ServerName www1-k1.forblue.net
ServerAdmin webmaster@forblue.net
DocumentRoot /var/www/www.forblue.net
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
< Proxy *>
Order deny,allow
Deny from all
Allow from all
< /Proxy>
ProxyRequests Off
ProxyPreserveHost Off
# HTTP:80→ HTTP:80
ProxyPass / http://192.168.1.11/
ProxyPassReverse / http://192.168.1.11/
# HTTP:80→ HTTP:other port
ProxyPass /proxy http://192.168.1.11:8080/proxy
ProxyPassReverse /proxy http://192.168.11:8080/proxy
# ※ /(ルート)には同時に複数選択できない。
# / を複数使用するためにはサブドメインを変える必要あり。
< /VirtualHost>
-----------------------------------------------------------------------
○ディレクティブ解説
・< Proxy *>〜< /Proxy>
アクセス制限を行います。
上記例では、Allow from all となっていますが、その内容は 2)と重複する
ため意味はありません。
・ProxyPass /xxx http://domain/
↑ ↑Proxy先URL(IPアドレス、ドメインどちらでも使用可)
|
パスを記入。最短は / のみとなる。
このディレクティブはリモートサーバをローカルサーバの名前空間にマップ
できるようにします。
ローカルサーバは通常の意味でのプロキシと しては動作せず、リモートサー
バのミラーとして振る舞います。
・ProxyPassReverse /xxx http://domain/
↑ ↑Proxy先URL(IPアドレス、ドメインどちらでも使用可)
|パスを記入。最短は / のみとなる。
このディレクティブは Apache に HTTP リダイレクト応答の Location,
Content-Location, URI ヘッダの調整をさせます。
これは、Apache がリバースプロキシとして使われている ときに、リバース
プロキシを通さないでアクセスすることを防ぐために 重要です。これにより
バックエンドサーバの HTTP リダイレクトがリバースプロキシとバックエンド
の間で扱われるようになります。
・ProxyPreserveHost On/Off
このオプションが有効になっている場合、ProxyPass で指定したホスト名の
代わりに、受け付けたリクエストのHost: 行を プロキシ先のホストに送ります。
※このオプションは通常は Off に設定してください。
・ProxyRequests On/Off
これは Apache のフォワードプロキシサーバとしての動作を 有効もしくは
無効にします。
○参照元:http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html
-----------------------------------------------------------------------
○HTTPS PROXY
※SSL設定に関する説明は前回までのBLOGを参照してください。
-----------------------------------------------------------------------
< VirtualHost ssl.forblue.net:443>
SSLEngine on
SSLCertificateFile /etc/apache2/keys/server.crt
SSLCertificateKeyFile /etc/apache2/keys/server.key
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLProxyEngine On
SSLProxyVerify none
ServerName ssl.forblue.net
ServerAdmin webmaster@forblue.net
DocumentRoot /var/www/ssl.forblue.net
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
ProxyRequests Off
ProxyPreserveHost Off
# HTTPS:443→ HTTP:80
ProxyPass /proxy http://192.168.1.34/
ProxyPassReverse /proxy http://192.168.1.34/
# HTTPS:443→ HTTPS:443
ProxyPass / https://ssl2.forblue.net/
ProxyPassReverse / https://ssl2.forblue.net/
# HTTPS:443→ HTTPS other port
ProxyPass /ssl2.forblue.net/ https://ssl.forblue.net:8080/
ProxyPassReverse /ssl2.forblue.net/ https://ssl.forblue.net:8080/
# ※HTTPS:443→ HTTPS xxx は同時に2ヵ所以上設定できない。
# ※またドメインが ssl.forblue.net となっていいることから、プロキシ先は
# 本人となっています。そのように本人に転送先にすることができます。
< /VirtualHost>
-----------------------------------------------------------------------
○ディレクティブ解析
・SSLProxyEngine On/Off
このディレクティブは、プロキシのためのSSL/TLSプロトコルを使用するのに
用います。
・SSLProxyVerify Level
このディレクティブは、リモートサーバが持つ証明書の有効/無効を検証し
ます。
Levelの種類
・none :リモートサーバは有効な証明書を提供する必要がありません。
※このLevelを用いることで、自己証明の利用が可能になります。
・optional :リモートサーバは有効な証明書を提供するかもしれません。
・require :リモートサーバは有効な証明書を提供しなければなりません。
・optional_no_ca :リモートサーバは有効な証明書を提供するかもしれ
ませんが、証明可能でない必要があります。
※直訳御免・・。
○参照元:http://httpd.apache.org/docs/2.0/ja/mod/mod_ssl.html
-----------------------------------------------------------------------
4) 作成した proxy.conf を有効にする。
a2ensite xxx
5) Apacheを再起動する。
/etc/init.d/apach2 restart
○上記で準備完了。
確認は実際に設定した バーチャルホストにアクセスし、リバースプロキシ先に
リバースプロキシからのアクセスログがあればOK!
※リバースプロキシにはアクセスログがありません。そのためアクセスログには
大元のアクセスが誰なのか分からなくなってしまいます。
次回予告!
・フォワードプロキシ設定
・リバースプロキシログ設定
※公開予定日
来週です。
来週って言ったら来週です!(;´Д`A ``
2009年02月25日
Apache2 SSL導入。パート4
週に一度が更新の目標だったのに、我ながらひどい・・(;´Д`A ``
が、がんばります・・。
・・やっと本題と言っても良いApacheへの設定編です。
1)作成した SSL証明書を以下にコピーする。
/etc/apache2/keys/server.crt
/etc/apache2/keys/server.key
※ディレクトリの場所と名前は任意です。
2)HTTPS用Listenポートを追加する。
/etc/apache2/ports.conf を編集する。
末行に以下を追記する。
Listen 443
※TCP443ポートを解放するという意味。
TCP443ポートと言うのは、HTTPSの標準ポート番号になります。
3)SSL用confファイルを作成する。
以下を新規ファイルを作成します。
/etc/apache2/sites-available/ssl
※conf名は任意です。
極力目的にあった名前をつけましょう。
以下、記載例
※ #は解説です。
< の後ろに一つスペースが入っていますが本来は不要です。
スペースを入れないとタグと誤認識され正しく表示されないのです・・。
< IfModule mod_ssl.c>
# SSLモジュールを読み込みます。
< VirtualHost ssl.forblue.net:443 192.168.1.11:443>
# ホスト名:443 IPアドレス:443 とします。
# 例ではIPアドレスにローカルIPアドレスを記載していますが、
# 本来はグローバルIPアドレスになります。
SSLEngine on
SSLCertificateFile /etc/apache2/keys/server.crt
SSLCertificateKeyFile /etc/apache2/keys/server.key
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
# 上記4行はお約束となっています。
# ただしcrtとkeyのパスの設定は間違えないように。
ServerAdmin webmaster@forblue.net
ServerName ssl.forblue.net
# 管理者通知メールアドレスおよび、ホスト名を記載します。
DocumentRoot /var/www/ssl.forblue.net
# ドキュメントルートを指定します。
# 場所は任意です。
ErrorLog /var/log/apache2/error_ssl.log
LogLevel warn
CustomLog /var/log/apache2/access_ssl.log combined
ServerSignature Off
# ログ設定を行います。
# ログのパスと名前は任意なのですが、*****.log としておくと、logrotate の
# 既設設定で適切にアーカイブ(適切に処置)されます。
# logrotate って言葉がいきなりできましたが、それは別途(後日・・)説明
します。
< /VirtualHost>
< /IfModule>
# 終了宣言です。
4) 指定したドキュメントルートに何らかのファイルを置く。
※動作確認用です。
mkdir /var/www/ssl.forblue.net
vi /var/www/ssl.forblue.net/index.html
※ index.html の中身は任意です。
TEST と1行書いておいてくれればそれでよいかと。
丁寧なHTMLタグは不要で、その1行でよいのです!(謎の強調・・)
5) 作成したサイトを有効化する。
a2ensite ssl
※ sites-available配下に作成した Confの名前を指定します。
※ a2***コマンドは多数あり、その1つに a2ensite があります。
逆にサイトを無効化したいのであれば、a2dissite を使用します。
以下メッセージが表示されれば成功です。
Site ssl.forblue.net installed; run /etc/init.d/apache2 reload to enable.
※apache2 をreload(最読み込ませ)してくれという意味ですが、
ちょっと我慢を。
6) SSLモジュールを有効化する。
a2enmod ssl
※ 上記で記載した、a2***コマンドの1つです。
※ apache2 には多数のモジュールが存在し、それらを利用すればいろいろな
ことができます。
コンソール上で a2enmod と入力し、タブ保管なので一覧を表示するとー
ぐおっっと以下が出てきます。
actions
alias
asis
auth_basic
auth_digest
authn_alias
authn_anon
authn_dbd
authn_dbm
authn_default
authn_file
authnz_ldap
authz_dbm
authz_default
authz_groupfile
authz_host
authz_owner
authz_user
autoindex
cache
cern_meta
cgi
cgid
charset_lite
dav
dav_fs
dav_lock
dbd
deflate
dir
disk_cache
dump_io
env
expires
ext_filter
file_cache
filter
headers
ident
imagemap
include
info
ldap
log_forensic
mem_cache
mime
mime_magic
negotiation
php4
proxy
proxy_ajp
proxy_balancer
proxy_connect
proxy_ftp
proxy_http
rewrite
setenvif
sick-hack-to-update-modules
speling
ssl
status
suexec
unique_id
userdir
usertrack
version
vhost_alias
まだまだ勉強中の身なのですべてを把握しているわけではないのですが、
userdirやproxyなどは知ってて便利かなと。
解説はそのうちします・・
proxy_balancer ってのを習得したいのですが、いつの日になることやら・・
あとldapも!
課題は持っていないと勉強しないからなぁ・・
って、ちょっと独り言が入ってる(;´Д`A ``
すいません(;´▽`A``
7) Apahe をreload(再読み込ませ)する。
/etc/init.d/apache2 reload
エラーも出無くreloadができれば成功です。
8) 動作確認
任意のホストのブラウザで以下URLをたたき、TESTと表示されればOKです。
https://ssl.forblue.net
※上記URLには実際のところアクセスはできません・・。
自己証明書のブラウザ表示の際の注意。
上記URLをたたいてTESTと表示されるまでにはブラウザの警告をかいくぐる
必要があります。
なぜなら自己証明書は「安全なSSLサーバ証明書」では無いからです。
※最近ではアンチウィルスの警告を出してくるようです。
ブラウザにはCAの情報がすでに入っており、そのすでに入っているCAが
発行したSSLサーバ証明書であれば安全と認められるのです。
※CA情報確認方法
・IE ツール→インターネット オプション→コンテンツ→証明書
・FireFox ツール→オプション→詳細→証明書を表示
しかし自己証明書にはそれがありません。そのためその情報を初接続時に
信頼情報としてインポートします。
※ここで注意が数点。
インポートの内容に今回限り(一時的)という選択肢があるかと思います。
必ず同警告が出ないようにしてください。
なぜなら、DNSキャッシュポイゾニングなどで知らないうちにフィッシング
サイトへ飛ばされていても、違いに気づけなかった!なんてことになり
うるからです。
そしてもうひとつの注意が、なんでも簡単に信頼情報としてインポートしては
いけません。
なぜなら自分が知らないところは一切信頼できないからです。
以上です。
長きに渡ったAPACHE+SSL編 完・・。
次回は何にしようかな〜
書きたいことは山ほどあるんですが、ちゃんとやるかなぁオレ(;´▽`A``
が、がんばります・・。
・・やっと本題と言っても良いApacheへの設定編です。
1)作成した SSL証明書を以下にコピーする。
/etc/apache2/keys/server.crt
/etc/apache2/keys/server.key
※ディレクトリの場所と名前は任意です。
2)HTTPS用Listenポートを追加する。
/etc/apache2/ports.conf を編集する。
末行に以下を追記する。
Listen 443
※TCP443ポートを解放するという意味。
TCP443ポートと言うのは、HTTPSの標準ポート番号になります。
3)SSL用confファイルを作成する。
以下を新規ファイルを作成します。
/etc/apache2/sites-available/ssl
※conf名は任意です。
極力目的にあった名前をつけましょう。
以下、記載例
※ #は解説です。
< の後ろに一つスペースが入っていますが本来は不要です。
スペースを入れないとタグと誤認識され正しく表示されないのです・・。
< IfModule mod_ssl.c>
# SSLモジュールを読み込みます。
< VirtualHost ssl.forblue.net:443 192.168.1.11:443>
# ホスト名:443 IPアドレス:443 とします。
# 例ではIPアドレスにローカルIPアドレスを記載していますが、
# 本来はグローバルIPアドレスになります。
SSLEngine on
SSLCertificateFile /etc/apache2/keys/server.crt
SSLCertificateKeyFile /etc/apache2/keys/server.key
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
# 上記4行はお約束となっています。
# ただしcrtとkeyのパスの設定は間違えないように。
ServerAdmin webmaster@forblue.net
ServerName ssl.forblue.net
# 管理者通知メールアドレスおよび、ホスト名を記載します。
DocumentRoot /var/www/ssl.forblue.net
# ドキュメントルートを指定します。
# 場所は任意です。
ErrorLog /var/log/apache2/error_ssl.log
LogLevel warn
CustomLog /var/log/apache2/access_ssl.log combined
ServerSignature Off
# ログ設定を行います。
# ログのパスと名前は任意なのですが、*****.log としておくと、logrotate の
# 既設設定で適切にアーカイブ(適切に処置)されます。
# logrotate って言葉がいきなりできましたが、それは別途(後日・・)説明
します。
< /VirtualHost>
< /IfModule>
# 終了宣言です。
4) 指定したドキュメントルートに何らかのファイルを置く。
※動作確認用です。
mkdir /var/www/ssl.forblue.net
vi /var/www/ssl.forblue.net/index.html
※ index.html の中身は任意です。
TEST と1行書いておいてくれればそれでよいかと。
丁寧なHTMLタグは不要で、その1行でよいのです!(謎の強調・・)
5) 作成したサイトを有効化する。
a2ensite ssl
※ sites-available配下に作成した Confの名前を指定します。
※ a2***コマンドは多数あり、その1つに a2ensite があります。
逆にサイトを無効化したいのであれば、a2dissite を使用します。
以下メッセージが表示されれば成功です。
Site ssl.forblue.net installed; run /etc/init.d/apache2 reload to enable.
※apache2 をreload(最読み込ませ)してくれという意味ですが、
ちょっと我慢を。
6) SSLモジュールを有効化する。
a2enmod ssl
※ 上記で記載した、a2***コマンドの1つです。
※ apache2 には多数のモジュールが存在し、それらを利用すればいろいろな
ことができます。
コンソール上で a2enmod と入力し、タブ保管なので一覧を表示するとー
ぐおっっと以下が出てきます。
actions
alias
asis
auth_basic
auth_digest
authn_alias
authn_anon
authn_dbd
authn_dbm
authn_default
authn_file
authnz_ldap
authz_dbm
authz_default
authz_groupfile
authz_host
authz_owner
authz_user
autoindex
cache
cern_meta
cgi
cgid
charset_lite
dav
dav_fs
dav_lock
dbd
deflate
dir
disk_cache
dump_io
env
expires
ext_filter
file_cache
filter
headers
ident
imagemap
include
info
ldap
log_forensic
mem_cache
mime
mime_magic
negotiation
php4
proxy
proxy_ajp
proxy_balancer
proxy_connect
proxy_ftp
proxy_http
rewrite
setenvif
sick-hack-to-update-modules
speling
ssl
status
suexec
unique_id
userdir
usertrack
version
vhost_alias
まだまだ勉強中の身なのですべてを把握しているわけではないのですが、
userdirやproxyなどは知ってて便利かなと。
解説はそのうちします・・
proxy_balancer ってのを習得したいのですが、いつの日になることやら・・
あとldapも!
課題は持っていないと勉強しないからなぁ・・
って、ちょっと独り言が入ってる(;´Д`A ``
すいません(;´▽`A``
7) Apahe をreload(再読み込ませ)する。
/etc/init.d/apache2 reload
エラーも出無くreloadができれば成功です。
8) 動作確認
任意のホストのブラウザで以下URLをたたき、TESTと表示されればOKです。
https://ssl.forblue.net
※上記URLには実際のところアクセスはできません・・。
自己証明書のブラウザ表示の際の注意。
上記URLをたたいてTESTと表示されるまでにはブラウザの警告をかいくぐる
必要があります。
なぜなら自己証明書は「安全なSSLサーバ証明書」では無いからです。
※最近ではアンチウィルスの警告を出してくるようです。
ブラウザにはCAの情報がすでに入っており、そのすでに入っているCAが
発行したSSLサーバ証明書であれば安全と認められるのです。
※CA情報確認方法
・IE ツール→インターネット オプション→コンテンツ→証明書
・FireFox ツール→オプション→詳細→証明書を表示
しかし自己証明書にはそれがありません。そのためその情報を初接続時に
信頼情報としてインポートします。
※ここで注意が数点。
インポートの内容に今回限り(一時的)という選択肢があるかと思います。
必ず同警告が出ないようにしてください。
なぜなら、DNSキャッシュポイゾニングなどで知らないうちにフィッシング
サイトへ飛ばされていても、違いに気づけなかった!なんてことになり
うるからです。
そしてもうひとつの注意が、なんでも簡単に信頼情報としてインポートしては
いけません。
なぜなら自分が知らないところは一切信頼できないからです。
以上です。
長きに渡ったAPACHE+SSL編 完・・。
次回は何にしようかな〜
書きたいことは山ほどあるんですが、ちゃんとやるかなぁオレ(;´▽`A``
2009年02月07日
Apache2 SSL導入。パート3
目指せ毎週更新!(;´▽`A``
てなわけで続きです。
以下コマンドの説明ー
5.2 自己証明書を作成する。
以下コマンドを実行する。
・パスフレーズがない場合
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
・パスフレーズがある場合
openssl x509 -in server.csr -out server.crt -req -signkey server.pem -days 3650
・x509 : X.509証明書データの作成する。
・-signkey: 鍵を指定する。※署名するとき使うようです。
・-days : 有効期限を設定する。
・3650 : 設定する有効期限の日数。※例は約十年。
以上が鍵をつくるまです。
以下、今回参考にさせていただいたURLです。
・http://ash.jp/sec/openssl.htm
短いけど、切れがいいので一度UP!
てなわけで続きです。
以下コマンドの説明ー
5.2 自己証明書を作成する。
以下コマンドを実行する。
・パスフレーズがない場合
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
・パスフレーズがある場合
openssl x509 -in server.csr -out server.crt -req -signkey server.pem -days 3650
・x509 : X.509証明書データの作成する。
・-signkey: 鍵を指定する。※署名するとき使うようです。
・-days : 有効期限を設定する。
・3650 : 設定する有効期限の日数。※例は約十年。
以上が鍵をつくるまです。
以下、今回参考にさせていただいたURLです。
・http://ash.jp/sec/openssl.htm
短いけど、切れがいいので一度UP!
2009年01月28日
Apache2 SSL導入。パート2 (何分割されるかわからないのでパートxです・・(;´▽`A``)
毎度間が空いておりますm(_ _)m
まずはCAの紹介です。
○ベリサイン
http://www.verisign.co.jp/
前回ちょろちょろ話が出てきた彼です。
以下、ベリサインのSSLサーバ証明書の商品です。
・グローバル・サーバID
高いです(爆)
なぜ高いかというと、まずベリサインというだけで高くなります。
次に、暗号の強度が高くなる技術を使っているから(みたいです)。
しかしブラウザによっては 40bit以上の暗号化ができなく、接続時
相手に合わせて40bitまで落とし、途中から128bitまで吊り上げる。
みたいなことをしているみたいです。
※ブラウザによって暗号強度が変わってしまうというのはわかって
いるのですが、何がどこまでというのは調べてません・・。
※それと突っ込んで調べたわけではないので暗号強度を釣り上げ
れるブラウザの考え方が間違ってるかもしれません・・。
・セキュア・サーバID
暗号強度の最大は256bit(今のさっきまで最大は128bitまでだと
思っていた私(;´Д`A ``)。
ブラウザによって暗号強度が異なってしまうので、40、56、128、
256bitの中から行える最大の値で通信を行う様子。
・ベリサイン EV SSL証明書
暗号強度、とかとはまた別の話になります。
グローバル・サーバID EV、セキュア・サーバID EV、グローバル
・サーバID EV for Mobile と、上記の2つ+モバイル対応版がある
みたいです。
これはなんぞやといいますと、企業の実在性を、より確実に認証
するEV SSL証明書。緑色のアドレスバーによって、サイトを訪れた
ユーザにウェブサイトのセキュリティを示します。
※↑はベリサインの文言のコピペです。
すごいのだかすごくないのだかよくわからない一品です。
世の中が緑になるのがスタンダードになればその価値も出るので
しょうが緑だとなに?と思う人がまだまだ多いような気がします・・。
○サウテ(ソーテ、サーテなどどれが正しいのかはわからないが・・)
http://www.jp.thawte.com/
Verisignの子会社とのこと。
ベリサイン(なぜか上だけアルファベットw)と異なり即日取得できる
SSLサーバ証明書も取り扱っています。
※ベリサインでこぼれた人がこっちに来るんでしょうかね。
まぁ安いのもありますがー
以下サウテの商品です。
・SGC Super Certs
128bitの暗号強度で接続してくれる。みたいです。
128bitに対応していない人がどうなるかはー、すいません分かりま
せん・・なので導入時にはその辺を調べてください。
また SGC Super Certs(128bit SSL対応)であれば、以下CAに対応
していればSSL通信可能とのこと。
VeriSign Class3 Public Primary CA
・SSL Certs
40〜128bitの暗号強度で接続してくれる柔軟性があるSSLサーバ
証明書。
ただ、40bitの場合40bitの暗号化しかしないみたいです。
解読されやすくなりまっせ。というリスクがある商品です。
・SSL 123 Certs
40〜128bitの暗号強度で接続してくれる柔軟性があるSSLサーバ
証明書。
ただ、40bitの場合40bitの暗号化しかしないみたいです。
解読されやすくなりまっせ。というリスクがある商品です。
って、SSL Certs と一緒じゃないか!?って?(;´▽`A``
えーと、以下コピペなんですが、それが違うみたいです。
「SSL Certs」と異なる点は、申請団体の実在確認やコールバック
認証を行わず、ドメイン認証のみ(ドメインが登録されていてメール
アドレスさえ正しいもの)ですぐに発行されると言う点です。
まぁ要するに、簡単に誰でも取得できる。
ってことみたいです。
以下の会社は自分は導入事例がないので、良くわかりません(;´Д`A ``
なので社名紹介だけとさせていただきます・・。
○ジオトラスト
http://www.geotrust.co.jp/
○グローバルサイン
http://jp.globalsign.com/
○エントラスト ジャパン
http://japan.entrust.com/
○セコムトラストシステムズ
http://www.secomtrust.net/
○RSAセキュリティ
http://japan.rsa.com/
・・結構あるんだな。比較検討とかやらされたら結構大変なことに
なりそうーー(;´▽`A``
あ、ついでに各キャリア別、SSLサーバ証明書対応URLです。
○NTTドコモ
http://www.nttdocomo.co.jp/service/imode/make/content/ssl/spec/
○au kddi
http://www.au.kddi.com/ezfactory/tec/spec/ssl.html
○ソフトバンク
http://creation.mb.softbank.jp/web/web_ssl.html
○ウィルコム
http://www.willcom-inc.com/ja/service/contents_service/create/lineup/index.html
CA紹介はこんなもんで。
最初これを行おうと思った時、以下の項目を調査してビシッ!っと
決めようとおもってたのですけど・・
超適当になってしまいました(;´▽`A``
すいません・・m(_ _)m
・種類とその価格
・対応キャリア
・導入スピード
・その他信頼性など
ふー、もういいやと思ったけけれど・・
前回は結構半端なところで力つきてるんだなぁ(;´▽`A``
> 5.1.1 CAに依頼する場合。
> ベリサインなどCA(認証局)サービス会社にCSRを送り、CRTを発行
> してもらう。
5.1.2 CAから送られてきたCRTをサーバにアップする。
※CRTが送られてくる手段はメールが多いです。
非暗号化のメールで大丈夫か!?と思う人がいたら
(いないか・・)大丈夫。公開情報なので盗聴されても
秘密鍵とセットで初めて役に立つものなので問題ない。
はずです。(なんか今回弱気が多いな・・。)
5.2 自己証明書を作成する。
これを期待している人がいたらごめんなさい。
また次回で・・m(_ _)m
コマンドだけ書いておきます。
解説は次回!
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
openssl x509 -in server.csr -out server.crt -req -signkey server.pem -days 3650
まずはCAの紹介です。
○ベリサイン
http://www.verisign.co.jp/
前回ちょろちょろ話が出てきた彼です。
以下、ベリサインのSSLサーバ証明書の商品です。
・グローバル・サーバID
高いです(爆)
なぜ高いかというと、まずベリサインというだけで高くなります。
次に、暗号の強度が高くなる技術を使っているから(みたいです)。
しかしブラウザによっては 40bit以上の暗号化ができなく、接続時
相手に合わせて40bitまで落とし、途中から128bitまで吊り上げる。
みたいなことをしているみたいです。
※ブラウザによって暗号強度が変わってしまうというのはわかって
いるのですが、何がどこまでというのは調べてません・・。
※それと突っ込んで調べたわけではないので暗号強度を釣り上げ
れるブラウザの考え方が間違ってるかもしれません・・。
・セキュア・サーバID
暗号強度の最大は256bit(今のさっきまで最大は128bitまでだと
思っていた私(;´Д`A ``)。
ブラウザによって暗号強度が異なってしまうので、40、56、128、
256bitの中から行える最大の値で通信を行う様子。
・ベリサイン EV SSL証明書
暗号強度、とかとはまた別の話になります。
グローバル・サーバID EV、セキュア・サーバID EV、グローバル
・サーバID EV for Mobile と、上記の2つ+モバイル対応版がある
みたいです。
これはなんぞやといいますと、企業の実在性を、より確実に認証
するEV SSL証明書。緑色のアドレスバーによって、サイトを訪れた
ユーザにウェブサイトのセキュリティを示します。
※↑はベリサインの文言のコピペです。
すごいのだかすごくないのだかよくわからない一品です。
世の中が緑になるのがスタンダードになればその価値も出るので
しょうが緑だとなに?と思う人がまだまだ多いような気がします・・。
○サウテ(ソーテ、サーテなどどれが正しいのかはわからないが・・)
http://www.jp.thawte.com/
Verisignの子会社とのこと。
ベリサイン(なぜか上だけアルファベットw)と異なり即日取得できる
SSLサーバ証明書も取り扱っています。
※ベリサインでこぼれた人がこっちに来るんでしょうかね。
まぁ安いのもありますがー
以下サウテの商品です。
・SGC Super Certs
128bitの暗号強度で接続してくれる。みたいです。
128bitに対応していない人がどうなるかはー、すいません分かりま
せん・・なので導入時にはその辺を調べてください。
また SGC Super Certs(128bit SSL対応)であれば、以下CAに対応
していればSSL通信可能とのこと。
VeriSign Class3 Public Primary CA
・SSL Certs
40〜128bitの暗号強度で接続してくれる柔軟性があるSSLサーバ
証明書。
ただ、40bitの場合40bitの暗号化しかしないみたいです。
解読されやすくなりまっせ。というリスクがある商品です。
・SSL 123 Certs
40〜128bitの暗号強度で接続してくれる柔軟性があるSSLサーバ
証明書。
ただ、40bitの場合40bitの暗号化しかしないみたいです。
解読されやすくなりまっせ。というリスクがある商品です。
って、SSL Certs と一緒じゃないか!?って?(;´▽`A``
えーと、以下コピペなんですが、それが違うみたいです。
「SSL Certs」と異なる点は、申請団体の実在確認やコールバック
認証を行わず、ドメイン認証のみ(ドメインが登録されていてメール
アドレスさえ正しいもの)ですぐに発行されると言う点です。
まぁ要するに、簡単に誰でも取得できる。
ってことみたいです。
以下の会社は自分は導入事例がないので、良くわかりません(;´Д`A ``
なので社名紹介だけとさせていただきます・・。
○ジオトラスト
http://www.geotrust.co.jp/
○グローバルサイン
http://jp.globalsign.com/
○エントラスト ジャパン
http://japan.entrust.com/
○セコムトラストシステムズ
http://www.secomtrust.net/
○RSAセキュリティ
http://japan.rsa.com/
・・結構あるんだな。比較検討とかやらされたら結構大変なことに
なりそうーー(;´▽`A``
あ、ついでに各キャリア別、SSLサーバ証明書対応URLです。
○NTTドコモ
http://www.nttdocomo.co.jp/service/imode/make/content/ssl/spec/
○au kddi
http://www.au.kddi.com/ezfactory/tec/spec/ssl.html
○ソフトバンク
http://creation.mb.softbank.jp/web/web_ssl.html
○ウィルコム
http://www.willcom-inc.com/ja/service/contents_service/create/lineup/index.html
CA紹介はこんなもんで。
最初これを行おうと思った時、以下の項目を調査してビシッ!っと
決めようとおもってたのですけど・・
超適当になってしまいました(;´▽`A``
すいません・・m(_ _)m
・種類とその価格
・対応キャリア
・導入スピード
・その他信頼性など
ふー、もういいやと思ったけけれど・・
前回は結構半端なところで力つきてるんだなぁ(;´▽`A``
> 5.1.1 CAに依頼する場合。
> ベリサインなどCA(認証局)サービス会社にCSRを送り、CRTを発行
> してもらう。
5.1.2 CAから送られてきたCRTをサーバにアップする。
※CRTが送られてくる手段はメールが多いです。
非暗号化のメールで大丈夫か!?と思う人がいたら
(いないか・・)大丈夫。公開情報なので盗聴されても
秘密鍵とセットで初めて役に立つものなので問題ない。
はずです。(なんか今回弱気が多いな・・。)
5.2 自己証明書を作成する。
これを期待している人がいたらごめんなさい。
また次回で・・m(_ _)m
コマンドだけ書いておきます。
解説は次回!
openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650
openssl x509 -in server.csr -out server.crt -req -signkey server.pem -days 3650
2009年01月19日
Apache2 SSL導入。
初めてやったことではないのですが、最近以下の作業を行ったので記しておきます。
○ApacheサーバSSL導入。
OS:Debian GNU/Linux 4.0 (each)
1)SSLサーバ証明書作成する。
1.OpenSSLがインストールされたホストにSSH接続をする。
2.秘密鍵を作成作成する。
openssl genrsa -des 1024 > server.pem
と、実行し、以下*** にパスフレーズを入力する。
Enter pass phrase:******
Verifying - Enter pass phrase:******
これにより、秘密鍵:server.pem (パスフレーズあり)が生成 される。
・genrsa : RSA形式の秘密鍵の作成する
・-des : desを使って暗号化する。
・1024 : 生成する秘密鍵のビット数。
・> server.pem : server.pem へ出力する。
・補足
・RSA :公開鍵暗号の一つの方式
・パスフレーズ :パスワードとほぼ同意。
※パスワードよりセキュリティレベルが低いものとして区分
されている様子。
3.パスフレーズを解除する。
openssl rsa -in server.pem -out server.key
と、実行し以下は上で設定したパスフレーズを入力する。
Enter pass phrase for server.pem:******
これにより、秘密鍵:server.key (パスフレーズなし)が生成される。
※3.はパスフレーズを使用しない場合のみ行います。
・ras : RSAデータ管理する。
・-in : 後に続くファイルを読み込むための引数。
・-out : 後に続くファイルへの出力への引数。
4.CSR(証明書署名リクエスト)を作成する。
openssl req -new -key server.key -out server.csr
と、実行し以下を入力していく。
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shinagawa-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Forblue
Organizational Unit Name (eg, section) []:Network
Common Name (eg, YOUR name) []:ssl.forblue.net
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
※上記で入力する情報をディスティングイッシュネームといい、
Common Name (CN) : SSL接続の際のURL(FQDN)
Organization (O) : 申請団体の正式英語組織名
Organizational Unit (OU) : 部門名
Locality (L) : 市区町村名
State or Province (ST) : 都道府県名
Country (C) : 国別記号
をそれぞれ入力する。
上記は例で
CN : ssl.forblue.net ※これだけは絶対に間違いのないように。
O : Forblue
OU : Network
ST : Shinagawa-ku
O :JP
※初回作成時では大文字小文字は特に関係ないが、更新時は
大文字小文字が一致していなければならない。
としています。
'extra'と区分される、以下二つは任意のため空欄でも構いません。
A challenge password []:
An optional company name []:
・req : 証明書の署名要求(CSR)の作成する。
・-new : 新たな証明書要求ファイルを作成する。
・-key : 後に続く秘密鍵ファイルを読み込むための引数。
5.CRT(公開鍵)を作成する。
CRTは以下の方法によって作成することができます。
5.1 CA(認証局)に作成を依頼する。
5.2 自己証明書を作成する。
5.1.1 CAに依頼する場合。
ベリサインなどCA(認証局)サービス会社にCSRを送り、CRTを発行
してもらう。
○ベンダーの違いについて。
ベンダーによって以下が異なってきます。
・CRTの発行にかかる日数。
ベンダーによっては申込日や翌日に発行されるが、ベリサイン
は最低数日かかる。
・料金
ベンダーによって同じ暗号レベルでも、値段が大きく異なる。
・携帯電話への普及率(携帯電話を携帯端末、キャリア、モバイル
などと呼んだりする。まぁPHSがあるので携帯電話と言い切る
のは間違いなんだろうけどさ・・。)
ベンダーによっては携帯電話で閲覧することができない。
ベリサインはその辺の心配があまりない。逆に言うと、ベリサイン
以外はこの点を要注意する。
・信頼性
信頼を金で買うとはまさに言ったもんで、安い早いの裏には
信頼性の低さがあります。
ベリサインはCRT取得時に登記簿の提出が必要になります。
何のために?面倒くせー
と思いますが、これは信頼性の精度を上げるためのことで、
良くわからない怪しいところには証明書は発行しませんという
意思の現れです。
※ただし信頼性が高いからと言って、暗号レベルが高いという
わけではありません。
ふー、今回はもーいいや。
CAを使用する場合と自己証明書の使いわけもしてないんだな・・
それらは続きはまた後日で<(_ _)>
あ、ベリサインを連呼してますが、信者じゃないっす。
次回はベリサイン以外のCAも紹介したいと思うっす。
○ApacheサーバSSL導入。
OS:Debian GNU/Linux 4.0 (each)
1)SSLサーバ証明書作成する。
1.OpenSSLがインストールされたホストにSSH接続をする。
2.秘密鍵を作成作成する。
openssl genrsa -des 1024 > server.pem
と、実行し、以下*** にパスフレーズを入力する。
Enter pass phrase:******
Verifying - Enter pass phrase:******
これにより、秘密鍵:server.pem (パスフレーズあり)が生成 される。
・genrsa : RSA形式の秘密鍵の作成する
・-des : desを使って暗号化する。
・1024 : 生成する秘密鍵のビット数。
・> server.pem : server.pem へ出力する。
・補足
・RSA :公開鍵暗号の一つの方式
・パスフレーズ :パスワードとほぼ同意。
※パスワードよりセキュリティレベルが低いものとして区分
されている様子。
3.パスフレーズを解除する。
openssl rsa -in server.pem -out server.key
と、実行し以下は上で設定したパスフレーズを入力する。
Enter pass phrase for server.pem:******
これにより、秘密鍵:server.key (パスフレーズなし)が生成される。
※3.はパスフレーズを使用しない場合のみ行います。
・ras : RSAデータ管理する。
・-in : 後に続くファイルを読み込むための引数。
・-out : 後に続くファイルへの出力への引数。
4.CSR(証明書署名リクエスト)を作成する。
openssl req -new -key server.key -out server.csr
と、実行し以下を入力していく。
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shinagawa-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Forblue
Organizational Unit Name (eg, section) []:Network
Common Name (eg, YOUR name) []:ssl.forblue.net
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
※上記で入力する情報をディスティングイッシュネームといい、
Common Name (CN) : SSL接続の際のURL(FQDN)
Organization (O) : 申請団体の正式英語組織名
Organizational Unit (OU) : 部門名
Locality (L) : 市区町村名
State or Province (ST) : 都道府県名
Country (C) : 国別記号
をそれぞれ入力する。
上記は例で
CN : ssl.forblue.net ※これだけは絶対に間違いのないように。
O : Forblue
OU : Network
ST : Shinagawa-ku
O :JP
※初回作成時では大文字小文字は特に関係ないが、更新時は
大文字小文字が一致していなければならない。
としています。
'extra'と区分される、以下二つは任意のため空欄でも構いません。
A challenge password []:
An optional company name []:
・req : 証明書の署名要求(CSR)の作成する。
・-new : 新たな証明書要求ファイルを作成する。
・-key : 後に続く秘密鍵ファイルを読み込むための引数。
5.CRT(公開鍵)を作成する。
CRTは以下の方法によって作成することができます。
5.1 CA(認証局)に作成を依頼する。
5.2 自己証明書を作成する。
5.1.1 CAに依頼する場合。
ベリサインなどCA(認証局)サービス会社にCSRを送り、CRTを発行
してもらう。
○ベンダーの違いについて。
ベンダーによって以下が異なってきます。
・CRTの発行にかかる日数。
ベンダーによっては申込日や翌日に発行されるが、ベリサイン
は最低数日かかる。
・料金
ベンダーによって同じ暗号レベルでも、値段が大きく異なる。
・携帯電話への普及率(携帯電話を携帯端末、キャリア、モバイル
などと呼んだりする。まぁPHSがあるので携帯電話と言い切る
のは間違いなんだろうけどさ・・。)
ベンダーによっては携帯電話で閲覧することができない。
ベリサインはその辺の心配があまりない。逆に言うと、ベリサイン
以外はこの点を要注意する。
・信頼性
信頼を金で買うとはまさに言ったもんで、安い早いの裏には
信頼性の低さがあります。
ベリサインはCRT取得時に登記簿の提出が必要になります。
何のために?面倒くせー
と思いますが、これは信頼性の精度を上げるためのことで、
良くわからない怪しいところには証明書は発行しませんという
意思の現れです。
※ただし信頼性が高いからと言って、暗号レベルが高いという
わけではありません。
ふー、今回はもーいいや。
CAを使用する場合と自己証明書の使いわけもしてないんだな・・
それらは続きはまた後日で<(_ _)>
あ、ベリサインを連呼してますが、信者じゃないっす。
次回はベリサイン以外のCAも紹介したいと思うっす。
2009年01月15日
世代管理バックアップ。補足編パート3
メール本文に内容を送るためのフィルタリングができたので
きれいすっきりなスクリプトをアップします。
下の方にはコマコマと仮説したものも載せています。
まぁ自分の勉強のために付けただけですけどね(;´▽`A``
------------------
○差分バックアップスクリプト
---------------------------------
#!/bin/sh
BACKUPDIRS="/mnt/backupdir/_backups/"
BACKUPTO="/mnt/usbdisk1/backup"
BACKUPDIFF="/mnt/usbdisk1/diff"
EXPIREDAYS=30
date "+%Y/%m/%d %T"
# delete old backup directories
DATE=`date +%Y%m%d`
for DIR in `ls $BACKUPDIFF | grep "diff_"`
do
BDATE=`echo $DIR | sed "s/diff_//"`
EXPIREDATE=`date +%Y%m%d -d "$EXPIREDAYS days ago"`
if [ $BDATE -le $EXPIREDATE ]
then
rm -rf $BACKUPDIFF/$DIR
fi
done
# rsync options
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE/ -auvv"
# execute backup
rsync $OPTS $BACKUPDIRS $BACKUPTO > /home/user/rsync.1.txt
# mail to
grep -v uptodate /home/user/rsync.1.txt > rsync.2.txt
grep -v newer /home/user/rsync.2.txt > rsync.$DATE.txt
mail -s Backup_report_$DATE user@forbule.net < /home/user/rsync.$DATE.txt
-------------------------------------------------
○差分バックアップスクリプト 解説版
---------------------------------
#!/bin/sh
BACKUPDIRS="/mnt/backupdir/_backups/"
## バックアップ元
BACKUPTO="/mnt/usbdisk1/backup"
## バックアップ先
BACKUPDIFF="/mnt/usbdisk1/diff"
## 差分排出先
EXPIREDAYS=30
## 差分生存期間(日)
date "+%Y/%m/%d %T"
## dataを定義する。
# delete old backup directories
## 以下は生存期間を超える差分を削除するスクリプト
DATE=`date +%Y%m%d`
## 変数DATEにyyyymmddと入れる。
for DIR in `ls $BACKUPDIFF | grep "diff_"`
## 変数DIRに文字列diff_から始まる $BACKUPDIFF(/mnt/usbdisk1/diff) 配下にあるファイルリストをアレイに入れる。
do
## forループ開始
BDATE=`echo $DIR | sed "s/diff_//"`
## 正規表現(sed)を用いて、文字列diff_を削除(無に変換)するし、変数BDATEに入れる。
EXPIREDATE=`date +%Y%m%d -d "$EXPIREDAYS days ago"`
## 実行日から生存期間を引き、生存日を求め変数 EXPIREDATE に入れる。
if [ $BDATE -le $EXPIREDATE ]
## if分比較開始。
## BDATEとEXPIREDATEを比較し(-le は < を表す)BDATEにEXPIREDATEより小さい値がないか探す。
## BDATEはアレイなので、キューに入った順番に比較されていく。
then
## ifの条件に合ったものがあれば、以下を実行する。
rm -rf $BACKUPDIFF/$DIR
## 生存期間より古いフォルダがあれば削除する。
fi
## if分完了
done
## forループ終了。
## 生存期間を超える差分を削除するスクリプト終了
# rsync options
## 以下よりrsyncによる差分バックアップスクリプト
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE/ -auvv"
## rsync につけるオプションを変数OPTSに入れる。
## オプション解説(ないものは上記参照)
## -vvとすることで、実行内容の詳細を吐き出す。
# execute backup
rsync $OPTS $BACKUPDIRS $BACKUPTO > /home/user/rsync.1.txt
## rsync実行かつ、>を使い、rsync.1.txtに実行内容を入れる。
## 1つのコマンドで同期及び差分を生成する。
# end of backup
date "+%Y/%m/%d %T"
## rsyncスクリプト終了
# mail to
## 以下より、結果をメール送信するスクリプト
grep -v uptodate /home/user/rsync.txt > rsync.1.txt
## uptodateと記載された行をフィルタする。
## grep -v で検索文字以外を検索する。
grep -v newer /home/user/rsync.2.txt > rsync.$DATE.txt
## newerと記載された行をフィルタする。
## 最終的な結果はrsync.$DATE.txt($DATEはその日の日付が入る)に入れられる。
mail -s Backup_report_$DATE user@forblue.net < /home/user/rsync.$DATE.txt
## mail コマンドを使い user@forblue.net へ送信
## 題名:Backup_report_$DATE (スペースを入れると最初の1ワードのみになる)
## 本分:/home/user/rsync.$DATE.txt の内容が入る。
てな感じです。
あとは文字化けと、
delta-transmission disabled for local transfer or --whole-file
以下の解読だけか・・。
きれいすっきりなスクリプトをアップします。
下の方にはコマコマと仮説したものも載せています。
まぁ自分の勉強のために付けただけですけどね(;´▽`A``
------------------
○差分バックアップスクリプト
---------------------------------
#!/bin/sh
BACKUPDIRS="/mnt/backupdir/_backups/"
BACKUPTO="/mnt/usbdisk1/backup"
BACKUPDIFF="/mnt/usbdisk1/diff"
EXPIREDAYS=30
date "+%Y/%m/%d %T"
# delete old backup directories
DATE=`date +%Y%m%d`
for DIR in `ls $BACKUPDIFF | grep "diff_"`
do
BDATE=`echo $DIR | sed "s/diff_//"`
EXPIREDATE=`date +%Y%m%d -d "$EXPIREDAYS days ago"`
if [ $BDATE -le $EXPIREDATE ]
then
rm -rf $BACKUPDIFF/$DIR
fi
done
# rsync options
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE/ -auvv"
# execute backup
rsync $OPTS $BACKUPDIRS $BACKUPTO > /home/user/rsync.1.txt
# mail to
grep -v uptodate /home/user/rsync.1.txt > rsync.2.txt
grep -v newer /home/user/rsync.2.txt > rsync.$DATE.txt
mail -s Backup_report_$DATE user@forbule.net < /home/user/rsync.$DATE.txt
-------------------------------------------------
○差分バックアップスクリプト 解説版
---------------------------------
#!/bin/sh
BACKUPDIRS="/mnt/backupdir/_backups/"
## バックアップ元
BACKUPTO="/mnt/usbdisk1/backup"
## バックアップ先
BACKUPDIFF="/mnt/usbdisk1/diff"
## 差分排出先
EXPIREDAYS=30
## 差分生存期間(日)
date "+%Y/%m/%d %T"
## dataを定義する。
# delete old backup directories
## 以下は生存期間を超える差分を削除するスクリプト
DATE=`date +%Y%m%d`
## 変数DATEにyyyymmddと入れる。
for DIR in `ls $BACKUPDIFF | grep "diff_"`
## 変数DIRに文字列diff_から始まる $BACKUPDIFF(/mnt/usbdisk1/diff) 配下にあるファイルリストをアレイに入れる。
do
## forループ開始
BDATE=`echo $DIR | sed "s/diff_//"`
## 正規表現(sed)を用いて、文字列diff_を削除(無に変換)するし、変数BDATEに入れる。
EXPIREDATE=`date +%Y%m%d -d "$EXPIREDAYS days ago"`
## 実行日から生存期間を引き、生存日を求め変数 EXPIREDATE に入れる。
if [ $BDATE -le $EXPIREDATE ]
## if分比較開始。
## BDATEとEXPIREDATEを比較し(-le は < を表す)BDATEにEXPIREDATEより小さい値がないか探す。
## BDATEはアレイなので、キューに入った順番に比較されていく。
then
## ifの条件に合ったものがあれば、以下を実行する。
rm -rf $BACKUPDIFF/$DIR
## 生存期間より古いフォルダがあれば削除する。
fi
## if分完了
done
## forループ終了。
## 生存期間を超える差分を削除するスクリプト終了
# rsync options
## 以下よりrsyncによる差分バックアップスクリプト
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE/ -auvv"
## rsync につけるオプションを変数OPTSに入れる。
## オプション解説(ないものは上記参照)
## -vvとすることで、実行内容の詳細を吐き出す。
# execute backup
rsync $OPTS $BACKUPDIRS $BACKUPTO > /home/user/rsync.1.txt
## rsync実行かつ、>を使い、rsync.1.txtに実行内容を入れる。
## 1つのコマンドで同期及び差分を生成する。
# end of backup
date "+%Y/%m/%d %T"
## rsyncスクリプト終了
# mail to
## 以下より、結果をメール送信するスクリプト
grep -v uptodate /home/user/rsync.txt > rsync.1.txt
## uptodateと記載された行をフィルタする。
## grep -v で検索文字以外を検索する。
grep -v newer /home/user/rsync.2.txt > rsync.$DATE.txt
## newerと記載された行をフィルタする。
## 最終的な結果はrsync.$DATE.txt($DATEはその日の日付が入る)に入れられる。
mail -s Backup_report_$DATE user@forblue.net < /home/user/rsync.$DATE.txt
## mail コマンドを使い user@forblue.net へ送信
## 題名:Backup_report_$DATE (スペースを入れると最初の1ワードのみになる)
## 本分:/home/user/rsync.$DATE.txt の内容が入る。
てな感じです。
あとは文字化けと、
delta-transmission disabled for local transfer or --whole-file
以下の解読だけか・・。
2009年01月14日
世代管理バックアップ。補足編パート2
あけましておめでとうございます。m(_ _)m
もう1年が始まって、10日以上過ぎているのですね・・。
遅いスタートで申し訳ございません<(_ _)>
タイトルの内容、まだやってました(;´▽`A``
なので恥ずかしくて・・
実際運用してみると、どうしても差異のないファイルも誤差だ!!
と言って上書き、差分吐き出ししてしまうという謎の不具合がありまして・・。
それがやっと解消できたのです!
ファイルサーバに Buffalo の Terastation を使っています。
私の記念すべき一発目のブログの一番最初に書かれている内容です。
そう、原因はここにありました(;´▽`A``
ファームウェアを更新すると、上記不具合は見事に消えー
これで本当に運用に使えます。
参考までに以下記載しておきます。
仕様ハードウェア: TS-HTGL/R5
更新前ファームバージョン: 1.22
更新後ファームバージョン: 1.33
1.22→1.33 の間に何があったかを確認してみると・・
なんと、それっぽいものが何もない・・(;´▽`A``
http://buffalo.jp/download/driver/hd/ts-htgl_fw.html
どっかでしれっと直されてしまったのか、はたまたたまたま直ってしまったのか・・。
まぁもぉいいや!
あとは、送信するメールの内容を更新のあったファイルだけにするという仕組みを作るだけだー!
って、まだ続くのかよ(;´▽`A``
もう1年が始まって、10日以上過ぎているのですね・・。
遅いスタートで申し訳ございません<(_ _)>
タイトルの内容、まだやってました(;´▽`A``
なので恥ずかしくて・・
実際運用してみると、どうしても差異のないファイルも誤差だ!!
と言って上書き、差分吐き出ししてしまうという謎の不具合がありまして・・。
それがやっと解消できたのです!
ファイルサーバに Buffalo の Terastation を使っています。
私の記念すべき一発目のブログの一番最初に書かれている内容です。
そう、原因はここにありました(;´▽`A``
ファームウェアを更新すると、上記不具合は見事に消えー
これで本当に運用に使えます。
参考までに以下記載しておきます。
仕様ハードウェア: TS-HTGL/R5
更新前ファームバージョン: 1.22
更新後ファームバージョン: 1.33
1.22→1.33 の間に何があったかを確認してみると・・
なんと、それっぽいものが何もない・・(;´▽`A``
http://buffalo.jp/download/driver/hd/ts-htgl_fw.html
どっかでしれっと直されてしまったのか、はたまたたまたま直ってしまったのか・・。
まぁもぉいいや!
あとは、送信するメールの内容を更新のあったファイルだけにするという仕組みを作るだけだー!
って、まだ続くのかよ(;´▽`A``
2008年12月26日
世代管理バックアップ。補足編
これまでに記載してきた rsync を使った世代管理バックアップについて、
謎の不具合対応と、機能強化を行ったので以下に示します。
○謎の不具合対応。
検証では出なかったのですが、いざ本命に実装すると、なぜか
一致しているにも関わらず、差分があるぜオラオラっと、rsync が
頑張ってくるということがありまして・・、以下を行うことでその
謎の不具合はなくなりました。
・修正前
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE -a"
・修正後
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE -auv"
※オプション u と v をつけたらなぜか解消されました。
・オプション解説(追加分)
-u, --update 受信側に既にファイルが存在していて、送信側のファイルよりも新しかった場合にはそのファイルをスキップします。
○機能強化
どうせなら、完了したらメールでその内容を伝えてくれないかなー
と思いちょっと調べてみました。
そんでもってスクリプトの後半部分を以下のように変更しました。
# rsync options
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE -auv"
if [ -f $EXCLUDEFILE ]; then
OPTS="$OPTS --exclude-from=$EXCLUDEFILE"
fi
# execute backup
echo " Executing backup with rsync..."
for dir in $BACKUPDIRS
do
echo " rsync $OPTS $dir $BACKUPTO"
rsync -v $OPTS $dir $BACKUPTO > rsync.txt
#↑を追加。-vv とすることで、詳細を吐き出します。
# それをテキストに吐き出します。
rsync $OPTS $dir $BACKUPTO
done
# end of backup
echo -n "*** End of backup on "
date "+%Y/%m/%d %T"
echo
# mail to
mail -s rsync_end youth@forblue.net < rsync.txt
# 上記ではきだしたテキストを読み込み、それをメールすると。
# メールの題名は手抜きで rsync_end としています。
rm rsync.txt
# 意味があるかないかは微妙ですが、作ったテキストは
# 念のために消しています。
以上です、
あとはメールをもうチョイ見やすくできたらなーと思ってます。
手を加えたらまたアップします。
謎の不具合対応と、機能強化を行ったので以下に示します。
○謎の不具合対応。
検証では出なかったのですが、いざ本命に実装すると、なぜか
一致しているにも関わらず、差分があるぜオラオラっと、rsync が
頑張ってくるということがありまして・・、以下を行うことでその
謎の不具合はなくなりました。
・修正前
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE -a"
・修正後
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE -auv"
※オプション u と v をつけたらなぜか解消されました。
・オプション解説(追加分)
-u, --update 受信側に既にファイルが存在していて、送信側のファイルよりも新しかった場合にはそのファイルをスキップします。
○機能強化
どうせなら、完了したらメールでその内容を伝えてくれないかなー
と思いちょっと調べてみました。
そんでもってスクリプトの後半部分を以下のように変更しました。
# rsync options
OPTS="--force --delete-excluded --delete --backup --backup-dir=$BACKUPDIFF/diff_$DATE -auv"
if [ -f $EXCLUDEFILE ]; then
OPTS="$OPTS --exclude-from=$EXCLUDEFILE"
fi
# execute backup
echo " Executing backup with rsync..."
for dir in $BACKUPDIRS
do
echo " rsync $OPTS $dir $BACKUPTO"
rsync -v $OPTS $dir $BACKUPTO > rsync.txt
#↑を追加。-vv とすることで、詳細を吐き出します。
# それをテキストに吐き出します。
rsync $OPTS $dir $BACKUPTO
done
# end of backup
echo -n "*** End of backup on "
date "+%Y/%m/%d %T"
echo
# mail to
mail -s rsync_end youth@forblue.net < rsync.txt
# 上記ではきだしたテキストを読み込み、それをメールすると。
# メールの題名は手抜きで rsync_end としています。
rm rsync.txt
# 意味があるかないかは微妙ですが、作ったテキストは
# 念のために消しています。
以上です、
あとはメールをもうチョイ見やすくできたらなーと思ってます。
手を加えたらまたアップします。