|
|
1、安装iptables防火墙
# o9 }( u; Y+ F6 X* n& ZCentOS执行:yum install iptables
/ ?2 e* k. ]9 W+ L+ Q6 | Debian/Ubuntu执行:apt-get install iptables1 k. t, O# V' I6 P6 N
) a8 e9 m2 w9 V
2、清除已有iptables规则: X! m' N; s2 K" z. r0 ]
iptables -F( h0 w: w8 t) D9 z7 \( z3 o
iptables -X- |$ j# B6 m$ E5 f* @
iptables -Z: a; v* g. H6 v/ a
5 [! \! j. j; q# k+ G" g, T3、开放指定的端口
5 }% `. C% ~& K9 C#允许本地回环接口(即运行本机访问本机)
/ l. }# h% L( }5 kiptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# v% z: Z& l' U! z# K/ Z # 允许已建立的或相关连的通行) o. [. @- G- @/ F; @0 a
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
. C; _& B$ J5 R+ D% t5 a #允许所有本机向外的访问6 l' g2 W& }9 L, |- A
iptables -A OUTPUT -j ACCEPT s6 E/ E Z# M# H
# 允许访问22端口
1 r d- k$ {- c0 Y& E3 ~iptables -A INPUT -p tcp –dport 22 -j ACCEPT
& R6 ]" H* `( s- G; [ #允许访问80端口' Y8 f9 p. I$ f9 Z! T# u; E% K
iptables -A INPUT -p tcp –dport 80 -j ACCEPT. w) y1 M1 u; p2 r
#允许FTP服务的21和20端口
" a# R1 v: F+ ^" _# \' b0 `iptables -A INPUT -p tcp –dport 21 -j ACCEPT4 f4 x4 C7 U8 }" h
iptables -A INPUT -p tcp –dport 20 -j ACCEPT
0 @: `8 G$ c G8 u# H2 p #如果有其他端口的话,规则也类似,稍微修改上述语句就行3 p ^* o! e" }+ B
#禁止其他未允许的规则访问5 ~2 I; s: O5 o9 {
iptables -A INPUT -j REJECT( k; D! d6 W' ]3 `8 e, h# o5 V
iptables -A FORWARD -j REJECT0 D f# H: I$ M
' K1 l# j2 a* T/ p: `4、屏蔽IP
! q- t7 X7 Y W; G #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。+ Z3 s% [7 y: A7 u- k9 m. v2 t
#屏蔽单个IP的命令是6 v! {, m& `* O2 l
iptables -I INPUT -s 123.45.6.7 -j DROP6 U6 t# m7 r k8 @- Z
#封整个段即从123.0.0.1到123.255.255.254的命令
; j \9 ~7 ~0 k* K8 y* }2 `/ y" {iptables -I INPUT -s 123.0.0.0/8 -j DROP5 n/ ~ z+ @4 ?" A9 v
#封IP段即从123.45.0.1到123.45.255.254的命令) g& c+ A8 @& {' P1 `
iptables -I INPUT -s 124.45.0.0/16 -j DROP9 S% |5 q8 ]( E7 X
#封IP段即从123.45.6.1到123.45.6.254的命令是
0 ^3 l. |3 p3 ~ C8 X# ^8 {; i/ m2 kiptables -I INPUT -s 123.45.6.0/24 -j DROP/ h# M7 y: a1 ^$ ^# b8 W
5 a9 t o t6 Z& j) u4、查看已添加的iptables规则
2 A" v" V4 ~. `& j+ q9 Eiptables -L -n
8 y# Z/ L$ q: w$ j$ s/ t v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
: y4 R2 H0 N( `x:在 v 的基础上,禁止自动单位换算(K、M)
]! m2 K& W ~. J. kn:只显示IP地址和端口号,不将ip解析为域名
! k: f9 Q; ~$ S) L5 G* `; W4 {5 \9 E8 t2 S4 X5 B/ x
5、删除已添加的iptables规则
3 c% y3 [, T) `8 s8 N& S) E) J8 O 将所有iptables以序号标记显示,执行:
3 d3 l8 L+ j- l# h# r- iiptables -L -n –line-numbers
9 c% s% f: d3 q5 S5 J( c# R. T比如要删除INPUT里序号为1的规则,执行:
: b7 }' E7 p+ W0 N. V. riptables -D INPUT 1
* B o j- \9 {3 P: e! k8 `7 j" z. Q; e4 u; J6 }" h! l* K
6、iptables的开机启动及规则保存
6 Q% M7 y" O0 Bchkconfig –level 345 iptables on
3 T7 G, o" o4 U1 g: L CentOS上可以执行:service iptables save保存规则
+ S* Z/ ?5 N! r. M. H rlinux下使用iptables封ip段的一些常见命令:
/ ~! s Q$ i: ~+ n9 n6 P5 G 封单个IP的命令是:7 d- G5 o3 B7 H6 A Y5 ?6 {6 ?# K
iptables -I INPUT -s 211.1.0.0 -j DROP/ l* K* C) x4 g+ O
封IP段的命令是:
$ J4 V6 r0 r: R2 miptables -I INPUT -s 211.1.0.0/16 -j DROP) j1 i( D% N% ]8 E# `/ E
iptables -I INPUT -s 211.2.0.0/16 -j DROP4 F& ~" `3 B2 l
iptables -I INPUT -s 211.3.0.0/16 -j DROP
4 x o# N* }- M0 j; F d3 ~& j* M& a9 a9 I9 k8 q( G! E3 H2 [
封整个段的命令是:
5 C8 B( D6 }' R ziptables -I INPUT -s 211.0.0.0/8 -j DROP
7 k6 u+ i$ W6 |6 }& N3 `' g/ e
2 n5 H# e* l1 @% h( f$ f7 f- p6 A# N封几个段的命令是:
0 n6 u$ x9 F& q3 Ziptables -I INPUT -s 61.37.80.0/24 -j DROP3 y& k- K6 _4 q' N* J
iptables -I INPUT -s 61.37.81.0/24 -j DROP# b) N* c& G* {5 R D( u' j- P
6 k/ t* n* W) J1 S) _+ Z, ?
解封的话:0 x+ r# M7 z6 C% L7 ^% |
iptables -D INPUT -s IP地址 -j REJECT
+ p9 r2 p$ F4 N- j iptables -F 全清掉了
0 m% ]% Q8 s, j* ~# R$ M ~$ q1 h* ]
关闭: /etc/rc.d/init.d/iptables stop
Y! M$ q& b& c3 x% C! j% G$ {0 h启动: /etc/rc.d/init.d/iptables start% ]1 G3 ^% c) r: V9 q
重启: /etc/rc.d/init.d/iptables restart
2 g, f& z7 Q* ^1 a0 g* p6 ?; D0 U' h" i
1、重启后生效
. k2 }" e3 N% ?3 T( {$ j 开启:chkconfig iptables on$ m3 a2 H& r% {! @+ K9 R
关闭:chkconfig iptables off+ j9 V! k/ F3 n0 l, ^2 ~- y' m v
2、即时生效,重启后失效! ?* W5 S/ l7 U* w1 X, }
开启:service iptables start: W# I2 Q& w# N" n1 ~0 b9 F/ y3 ]
关闭:service iptables stop |
|