iptablesコマンドを使用してTelnetをブロックする方法

iptablesコマンドを使用してTelnetをブロックする方法

私のサーバーで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サーバーがあるかどうかを検出します。この場合、ブロックできません。サーバーで実行されているサービスポートを除いて、すべての着信接続をブロックするようにファイアウォールを構成します。

おすすめ記事