CentOS7の運用と保守-Linuxサーバーをより安全にする|ユーザーアカウントの分散管理| GRUB保護|非常に詳細

1.アカウントのセキュリティ管理

①システムアカウントをクリーンアップする

  • ログインしていないユーザーのシェルを/ sbin / nologinまたは/ bin / falshに設定します
usermod -s /sbin/nologin 用户名
  • 長期間使用されていないアカウントをロックする
usermod -L 用户名           //锁定用户账户  
passwd -l 用户名            //锁定用户密码
passwd -S 用户名            //查看用户状态
  • 不要なアカウントを削除する
userdel -r 用户名           //删除用户及其宿主目录
  • アカウントのパスワードをクリアする
passwd -d 用户名            //清空账户密码
  • アカウントファイルをロックするpasswd、shadow
chattr +i /etc/passwd /etc/shadow      //锁定文件
lsattr /etc/passwd /etc/shadow         //查看文件状态
chattr -i /etc/passwd /etc/shadow      //解锁文件

  • rootユーザーのログインを禁止する
    Linuxシステムでは、ログインプログラムは/ etc / securettyファイルを読み取って、rootユーザーがシステムにログインできる端末(セキュア端末)を決定します。
vi /etc/securetty           
#tty5           
//想要不让在哪个终端登陆就在该终端前加注释#
tty6  
  • 通常のユーザーのログインを禁止する
  • ログインプログラムは、/ etc / nologinファイルが存在するかどうかを確認し、存在する場合は、通常のユーザーによるシステムへのログインを拒否します(rootユーザーは制限されません)。
touch /etc/nologin
//创建/etc/nologin文件即禁止普通用户登录
rm -rf /etc/nologin			
//删除该文件即取消登录限制

②パスワードセキュリティ管理

chage -M 日期 用户                //设置用户密码有效期
chage -E xxxx-xx-xx             //设置过期日期
[xxxx为年][xx为月]-[xx为日]

►新しいユーザーのパスワードの有効期間を設定します

vim /etc/login.defs     //修改密码配置文件适用于新建用户

►ユーザーに次回ログイン時にパスワードの変更を強制する

chage -d 0 用户             //强制在下次登陆时更改密码

③過去の記録の漏洩を防ぐ

犯罪者は前回入力した記録を確認するため、ルートパスワードなどの重要な情報が漏洩する可能性があります。

►記録されるコマンドの数を減らす

vi /etc/profile              //编辑全局变量配置文件
export HISTZIZE=200          //将内容插入最后一行


200の出力履歴レコードのみが保持されます

►ログイン時に履歴を自動的にクリーンアップします

vim ~/.bashrc
echo " " > ~/.bash_history     //将内容插入最后一行

④ターミナル自動ログアウト

端末が一定期間アイドル状態になると、自動的にログアウトします

vim /etc/profile              //编辑全局变量配置文件
export TMOUT=600             //将内容插入最后一行

⑤suユーザー切り替えコマンド

suコマンドを使用すると、各ユーザーは他のユーザーのログインパスワードを繰り返し試行する必要があります。rootユーザーの場合、リスクは大きくなります。

  1. suコマンドの使用を許可されたユーザーをホイールグループに追加します
  2. pam_wheel認証モジュールを有効にする
vim /etc/pam.d/su

  • 上記の2行はデフォルト状態です(つまり、最初の行を開いて2行目をコメントします)。この状態では、すべてのユーザーがsuコマンドを使用して切り替えることができます。
  • 注は、2つの行は、すべてのユーザーが使用することができますsuコマンドを、しかし、rootの使用su、他の一般的なユーザー・パスワードへの切り替えが必要とされ、最初の行はコメントがされていない場合にroot使用されsu、通常のユーザーを切り替えるためにパスワードを入力する必要はありません

pam_rootok.soモジュールの主な機能は、uidが0のユーザーを有効にすることです。つまり、rootユーザーはパスワードを入力せずに直接認証を渡すことができます。

  • 2行目をオンにすると、rootユーザーとwheelグループ内のユーザーのみsuコマンドを使用できることを意味します
  • 1行目、2行目が開いているコメントwheelで、グループ内のユーザーのみsuコマンドを使用すると述べrootた場合、ユーザーはsuコマンドも無効になります

►最初の列は、PAM認証モジュールの
タイプを表しますauth:ユーザーのIDを識別し、パスワードの入力を求められたら、それがrootであるかどうかを判別します。
account:システムへのログインが許可されているか、アカウントの有効期限が切れているか、最大ユーザー数に達しているかなど、アカウントのさまざまな属性を確認してください。
password:ユーザー情報を利用して、ユーザーパスワードの変更などのデータを更新します。
session:ログイン接続情報、ユーザーデータの開閉、ファイルシステムのマウントなど、ログイン前とログアウト後に実行するセッション運用管理を定義します。

►2列目はPAM制御フラグを表します
required:成功値を返す必要があることを意味します。戻りに失敗した場合、失敗結果はすぐには返されませんが、同じタイプの次の検証が続行されます。すべてのモジュールの後このタイプのが実行され、再び失敗するために戻ります。
requisiterequired同様ですが、このモジュールが障害を返すと、すぐに障害に戻り、このタイプの障害が失敗したことを示します。
sufficient:このモジュールが成功を返した場合、プログラムに直接成功を返します。つまり、このタイプの成功です。失敗した場合、このタイプの戻り値には影響しません。
④オプション:正常に戻らない場合、検証は通常使用されませんが、情報(一般的に使用されるsessionタイプ)が表示されます。
include:検証中に他のPAM設定ファイルを呼び出すことを意味します。たとえば、多くのアプリケーション/etc/pam.d/system-authは、構成アイテムを1つずつ書き直す必要なしに、完全な呼び出し(主にユーザーのログインシステムの認証を担当)による認証実装します。

►3番目の列は、デフォルトでディレクトリにPAMあるモジュールを表し/lib64/security/ます。デフォルトのパスにない場合は、絶対パスを入力します。

►4番目の列PAMはモジュールのパラメーターを表しており、使用するモジュールに応じて追加する必要があります。

►ユーザーによるユーザー操作の切り替えを制限する

vim /etc/pam.d/su
#auth    required    pam_wheel.so use_uid
//去除此段的#


►ユーザーにユーザー操作を切り替える権限を与える

gpasswd -a fox wheel     //将用户“fox”加入到whell组中

2、PAMセキュリティ認証

►これLinux-PAMlinuxプラグ可能な認証モジュールであり、カスタマイズ可能で動的にロード可能な共有ライブラリのセットであるため、ローカルシステム管理者はプログラムの認証方法を自由に選択できます。

構成ファイルをPAM使用して/etc/pam.d/、プログラムの認証を管理します。アプリケーションは、適切なPAM構成ファイルを呼び出して/lib64/security、動的ロードの認証の形式で配置されたローカル認証モジュールを呼び出しますたとえば、suコマンドを使用すると、システムはrootユーザーのパスワードの入力を求めます。これはsuPAMモジュールを呼び出すことによってコマンドが実装される方法です。

su操作レコードの
セキュリティログファイルを表示します。/var/log/secure

cat /var/log/secure

①PAM認証の原則

►認証はPAM通常、Service(サービス)→ PAM(構成ファイル)→ pam_*.so(認証モジュール)の順序に従います。

PAM認証では、最初にアプリケーションのサービスを決定してから、適切なPAM構成ファイル(/etc/pam.d下にある)、最後の呼び出し認証モジュール(にある/lib64/security/)をロードする必要があります。

►ユーザーがサーバーにアクセスすると、サーバーの特定のサービスプログラムが、認証のためにユーザーの要求をPAMモジュールに送信します。
プログラムがPAM認証をサポートするかどうかを確認したい場合は、PAMモジュールに対応するさまざまなアプリケーションが異なりls、コマンドを表示するために使用できます/etc/pam.d/

ls /etc/pam.d/                    //PAM配置文件

ls /lib64/security/             //认证模块

3、アカウント権限管理

vim /etc/sudoers         //默认为只读,保存方式:wq!
或
visudo

①シングルユーザー権限


►フォーマット1:ユーザーホスト名=コマンドプログラムリスト►フォーマット2 :(ユーザー)ホスト名=コマンドプログラムリスト

fox foxhome=/sbin/ifconfig  //使fox拥有ifconfig权限
fox foxhome=!/sbin/reboot   //使fox没有reboot权限
fox foxhome=/sbin/*         //使fox拥有所有sbin权限
fox foxhome=/sbin/reboot,poweroff //加逗号自定义

►ユーザーがマシンを切り替えることを禁止する

②エイリアスグループの権限

►ユーザー
エイリアスUser_Alias►ホスト
エイリアスHost_Alias►コマンドエイリアスCmnd_Alias

User_Alias USERS=fox,cat 
//用户的别名users包含fox和cat
Host_Alias HOSTS=foxhome,cathome   
//主机别名hosts包括:foxhome和cathome
Cmnd_Alias CMNDS=/sbin/reboot,poweroff
//可执行的命令包括关机和重启
USERS HOSTS=CMNDS        
//相当于:用户组   主机组  =  命令程序列表

4、GRUB保護

犯罪者はBIOSインターフェースに入り、電源のオン/オフ中にGRUBの内容を改ざんし、最終的にサーバーを正常に起動できなくなります。

①GRUBパスワードを設定する

►grub2-mkpasswd-pbkdf2を使用してキーを生成します

grub2-mkpasswd-pbkdf2

grubから最後までが重要です。

ログインユーザーを作成する前に、保存することを忘れないでください。バックアップすることを忘れないでください。

//对重要文件进行备份
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

vim /etc/grub.d/00_header

おすすめ

転載: blog.csdn.net/qq_42427971/article/details/113571645