Solaris -> Solaris10 -> セキュリティー

TCP Wrapper によるアクセス制御

パッケージ確認

Solaris10以降 TCP wrapperはパッケージ(SUNWtcpd)に含まれるのでインストールされているか確認する。
※ パッケージで Entire を選択した場合のみインストールされるので End user , core パッケージを
   選択した場合は、pkgadd コマンドでインストールを行う。

パッケージを確認
# pkginfo -l SUNWtcpd
   PKGINST:  SUNWtcpd
      NAME:  tcpd - access control facility for internet services
  CATEGORY:  system
      ARCH:  i386
   VERSION:  11.10.0,REV=2005.01.21.16.34
   BASEDIR:  /
    VENDOR:  Sun Microsystems, Inc.
      DESC:  tcpd - access control facility for internet services
    PSTAMP:  gauthier20050121164606
  INSTDATE:  5月 01 2007 13:42
   HOTLINE:  Please contact your local service provider
    STATUS:  完全にインストールされました。
     FILES:       23 のインストールされたパス名
                   9 の共有パス名
                   8 のディレクトリ
                   5 の実行可能ファイル
                 198 ブロック (概算値) が使われました


※ パッケージの格納ディレクトリ
/usr/sfw/sbin/safe_finger
/usr/sfw/sbin/tcpd
/usr/sfw/sbin/tcpdchk
/usr/sfw/sbin/tcpdmatch
/usr/sfw/sbin/try-from

設定

TcpWrapperの有効化

inetadmコマンドによる設定の変更

現在の状態を確認する。
# inetadm -l svc:/network/telnet
SCOPE    NAME=VALUE
         name="telnet"
         endpoint_type="stream"
         proto="tcp6"
         isrpc=FALSE
         wait=FALSE
         exec="/usr/sbin/in.telnetd"
         user="root"
default  bind_addr=""
default  bind_fail_max=-1
default  bind_fail_interval=-1
default  max_con_rate=-1
default  max_copies=-1
default  con_rate_offline=-1
default  failrate_cnt=40
default  failrate_interval=60
default  inherit_env=TRUE
default  tcp_trace=FALSE
         tcp_wrappers=FALSE 初期値では設定は無効
#

  以下のコマンドでプロパティの値を変更する。FALSE => TRUE 
# inetadm -m svc:/network/telnet tcp_wrappsers=TRUE 

変更後の状態を確認する。
# inetadm -l svc:/network/telnet
SCOPE    NAME=VALUE
         name="telnet"
         endpoint_type="stream"
         proto="tcp6"
         isrpc=FALSE
         wait=FALSE
         exec="/usr/sbin/in.telnetd"
         user="root"
default  bind_addr=""
default  bind_fail_max=-1
default  bind_fail_interval=-1
default  max_con_rate=-1
default  max_copies=-1
default  con_rate_offline=-1
default  failrate_cnt=40
default  failrate_interval=60
default  inherit_env=TRUE
default  tcp_trace=FALSE
         tcp_wrappers=TRUE TRUEになっている事を確認
#

   ※ exec="/usr/sbin/in.telnetd"はそのまま
   solaris8迄 inetd.confに記述していた /usr/sbin/tcpd in.telned のようにはしない。


  上記コマンドを、必要に応じて各サービス毎に行う。(ftp,rlogin...)

アクセス制御の設定

/etc/hosts.allowの設定 (指定したもの及びローカルホストのみ許可し、証跡を残す)
ALL: localhost: allow         以下の記述でも可
in.telnetd : 192.168.0. \     (192.168.0.0/255.255.255.0 \
             192.168.10. \    (192.168.0.0/255.255.255.0 \
           : spawn (LANG=C ; export LANG ; echo "`date`\c " >> /tmp/tcplogs 
            ; echo " \c" >> /tmp/tcplogs; echo %h %d %u >> /tmp/tcplogs) & : allow
in.ftpd : 192.168. : spawn (LANG=C ; export LANG ; echo "`date`\c " >> /tmp/tcplogs 
            ; echo " \c" >> /tmp/tcplogs; echo %h %d %u >> /tmp/tcplogs) & : allow

         実際はサービス毎1行で記述する
         192.168.0.  サブネット(192.168.0.0/24)指定になる
         途中で改行する場合は \ を入れる \の後ろに空白は入れない

※ IPアドレス指定の場合マスク値を指定するとWarningがmessagesに出力される
× in.telnetd : 192.168.0.88/255.255.255.255
○ in.telnetd : 192.168.0.88

(ワーニングが/var/adm/messagesに出力される)
Apr 11 09:09:09 host01 in.telnetd[xxxx]: 
warning: /etc/hosts.allow, line 1: bad net/mask expression: 192.168.0.88/255.255.255.255

/etc/hosts.deny の設定&ログの取得
ALL : ALL : spawn (LANG=C ; export LANG ; echo "`date`\c " >> /tmp/tcplogs.deny
; echo " \c" >> /tmp/tcplogs.deny; echo %h %d %u >> /tmp/tcplogs.deny) &

            実際は1行で記述する
inetd リロード
# svcadm refresh inetd

ログ確認

アクセス許可・アクセス否ログイン履歴を確認
# cat tcplogs
Tue May  1 17:50:38 JST 2007 localhost in.telnetd unknown
Tue May  1 17:51:26 JST 2007 192.168.51.253 in.telnetd unknown
Tue May  1 17:54:10 JST 2007 192.168.51.253 in.telnetd unknown
Tue May  1 18:01:15 JST 2007 localhost in.telnetd unknown
Tue May  1 18:01:44 JST 2007 192.168.51.253 in.telnetd unknown
Tue May  1 18:16:20 JST 2007 192.168.51.253 in.telnetd unknown
#
# cat tcplogs.deny
Tue May  1 17:57:19 JST 2007 192.168.51.253 in.ftpd unknown
#
先頭へ
      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google