Solaris 10 5/09 のSSHサービスの構成ファイルである/etc/ssh/sshd_configのデフォルトは以下のようになっています。
# cat /etc/ssh/sshd_config # # Copyright 2004 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # ident "@(#)sshd_config 1.8 04/05/10 SMI" # # Configuration file for sshd(1m) # Protocol versions supported # # The sshd shipped in this release of Solaris has support for major versions # 1 and 2. It is recommended due to security weaknesses in the v1 protocol # that sites run only v2 if possible. Support for v1 is provided to help sites # with existing ssh v1 clients/servers to transition. # Support for v1 may not be available in a future release of Solaris. # # To enable support for v1 an RSA1 key must be created with ssh-keygen(1). # RSA and DSA keys for protocol v2 are created by /etc/init.d/sshd if they # do not already exist, RSA1 keys for protocol v1 are not automatically created. # Uncomment ONLY ONE of the following Protocol statements. # Only v2 (recommended) Protocol 2 # Both v1 and v2 (not recommended) #Protocol 2,1 # Only v1 (not recommended) #Protocol 1Protocolキーワード:# Listen port (the IANA registered port number for ssh is 22) Port 22
使用するプロトコルを指定します。複数指定する場合にはカンマで区切ります。Solaris 10 のデフォルトではバージョン2のみをサポートするように設定されています。Portキーワード:# The default listen address is all interfaces, this may need to be changed # if you wish to restrict the interfaces sshd listens on for a multi homed host. # Multiple ListenAddress entries are allowed. # IPv4 only #ListenAddress 0.0.0.0 # IPv4 & IPv6 ListenAddress ::
SSH接続をリッスンするポートを指定します。デフォルトは22/tcpです。ListenAddressキーワード:# Port forwarding AllowTcpForwarding no
IPv4もしくはIPv6アドレスを指定し、SSH接続に使用するインタフェースを特定します。この設定は複数のインタフェースもしくはIPアドレスを持つシステムで、SSHアクセスを許可するインタフェースを厳密に制限する場合に使用します。デフォルトは::で全てのローカルインタフェースを表します。ListenAddressキーワードは複数回使用することが可能です。
【形式】
ListenAddress 192.168.0.1
ListenAddress 192.168.1.1:22
AllowTcpForwardingキーワード:# If port forwarding is enabled, specify if the server can bind to INADDR_ANY. # This allows the local port forwarding to work when connections are received # from any remote host. GatewayPorts no
TCP転送を許可するかどうかを指定します。デフォルトはyesです。GatewayPortsキーワード:# X11 tunneling options X11Forwarding yes
リモートホストがクライアント側に転送されたポートに接続することを許可するかどうか指定します。デフォルトでは、sshd はリモート転送ポートをループバックアドレスに bind します。これは他のリモートホストが、転送されたポートに接続してしまうのを防いでいます。GatewayPortsは sshd にリモート転送ポートをループバックインターフェイス以外のアドレスに bind させるときに使います。これによって他のホストが転送されたポートに接続できるようになります。引数の値として、転送されたポートをローカルからのみ利用可能にしたい場合は"no"、いかなるアドレスからも利用可能にしたい場合は"yes"、あるいはクライアント側に bind すべきアドレスを指定させたい場合は"clientspecified"を指定します。デフォルトは"no"になっています。X11Forwardingキーワード:X11DisplayOffset 10
X11 転送を許可するかどうかを指定します。デフォルトはyesです。X11DisplayOffsetキーワード:X11UseLocalhost yes
sshd が X11 転送をするときに最初に使われるディスプレイ番号を指定します。これは sshd が X11 転送で使うディスプレイ番号が、本物の X サーバのディスプレイ番号と衝突してしまうのを防ぐためです。デフォルトの値は 10 です。X11UseLocalhostキーワード:# The maximum number of concurrent unauthenticated connections to sshd. # start:rate:full see sshd(1) for more information. # The default is 10 unauthenticated clients. #MaxStartups 10:30:60
sshd が転送された X11 サーバをループバックアドレス (localhost) にbind するかどうかを指定します。デフォルトでは、sshd は転送された X11 をループバックアドレスに bind し、環境変数DISPLAY のホスト名の部分をlocalhostに設定します。こうすると、SSHサーバ以外のリモートホストから転送された Xサーバに接続することはできなくなります。デフォルトの値はyesです。MaxStartupsキーワード:# Banner to be printed before authentication starts. #Banner /etc/issue
sshdデーモンへの未認証接続の最大同時接続数をstart:rate:full(開始時:確率:最大数) の形(デフォルト値は10:30:60)で定義します。sshd は認証されていない段階の接続が"start"(この例では 10) 個を超えると、これ以後の接続要求を"rate/100"(この例では 30%) の確率で拒否し始めます。この確率はfull(この例では 60) 個の接続が来るまで線形に増えつづけ、最大数に達した時点でそれ以降すべての接続を拒否するようになります。Bannerキーワード:# Should sshd print the /etc/motd file and check for mail. # On Solaris it is assumed that the login shell will do these (eg /etc/profile). PrintMotd no
バナーファイルを定義します。ここで指定されたファイルの内容は、認証が許可される前にリモートユーザに提示されます。引数に"none"を指定した場合、バナーは表示されません。この設定項目は プロトコル バージョン 2 でのみサポートされています。デフォルトでは、バナーは表示されません。PrintMotdキーワード:# KeepAlive specifies whether keep alive messages are sent to the client. # See sshd(1) for detailed description of what this means. # Note that the client may also be sending keep alive messages to the server. KeepAlive yes
ユーザが対話的にログインしたとき、/etc/motdファイルの内容を表示するかどうか指定します。デフォルトの値はnoです。KeepAliveキーワード:# Syslog facility and level SyslogFacility auth LogLevel info
システムが相手のマシンに TCP keepalive メッセージを送るかどうか指定します。これが送られると、接続の異常終了や相手マシンのクラッシュが正しく通知されるようになります。しかしこれを使うと、たとえ経路が一時的にダウンしていても接続が死んでいるということになってしまい、これが邪魔になる場合もあります。その一方で、もし TCP keepalive が送られないとすると、セッションはサーバ上で永久に残ってしまことがあり、サーバ資源を消費することがあります。デフォルト値はyesで、keepaliveメッセージが送られます。SyslogFacilityキーワード:# # Authentication configuration # # Host private key files # Must be on a local disk and readable only by the root user (root:sys 600). HostKey /etc/ssh/ssh_host_rsa_key HostKey /etc/ssh/ssh_host_dsa_key
sshdが出力するログメッセージで使われるログの分類コード(ファシリティ)を指定します。とりうる値は以下の通りです。
DAEMON, USER,AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6,LOCAL7。
デフォルトは AUTH です。
LogLevelキーワード:
sshdが出力するログメッセージの重要度レベルを指定します。とりうる値は以下の通りです。
QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, DEBUG3
デフォルトでは INFO です。
DEBUG と DEBUG1 は等価です。DEBUG2、DEBUG3 はそれぞれさらに冗長なログになります。DEBUG レベル以上のログはユーザのプライバシーを侵害するので、勧められるものではありません。HostKeyキーワード:# Default Encryption algorithms and Message Authentication codes #Ciphers aes128-ctr,aes128-cbc,arcfour,3des-cbc,blowfish-cbc #MACS hmac-md5,hmac-sha1,hmac-sha1-96,hmac-md5-96
SSHで使われる、ホスト秘密鍵が格納されているファイルを指定します。デフォルトでは、プロトコル バージョン 1 用の鍵が/etc/ssh/ssh_host_keyであり、プロトコル バージョン 2 用の鍵が/etc/ssh/ssh_host_rsa_keyおよび/etc/ssh/ssh_host_dsa_keyです。このファイルがグループあるいは他人からアクセス可能になっていると、sshdはその使用を拒絶するので注意してください。複数のホスト鍵を使うことも可能です。rsa1鍵はバージョン 1 に使われ、dsaまたはrsaはバージョン 2 の SSH プロトコルに使われます。
Protocolキーワードでバージョン1もサポートするように指定している場合にはHostKeyエントリを追加して/etc/ssh/ssh_host_keyを指定する必要があります。(別途ssh-keygenコマンドで鍵の作成も必要がです。)Ciphersキーワード:# Length of the server key # Default 768, Minimum 512 ServerKeyBits 768
プロトコルバージョン 2 で許可される暗号方式を指定します。複数の暗号方式を指定する場合は、カンマで区切ってください。デフォルト値はaes128-ctr,aes128-cbc,arcfour,3des-cbc,blowfish-cbcです。
MACSキーワード:
使用する MAC (メッセージ認証コード) 方式の優先順位を指定します。MAC 方式はプロトコル バージョン 2 で使われる、データの改ざんを防ぐ機構 (data integrity protection) です。複数の方式をカンマで区切って指定します。デフォルト値はhmac-md5,hmac-sha1,hmac-sha1-96,hmac-md5-96です。ServerKeyBitsキーワード:# sshd regenerates the key every KeyRegenerationInterval seconds. # The key is never stored anywhere except the memory of sshd. # The default is 1 hour (3600 seconds). KeyRegenerationInterval 3600
プロトコル バージョン 1 で短期的に使われるサーバ鍵のビット数を指定します。最小値は 512 で、デフォルトは 768 です。KeyRegenerationIntervalキーワード:# Ensure secure permissions on users .ssh directory. StrictModes yes
プロトコルバージョン 1 では、サーバ鍵は (一度でも使われると) ここで指定された間隔ごとに自動的に再生成されます。このように鍵を再生成する目的は、あとでそのマシンに侵入して盗聴したセッションを解読されたり、鍵を盗まれたりするのを防ぐためです。この鍵はどこにも格納されません。値としてゼロを指定すると、鍵はまったく再生成されなくなります。デフォルトでは 3600 (秒) になっています。StrictModesキーワード:# Length of time in seconds before a client that hasn't completed # authentication is disconnected. # Default is 600 seconds. 0 means no time limit. LoginGraceTime 600
sshdがログインを許可する前に、ユーザのファイル($HOME/.sshディレクトリ)の所有権とパーミッションをチェックすべきかどうかを指定します。デフォルトではyesになっています。.sshディレクトリに所有者以外の書き込み権を設定してはいけません。LoginGraceTimeキーワード:# Maximum number of retries for authentication # Default is 6. Default (if unset) for MaxAuthTriesLog is MaxAuthTries / 2 MaxAuthTries 6 MaxAuthTriesLog 3
ユーザがここで指定された時間内にログインできないと、サーバは接続を切ります。この値をゼロにすると、時間制限はなくなります。デフォルトの値は 600 (秒) です。MaxAuthTriesキーワード:# Are logins to accounts with empty passwords allowed. # If PermitEmptyPasswords is no, pass PAM_DISALLOW_NULL_AUTHTOK # to pam_authenticate(3PAM). PermitEmptyPasswords no
ネットワーク接続 1つあたりの認証を最大で何回まで試みることができるかを指定します。デフォルトの値は 6 です。
MaxAuthTriesLogキーワード:
ここで指定した回数認証が失敗した場合、ログに記録されます。デフォルトの値は 3 です。このキーワードが設定されていない場合、MaxAuthTriesの値の半数がデフォルトで使用されます。PermitEmptyPasswordsキーワード:# To disable tunneled clear text passwords, change PasswordAuthentication to no. PasswordAuthentication yes
パスワード認証が許可されているとき、パスワード文字列が空のアカウントに対してサーバがログインを許可するかどうか指定します。デフォルトはnoです。このキーワードが設定されていない場合、/etc/default/loginのPASSREQ変数が使われます。PasswordAuthenticationキーワード:# Use PAM via keyboard interactive method for authentication. # Depending on the setup of pam.conf(4) this may allow tunneled clear text # passwords even when PasswordAuthentication is set to no. This is dependent # on what the individual modules request and is out of the control of sshd # or the protocol. PAMAuthenticationViaKBDInt yes
パスワード認証を許可するかどうか指定します。デフォルトの値はyesです。PAMAuthenticationViaKBDIntキーワード:# Are root logins permitted using sshd. # Note that sshd uses pam_authenticate(3PAM) so the root (or any other) user # maybe denied access by a PAM module regardless of this setting. # Valid options are yes, without-password, no. PermitRootLogin no
PAM経由のキーボードによる対話的認証を許可します。デフォルトの値はyesです。PermitRootLoginキーワード:# sftp subsystem Subsystem sftp /usr/lib/ssh/sftp-server
sshを使って、root がログインできるかどうか指定します。この引数の値はyes、without-password(パスワード認証なし)、forced-commands-only(強制コマンドのみ)、noのいずれかになります。デフォルトはyesです。この設定項目をwithout-passwordにすると、root はパスワード認証ではログインできなくなります。 この設定項目をforced-commands-onlyにすると、root は公開鍵認証を使ってログインできますが、その鍵にcommand=オプションが指定されている場合にかぎります(これは通常の root ログインを許可していなくても、リモートバックアップをとりたいときなどに有用です)。root に対してはこれ以外の認証方法はすべて禁止になります。 この設定項目をnoにすると、root のログインは許可されません。この項目が設定されていない場合、/etc/default/loginのCONSOLE変数が使われます。 Subsystemキーワード:# SSH protocol v1 specific options # # The following options only apply to the v1 protocol and provide # some form of backwards compatibility with the very weak security # of /usr/bin/rsh. Their use is not recommended and the functionality # will be removed when support for v1 protocol is removed. # Should sshd use .rhosts and .shosts for password less authentication. IgnoreRhosts yes RhostsAuthentication no
外部サブシステム (ファイル転送デーモンなど) を設定します。この設定項目への引数にはサブシステム名と、そのサブシステムに要求があったとき実行されるコマンド (および、必要な場合はその引数) を与えます。 デフォルトではsftpと/usr/lib/ssh/sftp-serverが指定されています。IgnoreRhostsキーワード:# Rhosts RSA Authentication # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts. # If the user on the client side is not root then this won't work on # Solaris since /usr/bin/ssh is not installed setuid. RhostsRSAAuthentication no
RhostsRSAAuthenticationまたはHostbasedAuthenticationの各認証で、.rhostsおよび.shostsファイルを使わないようにします。 この状態でも、/etc/hosts.equivおよび/etc/shosts.equivは依然として有効です。デフォルトではyesになっています。このパラメータはプロトコルバージョン1と2の両方で使用できます。
RhostsAuthenticationキーワード:
.rhosts、.shosts、hosts.equiv、shosts.equivファイルを使用した認証を許可するかどうかを指定します。デフォルトの値はnoです。このパレメータはプロトコルバージョン1でのみ使用できます。RhostsRSAAuthenticationキーワード:# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication. #IgnoreUserKnownHosts yes
RSA ホスト間認証が成功しているとき、rhosts や /etc/hosts.equivを使った認証をおこなってよいかどうか指定します。デフォルトの値はnoです。このパラメータはプロトコルバージョン 1 にのみ使用されます。IgnoreUserKnownHostsキーワード:# Is pure RSA authentication allowed. # Default is yes RSAAuthentication yes
RhostsRSAAuthenticationまたはHostbasedAuthenticationの各認証で、ユーザの~/.ssh/known_hostsファイルを使わないようにします。デフォルトの値はnoです。RSAAuthenticationキーワード:
純粋な RSA 認証を許可するかどうかを指定します。デフォルトの値はyesです。このパラメータはプロトコルバージョン1でのみ使用されます。。