出張などの出先から自宅サーバにアクセスするときのことを考え、 openvpn を動かしているが、接続したい時にかぎって、 ホテル側がVPNパケットを切っているためか接続できない。 かといって、sshd を無防備に許可するのは怖い。
そこで特別なsshポートを allow from all で空けておき、 携帯から許可したときだけ接続できるように設定をしてみた。
((/usr/local/sbin/sshd-onetime)) #!/bin/bash # 出先からssh接続するための特別設定 ALLOW=/var/hogehoge/sshd-onetime.txt if [ -f $ALLOW ]; then exec /usr/sbin/sshd \ -f /etc/ssh/sshd-onetime_config -i fi ((/etc/ssh/sshd-onetime_config)) sshd_configをポート番号だけ変更したもの ((/etc/inetd.conf)) (ssh-hogehoge) stream tcp nowait root \ /usr/sbin/tcpd /usr/local/sbin/sshd-onetime
これにあわせて、携帯のみ許可&サブスクライバIDでチェックして ALLOWのファイルを生成・削除するページを作っておく。 さらに、デフォルトで接続禁止にしたいので、 /etc/cron.d にてALLOWのファイルは、定時的に消すようにしておく。