サーバーabc.example.com
とリモートデスクトップがありますzzz.example.com
。カスタムポート(6789など)を介してSSHを使用しています。ファイアウォールがオフの場合、サーバーに正常に接続できます。ただし、ファイアウォールを有効にすると、すべての役に立ちません。
また、セキュリティ上の理由からabc.example.com
。zzz.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アドレスからアクセスを保護するか、ポートバンピングを使用してください。あるいは、同様のプログラムを使用して、fail2ban
SSHサービスが検索されるアドレスをロックすることもできます。 tcpwrappers
上記のように接続できるアドレスを制限し、追加のロギングを追加するために使用できます。頻繁に接続しない場合は、成功と失敗の試みを記録できます。