システム監査
監査とは何ですか
- システムで発生する可能性がログ・レコード・イベントを生成するように事前設定されたルールに基づいて
- 監査は、システムのための追加のセキュリティを提供しませんが、レコードのセキュリティポリシー違反とそれに対応する動作を検出してます
監査ログには、内容を記録することができます:
- 日付やイベント、イベントの結果
- ユーザー出発イベント
- 任意の認証メカニズムを使用して、sshなど、記録することができます
- 重要なファイルやその他のデータの動作を変更
監査ケース:
- モニターのファイルアクセス
- コール監視システム
- ユーザーによるレコードのコマンド実行
- 監査は、ネットワークアクセスの挙動を監視することができます
ausearch
条件監査ログに従ってフィルタリングaureport
、監査レポートを生成します
yum -y install audit
systemctl start auditd
systemctl enable auditd
ファイル | 説明 |
---|---|
/var/log/audit/audit.log |
ログファイル |
/etc/audit/auditd.conf |
プロファイル |
/etc/audit/rules.d/audit.rules |
ルールファイル |
auditctl -h # 查看帮助
auditctl -l # 查看规则
auditctl -s # 查看状态
auditctl -D # 删除所有规则
1)一時的なルールの定義を
定義ファイル・システムの規則、構文:
auditctl -w path -p permission -k key_name
- 監査対象のファイルまたはディレクトリへのパス
- (:ファイルまたはディレクトリの属性変更)権限がR / W / X /てもよいです
- key_nameはルールは、特定のログエントリを生成するものを区別するために、簡単なオプションです。
例:
auditctl -w /etc/passwd -p wa -k passwd_change
auditctl -w /usr/sbin/fdisk -p x -k disk_part
auditctl -w /etc -p w -k etc_change
永久的なルールの2)定義
vim /etc/audit/rules.d/audit.rules # 规则文件
-w /etc/passwd -p wa -k passwd_change # 写到文件末尾
-w /usr/sbin/fdisk -p x -k disk_part
-w /etc -p w -k etc_change
- ログの照会
ausearch -k KEY_NAME
ausearch -k passwd_change
ausearch -k disk_part
ausearch -k etc_change
查询结果解析:
1.执行的命令是什么 comm="fdisk" exe="/usr/sbin/fdisk"
2.谁执行的 uid=0
3.执行成功了吗 success=yes
4.什么时间执行的 time->Sat Feb 8 22:20:37 2020
Webサービスのセキュリティ
1)nginxの:
1.削除不要なモジュール
./configure --without-http_autoindex_module # 取消默认模块的安装
./configure --help # 查看默认安装的模块
/usr/local/nginx/sbin/nginx -V # 查看编译时的选项
2.変更バージョン情報
vim /nginx-1.12.2/src/http/ngx_http_header_filter_module.c
49 static u_char ngx_http_server_string[] = "Server: tomcat" CRLF;
50 static u_char ngx_http_server_full_string[] = "Server: tomcat" NGINX_VER CRL F;
51 static u_char ngx_http_server_build_string[] = "Server: tomcat" NGINX_VER_BU ILD CRLF;
重新编译安装 ./configure && make && make install
vim /usr/local/nginx/conf/nginx.conf
38 server_tokens off;
curl -i IP # 测试
3.リミット同時
ngx_http_limit_req_moduleモジュールは、(デフォルトでインストール)攻撃DDOSのリスクを減らすことができます
vim /usr/local/nginx/conf/nginx. conf
http{
....
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; #
server {
listen 80;
server name localhost;
limit_req zone=one burst=5;
....
- 语法:limit_req_zoneキーゾーン=名:サイズ・レート=率;
- 共有メモリ空間のいずれかのクライアントIP名に格納されている情報は、IPの、10M預金8万ホストの10M 1M 8000のための情報を格納することができます
- のみ毎秒の要求、ホッパーに過剰を受け付け
- 5オーバーのエラー漏斗
4.違法な要求が拒否されました
- 一般的なHTTPリクエストメソッド
HTTPは多くの方法は、実用的なアプリケーションは、一般的にのみ必要とされる定義get
とpost
リクエストメソッド | 機能説明 |
---|---|
取得する | リクエストページ情報が指定され、エンティティボディを返します。 |
頭 | 同様の要求を取得するが、応答はヘッダを得るために、特定のコンテンツに返されていません |
役職 | 処理要求指定されたリソースにデータを送信する(例えば、ファイル又はアップロード提出形態) |
DELETE | 指定されたページを削除するには、サーバーを要求 |
プット | サーバー固有の場所にアップロード情報 |
vim /usr/local/nginx/conf/nginx.conf
server {
if ($request_method !~ ^(GET|POST)$) { # 除GET和POST以外的访问请求返回错误码444
return 444;
}
....
/usr/local/nginx/sbin/nginx -s reload
テスト:
curl -i -X GET 192.168.4.51 # 正常访问
curl -i -X HEAD 192.168.4.51 # 访问不到
バッファオーバーフローを防ぐために5
- クライアントの要求をオーバーフロー防止
- ドスは、効果的な攻撃のリスクを減らします
vim /usr/local/nginx/conf/nginx.conf
http{
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 16k;
large_client_header_buffers 4 4k;
....
}
データベース・セキュリティ(mariadb)
] yum -y install mariadb mariadb-server
] systemctl start mariadb
] mysqladmin -uroot -p password 123456 # 设置密码,直接回车
] mysql_secure_installation # 安全优化脚本,根据提示输入选项
输入旧密码,配置新root密码
Remove anonymous users?(删除匿名账户)
Disallow root login remotely?(禁止root远程登录)
Remove test database(删除测试数据库)
Reload privilege(刷新权限)