LoginSignup
11

More than 5 years have passed since last update.

nyancat を telnet サーバポートで動かそう

Last updated at Posted at 2016-01-18

nyancat というソフトがあります。コンソールで実行するとにゃんこが走り出してほっこりできます。そして、このソフト、何と telnet サーバとしても動作できます。
折角なので、telnet ポートに無差別アクセスしてくる輩をおちょくるために世界にカワイさを広めるために、telnet サーバとして動作するよう設定してみましょう。
設定は xinetd (OpenRC または systemd から起動) と systemd 単独の二通りを載せました。

※ Gentoo タグを付けていますが、設定ファイル部分は他ディストリビューションでも概ね共通になると思います。

nyancat のインストール

Gentoo では、そのものズバリ、 games-misc/nyancat というパッケージがあります。1

# emerge -tva nyancat

設定 (xinetd)

設定ファイル

user は適当に権限弱目な人を適当に2。nobody とかでも動くかな? (未確認)
Gentoo では games が丁度いいかと。

/etc/xinetd.d/nyancat
service nyancat
{
    socket_type = stream
    protocol    = tcp
    wait        = no
    user        = games
    server      = /usr/games/bin/nyancat
    server_args = -t
    only_from   = 0.0.0.0/0 ::/0
    flags       = IPv6
    disable     = no
}

サービス有効化 (OpenRC から)

# service xinetd restart

xinetd を自動起動するように設定していないなら、次回の起動のためにこれも行っておく。

# rc-update add xinetd

サービス有効化 (systemd から)

# systemctl restart xinetd

xinetd を自動起動するように設定していないなら、次回の起動のためにこれも行っておく。

# systemctl enable xinetd

設定 (systemd 単独)

設定ファイル

待ち受けソケットを記述する nyncat.socket と、起動するサービスを記述する nyancat@.service を記述します。
User は xinetd の user と同様、適当に権限弱目な人を適当に2

/etc/systemd/system/nyancat.socket
[Unit]
Description=Nyan Cat Telnet Server Socket

[Socket]
ListenStream=23
Accept=yes

[Install]
WantedBy=sockets.target
/etc/systemd/system/nyancat@.service
[Unit]
Description=Nyan Cat Telnet Server
After=syslog.target auditd.service

[Service]
ExecStart=-/usr/games/bin/nyancat -t
StandardInput=socket
StandardError=syslog
IgnoreSIGPIPE=no
User=games

サービス有効化

次回以降の自動起動設定も一緒に。

# systemctl daemon-reload
# systemctl start nyancat.socket
# systemctl enable nyancat.socket

おまけ

/etc/service の 23 番ポートの名称 telnetnyancat に書き換えると、 ss コマンドの出力などで、ポート名が "nyancat" に。

# ss -l -t
State      Recv-Q Send-Q            Local Address:Port                             Peer Address:Port
LISTEN     0      128                           *:llmnr                                       *:*
LISTEN     0      10                            *:distcc                                      *:*
LISTEN     0      128                           *:ssh                                         *:*
LISTEN     0      128                          :::llmnr                                      :::*
LISTEN     0      128                          :::ssh                                        :::*
LISTEN     0      128                          :::nyancat                                    :::*    ← コレ

  1. 開発者によると、この他、Arch、Debian、Mandriva、Ubuntu にもパッケージがあるそうです。Linux 以外では、OpenBSD、FreeBSD にも。 

  2. お遊びでしかないのに、rootにしてたらうっかりセキュリティホール突かれてひどい目に、なんてのは嫌ですからね。 

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11