|
|
1、安装iptables防火墙( m* g2 d) j1 r! i. n* @" S
CentOS执行:yum install iptables
9 ?% W3 G) A: `& X* l5 p2 }% D Debian/Ubuntu执行:apt-get install iptables
" Y" R9 G! g5 @* H5 }) C% _+ l4 \, H& k, Z
2、清除已有iptables规则
5 J5 O! Y/ c J& ?iptables -F
6 E' Z/ h5 B# [- g# E5 o+ t% [5 ] iptables -X9 i V2 u: R3 U# B+ B3 r; H
iptables -Z* [: }, C4 ?& N; ^. W
5 N& `+ O! S8 H) g/ |
3、开放指定的端口
: _3 e5 K& ]2 w#允许本地回环接口(即运行本机访问本机)1 F. S: b% z8 [$ O% b
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
: F, E$ ]1 `7 n+ L- w; o3 A0 H # 允许已建立的或相关连的通行
( a5 e2 t( p0 O8 N: Q) Uiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
9 p: v! v. Q9 t #允许所有本机向外的访问* D5 Y- m# c$ c+ T; n. _
iptables -A OUTPUT -j ACCEPT
, t" i O+ z- H0 C8 w: t. w # 允许访问22端口
5 a8 ], o: ~3 ^iptables -A INPUT -p tcp –dport 22 -j ACCEPT# @& Y5 y2 J9 H% A. Y2 G
#允许访问80端口1 y0 B* a0 i- X
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
P" f% u, b5 E1 m6 ^& J% l8 g #允许FTP服务的21和20端口' k: m- M) X$ N# V: b8 y- R. _
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
# x- y" A' ?+ o" `% |$ Z; Z- H/ v iptables -A INPUT -p tcp –dport 20 -j ACCEPT
# k! ]4 t6 g4 a- X #如果有其他端口的话,规则也类似,稍微修改上述语句就行, Q5 E' g* S t5 x
#禁止其他未允许的规则访问
0 s; P6 d B! s. s& l; R, siptables -A INPUT -j REJECT
6 L) J. R2 p1 X+ c iptables -A FORWARD -j REJECT
) ?* a; A7 H+ t# \- ~4 C X9 L& y" h; N! K1 M& B5 I: z# y A
4、屏蔽IP
4 W& W4 H9 y: H, c% u #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
9 Z7 G- W6 c5 g1 N- h2 K#屏蔽单个IP的命令是
3 \! R! X' h. H' A/ Piptables -I INPUT -s 123.45.6.7 -j DROP
6 \ I5 U8 ]( b: c0 V #封整个段即从123.0.0.1到123.255.255.254的命令
0 g0 n8 P* q% _# g7 |5 }iptables -I INPUT -s 123.0.0.0/8 -j DROP" E; g! C; Q" q# _2 }4 M! f
#封IP段即从123.45.0.1到123.45.255.254的命令
8 {2 M% s* l5 s$ `6 Q+ w0 kiptables -I INPUT -s 124.45.0.0/16 -j DROP4 y# A3 S! a' f3 Y, i2 D- ~/ `# d
#封IP段即从123.45.6.1到123.45.6.254的命令是 f) t, l4 ]/ h/ d
iptables -I INPUT -s 123.45.6.0/24 -j DROP2 L4 O- }9 z. [, C5 g
9 F9 p8 I I0 }/ h9 C3 o" L/ i
4、查看已添加的iptables规则 ?' t% x0 X& f: d! \- w& V
iptables -L -n, }5 d; x0 e- v% e
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数/ O; \6 Q8 B9 l5 { R: W* S0 S
x:在 v 的基础上,禁止自动单位换算(K、M); ~7 W, z* J' g6 Y: w
n:只显示IP地址和端口号,不将ip解析为域名
1 W6 i4 f! a* z! e' V9 ?
/ }0 M/ }3 S/ S! u1 I6 N5、删除已添加的iptables规则
7 i% D/ e. S, |, \4 U* s 将所有iptables以序号标记显示,执行:8 S4 D7 O( z$ v, P5 A, X2 P- M4 E/ p
iptables -L -n –line-numbers6 _2 s4 k- q# B
比如要删除INPUT里序号为1的规则,执行:& u# s! P- `) |6 X
iptables -D INPUT 1
* N' }; a4 O% i7 i/ \
9 k5 U% R6 A! s' X# _6、iptables的开机启动及规则保存. L/ M! j% n8 ]) _) r
chkconfig –level 345 iptables on d" v! e7 K8 r4 E7 C( h8 D; u* l9 @) {
CentOS上可以执行:service iptables save保存规则* ]# q: c9 Z7 @8 j9 \: {& Z
linux下使用iptables封ip段的一些常见命令:
' w# }6 E% n4 C5 Q. ~# b 封单个IP的命令是:
$ D0 n+ I4 D0 V2 C% }# aiptables -I INPUT -s 211.1.0.0 -j DROP
8 h& A9 m5 {' o9 Z封IP段的命令是:; t ]6 g2 v' O) v$ P
iptables -I INPUT -s 211.1.0.0/16 -j DROP/ P$ S u6 Q' x2 ]; {( t0 y3 [
iptables -I INPUT -s 211.2.0.0/16 -j DROP
3 {9 }8 d4 m S! l3 p# K/ E iptables -I INPUT -s 211.3.0.0/16 -j DROP
( R! ~* G$ b9 G4 j9 H+ H
! h6 t7 D, v' L; z+ H8 M封整个段的命令是:9 \. b& |, x6 {" O+ p! A l
iptables -I INPUT -s 211.0.0.0/8 -j DROP
. B0 j6 D* ]8 P2 z
- q8 ~$ p" x* ^封几个段的命令是:
& l/ Y& d9 F& jiptables -I INPUT -s 61.37.80.0/24 -j DROP
& B D W. T# [( k" V: H% q. ^& h( N iptables -I INPUT -s 61.37.81.0/24 -j DROP
1 p; ]) k3 i. ?/ r( M" } v* g8 J2 d& E; I G& T; K. K2 v+ C
解封的话:' n" x6 r: F5 r/ Q
iptables -D INPUT -s IP地址 -j REJECT
3 s' j8 B+ ]- h- p( W& }% W iptables -F 全清掉了
5 @& S8 m! N' q9 U, F" Y; |& y7 X1 j, }! Q1 p4 U2 d
关闭: /etc/rc.d/init.d/iptables stop
5 _5 r6 o& e3 ~0 ?- M# ^( K启动: /etc/rc.d/init.d/iptables start8 o! M. x* z& \" K6 i* I' ^3 `4 u
重启: /etc/rc.d/init.d/iptables restart( W8 {. n8 {- B* T3 m
: V) z$ V2 K, l% y6 P% v; N6 a
1、重启后生效
( i1 `2 g f N6 h& ~4 Q 开启:chkconfig iptables on
& z1 f3 d. H4 r6 f关闭:chkconfig iptables off8 k6 t1 X. f8 C' Z$ W- I" b s
2、即时生效,重启后失效8 Z8 x! O" S/ o
开启:service iptables start
/ B6 @* [+ Y; L! W关闭:service iptables stop |
|