nyancat というソフトがあります。コンソールで実行するとにゃんこが走り出してほっこりできます。そして、このソフト、何と telnet サーバとしても動作できます。
折角なので、telnet ポートに無差別アクセスしてくる輩をおちょくるために世界にカワイさを広めるために、telnet サーバとして動作するよう設定してみましょう。
設定は xinetd (OpenRC または systemd から起動) と systemd 単独の二通りを載せました。
※ Gentoo タグを付けていますが、設定ファイル部分は他ディストリビューションでも概ね共通になると思います。
nyancat のインストール
Gentoo では、そのものズバリ、 games-misc/nyancat というパッケージがあります。1
# emerge -tva nyancat
設定 (xinetd)
設定ファイル
user
は適当に権限弱目な人を適当に2。nobody とかでも動くかな? (未確認)
Gentoo では games が丁度いいかと。
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。
[Unit]
Description=Nyan Cat Telnet Server Socket
[Socket]
ListenStream=23
Accept=yes
[Install]
WantedBy=sockets.target
[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 番ポートの名称 telnet
を nyancat
に書き換えると、 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 :::* ← コレ