インターネット経由のSSHのiptableルール

インターネット経由のSSHのiptableルール

サーバーabc.example.comとリモートデスクトップがありますzzz.example.com。カスタムポート(6789など)を介してSSHを使用しています。ファイアウォールがオフの場合、サーバーに正常に接続できます。ただし、ファイアウォールを有効にすると、すべての役に立ちません。

また、セキュリティ上の理由からabc.example.comzzz.example.com

以下は、サーバーのiptablesに追加したルールです。

iptables -A INPUT -s zzz.example.com -m state --state NEW,ESTABLISHED -p tcp --dport 6789 -j ACCEPT

答え1

ESTABLISHED接続でトラフィックを有効にするルールがない場合は、ホストからリモートシステムへのトラフィックを許可するルールが必要です。通常、最初のルールは次のとおりです。

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

その後、次の規則を使用してアクセスを有効にできます。

iptables -A INPUT -s zzz.example.com -p tcp --dport 6789 -j ACCEPT

または、たとえばファイアウォールビルダーを使用して、必要に応じてポートを数秒間アクティブにすることもshorewallできます。port knocking

SSHデーモンがそれをサポートしている場合は、SSHファイルへのアクセスをtcp_wrapers制限できます。ファイアウォールを変更してもリモート接続が確立されたら、この機能を使用して通知を送信することをお勧めします。次のルールは、複数の国のドメインをブロックし、成功するたびに電子メールを送信します。/etc/hosts.allow/etc/hosts.deny

sshd :          ALL \
            EXCEPT .ar .au .br .by .cl .co .cz .do .eg .gt \
                .id .il .in .jp .ma .mx .nl .pe .pk .pl .pt \
                .ro .rs .ru .sa .sg .tr .tw .ua .vn .za \
                .ae .at .bg .gh .hr .hu .ke .kz .lt .md \
                .my .no .sk .uy .ve : \
            spawn (/bin/echo "SSH connection to %N from %n[%a] allowed" | \
                /usr/bin/mailx -s "SSH Allowed" [email protected])

編集:ルールにドメイン名を使用することはお勧めできません。

  • ルールをロードした後は、DNSルックアップを使用できない可能性があります。 (名前はIPアドレスに変換されます。)
  • 静的IPアドレスを持たないクライアントは新しいアドレスを取得できますが、DNSキャッシュのため使用できません。古いIPアドレスには引き続きアクセスできますが、新しいアドレスにはアクセスできません。 localhostエントリを持つ静的IPアドレスは非常に安定して動作します。

動的アドレスがある場合は、比較的広い範囲のIPアドレスからアクセスを保護するか、ポートバンピングを使用してください。あるいは、同様のプログラムを使用して、fail2banSSHサービスが検索されるアドレスをロックすることもできます。 tcpwrappers上記のように接続できるアドレスを制限し、追加のロギングを追加するために使用できます。頻繁に接続しない場合は、成功と失敗の試みを記録できます。

関連情報