telnetdの導入

  • 投稿日:
  • by
  • カテゴリ:

掲題の通りで、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でシェル対話したほうが良い予感です。