利用iptables防止php的簡單介紹

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-21 13:05
下一篇 2024-12-21 13:05

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的「畫筆」在窗口中繪製…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智慧,Python都扮演著重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • 用Python實現簡單爬蟲程序

    在當今時代,互聯網上的信息量是爆炸式增長的,其中很多信息可以被利用。對於數據分析、數據挖掘或者其他一些需要大量數據的任務,我們可以使用爬蟲技術從各個網站獲取需要的信息。而Pytho…

    編程 2025-04-28
  • 如何製作一個簡單的換裝遊戲

    本文將從以下幾個方面,為大家介紹如何製作一個簡單的換裝遊戲: 1. 遊戲需求和界面設計 2. 使用HTML、CSS和JavaScript開發遊戲 3. 實現遊戲的基本功能:拖拽交互…

    編程 2025-04-27

發表回復

登錄後才能評論