ローカルネットワークでの SSH パスワードログインを許可する

ローカルネットワークでの SSH パスワードログインを許可する

Fedora 16 を実行しているホーム サーバーがあり、SSH 経由でリモート アクセスできるようにしたいと考えています。sudo アクセス権を持つユーザーの場合、キーを使用して WAN からのみ接続できるようにする必要がありますが、ローカル ネットワークからはパスワードを使用して接続できるようにしたいと考えています。

私の sshd_config は次のとおりです:

#Logging
SyslogFacility AUTHPRIV

#Allow the two types of ssh groups
AllowGroups ssh_key_users ssh_pass_users
PermitRootLogin no

#Accept environment variables - these come from the fedora default config
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS

#Other options
X11Forwarding yes
GSSAPICleanupCredentials yes
#Set up sftp subsytem
Subsystem       sftp    /usr/libexec/openssh/sftp-server

#Just as a default, we'll change it per network and group
PasswordAuthentication no

#Re-enable password access for the local network
Match Address 192.168.1.0/24 Group ssh_key_users
PasswordAuthentication yes

#Settings for users which can login by password (non-sudoers)
Match Group ssh_pass_users
PasswordAuthentication yes
ChrootDirectory %h

面白いのは、sshd -d -p 4000デバッグ モードにしてテストしてみるとこれが完璧に動作するのですが、systemctl 経由で sshd を実行するときにパスワードでログインしようとすると失敗するということです。

このマシンの設定中に発生したほとんどの問題と同様に、SELinux が原因だと考えています。audit.log からのエラー メッセージは次のとおりです。

type=USER_AUTH msg=audit(1345320824.824:123275): 
pid=0 uid=0 auid=4294967295 ses=4294967295 
subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 
msg='op=password acct="chockey" exe="/usr/sbin/sshd" 
hostname=? addr=192.168.1.201 terminal=ssh res=failed'

SELinux を一時的にオフにすると、動作します。このメッセージでaudit2whyを使用すると、何も出力されません。このメッセージでaudit2allowを使用すると、3つの改行が出力されますが、それ以外は何も出力されません。おそらく使い方が間違っているのでしょうが、私が行ったことは次のとおりです。

$ tail -n 1 /var/log/audit/audit.log > error.txt
$ audit2why -i error.txt
$ audit2allow -i error.txt


$ 

これまでにこれに遭遇した人はいますか? SELinux をオンのままにしておく価値はあるのでしょうか?

関連情報