iptables 包過虛例子

2021-08-24 22:36:53 字數 2775 閱讀 3143

剛從網上看到一段規則,

並根據己的理解將其進行了一些改進,

主要適用與一般的web伺服器,只開通了ssh/web未開通ftp等其它服務,

如需開放其它服務再加上相應的埠即可

另外沒有對**位址進行限制,主要是現在一般連伺服器都是動態位址,要限制只有限制ip位址段了。不太好。

還有很多不明白的方,記下以後慢慢了解吧。

#!/bin/bash

## 設定是否響應icmp

echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route

echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects

## 監控icmp包

echo 1 >/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

#開啟syn泛洪攻擊保護(syn cook flood)

#syn攻擊利用tcp協議缺陷,傳送大量偽造的tcp連線請求,使被攻擊方資源耗盡,導致拒絕服務

echo 1 > /proc/sys/net/ipv4/tcp_syncookies

echo 1 >/proc/sys/net/ipv4/conf/all/log_martians

## 初始化及記數清0

## f:說明 刪除所有規則鏈中的所有規則。

## x:說明 刪除所有規則鏈

## z:說明 將封包計數器歸零。封包計數器是用來計算同一封包出現次數,是過濾阻斷式攻擊不可或缺的工具。

iptables -f

iptables -x

iptables -z

#iptables -a input -i eth0 -s 10.0.0.0/8 -j drop

#iptables -a input -i eth0 -s 192.168.0.0/16 -j drop

## related:該包是屬於某個已經建立的連線所建立的新連線 established:該包屬於某個已經建立的連線 --如查沒有裝ftp服務,是不是這句可以drop掉?

iptables -a input -m state --state established,related -j accept

## invalid:該包不匹配於任何連線,通常這些包被drop。

iptables -a input -m state --state invalid -j drop

## loopback

iptables -a input -i lo -j accept

iptables -a output -o lo -j accept

## syn-flooding

iptables -n syn-flood

iptables -a input -i eth0 -p tcp --syn -j syn-flood

iptables -a syn-flood -m limit --limit 30/s --limit-burst 4 -j return

iptables -a syn-flood -j drop

## make sure that new tcp connections are syn packets new: 該包想要開始乙個新的連線(重新連線或連線重定向)

## ip packets limit 防ip包攻擊-這個很重要,作限制

iptables -a input -f -m limit --limit 100/s --limit-burst 5 -j accept

## log --log-level info --log-prefix "ipt input packet died: " 防icmp包,同樣做限制、

iptables -a input -p icmp -m limit --limit 1/s --limit-burst 3 -j accept

## ftp service 僅對開啟ftp 服務的機器

##iptables -a input -i eth0 -p tcp --dport 21 -j accept

##iptables -a input -i eth0 -p tcp --dport 20 -j accept

##iptables -a input -p tcp --dport 30001:50000 -j accept

## ssh login -下面這兩句不是很明白,為什麼少乙個-m tcp就拒絕?

## 如果有固定位址進行ssh登入的話,可以配合源位址的方式來讓只有指定的ip才能進行ssh登入!

iptables -a input -i eth0 -m tcp -p tcp --dport 22 -j accept

iptables -a input -i eth0 -p tcp --dport 22 -j drop

## anything else not allowed

iptables -a input -i eth0 -j drop

IPTABLES基本例子

iptables f 刪除已經存在的規則 iptables p input drop 配置預設的拒絕規則。基本規則是 先拒絕所有的服務,然後根據需要再新增新的規則。iptables a input p tcp dport 80 j accept 開啟web服務埠的tcp協議 iptables a i...

一則自用iptables例子解釋

公網ip 110.24.3.83 內網ip 10.252.214.186 區域網資料庫 10.252.214.100 通過nat埠 訪問110.24.3.83 3308埠跳轉到區域網資料庫機器的3306埠 firewall configuration written by system config...

虛基類的例子

include include includeusing namespace std class person 虛基類的作用避免重複繼承基類中的元素 針對一堆多對一的繼承結構 protected string name char int age class teacher virtual publi...