Solaris 10 の設定: SSH サービスを設定する

Home » メモ帳 » Unix » Solaris 10 の設定: SSH サービスを設定する
Unix コメントはまだありません

そのままでも使えるけどもセキュリティ面や使い勝手をよくする。

  1. ポート番号を変更する
  2. 認証方式を公開鍵認証のみにする
  3. ポートフォワーディングできるようにする
  4. TCPWrapperをかます

sshd_config

# vi /etc/ssh/sshd_config

--- /etc/ssh/sshd_config.default
+++ /etc/ssh/sshd_config
@@ -30,7 +30,7 @@
 #Protocol 1

 # Listen port (the IANA registered port number for ssh is 22)
-Port 22
+Port 10022

 # 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.
@@ -42,7 +42,7 @@
 ListenAddress ::

 # Port forwarding
-AllowTcpForwarding no
+AllowTcpForwarding yes

 # 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
@@ -116,7 +116,7 @@
 PermitEmptyPasswords no

 # To disable tunneled clear text passwords, change PasswordAuthentication to no.
-PasswordAuthentication yes
+PasswordAuthentication no

 # Use PAM via keyboard interactive method for authentication.
 # Depending on the setup of pam.conf(4) this may allow tunneled clear text
@@ -123,7 +123,7 @@
 # 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
+PAMAuthenticationViaKBDInt no

 # Are root logins permitted using sshd.
 # Note that sshd uses pam_authenticate(3PAM) so the root (or any other) user
@@ -157,4 +157,8 @@

 # Is pure RSA authentication allowed.
 # Default is yes
-RSAAuthentication yes
+RSAAuthentication no
+
+ChallengeResponseAuthentication no
+GSSAPIAuthentication no
+KbdInteractiveAuthentication no

サービスの再起動
# svcadm restart ssh

チェック
$ ssh -v -p 22222 127.0.0.1
:-略-
debug1: Authentications that can continue: publickey
:-略-
「Authentications that can continue:」が「publickey」のみになっていればOK。

sshd + tcpwrapper

Solaris 10 には、TCPWrapper が入っており、せっかくなので SSH でも利用させてもらう。
設定ファイル /etc/hosts.allow, /etc/hosts.deny はデフォルトではないので、作ればそれで有効になる。

チェック: とりあえず、現状でローカルホストの SSH に接続できるかテストする。
$ ssh -p 22222 127.0.0.1Enter passphrase for key '/home/natsu/.ssh/id_rsa':
Last login: Fri Jun 2 04:13:38 2006 from localhost
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
$ exitlogout
Connection to 127.0.0.1 closed.

とりあえずすべて拒否。
# echo "ALL : ALL" > /etc/hosts.deny

チェック: ログインできなくなっているはず,,,
$ ssh -p 22222 127.0.0.1
ssh_exchange_identification: Connection closed by remote host

ローカルホストはすべて許可。
# echo "ALL : 127.0.0.1" > /etc/hosts.allow

チェック: ログインできるようになってるはず,,,
$ ssh -p 22222 127.0.0.1
Enter passphrase for key '/home/natsu/.ssh/id_rsa':
Last login: Fri Jun 2 04:13:50 2006 from localhost
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
$ exit
logout
Connection to 127.0.0.1 closed.

SSH でアクセスするソース IP をぶっこむ。
# echo "sshd : 192.168.0.1" >> /etc/hosts.allow
# echo "sshd : 172.16.0.0/255.255.255.0" >> /etc/hosts.allow

リモートからもアクセスできるか、必ず確認すること。