他の大陸のリモートロケーションに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ポートをすばやく見つけるため、非常に限られています。