自分をロックせずにリモートでポートを閉じるにはどうすればよいですか?

自分をロックせずにリモートでポートを閉じるにはどうすればよいですか?

他の大陸のリモートロケーションにUbuntu 11.04サーバーがあるため、物理的にアクセスできません。私はssh(and)を通してのみ相互作用しscp、そのようにだけ相互作用しようとします。

セキュリティ上の理由からssh

オンラインで指示を見つけましたが、理解があいまいでした。これまでに私が収集したのは、「iptables」を「更新」し、いくつかのファイルを編集して/etc/hosts(おそらく?)マシンを再起動する必要があるということです。

しかし、明らかにこの作業には非常に注意する必要があります。間違えると、誤ってSSHポートを閉じてサーバーにアクセスできなくなる可能性があります。

これを行う前に、私は完璧なステップを設定したかったのです。

では、アクセス権を維持しながらすべてのポートをどのように閉じることができますか?

ボーナス質問:この操作中にポートを22から非標準ポートに変更する必要がありますかssh?本当に違いはありますか?

ベストアンサー1

まず、iptables ルールを更新する小さなスクリプトを作成します。

#!/bin/bash
echo "Stopping firewall and allowing everyone..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

(おそらくコマンド「nat」と「mangle」は必要ありません。)名前を「flush.sh」と指定し、スクリプトを「/root」ディレクトリに配置します。 「chmod +xlush.sh」を覚えておいてください。

無害なiptablesルールを追加してスクリプトをテストします。

iptables -A INPUT -p tcp -j ACCEPT

次に、コマンドラインからスクリプトを実行します。追加したルールが消えたことを確認してください。

10分ごとに実行されるように、ルートのcrontabにスクリプトを追加します。

*/10 * * * * /root/flush.sh

スクリプトをテストするために無害なiptablesルールを追加します。 10分待ってからcronジョブが正常に実行され、ルールが削除されたことを確認してください。

この時点で、10分ごとに実行されるflash.shセーフティネットを使用してiptablesルールセットをデバッグできる必要があります。ルールのデバッグが完了したら、lush.shスクリプトを実行するcrontabの行をコメントアウトします。

ルールを配置する場所は、分布によって多少異なります。 Ubuntuの場合は、以下を確認してください。このリンク。最後に、ファイアウォールルールを恒久的に設定するための2つのオプション(/etc/network/interfacesとNetwork Managerを使用して設定)が表示されます。サーバーを実行しているので、電子オプションが良いでしょう。

自分をロックしない限り、iptablesルールを変更したり更新するために再起動する必要はありません。

パスワードではなく公開鍵認証を使用してルートのみログインできるようにsshdを設定することをお勧めします。

どこからでもログインできるオフィスサーバーなど、静的IPアドレスを持つセキュリティゲートウェイがある場合は、そのゲートウェイのSSHのみを許可するようにリモートサーバーにiptablesルールを設定することをお勧めします。

SSHポートを22から別のポートに変更することは、ほとんどのポートスキャナが新しいSSHポートをすばやく見つけるため、非常に限られています。

おすすめ記事