web-dev-qa-db-ja.com

SSHおよびiptablesの構成時にロックアウトされないようにする

IptablesまたはSSH over SSHを構成していて、データセンターが数千キロも離れている(そして誰かにKVMを接続する)のは難しい)場合、自分をロックしないようにするための標準的な方法は何ですかでる?

7
user36976

同様の質問がありました ロックアウトされることなくSSH経由でiptablesを設定しますか?

私は前の質問で与えたヒントをここに投稿します:

1)古いiptables構成ファイルをバックアップします。

cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

2)新しい設定を試す前に、次のコマンドを実行して、新しい設定の何かがロックアウトした場合に接続できることを確認します(基本的に、5分後に古いルールが置き換えられます)。

echo "mv /etc/sysconfig/iptables.bak /etc/sysconfig/iptables && service iptables restart" | at now + 5min

3)これで、iptablesルールを安全に変更できます。問題が発生した場合は、5分以内に再接続できます。

18
shardan

SSH構成を変更する必要がある場合(例:/etc/ssh/sshd_config:セッションを別の端末で開いたままにします。これは通常は開いたままですが、もちろん、SSH構成に関する@shardanの投稿と同様のトリックを使用できます。

1
Sven

アクセス権があることを確認する別の方法は、リモートサーバーでsshの-Rフラグを使用することです。

/usr/bin/ssh -R 55555:localhost:22 [email protected]

Your.otherserver.comから、次を使用してリモートマシンにログインできます。

ssh localhost -p 55555

5分以上ロックアウトされないようにするには、リモートサーバーで次のシェルスクリプトを実行するcronジョブを実行します。

#! /bin/sh 
GREPSSH=$(ps ax|grep serverkey|awk -F ' ' '{print $1}')
if [ "$GREPSSH" -eq NULL ]
then
echo "no sshlink \n"
/usr/bin/ssh -nNT -i ~/.ssh/serverkey -R 55555:localhost:22 -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes [email protected] &
else echo $GREPSSH
exit 1
fi

このスクリプト:

  • アウトバウンドsshが実行されているかどうかを確認します
  • そうでない場合は、さまざまなオプション(-nNTおよび-o)と、リモートサーバーへのポート転送用の-Rで起動します。
  • ssh IDキー(-i)を使用して、your.otherserver.comへのパスワードなしでログインできるようにします

これはリモートマシンに戻るための便利なツールであることがわかりました:〜)

0
fcbsd