linux禁止向指定ip发送数据包,Linux下使用iptables封锁端口禁止邮件发送
原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處:https://www.myzhenai.com/thread-17843-1-1.html https://www.myzhenai.com.cn/post/2161.html
原理是使用iptables封鎖了PREROUTING (路由前) INPUT (數(shù)據(jù)包流入口) FORWARD (轉(zhuǎn)發(fā)管卡) OUTPUT(數(shù)據(jù)包出口) POSTROUTING(路由后)五個(gè)規(guī)則鏈,只要是從這些規(guī)則鏈里出口的和入口的數(shù)據(jù),都不能經(jīng)過(guò)指定的端口. 例程封鎖了這些端口 25,110,50,105,106,109,209,512,465,992,1109,24554,60177,60179
同時(shí)枚舉了當(dāng)前所有網(wǎng)卡,把所有網(wǎng)卡的進(jìn)出數(shù)據(jù)都不能通過(guò)指定的端口傳輸.
這五個(gè)位置也被稱為五個(gè)鉤子函數(shù)(hook functions),也叫五個(gè)規(guī)則鏈。
1.PREROUTING (路由前)
2.INPUT (數(shù)據(jù)包流入口)
3.FORWARD (轉(zhuǎn)發(fā)管卡)
4.OUTPUT(數(shù)據(jù)包出口)
5.POSTROUTING(路由后)
這是NetFilter規(guī)定的五個(gè)規(guī)則鏈,任何一個(gè)數(shù)據(jù)包,只要經(jīng)過(guò)本機(jī),必將經(jīng)過(guò)這五個(gè)鏈中的其中一個(gè)鏈。
常用的ACTION:
DROP:悄悄丟棄
一般我們多用DROP來(lái)隱藏我們的身份,以及隱藏我們的鏈表
REJECT:明示拒絕
ACCEPT:接受
custom_chain:轉(zhuǎn)向一個(gè)自定義的鏈
DNAT
SNAT
MASQUERADE:源地址偽裝
REDIRECT:重定向:主要用于實(shí)現(xiàn)端口重定向
MARK:打防火墻標(biāo)記的
RETURN:返回
在自定義鏈執(zhí)行完畢后使用返回,來(lái)返回原規(guī)則鏈。
-P :設(shè)置默認(rèn)策略的(設(shè)定默認(rèn)門是關(guān)著的還是開著的)
默認(rèn)策略一般只有兩種
iptables -P INPUT (DROP|ACCEPT) 默認(rèn)是關(guān)的/默認(rèn)是開的
比如:
iptables -P INPUT DROP 這就把默認(rèn)規(guī)則給拒絕了。并且沒有定義哪個(gè)動(dòng)作,所以關(guān)于外界連接的所有規(guī)則包括Xshell連接之類的,遠(yuǎn)程連接都被拒絕了。
-F: FLASH,清空規(guī)則鏈的(注意每個(gè)鏈的管理權(quán)限)
iptables -t nat -F PREROUTING
iptables -t nat -F 清空nat表的所有鏈
-N:NEW 支持用戶新建一個(gè)鏈
iptables -N inbound_tcp_web 表示附在tcp表上用于檢查web的。
-X: 用于刪除用戶自定義的空鏈
使用方法跟-N相同,但是在刪除之前必須要將里面的鏈給清空昂了
-E:用來(lái)Rename chain主要是用來(lái)給用戶自定義的鏈重命名
-E oldname newname
-Z:清空鏈,及鏈中默認(rèn)規(guī)則的計(jì)數(shù)器的(有兩個(gè)計(jì)數(shù)器,被匹配到多少個(gè)數(shù)據(jù)包,多少個(gè)字節(jié))
iptables -Z :清空
(4) -i
以包進(jìn)入本地所使用的網(wǎng)絡(luò)接口來(lái)匹配包。只能用INPUT \ FORWARD \PREROUTING 三個(gè)鏈中。用在其他任何鏈中都會(huì)出錯(cuò)。
可使用“+” “!”兩種符號(hào)。
只用一個(gè)“+"號(hào),表示匹配所有的包,不考慮使用哪個(gè)接口。如: iptable -A INPUT -i + //表匹配所有的包。
放在某類接口后面,表示所有此類接口相匹配。如: iptable -A INPUT -i eth+ //表示匹配所有ethernet 接口。
(5) -o
以數(shù)據(jù)包出本地所使用的網(wǎng)絡(luò)接口來(lái)匹配包。與-i一樣的使用方法。
只能用OUTPUT \ FORWARD \POSTROUTING 三個(gè)鏈中。用在其他任何鏈中都會(huì)出錯(cuò)。
可使用“+” “!”兩種符號(hào)。
iptables規(guī)則創(chuàng)建腳本.
# !/bin/bash
mv /etc/sysconfig/iptables /etc/sysconfig/iptables.back
iptables -F
service iptables save
echo "# !/bin/bash" >> iptables.sh
echo "service iptables restart" >> iptables.sh
ip=`ifconfig -a|grep encap|awk -F " " '{ print $1 }'`
OLD_IFD="$IFD"
IFD=" "
arr=($ip)
IFD="$OLD_IFD"
for d in ${arr[@]}
do
#echo $d
a="25,110,50,105,106,109,209,512,465,992,1109,24554,60177,60179"
OLD_IFS="$IFS"
IFS=","
arr=($a)
IFS="$OLD_IFS"
for s in ${arr[@]}
do
#************************************************************************************#
echo "iptables -A INPUT -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A INPUT -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -p tcp --sport $s -j DROP" >> iptables.sh
#**************************************************************************************#
echo "iptables -A INPUT -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A INPUT -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -p udp --sport $s -j DROP" >> iptables.sh
#**************************************************************************************#
echo "iptables -A INPUT -i $d -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A INPUT -i $d -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A INPUT -i $d -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A INPUT -i $d -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -o $d -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -o $d -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -o $d -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A OUTPUT -o $d -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -i $d -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -i $d -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -i $d -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A PREROUTING -i $d -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -i $d -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -o $d -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -i $d -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -o $d -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -i $d -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -o $d -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -i $d -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A FORWARD -o $d -p udp --sport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -o $d -p tcp --dport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -o $d -p tcp --sport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -o $d -p udp --dport $s -j DROP" >> iptables.sh
echo "iptables -A POSTROUTING -o $d -p udp --sport $s -j DROP" >> iptables.sh
echo "#**********************This is Divider**************************#" >> iptables.sh
done
done
echo "service iptables save" >> iptables.sh
echo "service iptables restart" >> iptables.sh
service iptables restart
sicnature ---------------------------------------------------------------------
Your current IP address is: 114.103.80.217
Your IP address location: 安徽省滁州市天長(zhǎng)市電信
Your IP address country and region: 中國(guó)
Your current browser is:
Your current system is:
Original content, please indicate the source:
同福客棧論壇 | 蟒蛇科普 | 海南鄉(xiāng)情論壇 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://www.myzhenai.com.cn/post/2161.html
總結(jié)
以上是生活随笔為你收集整理的linux禁止向指定ip发送数据包,Linux下使用iptables封锁端口禁止邮件发送的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 嵌入式linux结构框图,嵌入式linu
- 下一篇: linux下free源码,linux命令