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://azwzsj.com/article/jepooi.html