2006年 12月 20日 水曜日
やっぱり Sun がスキ!
セキリュティー機能拡張(Secure By Default)
前の記事 で Solaris 10 11/06 新機能について独断と偏見で目玉 TOP 5 を あげさせて頂きましたが、 その中の 1 つの"Secure By Default" について、どのような機能かインストールをして 確認してみました。
Secure By Default とはデフォルト状態で、ネットワークサービスに関して ssh のポートのみを開けておく 機能です。Solaris 上級者ではインストール直後にいろいろなポートを閉じる ことは普通に行われていることですが、Solaris 初心者には少しハードルが高 かったかもしれません。そのハードルの高さを取り除いた物が今回の Secure By Default と言えるかと思います。
1. 設定方法
この Secure By Default の機能はアップグレードインストールでは有効になりません。 初期インストールでは途中以下のように Secure By Default を ON/OFF のどちらにするか 選択肢が出てきます。
- Enabling remote services -----------------------------------------------------
Would you like to enable network services for use by remote clients?
Selecting "No" provides a more secure configuration in
which Secure Shell is the only network service provided to
remote clients. Selecting "Yes" enables a larger set of
services as in previous Solaris releases. If in doubt, it is
safe to select "No" as any services can be individually enabled
after installation.
Note: This choice only affects initial installs. It doesn't affect upgrades.
Remote services enabled
-----------------------
[ ] Yes
[X] No
--------------------------------------------------------------------------------
F2_Continue F6_Help
またこの設定をインストール後に変更するために、以下のコマンドが存在するので もしインストール時に間違って変更した場合も安心です。
# netservices open # netservices limited
2. SMF の Status 確認
インストール時に "Remote services enabled" で "NO" を選択するか netservices limited コマンドを実行するとどのように設定が変更されるか 実機で確認してみました。
まず、netservices を Open にした状態で SMF の状態のリストを保存
# netservices open
restarting syslogd
restarting sendmail
restarting wbem
dtlogin needs to be restarted. Restart now? [Y]
restarting dtlogin
# svcs -a | sort -k 3,3 | awk '{printf "%-12s%s\n",$1, $3}' > open.txt
次に netservices を limited にした状態で SMF の状態のリストを保存
# netservices limited
restarting syslogd
restarting sendmail
restarting wbem
dtlogin needs to be restarted. Restart now? [Y]
restarting dtlogin
# svcs -a | sort -k 3,3 | awk '{printf "%-12s%s\n",$1, $3}' > limited.txt
そして両者の比較
# sdiff open.txt limited.txt | grep "|" online svc:/application/management/seaport:default | disabled svc:/application/management/seaport:default online svc:/application/management/sma:default | disabled svc:/application/management/sma:default online svc:/application/management/snmpdx:default | disabled svc:/application/management/snmpdx:default offline svc:/application/print/ipp-listener:default | disabled svc:/application/print/ipp-listener:default online svc:/application/x11/xfs:default | disabled svc:/application/x11/xfs:default online svc:/network/cde-spc:default | disabled svc:/network/cde-spc:default online svc:/network/finger:default | disabled svc:/network/finger:default online svc:/network/ftp:default | disabled svc:/network/ftp:default online svc:/network/login:rlogin | disabled svc:/network/login:rlogin online svc:/network/nfs/cbd:default | disabled svc:/network/nfs/cbd:default online svc:/network/nfs/client:default | disabled svc:/network/nfs/client:default online svc:/network/nfs/mapid:default | disabled svc:/network/nfs/mapid:default online svc:/network/nfs/nlockmgr:default | disabled svc:/network/nfs/nlockmgr:default online svc:/network/nfs/rquota:default | disabled svc:/network/nfs/rquota:default online svc:/network/nfs/status:default | disabled svc:/network/nfs/status:default online svc:/network/rpc/mdcomm:default | disabled svc:/network/rpc/mdcomm:default online svc:/network/rpc/meta:default | disabled svc:/network/rpc/meta:default online svc:/network/rpc/metamed:default | disabled svc:/network/rpc/metamed:default online svc:/network/rpc/metamh:default | disabled svc:/network/rpc/metamh:default online svc:/network/rpc/rstat:default | disabled svc:/network/rpc/rstat:default online svc:/network/rpc/rusers:default | disabled svc:/network/rpc/rusers:default online svc:/network/shell:default | disabled svc:/network/shell:default online svc:/network/telnet:default | disabled svc:/network/telnet:default
例えば telnet, rlogin, ftp など様々なサービスが disabled になっているのが 確認できます。
3. ローカル接続のみに制限されているサービス
その他に以下のマニュアルにあるとおり、ローカルからの接続のみに 制限されているサービスがあります。
Solaris 10 11/06 Release and Installation Collection
>> Solaris 10 11/06 Installation Guide: Planning for Installation and Upgrade
>> Overall Planning of Any Solaris Installation or Upgrade
>> 3. Solaris Installation and Upgrade (Roadmap)
>> Planning Network Security
http://docs.sun.com/app/docs/doc/819-6764/6n8onr7pd?a=view
上記のマニュアル中の Property を変更すれば良いのですが、 制限を解除する方法は、そのサービスのマニュアルに記述されている場合が あるので参考にしてください。
例えば Sendmail の場合ですが、sendmail(1M) に
...略...
Enabling Access to Remote Clients
On an unmodified system, access to sendmail by remote
clients is enabled and disabled through the service manage-
ment facility (see smf(5)). In particular, remote access is
determined by the value of the local_only SMF property:
svc:/network/smtp:sendmail/config/local_only = true
A setting of true, as above, disallows remote access; false
allows remote access. The default value is true.
The following example shows the sequence of SMF commands
used to enable sendmail to allow access to remote systems:
# svccfg -s svc:/network/smtp:sendmail setprop config/local_only = false
# svcadm refresh svc:/network/smtp:sendmail
See svcadm(1M) and svccfg(1M).
Note, however, on a system where any of the sendmail(4)
files have been customized, setting this property might not
have the intended effect. See sendmail(4) for details.
...略...
マニュアルにもばっちり記述があるので簡単に設定変更が可能ですね。 以下実機でプロパティーが変更されたか確認しました。
# netservices open restarting syslogd restarting sendmail restarting wbem dtlogin needs to be restarted. Restart now? [Y] restarting dtlogin # svccfg -s svc:/network/smtp:sendmail listprop config/local_only config/local_only boolean false # svcs svc:/network/smtp:sendmail STATE STIME FMRI online 5:03:12 svc:/network/smtp:sendmail # netservices limited restarting syslogd restarting sendmail restarting wbem dtlogin needs to be restarted. Restart now? [Y] restarting dtlogin # svccfg -s svc:/network/smtp:sendmail listprop config/local_only config/local_only boolean true # svcs svc:/network/smtp:sendmail STATE STIME FMRI online 5:04:28 svc:/network/smtp:sendmail #
確かに両方とも Status は Online ですが、
- netservices limited の場合は config/local_only のプロパティーが true になって、ローカルのみに制限
- netservices open の場合は config/local_only のプロパティーが false になって、特にホストアクセス制限なし
に変更されてます。
結構簡単にポートを閉じることが可能ですし、もし設定変更をしたくなったとし てもマニュアルをご覧頂ければ良いことが解って頂けたかと思います。
今後はこの Secure By Default の機能を活用して、必要の無いポートを基本的 に閉じ、必要が出てきたらそのサービスのみ enable にしたり、ローカルのみの 制限を解除したりしすれば、サーバの設定が簡単になりますね。
Posted at 10:12午前 12 20, 2006 by Chizu Kitano in Sun | 投稿されたコメント[0]