はじめに
telnetは汎用的な双方向通信である。サーバーとクライアントの間でテキストベースの通信を行うことができる。非常に単純な通信であり暗号化もされておらず、セキュリティ上問題があるため現在は非推奨となり、sshに置き換えられている。実際、macOSXにおいても、High Sierraからtelnetやftpはなくなり、使用する場合はhomebrewやmacportsでinetutilsをインストールしなければならない。しかし、製造業など現場によってはtelnetでないといけないようなケースもままあり、完全には駆逐されきっていないのが実際である。
今回、現場で利用しているtelnetサーバに対し、特定の条件が揃うとうまく接続できないケースがあった。今回、そのケースを再現および確認するためのメモを残す。
telnetサーバを立てるまで
環境は、CentOS7系とする。
# telnetクライアントおよびtelnetサーバの確認
[root@localhost ~]# yum list installed | grep telnet
# telnetクライアントおよびtelnetサーバのインストール
[root@localhost ~]# yum -y install telnet telnet-server
# 自動起動の有効化
[root@localhost ~]# systemctl enable telnet.socket
# 自動起動の確認
[root@localhost ~]# systemctl list-unit-files | grep telnet.socket
telnet.socket enabled
# telnet起動
[root@localhost ~]# systemctl start telnet.socket
# Firewall設定。アクセスを許可するサブネットは適宜環境に合わせて指定する。
[root@localhost ~]# firewall-cmd --permanent --zone=public --add-rich-rule "rule family="ipv4" source address="192.168.179.0/24" service name="telnet" log prefix="telnet" level="info" limit value="1/m" accept"
# Firewall設定反映
[root@localhost ~]# firewall-cmd --reload
これでtelnetによる接続が可能となる。