私のサーバーでTelnetをブロックしようとしましたが失敗しました。フィルタテーブルの入力チェーンに次のファイアウォールルールを追加しました。
INPUT CHAIN(filter table):
<some other firewall rules>
iptables -A INPUT -p tcp --dport 23 -j DROP
iptables -A INPUT -i eth0.2 -j DROP
に基づいてこのスレッドUbuntuフォーラムで。しかし、私のサーバーでまだTelnetを開くことができることがわかりました。上記の質問へのリンクも用意しましたが、何の助けも受けませんでした。ルールの追加中にどこで間違っているかを教えてください。
ベストアンサー1
まず、逆に考えなければなりません。つまり、サーバーのファイアウォールをブロックするように構成する必要があります。みんなポートとは別にコンピュータで実行するサービスです。たとえば、SSH経由でアクセスする必要があるHTTP / HTTPS Webサーバーの場合、関連するiptables構成は次のとおりです。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
次に、コンピュータでTelnetサーバーを実行しないでください。これは暗号化されず安全でないプロトコルです。代わりにSSHを設定してください。
これは私の推論にすぎませんが、外部ユーザーがTelnetを使用してコンピュータのポートを取得するのを防ぐことができます。
telnet yourhost 25
実行中のSMTPサーバーがあるかどうかを検出します。この場合、ブロックできません。サーバーで実行されているサービスポートを除いて、すべての着信接続をブロックするようにファイアウォールを構成します。