本文目錄一覽:
- 1、iptables防攻擊
- 2、有人用軟體反覆向我的網站post請求,php程序如防止來自同一IP的攻擊?
- 3、linux系統下怎麼預防php木馬
- 4、配置iptables防火牆的方法(十萬火急)跪求
- 5、linux系統怎麼防止DDOS攻擊
iptables防攻擊
如果處於半開放狀態的連接綁定伺服器上的資源,則可能通過向伺服器大量發送SYN消息來佔用所有這些資源。Syn flood是常見的攻擊,可以通過以下iptables規則進行阻擋:
所有進入的連接是允許的,直到達到極限:
-limit 1/s:以秒為單位的最大平均匹配率
-limit-burst 3:要匹配的包的最大初始數量
舉例1:限制 ssh連接數
假設您需要限制到ssh伺服器(埠22)的傳入連接在10分鐘內不超過10個連接:
舉例2:防範DoS攻擊
上面的iptables規則將幫助您防止拒絕服務(DoS)攻擊您的web伺服器。
在上面的例子中:
-m limit:它使用limit iptables擴展名
–limit 25/minute:這限制了每分鐘最多25個連接。根據您的具體需求更改此值
-limit-burst 100:這個值表示只有當連接總數達到了limit-burst級別時才會執行limit/min。
舉例3:限制每個IP /主機的SSH連接
每個客戶端主機只允許3個ssh連接:
舉例4:限制每個IP /主機的HTTP連接
如果IP在100秒內嘗試了10次以上的80埠連接(將規則添加到iptables shell腳本中),下面的示例將刪除傳入的連接
如何測試防火牆規則
使用下面的shell腳本連接到202.1.2.3託管的web伺服器:
nc命令是一個功能強大的網路工具,通過它不僅可以探測埠,還能作為客戶端連接服務。
有人用軟體反覆向我的網站post請求,php程序如防止來自同一IP的攻擊?
無論使用PHP還是Apache(.htaccess)的手段,這個IP的請求還是被徹底執行了。CPU還是被佔用了,雖然可能會佔用的稍微少一點。
所以通過伺服器設置,比如在Linux使用iptables防火牆。或者使用其他的前置的硬體防火牆。過濾這種同一IP在短時間內的不間斷訪問。這才是有效的手段。
linux系統下怎麼預防php木馬
現在我給大家講一下在linux下如何預防php木馬。1.首先修改httpd.conf,如果你只允許你的php腳本程序在web目錄里操作,可以修改httpd.conf文件限制php的操作路徑。比如你的web目錄是/usr/local/apache/htdocs,那麼在httpd.conf里加上這麼幾行:php_admin_valueopen_basedir /usr/local/apache/htdocs這樣,如果腳本要讀取/usr/local/apache/htdocs以外的文件將不會被允許,如果錯誤顯示打開的話會提示這樣的錯誤:Warning:open_basedirrestrictionineffect.Fileisinwrongdirectoryin/usr/local/apache/htdocs/open.phponline4等等。2、防止php木馬執行webshell打開safe_mode,在php.ini中設置disable_functions=passthru,exec,shell_exec,system二者選一即可,也可都選3、防止php木馬讀寫文件目錄在php.ini中的disable_functions=passthru,exec,shell_exec,system後面加上php處理文件的函數主要有fopen,mkdir,rmdir,chmod,unlink,dirfopen,fread,fclose,fwrite,file_exists
配置iptables防火牆的方法(十萬火急)跪求
Linux系統里配置iptables代理防火牆視頻全過程
配置iptables靜態防火牆
1、初始化防火牆
在shell提示符#下鍵入:
iptables -F
iptables -X
iptables -Z
利用iptables配置您自己的防火牆之前,首先要清除任何以前配置的規則。
2、配置規則:
2.1、配置默認策略
iptables -P INPUT DROP
這一條命令將阻止任何從網路進入電腦的數據包丟棄(drop)。此時,假如您ping 127.0.0.1,您就會發現屏幕一直停在那裡,因為ping收不到任何應答數據包。
2.2、創建用戶自定義的鏈
iptables -N MYINPUT
iptables -N MYDROPLOG
2.3 、添加規則
iptables -A INPUT -j MYINPUT
這條規則將任何進入電腦的包轉發到自定義的鏈進行過濾。
iptables -A MYINPUT -p icmp -j ACCEPT
此時再輸入命令 ping 127.0.0.1,結果還會和剛才相同嗎?
假如要訪問www服務
iptables -A MYINPUT -p tcp –sport 80 -j ACCEPT
這條規則允許來自網路並且源埠是80的數據進入電腦。80埠正是www服務所使用的埠。現在能夠看網頁了。但是,假如您在瀏覽器的地址中輸入,能看到網頁嗎?您得到的結果一定是:很難找到主機。假如您再輸入211.94.144.100,您仍然能夠訪問baidu的網頁。為什麼?因為假如訪問,電腦需要先進行域名解析獲取對應的ip地址211.94.144.100才能正常訪問。我們還需要打開DNS。
iptables -A MYINPUT -p udp –sport 53 -j ACCEPT
這條規則接受任何UDP協議53埠的數據。53正是DNS服務所用的埠。此時測試一下,您能通過域名訪問www嗎?您能通過ip訪問www嗎?當然,都能夠!
丟棄其他的任何網路數據包
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
2.4、記錄日誌
iptables -I MYDROPLOG 1 -j LOG –log-prefix ‘〔IPTABLES DROP LOGS〕:’ –log-level debug
這樣任何被丟棄的網路數據包都被記錄下來了,訪問網路的周詳信息能夠查看日誌。至此,一個安全的個人靜態防火牆已構建,能夠根據訪問網路的具體需求再次配置防火牆,滿足各種需求。
3、查看防火牆
此時能夠查看防火牆了
iptables -L –line-number
能夠將上面的實驗內容總結一下,寫成一個腳本。
#!/bin/bash
# This is a script of
# a personal static firewall
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -N MYINPUT
iptables -N MYDROPLOG
iptables -A INPUT -j MYINPUT
iptables -A MYINPUT -p icmp -j ACCEPT
iptables -A MYINPUT -p tcp –sport 80 -j ACCEPT
iptables -A MYINPUT -p udp –sport 53 -j ACCEPT
iptables -A MYINPUT -j MYDROPLOG
iptables -A MYDROPLOG -j DROP
iptables -I MYDROPLOG 1 -j LOG –log-prefix ‘〔IPTABLES DROP LOGS〕:’ –log-level debug
iptables -L –line-number
運行腳本快速實現自己的防火牆。
linux系統怎麼防止DDOS攻擊
用squid是利用埠映射的功能,可以將80埠轉換一下,其實一般的DDOS攻擊可以修改/proc/sys/net/ipv4/tcp_max_syn_backlog里的參數就行了,默認參數一般都很小,設為8000以上,一般的DDOS攻擊就可以解決了。如果上升到timeout階段,可以將/proc/sys/net/ipv4/tcp_fin_timeout設小點。
大家都在討論DDOS,個人認為目前沒有真正解決的方法,只是在緩衝和防禦能力上的擴充,跟黑客玩一個心理戰術,看誰堅持到最後,網上也有很多做法,例如syncookies等,就是複雜點。
sysctl -w net.ipv4.icmp_echo_ignore_all=1
echo 1 /proc/sys/net/ipv4/tcp_syncookies
sysctl -w net.ipv4.tcp_max_syn_backlog=”2048″
sysctl -w net.ipv4.tcp_synack_retries=”3″
iptables -A INPUT -i eth0 -p tcp –syn -j syn-flood
# Limit 12 connections per second (burst to 24)
iptables -A syn-flood -m limit –limit 12/s –limit-burst 24 -j RETURN
這個地方可以試著該該:
iptbales -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
虛擬主機服務商在運營過程中可能會受到黑客攻擊,常見的攻擊方式有SYN,DDOS等。
通過更換IP,查找被攻擊的站點可能避開攻擊,但是中斷服務的時間比較長。比較徹底
的解決方法是添置硬體防火牆。不過,硬體防火牆價格比較昂貴。可以考慮利用Linux
系統本身提供的防火牆功能來防禦。
1. 抵禦SYN
SYN攻擊是利用TCP/IP協議3次握手的原理,發送大量的建立連接的網路包,但不實際
建立連接,最終導致被攻擊伺服器的網路隊列被佔滿,無法被正常用戶訪問。
Linux內核提供了若干SYN相關的配置,用命令:
sysctl -a | grep syn
看到:
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_syncookies = 0
net.ipv4.tcp_synack_retries = 5
net.ipv4.tcp_syn_retries = 5
tcp_max_syn_backlog是SYN隊列的長度,tcp_syncookies是一個開關,是否打開SYN Cookie
功能,該功能可以防止部分SYN攻擊。tcp_synack_retries和tcp_syn_retries定義SYN
的重試次數。
加大SYN隊列長度可以容納更多等待連接的網路連接數,打開SYN Cookie功能可以阻止部分
SYN攻擊,降低重試次數也有一定效果。
調整上述設置的方法是:
增加SYN隊列長度到2048:
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
打開SYN COOKIE功能:
sysctl -w net.ipv4.tcp_syncookies=1
降低重試次數:
sysctl -w net.ipv4.tcp_synack_retries=3
sysctl -w net.ipv4.tcp_syn_retries=3
為了系統重啟動時保持上述配置,可將上述命令加入到/etc/rc.d/rc.local文件中。
2. 抵禦DDOS
DDOS,分散式拒絕訪問攻擊,是指黑客組織來自不同來源的許多主機,向常見的埠,如80,
25等發送大量連接,但這些客戶端只建立連接,不是正常訪問。由於一般Apache配置的接受連接
數有限(通常為256),這些「假」 訪問會把Apache佔滿,正常訪問無法進行。
使用ipchains抵禦DDOS,就是首先通過netstat命令發現攻擊來源地址,然後用ipchains命令阻斷
攻擊。發現一個阻斷一個。
首先查看ipchains服務是否設為自動啟動:
chkconfig –list ipchains
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/280546.html