成都网站建设设计

将想法与焦点和您一起共享

web安全

到处浏览所有apache用户可以访问的文件和目录

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的叶集网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

锁定php模块可以访问的范围(笼环境)

DocumentRoot /share/1310

ServerName 10.1.1.21

ErrorLog logs/10.1.1.21-error_log

CustomLog logs/10.1.1.21-access_log common

Options Indexes FollowSymLinks

AllowOverride All

php_admin_value open_basedir "/share/1310:/var/lib/php/session:/tmp"

可以执行系统指令

# vim /etc/php.ini

disable_functions = exec,shell_exec,system,passthru,popen

可以删除apache用户可以删除的文件,典型的就是可以删除网站目录下的文件

可以修改网站页面

httpd进程有效身份是apache

假设网站目录 /var/www/html/ root:root 755 <--保证apache不能随意删除目录下的文件

/var/www/html/index.php root:root 644

/var/www/html/upload/ apache:apache 755 <---专门用于保存用户上传的文件

解压所有代码到/var/www/html/

# chown root:root -R /var/www/html

# chmod 755 /var/www/html

# chown apache:apache -R /var/www/html/upload/

# chmod 755 /var/www/html/upload/

通过网站php代码获知数据库的用户名和密码

为了降低网站被***之后数据库帐号泄漏的风险,应该:一个网站(应用)独立使用一个库和一个帐号

反向连接,主动把shell连接到***者的终端

代码背后编译个perl或者c写的程序,然后执行这个程序,让程序主动连接***者的机器

解决:

禁止普通用户可以编译程序并且执行程序

线上的服务器,一般都不会安装开发工具,编译工具。如果非得要安装,那么chmod 700 /usr/bin/gcc

在防火墙里记录下服务器主动向外连接的请求到日志中。

# iptables -t filter -A OUTPUT -m state --state NEW -j LOG --log-prefix "hacker "

==========================================================

SQL注入

ddos

arp

======================================================

1、编写策略,增加对一些自定义目录的保护

# vim /etc/tripwire/twpol.txt

(

rulename = "webroot",

severity = $(SIG_HI)

)

{

/share/1310 -> $(SEC_CRIT) ;

!/share/1310/ula_04.txt ;

}

2、第一次使用,必须建立密钥对

密钥对用来加密策略、配置文件、数据库文件、检查报告

# tripwire-setup-keyfiles

可以把原来的明文的配置文件和策略文件删除掉,免得泄密

# rm -rf /etc/tripwire/twcfg.txt /etc/tripwire/twpol.txt

3、初始化

数次使用,需要初始,扫描策略中要求保护的文件的属性,并且记录到数据文件中

# tripwire --init

......

Wrote database file: /var/lib/tripwire/www.upl.com.twd <---数据文件

The database was successfully generated.

测试:

故意修改一些被保护的文件,确认工具是否能够发现?

# tripwire --check 检测策略中所有保护的文件

会输出扫描的概要,详细报告存在以下路径:

/var/lib/tripwire/report/www.upl.com-20131021-160519.twr

查看详细报告文件

# twprint --print-report --twrfile /var/lib/tripwire/report/www.upl.com-20131021-160519.twr

只去检查指定策略保护的文件

# tripwire --check --rule-name "webroot"

假设报告中出现变化的文件,是我们管理员和维护人员由于正常的操作带来的修改,那么应该把这些更改后结果更新到数据文件中

# LANG=C tripwire --update --twrfile /var/lib/tripwire/report/www.upl.com-20131021-160519.twr

.....

Remove the "x" from the adjacent box to prevent updating the database

with the new values for this object.

Removed:

[x] "/share/1310/secret.txt.dersa" 《--保留前面的x,这些文件的新属性就会更新到数据文件中,下次扫描就会按照新属性来对比(忽略这次发现的更改)

[x] "/share/1310/secret.txt.sign"

[x] "/share/1310/secret.txt.rsa"

[x] "/share/1310/secret.txt"

Modified:

[x] "/share/1310"

[x] "/share/1310/ula_03.txt"

保存退出: wq!

把当前正在使用的加密的策略解密后输出成文明的文件

# twadmin -m p > /etc/tripwire/twpol.txt

编辑这个文明的策略文件,更新了策略之后,就重新加密

# twadmin -m P /etc/tripwire/twpol.txt

加密之后,要及时把明文的策略文件删除掉

# rm -rf /etc/tripwire/twpol.txt

安全相关的综合练习:

部署rpm包版本的lamp环境,并且安装phpwind论坛,网站代码安装在自定义的目录/webdata/wwwroot

要求最终要打开selinux的enforcing模式

要求打开iptables,仅仅对外开放80端口和22端口

不允许root通过ssh登录系统。

设定一个普通帐号,它可以通过sudo执行所有的管理操作

使用pam_tally2实现连续三次登录失败就锁定该帐号30分钟

添加防火墙,把所有主动对方连接请求都记录到日志中(这个题目可以最后才做,或者仅仅知道如何编写iptables规则就可以了,不用实际完成,因为你们的机器都经常主动访问老师的笔记)

使用tripwire,并增加对网站phpwind的文件监控,注意,哪些目录无需监控

严格设定网站根目录的权限,必须做到就算被***了,也无法删除、修改网站的核心代码文件(首页等)

必须废掉webshell的常见功能(跨目录,执行系统命令,编译程序)


文章标题:web安全
文章起源:http://chengdu.cdxwcx.cn/article/jepooi.html