シェルスクリプト(myscript
)は、cron
によってrootとして実行されます。構成ファイルからIPアドレスを読み取り、iptables
を更新して、受信接続のIPをホワイトリストに登録します。
myscript
は、正規表現(正規表現)を使用して、構成ファイルを解析し、行の先頭にあるIPアドレスを探します。 IPアドレスの構造と長さに一致しないものはすべて無視されるため、バッファオーバーフローまたは特権昇格の明らかなリスクはありません。
運用上の理由から、この構成ファイルは、Sudo
への認証ができない旧式のGUI SFTPプログラムからSFTP経由でのみアクセスできる特定の信頼できる人物が更新できる必要があります。 (CyberDuck、FileZilla、WinSCPを考えてください。)この人はマシン上で他に何もすべきではありません。明らかに、非rootアカウントを介してログインする必要があります。彼らのアカウントをsftp-user
と呼びましょう。
ほとんどのGNU/Linux構成ファイルのように、構成ファイルにroot:root
が所有者およびグループとして含まれている場合、sftp-user
がそれらを編集する唯一の方法は、sftp-user
アカウントにパスワードがない場合Sudo
特権。これは危険です。アカウントに必要以上の力を与えます。したがって、リスクの少ない代替手段が必要です。
私の質問は次のとおりです。これは、その構成ファイルに必要なアクセス許可の最もリスクの少ないセットであり、その理由は何ですか?
permissions owner group
----rw---- root sftp-user
-rw------- sftp-user root
-rw------- sftp-user sftp-user
David に応じて編集 answer :はい、通常の状況では、上記の権限は同等です。 sftp-user
グループの唯一のメンバーがsftp-user
であるとすると、それぞれのメンバーはsftp-user
とroot
への読み取り/書き込みアクセスのみを許可します。しかし、異常な状況についてはどうでしょう。構成の1つが他の構成よりもリスクが少ないのでしょうか。例えば。ルート所有者と非ルートグループ(またはその逆)を混在させることは悪い考えであるなど、ファイルの所有権のみによる特権昇格の事例はありますか?
sftp-user
グループの唯一のメンバーがsftp-user
であるとすると、リストしたすべての権限は同等になります。ファイルを読み書きできるユーザーはsftp-user
とroot
だけです。
これにアクセスできる複数の人が必要になる場合に備えて、個人的にはこのための「役割グループ」を作成することを選択します(おそらく、ファイアウォール管理者の場合はfwadmins
)。次に、権限を0660
として所有者root
およびグループfwadmins
に設定します。
-rw-rw---- root fwadmins
root
の許可ビットも明示的に設定することをお勧めします。はい、root
canどちらの方法でも編集できますが、明示するのは少しすっきりしています。
Rootとしてmyscript
を実行することは問題です。ルート権限はiptablesに必要ですが、これは権限分離を介して実装できます。現状では、設定管理者がrootアクセス権を取得する大きなリスクがあります。
それが私なら、所有者として-rw-r--r-- sftp-userを使用し、実行時ユーザー(rootではない)へのアクセスを提供するグループ/その他の特権を使用します