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]
 

相关推荐