2done.org

Linuxメインなメモ書き。二度寝してから書く。(ご意見は Twitter あたりで。そのうちコメント欄つけます。)

sshd で22番ポート以外を使う(F14)

2010/12/14

 

SELinux は、sshd 等が使用できるポートを制限しています。

ssh の場合、初期状態では22番ポートのみ使用可能です。

 

22 番ポート以外で sshd を起動すると、/var/log/audit/audit.log に以下のようなログが一行出力されます。

要は、「おめえに使わせる 10022番ポート はねぇ!」です。

type=AVC msg=audit(1292288862.090:14): avc:  denied  { name_bind } for  pid=1014
comm="sshd" src=10022 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023
tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket

 

各デーモン(正確には違います)が使用できるポートは semanage コマンドで確認できます。

# semanage port -l | grep ssh
ssh_port_t                     tcp      22

 

ssh_port_t には tcp/22 が定義されています。ここに先ほど拒否された10022番ポートを追加します。

# semanage port -a -t ssh_port_t -p tcp 10022
-a: 追加
-t: タイプ
-p: プロトコル

 

semanage コマンドで10022番ポートが追加されたことを確認します。

# semanage port -l | grep ssh
ssh_port_t                     tcp      10022, 22

 

これで sshd を10022番ポートで起動することが可能になりました。