掲題の通りで、telnetdを導入する。
sshdだと、Webに仕込んだperlスクリプトでお話ができない。
そこでやむなくtelnetdを仕込む次第。
ただ、telnetdを丸裸で開放するのもナニなので、/etc/hosts.allow と /etc/hosts.deny で、localhost 以外の telnet ログインを拒否する。
/etc/hosts.allow にて、自hostを許可する
ALL: localhost, 127.0.0.0/8, 153.127.50.0/24, .h-sol.jp
次に、/etc/hosts.denyで、sshdでブルートフォースアタックを掛けてくる常連(?)の後に、telnetd 経由のアクセスを拒否する。
# China112.80.0.0
ALL: 61.177.0.0/16
ALL: 112.80.0.0/13
ALL: 218.0.0.0/8
ALL: 222.184.0.0/13
ALL: 112.80.0.0/13
# Caribbean
ALL: 131.108.0.0/16
# UK-Colt
ALL: 217.110.0.0/15
# FR
ALL: 109.24.160.0/12
# Tor-Exit
ALL: 185.220.101.0/24
telnetd: ALL
次にtelnetdをインストールする。依存関係により、inetd もインストールされる。
# apt-get install inetutils-telnetd
さらに/etc/inetd.confで、telnetの行をコメントアウトする。
# diff inetd.conf.org inetd.conf
23c23
< #<off># telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/telnetd
---
> telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/telnetd
#
リブートする。
レンタルサーバーのsshコンソールから telnet localhost と打って、ログインできることを確かめる。さらに自宅からは、
makoto@rpi3x ~ $ telnet h-sol.jp
Trying 153.127.50.48...
Connected to h-sol.jp.
Escape character is '^]'.
Connection closed by foreign host.
makoto@rpi3x ~ $
とログイン不可能であることを確認する。
-----------------------------------------------
追記:2021/03/04
上記の対策と併せて、
/etc/services の23tcp/telnet を、(例えば)65534tcp/telnetに書き換える。
SSHやtelnetを探索するbot(スクリプト)に有効な模様です。
もっとも、inetd経由でtelnet を開けるのは怖いので、expectを使ってsshでシェル対話したほうが良い予感です。
コメント