Authentication Gateway HOWTO Nathan Zorn zornnh@musc.edu yomoyomo - 日本語訳 ymgrtq@ma.neweb.ne.jp Revision History Revision 0.06 2002-11-05 Revised by: nhz Revision 0.05 2002-05-10 Revised by: nhz Revision 0.04 2002-02-28 Revised by: nhz Revision 0.03 2001-09-28 Revised by: nhz Revision 0.02 2001-09-28 Revised by: KET Revision 0.01 2001-09-06 Revised by: nhz 無線ネットワークや、図書館や寮などの公開アクセスエリアにおけるセキュ リティには、多くの懸念事項があります。そうした懸念事項は、現行のセキュ リティ実装では解決できません。その回避策として、認証ゲートウェイを利用 する方法が推奨されてきました。このゲートウェイは、ユーザがネットワーク を利用する際に認証を強制することで、セキュリティに関する懸念事項に取り 組むものです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Table of Contents 1. はじめに 1.1. 著作権情報 1.2. 免責 1.3. 最新版 1.4. クレジット 1.5. フィードバック 2. 必要なもの 2.1. Netfilter 2.2. 動的な Netfilter ルールに対応するソフトウェア 2.3. DHCP サーバ 2.4. 認証のメカニズム 2.5. DNS サーバ 3. ゲートウェイサービスの設定 3.1. Netfilterの設定 3.2. 動的な Netfilter ルール 3.3. DHCP サーバ設定 3.4. 認証手法の設定 3.5. DNS の設定 4. 認証ゲートウェイの利用 5. 終わりに 6. 追加の情報源 7. 質問と答え 8. 日本語訳について 1. はじめに 無線ネットワークや公開アクセスエリアに、許可されてないユーザがアクセ スするのはとても簡単です。許可されてないユーザでも、通信を探り、その通 信から接続情報を横取りできます。許可されてないユーザが、マシンを公開タ ーミナルにつなぎ、ネットワークにアクセスすることが可能なのです。セキュ リティが WEP などで整備されてきてますが、こうしたものによるセキュリティ は、AirSnort などのツールによって破られる可能性があります。以上の問題を 解決するアプローチの一つとして、無線のセキュリティ機能に頼らず、代わり に無線ネットワークや公開アクセスエリアの前面に認証ゲートウェイを設置し 、ユーザがネットワークを利用する前に、そのゲートウェイに認証を受けるこ とを強制するというのがあります。この HOWTO は、Linux でこのゲートウェイ を構築する方法を説明するものです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1. 著作権情報 This document is copyrighted (c) 2001 Nathan Zorn. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is available at http://www.gnu.org/copyleft/fdl.html (日本語訳) This document is copyrighted (c) 2001 Nathan Zorn. この文 書の複製、配布、修正は、Free Software Foundation により公開されている、 GNU Free Documentation License (以下 GFDL) バージョン 1.1、もしくはそれ 以降のバージョンの元で許可されます。ただし、この文書には GFDL で規定さ れている「変更不可部分」はありませんし、また表紙テキストや裏表紙テキス トなどもありません。このライセンスのコピーは、http://www.gnu.org/ copyleft/fdl.html で入手可能です。 何か質問があれば、 に連絡してください。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2. 免責 この文書の内容に関しては、何の責任も持てません。ご自身の責任の元で、 この文書のコンセプト、例、そしてその他の内容を利用してください。これは 本文書の新版ですので、誤りや不正確な記述を含んでいるかもしれませんし、 それらの誤りや不正確な記述によって、あなたのシステムに被害を与える可能 性もまた当然ながらあります。慎重に読み進んでください。実際に何らかの被 害を生ずるといった可能性はほとんど無いはずですが、たとえそうしたことが 起きてしまったとしても、著者(達)は、それについて何の責任も負いません。 特に記述がない限り、著作権はそれぞれの保有者に帰するものとします。ま たこの文書中で使用される用語は、各商標の範囲に抵触しないものとします。 特定の商品名やブランド名を挙げた場合でも、それらを推奨するものではあ りません。 主要なインストールを行う前にご利用のシステムのバックアップを取り、そし てバックアップを定期的に行うことを強くお勧めします。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3. 最新版 この文書の最新版は、 http://www.itlab.musc.edu/~nathan/ authentication_gateway/ にあります。関連する HOWTO 文書は、 Linux Documentation Project ホームページで見つけら れます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4. クレジット Jamin W. Collins Kristin E Thomas Logu (visolve.com) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.5. フィードバック この文書に関するフィードバックを、もちろん歓迎します。あなたがたの提案 や意見がなければ、この文書は存在しなかったでしょう。追加、批評、そして 批判を以下の電子メールアドレスまでお送りください: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2. 必要なもの このセクションでは、認証ゲートウェイに必要なものについて記述します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1. Netfilter 認証ゲートウェイは、ファイヤウォールを管理するのに、Netfilter と iptables を利用します。 Netfilter HOWTO を参照ください。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2. 動的な Netfilter ルールに対応するソフトウェア Netfilter ルールを動的に挿入、削除する手段の一つに、 pam_iptables の利 用があります。これは Nathan Zorn によって書かれたプラグ可能認証モジュー ル(PAM)で、 http://www.itlab.musc.edu/~nathan/pam_iptables から入手できます。この PAM モ ジュールにより、ユーザはゲートウェイで認証を行い、 ssh や telnet を利用 できるようになります。 Netfilter ルールを動的に追加、削除するもう一つの手段として、 NocatAuth の利用があります。NocatAuth は、 http://nocat.net から入手できます。 NocatAuth により、ウェブクライアントからゲートウェイの認証が行えるよう になります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3. DHCP サーバ 認証ゲートウェイは、公開ネットワークに対して、動的ホスト設定プロトコ ル (DHCP)サーバの役割を果たします。それは公開ネットワークからの DHCP サ ービス要求にのみ応答します。私は ISC DHCP Server を使用しました。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4. 認証のメカニズム ゲートウェイは、PAM の認証方法ならどれでも利用できます。サウスカロライ ナ医大が使用している認証機構は LDAP です。 LDAP は認証目的に使われるの で、ゲートウェイ機上の PAM モジュールは、LDAP を使用するように設定され ました。もっと多くの情報を、 http://www.padl.com/pam_ldap.html で見つけることができます。PAM により、多く の認証手段を利用できるようになります。他の手法についての情報をもっと知 りたい場合は、 PAM モジュールについての文章 を参照してください。 NocatAuth を利用するには、認証サービスを構築する必要があります。 NocatAuth 認証サービスは、LDAP, RADIUS, MySQL, そしてパスワードファイル を利用した認証機能を支援します。 http://nocat.net/download/NoCatAuth/ にもっと多くの情報があります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5. DNS サーバ ゲートウェイは、公開ネットワークに対する DNS サーバの機能も果たします。 私は Bind をインストールし、それを キャッシングネームサーバとして使用しています。キャッシングサーバ構築に は Red Hat に同梱されている caching-namserver という RPM パッケージも利 用可能です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3. ゲートウェイサービスの設定 このセクションでは、認証ゲートウェイの各部分の設定方法を説明します。こ こで使用される例は、サブネットが 10.0.1.0 のプライベート公開ネットワー クです。eth0 は内部ネットワークに接続される、ゲートウェイのインタフェー スです。eth1 が公開ネットワークに接続されるインタフェースです。このイン タフェース側の IP アドレスは 10.0.1.1 です。これらの設定は、あなたが利 用しているネットワークに合うように変更可能です。ゲートウェイ機には Red Hat 7.1 を利用したので、多くの例が Red Hat に限定されます。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1. Netfilterの設定 netfilter を設定するためには、netfilter サポートを加えてカーネルを再 コンパイルしなければなりません。カーネルの設定とコンパイルについてもっ と情報が必要なら、 Kernel-HOWTO を参照してください。 私のカーネル設定は、以下のような感じです。 ┌──────────────────────────────────┐ │ # │ │ # Networking options │ │ # │ │ CONFIG_PACKET=y │ │ # CONFIG_PACKET_MMAP is not set │ │ # CONFIG_NETLINK is not set │ │ CONFIG_NETFILTER=y │ │ CONFIG_NETFILTER_DEBUG=y │ │ CONFIG_FILTER=y │ │ CONFIG_UNIX=y │ │ CONFIG_INET=y │ │ CONFIG_IP_MULTICAST=y │ │ # CONFIG_IP_ADVANCED_ROUTER is not set │ │ # CONFIG_IP_PNP is not set │ │ # CONFIG_NET_IPIP is not set │ │ # CONFIG_NET_IPGRE is not set │ │ # CONFIG_IP_MROUTE is not set │ │ # CONFIG_INET_ECN is not set │ │ # CONFIG_SYN_COOKIES is not set │ │ │ │ │ │ # IP: Netfilter Configuration │ │ # │ │ CONFIG_IP_NF_CONNTRACK=y │ │ CONFIG_IP_NF_FTP=y │ │ CONFIG_IP_NF_IPTABLES=y │ │ CONFIG_IP_NF_MATCH_LIMIT=y │ │ CONFIG_IP_NF_MATCH_MAC=y │ │ CONFIG_IP_NF_MATCH_MARK=y │ │ CONFIG_IP_NF_MATCH_MULTIPORT=y │ │ CONFIG_IP_NF_MATCH_TOS=y │ │ CONFIG_IP_NF_MATCH_TCPMSS=y │ │ CONFIG_IP_NF_MATCH_STATE=y │ │ CONFIG_IP_NF_MATCH_UNCLEAN=y │ │ CONFIG_IP_NF_MATCH_OWNER=y │ │ CONFIG_IP_NF_FILTER=y │ │ CONFIG_IP_NF_TARGET_REJECT=y │ │ CONFIG_IP_NF_TARGET_MIRROR=y │ │ CONFIG_IP_NF_NAT=y │ │ CONFIG_IP_NF_NAT_NEEDED=y │ │ CONFIG_IP_NF_TARGET_MASQUERADE=y │ │ CONFIG_IP_NF_TARGET_REDIRECT=y │ │ CONFIG_IP_NF_NAT_FTP=y │ │ CONFIG_IP_NF_MANGLE=y │ │ CONFIG_IP_NF_TARGET_TOS=y │ │ CONFIG_IP_NF_TARGET_MARK=y │ │ CONFIG_IP_NF_TARGET_LOG=y │ │ CONFIG_IP_NF_TARGET_TCPMSS=y │ │ │ └──────────────────────────────────┘ ルールが設定されたら、以下のコマンドを実行して、 IP フォワーディングを 有効にしてください。 ┌──────────────────────────────────┐ │ echo 1 > /proc/sys/net/ipv4/ip_forward │ │ │ └──────────────────────────────────┘ マシンの再起動時に IP フォワーディングが確実に有効になるように、以下の 行を /etc/sysctl.conf に追加してください。 ┌──────────────────────────────────┐ │ net.ipv4.ip_forward = 1 │ │ │ └──────────────────────────────────┘ もし NocatAuth を利用しているなら、 NoCatAuth ゲートウェイ設定セクショ ンまで読み飛ばしてかまいません。 iptables をインストールする必要があります。iptables をインストールする には、ご利用のディストリビューションに同梱されているパッケージを利用す るか、ソースからインストールしてください。上記のオプションを設定し新し いカーネルを作成して iptables をインストールした後に、私は以下のように デフォルトのファイヤウォールルールを設定しました。 ┌───────────────────────────────────┐ │ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE │ │ iptables -A INPUT -i eth0 -m state --state NEW, INVALID -j DROP │ │ iptables -A FORWARD -i eth0 -m state --state NEW, INVALID -j DROP │ │ iptables -I FORWARD -o eth0 -j DROP │ │ iptables -I FORWARD -s 10.0.1.0/24 -d 10.0.1.1 -j ACCEPT │ │ │ └───────────────────────────────────┘ 上記のコマンドは、サーバが再起動する際に起動するように、initscript の 中に置くこともできます。ルールが追加されたことを確かめるために、以下の コマンドを発行してください。 ┌──────────────────────────────────┐ │ iptables -v -t nat -L │ │ iptables -v -t filter -L │ │ │ └──────────────────────────────────┘ 以上のルールを保存するため、私は Red Hat の init スクリプトを利用しまし た。 ┌──────────────────────────────────┐ │ /etc/init.d/iptables save │ │ /etc/init.d/iptables restart │ │ │ └──────────────────────────────────┘ これでゲートウェイはネットワークアドレス変換(NAT)を行えるようになります が、公開ネットワークの中から送信されたゲートウェイ宛てのパケット以外は 、フォワーディングパケットをすべて破棄します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2. 動的な Netfilter ルール このセクションでは、ゲートウェイ上で Netfilter ルールを動的に追加、削除 するのに必要なソフトウェアの設定方法を解説します。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2.1. PAM iptables モジュール ファイヤウォールルールを挿入する PAM セッションモジュールが、認証された クライアントのためにフォワーディングを行えるようにするのに必要になりま す。これを簡単にセットアップするには、単にソース を入手し、以下のコマンドを 作動させて、コンパイルを行ってください。 ┌──────────────────────────────────┐ │ gcc -fPIC -c pam_iptables.c │ │ ld -x --shared -o pam_iptables.so pam_iptables.o │ │ │ └──────────────────────────────────┘ これで pam_iptables.so と pam_iptables.o という名前の二つのバイナリがで きるはずです。pam_iptables.so を /lib/security/pam_iptables.so にコピー してください。 ┌──────────────────────────────────┐ │ cp pam_iptables.so /lib/security/pam_iptables.so │ │ │ └──────────────────────────────────┘ ここで /usr/local/auth-gw にファイヤウォールのスクリプトを組み込みます 。 ┌──────────────────────────────────┐ │ mkdir /usr/local/auth-gw │ │ cp insFwall /usr/local/auth-gw │ │ │ └──────────────────────────────────┘ ゲートウェイに選択された認証クライアントは SSH だったので、以下の行を / etc/pam.d/sshd に追加しました。 ┌──────────────────────────────────┐ │ session required /lib/security/pam_iptables.so │ │ │ └──────────────────────────────────┘ これでユーザがSSHでログインすれば、ファイヤウォールルールが追加されるよ うになります。 pam_iptables モジュールが動作しているかテストするには、以下の手順を実行 してください。 1. SSH でゲートウェイにログイン。 2. ルールが追加されているか、iptables -L -v で確認。 3. ゲートウェイからログアウトして、そのルールが削除されているのを確認 。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.2.2. NoCatAuth ゲートウェイ このセクションでは、NoCatAuth ゲートウェイを構築するプロセスを解説しま す。NocatAuth ゲートウェイを構築するには、ソース をダウンロードし、以下の手順でインストールしてくだ さい。 gpgv がインストールされているか確かめてください。 gpgv は、PGP 署名証明 者です。それは gnupg の一部であり、 http://www.gnupg.org/download.html にあります。 NocatAuth の tar ファイルを展開する。 ┌──────────────────────────────────┐ │ tar xvzf NocatAuth-x.xx.tar.gz │ │ │ └──────────────────────────────────┘ もし NoCatAuth を /usr/local/nocat ディレクトリに置きたくないなら、 Makefile を編集し、INST_PATH をあなたが NoCatAuth を常駐させたいディレ クトリに変更してください。 次にゲートウェイを構築します。 ┌──────────────────────────────────┐ │ cd NoCatAuth-x.xx │ │ make gateway │ │ │ └──────────────────────────────────┘ /usr/local/nocat.conf ファイルを編集します。conf ファイルに必要な設定に ついては、詳しくは INSTALL ドキュメントを参照してください。例となる conf ファイルは以下のような感じになります。 ┌──────────────────────────────────┐ │ │ │ ###### gateway.conf -- NoCatAuth Gateway Configuration. │ │ # │ │ # Format of this file is: Directive Value, one per │ │ # line. Trailing and leading whitespace is ignored. Any │ │ # line beginning with a punctuation character is assumed to │ │ # be a comment. │ │ │ │ Verbosity 10 │ │ #we are behind a NAT so put the gateway in passive mode │ │ GatewayMode Passive │ │ GatewayLog /usr/local/nocat/nocat.log │ │ LoginTimeout 300 │ │ │ │ ######Open Portal settings. │ │ HomePage http://www.itlab.musc.edu/ │ │ DocumentRoot /usr/local/nocat/htdocs │ │ SplashForm splash.html │ │ ###### Active/Passive Portal settings. │ │ TrustedGroups Any │ │ AuthServiceAddr egon.itlab.musc.edu │ │ AuthServiceURL https://$AuthServiceAddr/cgi-bin/login │ │ LogoutURL https://$AuthServiceAddr/forms/logout.html │ │ ###### Other Common Gateway Options. │ │ AllowedWebHosts egon.itlab.musc.edu │ │ ResetCmd initialize.fw │ │ PermitCmd access.fw permit $MAC $IP $Class │ │ DenyCmd access.fw deny $MAC $IP $Class │ │ │ └──────────────────────────────────┘ これでゲートウェイを起動できるようになるはずです。何か問題が発生したら 、展開した NoCatAuth ディレクトリにある INSTALL ドキュメントを確認して ください。以下のコマンドにより、ゲートウェイを起動します。 ┌──────────────────────────────────┐ │ /usr/local/nocat/bin/gateway │ │ │ └──────────────────────────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.3. DHCP サーバ設定 私は、以下の dhcpd.conf を用い、 DHCP を導入しました。 ┌────────────────────────────────────┐ │ subnet 10.0.1.0 netmask 255.255.255.0 { │ │ # --- default gateway │ │ option routers 10.0.1.1; │ │ option subnet-mask 255.255.255.0; │ │ option broadcast-address 10.0.1.255; │ │ │ │ option domain-name-servers 10.0.1.1; │ │ range 10.0.1.3 10.0.1.254; │ │ option time-offset -5; # Eastern Standard Time │ │ │ │ default-lease-time 21600; │ │ max-lease-time 43200; │ │ │ │ } │ │ │ └────────────────────────────────────┘ DHCP サーバはこの場合、公開ネットのインタフェースである、eth1 側に対 して作動させました。 ┌──────────────────────────────────┐ │ /usr/sbin/dhcpd eth1 │ │ │ └──────────────────────────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4. 認証手法の設定 PAM による認証と NoCatAuth 認証サービスについて解説を行います。両方とも 例として LDAP を利用します。LDAP 以外の認証手段も利用可能です。PAM や NoCatAuth のドキュメントを読み、別の認証手段を利用するための手順を理解 してください。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4.1. PAM LDAP 前のセクションで述べたように、私は認証に LDAP を使用するようゲートウ ェイの設定を行いました。しかし、あなたがたは PAM が認証を許容するどの方 法でも利用可能です。もっと情報が必要ならば、 Section 2.4 を参照ください 。 PAM LDAP で認証を行うために、私は OpenLDAP を インストールし、/etc/ldap.conf に以下の設定を行いました。 ┌──────────────────────────────────┐ │ # Your LDAP server. Must be resolvable without using LDAP. │ │ host itc.musc.edu │ │ │ │ # The distinguished name of the search base. │ │ base dc=musc,dc=edu │ │ ssl no │ │ │ └──────────────────────────────────┘ 以下に挙げるファイルは、LDAP 認証を行うよう PAM を設定するのに使用され ました。これらのファイルは、Red Hat の設定ユーティリティにより生成され ました。 /etc/pam.d/system-auth が作成され、以下のような内容になりました。 ┌─────────────────────────────────────────────────────────┐ │ #%PAM-1.0 │ │ # This file is auto-generated. │ │ # User changes will be destroyed the next time authconfig is run. │ │ auth required /lib/security/pam_env.so │ │ auth sufficient /lib/security/pam_unix.so likeauth nullok │ │ auth sufficient /lib/security/pam_ldap.so use_first_pass │ │ auth required /lib/security/pam_deny.so │ │ │ │ account required /lib/security/pam_unix.so │ │ account [default=ok user_unknown=ignore service_err=ignore system_err=ignore] /lib/security/pam_ldap.so │ │ │ │ password required /lib/security/pam_cracklib.so retry=3 │ │ password sufficient /lib/security/pam_unix.so nullok use_authtok │ │ password sufficient /lib/security/pam_ldap.so use_authtok │ │ password required /lib/security/pam_deny.so │ │ │ │ session required /lib/security/pam_limits.so │ │ session required /lib/security/pam_unix.so │ │ session optional /lib/security/pam_ldap.so │ │ │ └─────────────────────────────────────────────────────────┘ また、以下の /etc/pam.d/sshd ファイルが作成されました。 ┌───────────────────────────────────────┐ │ #%PAM-1.0 │ │ auth required /lib/security/pam_stack.so service=system-auth │ │ auth required /lib/security/pam_nologin.so │ │ account required /lib/security/pam_stack.so service=system-auth │ │ password required /lib/security/pam_stack.so service=system-auth │ │ session required /lib/security/pam_stack.so service=system-auth │ │ #this line is added for firewall rule insertion upon login │ │ session required /lib/security/pam_iptables.so debug │ │ session optional /lib/security/pam_console.so │ │ │ └───────────────────────────────────────┘ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4.2. NoCatAuth サービス ゲートウェイ以外の別のサーバに、NoCatAuth サービスをインストールするこ とをお勧めします。別のサーバが、僕の例において利用されました。 NoCatAuth サービスを構築するには、以下のソフトウェアが必要になります。 1. SSL が有効化されたウェブサーバ。SSL 証明書が登録されているのが望ま しい。私は、Apache と mod_ssl の組み合わせを使用しました。 2. Perl 5 (5.6 かそれ以降が望ましい) 3. Net::LDAP, Digest::MD5, DBI, そして DBD::MySQL perl モジュール (そ れらは CPAN から取得してください)。必要なモジュールは、どんな認証手 段を利用するつもりかということで変わってきます。僕の例では、認証手 段として Net::LDAP を利用しました。 4. Gnu Privacy Guard (gnupg 1.0.6 かそれ以降)。 http://www.gnupg.org/ download.html で入手可能。 インストールするために、tar ファイルを展開。 ┌──────────────────────────────────┐ │ $ tar zvxf NoCatAuth-x.xx.tar.gz │ │ │ └──────────────────────────────────┘ NoCatAuth が常駐するパスを変更したい場合は、Makefile を編集し、 INST_PATH を希望するディレクトリに変更してください。 次に、 make authserv コマンドを実行します。これで、/usr/local/nocat か 、あなたが INST_PATH の値を変更したところにすべてがインストールされます 。 そして make pgpkey を実行します。初期設定のままで、大抵の用途に使えるは ずです。重要: パスフレーズを入力しないこと! 入力してしまうと、認証サー ビスがメッセージを暗号化するために存在しない tty からパスフレーズを読み 込もうとして、奇妙なメッセージを出力してしまいます。 あなたの環境に合うように、/usr/local/nocat/nocat.conf を編集してくださ い。以下に例を示します。 ┌───────────────────────────────────────────────────────────────────────────────┐ │ ###### authserv.conf -- NoCatAuth Authentication Service Configuration. │ │ # │ │ # Format of this file is: Directive Value, one per │ │ # line. Trailing and leading whitespace is ignored. Any │ │ # line beginning with a punctuation character is assumed to │ │ # be a comment. │ │ │ │ Verbosity 10 │ │ HomePage http://www.itlab.musc.edu/ │ │ DocumentRoot /usr/local/nocat/htdocs │ │ # LDAP source │ │ DataSource LDAP │ │ LDAPHost authldap.musc.edu │ │ LDAPBase dc=musc,dc=edu │ │ │ │ UserTable Member │ │ UserIDField User │ │ UserPasswdField Pass │ │ UserAuthField Status │ │ UserStampField Created │ │ │ │ GroupTable Network │ │ GroupIDField Network │ │ GroupAdminField Admin │ │ MinPasswdLength 8 │ │ │ │ # LocalGateway -- If you run auth service on the same subnet │ │ # (or host) as the gateway you need to specify the hostname │ │ # of the gateway. Otherwise omit it. (Requires Net::Netmask) │ │ # │ │ # LocalGateway 192.168.1.7 │ │ │ │ LoginForm login.html │ │ LoginOKForm login_ok.html │ │ FatalForm fatal.html │ │ ExpiredForm expired.html │ │ RenewForm renew.html │ │ PassiveRenewForm renew_pasv.html │ │ RegisterForm register.html │ │ RegisterOKForm register_ok.html │ │ RegisterFields Name URL Description │ │ │ │ UpdateForm update.html │ │ UpdateFields URL Description │ │ │ │ ###### Auth service user messages. Should be self-explanatory. │ │ # │ │ LoginGreeting Greetings! Welcome to the Medical University of SC's Network. │ │ LoginMissing Please fill in all fields! │ │ LoginBadUser That e-mail address is unknown. Please try again. │ │ LoginBadPass That e-mail and password do not match. Please try again. │ │ LoginBadStatus Sorry, you are not a registered co-op member. │ │ │ │ RegisterGreeting Welcome! Please enter the following information to register.RegisterMissing Name, E-mail, and password fields must be filled in. │ │ RegisterUserExists Sorry, that e-mail address is already taken. Are you already registered? │ │ RegisterBadUser The e-mail address provided appears to be invalid. Did you spell it correctly? │ │ RegisterInvalidPass All passwords must be at least six characters long. │ │ RegisterPassNoMatch The passwords you provided do not match. Please try again. │ │ RegisterSuccess Congratulations, you have successfully registered. │ │ │ │ UpdateGreeting Enter your E-mail and password to update your info. │ │ UpdateBadUser That e-mail address is unknown. Please try again. │ │ UpdateBadPass That e-mail and password do not match. Please try again. │ │ UpdateInvalidPass New passwords must be at least eight characters long. │ │ UpdatePassNoMatch The new passwords you provided do not match. Please try again. │ │ UpdateSuccess Congratulations, you have successfully updated your account. │ │ │ │ │ └───────────────────────────────────────────────────────────────────────────────┘ /usr/local/nocat/pgp がウェブサーバのユーザに所有されているか確かめてく ださい(つまり、nobody か www-data になっているかどうか)。 Apache の httpd.conf ファイルに etc/authserv.conf を追加してください。 ┌──────────────────────────────────┐ │ Include /usr/local/nocat/etc/authserv.conf │ └──────────────────────────────────┘ /usr/local/nocat/trustedkeys.pgp をゲートウェイにコピーしてください。 Apache を再起動し、試してみてください。もっと多くの情報が必要な場合は、 NoCatAuth のドキュメントを参照ください。ドキュメントは、NoCatAuth を展 開したディレクトリの docs/ 配下にあります。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.5. DNS の設定 私は、Red Hat 7.1 についてきたデフォルトバージョンの Bind とキャッシ ングネームサーバ RPM をインストールしました。DHCP サーバは、公開ネット ワーク上のマシンがネームサーバとしてゲートウェイを利用するよう設定して います。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4. 認証ゲートウェイの利用 認証ゲートウェイを利用するためには、クライアントに DHCP を使用するよう に設定してください。そのマシンに SSH クライアントをインストールして、ゲ ートウェイに SSH でログインしてください。一旦ログインすれば、内部ネット ワークにアクセスが行えるようになります。以下は、unix ベースのクライアン トにおけるセッション例です。 ┌──────────────────────────────────┐ │ bash>ssh zornnh@10.0.1.1 │ │ zornnh's Password: │ │ │ │ gateway> │ │ │ └──────────────────────────────────┘ ログインした状態である限り、アクセスが可能です。ログアウトしてしまう と、アクセスできなくなります。 認証ゲートウェイに NoCatAuth をインストールして利用するには、クライア ント機が DHCP を利用するように設定してください。 Mozilla などのウェブブ ラウザをインストールしてください。そしてそのウェブブラウザを起動してく ださい。ブラウザは、認証画面にリダイレクトされるはずです。 Figure 1. Nocat のログイン [nocat_auth] ユーザ名とパスワードを入力すると、ポップアップスクリーンが現われます。 そこにはあなたがネットワークに認証されたこと、認証された状態を保つには そのウィンドウを開いたままにしておくこと、が説明されているはずです。セ ッションを終了するにはログアウトをクリックするか、そのウィンドウを閉じ ます。 Figure 2. 認証ウィンドウ [nocat_auth] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5. 終わりに ・ この文書で示されるセキュリティ手法は、無線ネットワークコミュニティ により提供されるセキュリティに依存しません。無線ネットワーク全体が 安全でなくても、またその無線ネットワークがあなたの管理下になくても きちんと機能します。 ・ ゲートウェイは、トラフィックを暗号化しません。その背後にあるネット ワークへのアクセスを許可するだけです。もし暗号化も認証も必要ならば 、VPN を利用すべきです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6. 追加の情報源 ・ NASA における認証ゲートウェイの実装について説明した文書 。 ・ アルバータ大学において認証ゲートウェイを作成した方法を記述した白書 。 ・ Nocat.net には、無線ネットワーク用の認証ゲートウ ェイがあります。このソフトウェアは、ウェブベースのクライアントにな ります。 ・ Horatio: Authenticated Network Access は、ファイヤウォール用認証ツールで す。利用の前提条件: 正規のユーザはラップトップマシンやその他のモバ イル端末をネットワークにつなごうとするが、セキュリティのため、正規 のユーザが内部の、安全なネットワークにアクセスするのを防ぎ、一般の インターネットを悪用するのを防ぐ必要がある場合。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7. 質問と答え ここは、頂いた質問のうち、多くの人達が同じように疑問を抱くだろうと思わ れるものを集めていく場所です。本当に多くのフィードバックを頂けたなら、 本来の意味のFAQにしていきます。 1. なぜ、iptables のルールは、クライアントが telnet ウィンドウを閉じた ときにフラッシュしないのでしょうか? クライアントが telnet セッショ ンをログアウトした場合も、iptables のルールは機能します。 SSH の場 合だと、SSH ウィンドウが閉じる場合でも、 iptables のルールはフラッ シュされます。 私は、この問題に対する適切な答えや解決策を考え付いていません。 Logu が、この問題を解決する pam_iptables やその他のツールの修正を貢献し てくれました。これらのツールは、 contrib ディレクトリに pam_iptables と一緒に 置いてあります。 2. IE6 だと NoCat が何かおかしくありません? 認証は行っているようですが 、ファイヤウォールのルールを書かないのです。 NoCat が出す HTML に次のメタタグが含まれていることを確かめてくださ い: < meta http-equiv="Refresh" content="$redirect" /> このメタタグを含むべき HTML ファイルは、 login_ok.html, renew.html, そして renew_pasv.html です。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8. 日本語訳について 日本語訳は Linux Japanese FAQ Project が行いました。翻訳に関するご意見 は JF プロジェクト 宛に連絡してください。 0.06j 翻訳: yomoyomo 校正: □ office さん □ 佐野武俊さん □ 高橋全さん □ 早川仁さん □ 水原文さん