web-dev-qa-db-ja.com

SSHを介したルートアクセス可能なファイルの安全なリモート編集

セキュリティのベストプラクティスに従って、パスワードまたはキーを使用したSSH経由のrootログインを許可しないでください。代わりに、Sudoを使用する必要があります。

ただし、/ etc(Apache、Cron、名前を付けます)にあるような、サーバー構成ファイルのリモート編集にSSH​​(SFTP)を使用する場合は、どのように行う必要がありますか?

  • SFTPを介したルートアクセス可能なファイルのリモート編集は、セキュリティのベストプラクティスと互換性がありますか

  • セキュリティのベストプラクティスに従うように、ファイルのアクセス許可、ユーザーグループなどを設定する方法

現在、パスフレーズで保護された公開鍵認証を使用してrootとしてログインしていますが、root向けのSSHログインを完全に無効にできるように、もっと安全な方法があるかどうかはわかりません。

サーバーはUbuntu12.04です。

8
Mikko Ohtamaa

リモート編集が本当に必要な場合、簡単な解決策の1つは、/ etc(またはその一部)のコピーを別のローカルユーザーに保持し、そこから実際の/ etcに変更をコピーするようにシステムを設定することです。さらに良いのは、git(またはsvn、または選択した他のバージョン管理システム)を使用することです。また、変更の追加ログもあります。

OpenSSHと同じ機能(Match Groupなど)を使用して、SFTPでchrootを設定し、特定のアカウントの通常のログインを無効にするか、指定したIPアドレスからのみそのユーザーにログインを制限することもできます。それについては、確認してください http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/

ただし、/ etcのほとんどの構成ファイルでは、編集するだけでルートアクセスを取得できることに注意してください。ファイルの変更を受け入れる前に構成ファイルの検証をチェックするようにsvn/gitで構成されたシステムを見てきました。これは、安全な構成形式のみを受け入れるために使用できます。

とにかく、問題にはさまざまな解決策があります。これはたった1つのアプローチでした。

2
thejhh

SSHを介してこれらのファイルをSudoで編集しても問題がない理由がわかりません。私はいつもそれをします、例えば.

Sudo nano /etc/Apache2/sites-available/default

GUIエディターを使用する場合は、Xトンネリングを使用できます。 ssh confファイルでそれを許可してから、sshコマンドラインで-Xオプションを使用する必要があります。

ssh -X server.example.com

次に、ファイルファイルをGUIエディタで編集できます。

Sudo gedit /etc/Apache2/sites-available/default
1
Mikkel

Sublime TextのSSHトンネルを介してこれを行う方法の例については、 this SO answer )を参照してください。

0
user72923