• 検索結果がありません。

ネットワークの設定

ドキュメント内 14情経第676号 (ページ 57-64)

3.2  Redhat Linux

3.2.4  ネットワークの設定

 

2. 次に、smtp サービスの受付範囲を拡大しましょう。現在の sendmail の設 定ファイルのバックアップを作成します。 

cp/etc/sendmail.cf/etc/sendmail.cf.org;cp/etc/mail/sendmail.mc/e tc/mail/sendmail.mc.orgとコマンド入力します。 

 /etc/mail/sendmail.mc にある 

「DAEMON̲OPTIONS(̀Port=smtp,Addr=127.0.0.1,Name=MTA')」とされてい る行の行頭に dnl を挿入し、 

「dnlDAEMON̲OPTIONS(̀Port=smtp,Addr=127.0.0.1,Name=MTA')」としま す。これにより、この行がコメントアウトされたことになります。 

 

m4/etc/mail/sendmail.mc>/etc/sendmail.cf;/etc/init.d/sendmailres tart 

とコマンド入力することで sendmail は全てのネットワーク空間からメー ルを受け取れるようになります。これ以外の sendmail の設定については、

別節に譲ります。 

 

3. 他のネットワークサービスはそれぞれ Apache、wu‑ftpd、のパッケージで 提供され、インストールは完了していますが、設定ファイルを正しく作 成しないと機能しません。これらの設定については、別節に譲りますが、

wu‑ftpd は xinetd 経由でサービスしますので、まず xinetd について説明 します。 

 

4. xinetd は inetd に代わる新しいスーパーサーバです。スーパーサーバと は、本来提供するべき telnet や ftp サービスを個別に立ち上げるのでは なく、スーパーサーバ 1 つで外部からのリクエストを受け付け、必要に 応じて telnet や ftp デーモンを呼び出します。これによって不必要にメ モリや CPU 時間を占有されることを防ぎます。inetd ではインプリメンテ ーションの性質上、DoS 攻撃に弱いという欠点を持っていました。この欠 点を改善したのが xinetd です。xinetd で起動するサービスの内、本節の 前提としているサービスは匿名 ftp サービスだけですので、これについ て説明します。 

 

wu‑ftpd に関する xinetd の設定ファイルは/etc/xinetd.d/wu‑ftpd にあり、初 期設定は下記の通りです。 

 

#default:on 

#description:Thewu‑ftpdFTPserverservesFTPconnections.Ituses¥ 

#normal,unencryptedusernamesandpasswordsforauthentication. 

serviceftp  { 

disable=yes 

socket̲type=stream  wait=no 

user=root 

server=/usr/sbin/in.ftpd  server̲args=‑l‑a 

log̲on̲success+=DURATION  nice=10 

 

5. 現在の設定内容では disable=yes となっているため、起動しません。こ の行をコメントアウトすることで、wu‑ftpd は有効になります。また、運 用上様々な問題が発生することに備えて、セキュリティ上有用なオプシ ョンを例示します。その他のオプションについてはオンラインマニュア ルを参照してください。 

 

6. 前提のサービスでは匿名 ftp サービスの提供であり、通常はすべてのア クセスを可能に設定しますが、過去に攻撃を受けたアドレスからのアク セ ス を 拒 否 (no̲access) し た り 、 時 間 (access̲times) や 、 接 続 数 (instances)を制限できます。ここでは、過去に攻撃を受けたサブネット 172.168.0.0/16 および climeclacker.com からのアクセスを拒絶し、8 時 から 22 時までのアクセス許可し、接続数を 10 とする設定の例を示しま す。 

 

#default:on 

#description:Thewu‑ftpdFTPserverservesFTPconnections.Ituses¥ 

#normal,unencryptedusernamesandpasswordsforauthentication. 

serviceftp  { 

#disable=yes 

user=root 

server=/usr/sbin/in.ftpd  server̲args=‑l‑a 

log̲on̲success+=DURATION  nice=10 

no̲access=172.168.0.0/16.climeclacker.com  access̲times=8:00‑22:00 

instances=10  } 

 

設定後は、/etc/init.d/xinetdrestart とコマンド入力して xinetd を再起動さ せてください。ここでは xinetd を用いた接続制限を行いましたが、wu‑ftpd 内 の設定でさらに細かくアクセス制限を行うことも可能です。両方を必要に応じ て組み合わせて使うと良いでしょう。 

 

SSH サービスは、現在の設定では全世界のどこからでもアクセスされてしまいま す。また、SSH は過去にいくつかのセキュリティホールの報告がされており、い くつか設定を見直す必要があります。ここでは SSH に関する設定を見直します。 

 

SSH のアクセス制限は libwrap.a というライブラリで、/etc/hosts.allow およ び/etc/hosts.deny を用いて行います。初期段階ではこれらのファイルには何も 書かれていませんので、必要に応じて入力します。どのようなサービスを提供 するかにかかわらず、/etc/hosts.deny の内容は必ず「ALL:ALL」にしておきま す。これは/etc/hosts.allow で許可しなかったサービスは全て拒絶するという 意味になります。ここでは SSH のアクセスが 192.168.0.0/24 と 172.133.1.0/24 からしかないことを想定し、下記のようにします。 

 

/etc/hosts.allow 

sshd:192.168.0.0/255.255.255.0172.133.1.0/255.255.255.0   

/etc/hosts.deny  ALL:ALL 

 

SSH の初期の設定では root ユーザで直接リモートログインできたり、暗号化さ れているとは言え、接続時にパスワードを要求されるなどの問題があります。

よりセキュアな設定にするために、root ユーザのリモートログインの禁止、

X‑Window の転送禁止、チャレンジレスポンスによる認証、その他セキュリティ 上 問 題 が あ る と 指 摘 さ れ た 点 の 改 善 を 行 い ま す 。 初 期 イ ン ス ト ー ル 時 の /etc/sshd̲config を下記のように修正します。 

 

「#PermitRootLoginyes」を「PermitRootLoginno」に変更。 

「#PasswordAuthenticationyes」を「PasswordAuthenticationno」に変更。 

「#ChallengeResponseAuthenticationyes」を 

「ChallengeResponseAuthenticationno」に変更。 

「PasswordAuthenticationno」を追加。 

「X11Forwardingyes」を「X11Forwardingno」に変更。 

 

設定変更が完了したら、/etc/init.d/sshdrestart とコマンド入力して sshd を 再起動します。 

 

実際に SSH を利用したリモートログインを行うためには下記の準備が必要です。 

 

リモート端末となるシステムで公開鍵と秘密鍵を作成します。端末に利用でき る SSH のバージョンによって鍵の作り方が異なりますが、バージョン 1 の場合、

「ssh‑keygen‐trsa1」とコマンド入力し、適切なパスフレーズを入力します。

パスフレーズとはパスワードと同じですが、非常に長い文字列も入力できると いう点が異なります。直接的には無関係で覚えやすい文を入力すると良いでし ょう。単に改行キーを押すことは絶対に避けてください。 

 

1. サーバ側のリモートログインを利用するユーザのホームディレクトリに /.ssh というディレクトリを作成し、chmod700 /.ssh とコマンド入力し てパーミッションを変更します。 

2. 1 によって作られた公開鍵( /.ssh/identity.pub)をサーバ側のユーザホ ームディレクトリの /.ssh というディレクトリにコピーします。次に、

cat /.ssh/identity.pub>> /.ssh/authorized̲keys とコマンド入力して サーバに公開鍵を登録します。 

 

めにリモート端末から ssh‑1 サーバ名または IP アドレスをコマンド入力します。

パスフレーズを聞かれる、先ほど入力したパスフレーズを入力してください。

これでリモートから安全な通信路を構築してアクセスできるようになりました。 

 

単にサーバにリモートログインするだけではなく、一時的に安全な通信路を確 保してメールを受信したいなどの要望があるかもしれません。これを実現する 手段として SSL による暗号化と SSH によるポートフォワーディングがあります。 

 

SSL では認証局の準備など大変手間がかかるので、ここでは SSH のポートフォワ ーディング機能を利用した方法について説明します。 

 

1. 例えば、サーバの 110/tcp に安全に接続したいと考えます。その場合に は、ssh‑1‐f‑L110:localhost:110 サーバ名、または IP アドレス sleep10m とコマンド入力します。 

2. この例では、リモート端末の 110/tcp にアクセスすると、サーバの 110/tcp に 10 分間だけアクセスすることができます。ポート番号は 2 個所の 110 を変更することで、どのポートでも転送可能です。 

3. また、同じポート番号では都合が悪い場合でも、2 つのポート番号を別々 の数字に変更することで対応できます。例えば、リモート端末の 8110/tcp をアクセスするとサーバの 110/tcp にアクセスするようにする場合には、

ssh‑1‐f‐L8110:localhost:110 サーバ名 sleep10m とコマンド入力します。

接続時間を変更したい場合は、sleep10m の 10 の数字を変更します。 

4. 次に、このサーバを経由して社内イントラネットのサーバにアクセスし たい場合もあるでしょう。その場合は、ssh‑1‑f‑L8110:イントラネット 内サーバの IP アドレス:110 サーバ名または IP アドレス sleep10m とコマ ンド入力します。 

 

この例では、リモート端末の 8110/tcp をアクセスすることで社内イントラネッ トサーバの 110/tcp にアクセスできるようになります。このように、会社の境 界ネットワークに ssh サーバを設置し、適切に活用すれば、強固でかつ安全な ファイアウォールを構築することも可能です。 

3.2.2 のインストール時点で、ファイアウォールを設定しました。ここでは、外 部からこのサーバに接続しようとする全てのアクセスを遮断するよう設定しま した。 

 

このままでは外部にサービスを提供することができませんので、ファイアウォ ールの設定を変更します。対象ファイルは/etc/sysconfig/ipchains です。ただ し、各行の順番が重要な意味を持ちますので、設定前と設定後の内容をよく見 比べて、追加する位置を間違えないようにしてください。 

 

変更前 

:inputACCEPT  :forwardACCEPT  :outputACCEPT 

‑Ainput‑s0/0‑d0/0‑ilo‑jACCEPT 

‑Ainput‑s192.168.3.153‑d0/0‑pudp‑jACCEPT 

‑Ainput‑s0/0‑d0/0‑ptcp‑y‑jREJECT 

‑Ainput‑s0/0‑d0/0‑pudp‑jREJECT 

 

変更後 

:inputACCEPT  :forwardACCEPT  :outputACCEPT 

‑Ainput‐s0/0‐d0/021‐ptcp‐y‐jACCEPT(匿名 ftp サービス用) 

‑Ainput‑s0/0‑d0/022‑ptcp‑y‑jACCEPT(SSH サービス用) 

‑Ainput‐s0/0‐d0/025‐ptcp‐y‐jACCEPT(メール転送(smtp)サービス用) 

‑Ainput‐s0/0‐d0/080‐ptcp‐y‐jACCEPT(ウェブサービス用) 

‑Ainput‐s0/0‐d0/0110‐ptcp‐y‐jACCEPT(メール受信(pop)サービス用) 

‑Ainput‑s0/0‑d0/0‑ilo‑jACCEPT 

‑Ainput‑s192.168.3.153‑d0/0‑pudp‑jACCEPT 

‑Ainput‑s0/0‑d0/0‑ptcp‑y‑jREJECT 

‑Ainput‑s0/0‑d0/0‑pudp‑jREJECT 

 

他に必要なサービスについても、ポート番号を変更すれば対応可能です。変更 が完了したら、/etc/init.d/ipchainsrestart とコマンド入力してください。 

ドキュメント内 14情経第676号 (ページ 57-64)