Linux 系统安全 -------- 原创 , 连载 2
第二部分 : 进程权限限制
1. 配置启用 selinux
说明 : http://baike.baidu.com/view/487687.htm
推荐 : 鸟哥的linux 私房菜
启用方法:
setup -> 防火墙配置 -> selinux : 启用 . 强制
注意: 这一步将是 当前的 iptables 规则清零 , 请注意保存规则.
常用命令:
# 启用 selinux setenforce 1 # 暂停 selinux setenforce 0 # 查询 目前 所有 selinux 布林值 getsebool -a # 查询 目前 httpd 相关 selinux 布林值 getsebool -a |grep httpd # 置 apache 可以连接网络 setsebool -P httpd_can_network_connect on # 取 selinux 上下文列表 semanage fcontext -l # 取 httpd 相关 selinux 上下文列表 semanage fcontext -l |grep httpd
常见问题:
1). apache 无法连接数据库
+ 检查 apache 连接数据库的变量是否为 on
getsebool httpd_can_network_connect_db
getsebool httpd_can_network_connect
getsebool httpd_can_network_relay
+ 如果还不行可以查看 selinux 日志 进行排查.
2). mysql 无法启动
+ 检查 mysql 进程的 角色权限 .
+ 检查 mysql 数据库 日志 pid-file 文件安全上下文 .
+ 检查 mysql.sock (unix socket) 文件安全上下文.
3). vsftpd 无法进入 home_dir
+ setsebool -P ftp_home_dir on
2. 巧用 .htaccess 文件 防止注入
RewriteCond %{QUERY_STRING} ^.*(load_file\(|select%20|select+|union+|union%20|wwwroot|spider|home|enphp|phpinfo|eval).*$ [NC] RewriteRule .*$ /404.htm [L,R=404]
3. apache 配置目录访问权限
+ 存放 cache 的文件夹
+ 存放模板的文件夹
+ 存放 class.php 的文件夹
+ 其他没有直接外链的 php 程序文件夹
本人偷懒 所以写在了 .htaccess 里面 ....但是效率上估计要低..
RewriteRule cache/.* /404.htm [L,R=404] RewriteRule templates/.* /404.htm [L,R=404] RewriteRule static/.* /404.htm [L,R=404] RewriteRule api/.* /404.htm [L,R=404] RewriteRule include/.* /404.htm [L,R=404] RewriteRule images/.*\.php.* /404.htm [L,R=404] RewriteRule uploadfile/.*\.php.* /404.htm [L,R=404]