不要なサービスとデーモンの停止

頻繁に質問を受けるAIXのハードニング関連の質問を中心に、FAQ(Frequently Asked Questions)集としてまとめました。

* 不要なサービス、デーモンの停止
システムの要件によって必要なサービスは異なります。
ご使用のシステムで必要かどうかを判断していただき、不要であれば止めていただいて問題はありません。
不要なサービスを停止する場合、該当ファイルにおいて停止対象のサービスをコメントアウトしてください。
Hide details for サービスの停止方法サービスの停止方法

/etc/inetd.conf、/etc/rc.nfsや/etc/rc.tcpipでは停止対象のサービスをコメントアウトします。
/etc/inetd.confファイルでftpコメントアウト
# vi /etc/inetd.conf
#ftp stream tcp6 nowait root /usr/sbin/ftpd ftpd ftpの行頭に#を挿入しコメントアウトする
/etc/inittabのサービスを停止する場合は、chitabコマンドで停止対象サービスのactionフィールドをoffに変更します。
/etc/inittabのpiobeをoffにする
# chitab "piobe:2:off:/usr/lib/lpd/pio/etc/pioinit > /dev/null 2>&1"
以下は主なサービスとそれに必要なデーモンの説明です。

Hide details for テスト用サービス:chargen,daytime,discard,echoテスト用サービス:chargen,daytime,discard,echo

設定ファイル
/etc/inetd.conf
通常は不要なので使用不可にします。
Hide details for CDE:cmsd,dtspc,ttdbserver,dt,dt_nogbCDE:cmsd,dtspc,ttdbserver,dt,dt_nogb

設定ファイル
/etc/inetd.conf :cmsd,dtspc,ttdbserver
/etc/inittab :dt,dt_nogb
CDEを使用しない場合は使用不可にします。
使用不可にするにはdtconfigコマンドかsmit dtconfigを使用します。
# dtconfig -d
または
# smit dtconfig
システム・ログイン・ユーザー・インターフェースの選択 コマンド行 この作業を実行後、システムを再起動します。 Hide details for RPC:keyserv,portmapRPC:keyserv,portmap

設定ファイル
/etc/rc.nfs :keyserv
/etc/rc.tcpip :portmap
RPCサービスを使用する場合、portmapは必須です。
セキュアRPCを使用しない場合はkeyservを使用不可にします。

Hide details for NFS:NFS:


設定ファイル
/etc/inetd.conf :quotad,pcnfsd,sprayd
/etc/inittab :rcnfs
/etc/rc.nfs :automountd,biod,nfsd,rpc.lockd,rpc.statd, rpc.mountd
pcnfsdはPC-NFSを使用しない場合は使用不可にします。
spraydはNFSを使用しない場合は使用不可にします。
quotadはNFSクライアントでquotaコマンドを使用しない場合は使用不可にします。
automountdは自動マウントの機能を使用しない場合は使用不可にします。
NFSサーバーでは、nfsd,rpc.lock,rpc.statd,rpc.mountdが必要です。
NFSクライアントでは、biod,rpc.lockd,rpc.statdが必要です。
NFSサーバー、クライアントともにportmapが必要です。

Hide details for NIS:prc.yppasswdd,ypupdatedNIS:prc.yppasswdd,ypupdated

設定ファイル
/etc/rc.nfs :rpc.yppasswdd,ypupdated
NISを使用しない場合は使用不可にします。
Hide details for リモートコマンド用サービスリモートコマンド用サービス

リモートコマンド用サービス:exec,finger,netstat,ntalk,talk,rexd,rstatd, rusersd,rwalld,systat
設定ファイル
/etc/inetd.conf :exec,finger,netstat,ntalk,talk,rexd,rstatd, rusersd,rwalld,systat
/etc/rc.tcpip :rwhod
通常は不要なので使用不可にします。
Hide details for リモートログイン:klogin,kshell,login.shell,telnetリモートログイン:klogin,kshell,login.shell,telnet

設定ファイル
/etc/inetd.conf :klogin,kshell,login,shell,telnet
klogin,kshellはkerberosを使用する場合は使用可能にします。
リモートログインが必要な場合、login,shell,telnetは使用不可にし、セキュア・シェルを使用します。
Hide details for メール:sendmail,comsat,imap2,pop3メール:sendmail,comsat,imap2,pop3

設定ファイル
/etc/inetd.conf :comsat,imap2,pop3
/etc/rc.tcpip :sendmail
メールサーバーとして使用しない場合は使用不可にします。 Hide details for NIM:bootps,tftpNIM:bootps,tftp

設定ファイル
/etc/inetd.conf :bootps,tftp
NIMを使用しない場合は使用不可にします。 Hide details for ネットワークネットワーク


設定ファイル
/etc/inetd.conf:ftp,uucp
/etc/rc.tcpip :autoconf6,dhcpcd,dhcpsd,dhcprd,gated,routed, mrouted,named,ndp-host,ndp-router

uucpはUUCPアプリケーションを使用しない場合は使用不可にします。
IPv6を使用しない場合は、autoconf6,ndp-host,ndp-routerを使用不可にします。
DHCPを使用しない場合は、dhcpcd,dhcpsd,dhcprdを使用不可にします。
ルーターとして使用しない場合は、gated,routed,mroutedを使用不可にします。
Hide details for タイムサービス:time,timed,xntpdタイムサービス:time,timed,xntpd

設定ファイル
/etc/inetd.conf :time
/etc/rc.tcpip :timed,xntpd
時刻同期サービスが必要な場合はxntpdを使用し、time,timedは使用不可にします。
Hide details for 印刷:pd,piobe,qdaemon印刷:pd,piobe,qdaemon

設定ファイル
/etc/inittab :lpd,piobe,qdaemon
システムでプリンターを構成していない場合はlpd,piobeは使用不可にします。
プリンターが必要ない場合はqdaemonも使用不可にします。
Show details for SNMPSNMP
Hide details for /etc/inittabのその他のサービス/etc/inittabのその他のサービス
mkatmpvc,atmsvcd :ATMを使用するときは必要です。
load64bit :64bitアプリケーションを使用するときは必要です。
sniiinst,ntbl_reset,rcml :High Performance Switchアダプターをサポートするために必要です。
shdaemon :システム・ハング・デーモンを起動します。マニュアル:システムハングの管理を参照してください。
naudio :オーディオを使用するために/dev/paud0デバイスを使用可能にするときは必要です。
itess,httpdlite :文書サービスを使用するときは必要です。
以下のサービスはシステムが稼動するための重要なサービスのため停止しないでください。
Hide details for 停止しないほうがよいサービス停止しないほうがよいサービス

init :初期ランレベルを指定します。
brc :ブート処理を行うのに必要です。
powerfail :電源障害時の動作を指定します。
tunables :ネットワークやVMMなどのオプションを/etc/tunables/nextbootファイルに設定された値に設定します。
rc :マルチユーザーモードに移行します。
fbcheck :OS起動時にfirstbootファイルがあれば実行します。
srcmstr :SRC(System Resource Controller)を起動します。
rctcpip :TCPIP関連のサービスを起動します。
rcnfs :NFS関連のサービスを起動します。
cron :CRONスケジューラーを起動します。
uprintfd :カーネル・メッセージの検索、変換、フォーマット、およびプロセス制御端末への書き出しを行います。
l2,l3,l4,l5,l6,l7,l8,l9 :それぞれのランレベルごとにプロセス起動を行うために必要です。
logsymp :システムダンプに関する処理を行います。
perfstat :Perfstat APIのキャッシュを初期化するために必要です。
diagd :定期的にシステム診断を行います。


* 不要なユーザー、デフォルトユーザーの削除
AIXインストール時に作成されるユーザー/グループはシステムの要件によっては削除可能です。
Hide details for 要件によって削除可能なユーザー/グループ要件によって削除可能なユーザー/グループ

uucp,nuucp/uucp
Unix to Unix Copy Programを使用しない場合は削除可能です。
lp,lpd/printq
印刷機能を使用しない場合は削除可能です。
guest
guestアカウントが必要でない場合は削除可能です。
ipsec
IPセキュリティの機能を使用しない場合は削除可能です。
invscout
Inventory Scoutの機能を使用しない場合は削除可能です。HMCによって管理されているLPAR上のAIXでは削除しないでください。
imnadm
文書サービスを使用しない場合は削除可能です。
snapp
SNAPP(System Networking, Analysis and Performance Pilot)の機能を使用しない場合は削除可能です。SNAPPはPalmバイスからシステムを管理する機能です。
デフォルトで作成されるユーザーを削除した場合、削除したユーザーがオーナーであるファイルセットの再導入・更新を行おうとすると失敗することがあります。
ファイルセットを再導入・更新するためには削除したユーザーを再作成する必要があります。

その他のデフォルトで作成される以下のユーザーは削除しないでください。
adm,bin,daemon,nobody,root,sys

* パスワード関連
/etc/security/userファイルのdefaultスタンザを使用することで、全てのユーザーに対して共通の制限を設定することが可能です。
個別のユーザーに対して制限する場合は制限をするユーザーのスタンザを編集、もしくはSMITのChange / Show Characterristics of a Userから設定します。
Hide details for 設定できるパスワード制限設定できるパスワード制限
属性 デフォルト値 最大値 説明
dictionlist パスワードに使用できない単語を記述したファイル
histexpire 0 260 パスワードが再利用できるまでの週数
histsize 0 50 許可されるパスワードの反復回数
maxage 0 52 パスワードが変更される必要が生じるまでの最大週数
maxexpired -1 52 有効期限が切れたパスワードをユーザーが変更できるmaxageを超えた最大週数
maxrepeats 8 8 パスワードで反復可能な文字の最大数
minage 0 52 パスワードが変更可能になるまでの最小週数
minalpha 0 8 パスワードに必要な英字の最小数
mindiff 0 8 パスワードに入れる必要のある固有文字の最小数
minlen 0 8 パスワードの最小の長さ
minother 0 8 パスワードで必要な非英字の最小数
pwdwarntime 0 システムが、パスワード変更が必要であるという警告を出すまでの日数

AIXで有効なパスワードの桁数は8桁です。
8桁以上のパスワードを与えてもエラーにはなりませんが、passwdコマンドが認識するのは最初の8桁までです。
AIX5.2以前ではユーザー名/グループ名は最大8文字までとなります。AIX5.3ではデフォルトでは8文字、最大255文字となります。
Hide details for AIX5.3でユーザー名/グループ名の最大文字数を変更するAIX5.3でユーザー名/グループ名の最大文字数を変更する

以下はユーザー名/グループ名を最大20文字に変更する手順です。
1-a.SMITから行う場合
SMITメインメニュー -> System Environment -> Change / Show Characteristics of Operating System もしくは smit chgsys
Maximum login name length at boot time [21]
1-b.コマンドラインから行う場合
# chdev -l sys0 -a max_logname=21
sys0 changed

確認にはlsattrコマンドを使用します。
# lsattr -El sys0 -a max_logname
max_logname 21 Maximum login name length at boot time True
注:指定する数字は末端のNULL文字を含む数字を指定します。

2.設定変更を反映させるためAIXを再起動します。
最大文字数を増やしてユーザーを作成した後で最大文字数を減らす場合には注意が必要です。
ユーザー名が変更後の最大文字数より多いユーザーが存在していても変更は警告メッセージなしで行われます。
最大文字数より多いユーザー名のままAIXの再起動を行い変更が反映されると、そのユーザーはログイン不可能になります。


AIXのデフォルトユーザーにパスワードを設定することは可能です。
パスワードが設定されているかどうかは、/etc/passwdファイルの2番目のエントリーの値と/etc/security/passwdファイルのpassword属性で判断できます。
Hide details for /etc/passwdと/etc/security/passwd/etc/passwdと/etc/security/passwd

/etc/passwdファイルの2番目のエントリーの値は以下の意味を持ちます。
+ * は該当ユーザーはログイン不可であることを示します。
+ ! は/etc/security/passwdファイルにpasswordの属性があることを示します。
/etc/security/passwdファイルのpassword属性には3つの状態があります。
+ 暗号化されたパスワード :パスワード設定済み
+ 空白 :パスワードなし
+ * :このユーザーでのログイン不可(デフォルト値)
例:
/etc/passwd
bin:!:2:2::/bin: <- /etc/security/passwdにpasswordの属性がある
user1:*:202:1::/home/user1:/usr/bin/ksh <- ログイン不可
user2:!:202:1::/home/user1:/usr/bin/ksh <- /etc/security/passwdにpasswordの属性がある
user3:!:202:1::/home/user1:/usr/bin/ksh <- /etc/security/passwdにpasswordの属性がある

/etc/security/passwd
bin:
password = * <- binでのログイン不可

user1のスタンザ無し

user2:
password = fH7tFJOXNGJBQ <- 暗号化されたパスワードが設定されている

user3:
password = ← パスワードなし

・binは/etc/security/passwdファイルのpassword属性でログイン不可に設定
・user1は/etc/passwdファイルでログイン不可に設定
・user2はパスワードを使用してログイン可能
・user3はパスワードなしでログイン可能
デフォルトユーザーは/etc/security/passwdファイルで password = * となっているためログイン不可ですが、パスワードを設定することによりログイン可能になります。
これらのユーザーを使用してログインすることは考慮されていないので、パスワードを設定した場合には/etc/passwd,/etc/security/passwd以外の場所でログイン不可に設定を行う必要があります。
Hide details for ログイン不可の設定ログイン不可の設定
A,SMITから行う場合
1.SMIT メインメニュー -> Security & Users -> Users -> Change / Show Characteristics of a User もしくは smit chuser
2.変更したいユーザー名を入力
3.以下の値に変更
Another user can SU TO USER? false
User can LOGIN? false
User can LOGIN REMOTELY(rsh,tn,rlogin)? false
Password MAX, AGE [0]
Password MIN, AGE [0]
B.コマンドラインから行う場合
# chuser login=false rlogin=false su=false maxage=0 minage=0 ユーザー名

確認には/etc/security/userファイルを参照します。
該当ユーザーのスタンザに以下の属性が追加されていることを確認してください。
login=false
rlogin=false
su=false
maxage=0
minage=0


以上

引用元:IBM FAQ
http://www-06.ibm.com/jp/domino01/mkt/cnpages1.nsf/page/default-0005357C