|
|
1、安装iptables防火墙
- T. X" w5 I4 k: Y' qCentOS执行:yum install iptables
- k, h. m# Y" _/ _6 {7 }( J5 X4 v Debian/Ubuntu执行:apt-get install iptables: B7 ~$ T) U Y6 f) j6 o* D+ [1 ?
. x) E A7 x# Z% i8 s" j! B
2、清除已有iptables规则
" J, F- O* P& d7 Diptables -F4 O) }8 d. X& v% m: c/ d8 t# ~+ ~
iptables -X$ ^# B+ |8 f, E- R1 h+ }: ]( v; V
iptables -Z
! ?( k+ J8 Q' c8 q+ I7 Z8 C& \' K0 y% G
3、开放指定的端口
6 z4 d/ }2 e4 z9 Y#允许本地回环接口(即运行本机访问本机)' r2 [; z! W ?) ]% G5 w. J& a& E
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
1 Q( v& t: U& p2 c, o# d # 允许已建立的或相关连的通行
* ~* m/ P& }) J& @* | [; V' i2 G) Jiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
# g2 t3 Q) v$ m* L2 X. U #允许所有本机向外的访问8 M( s0 Y/ o0 Z% Y8 n# U
iptables -A OUTPUT -j ACCEPT
, l, W" U2 r" o # 允许访问22端口* f7 F. U( Z1 n7 H/ E
iptables -A INPUT -p tcp –dport 22 -j ACCEPT0 w( L( K3 H* k( C
#允许访问80端口
3 T8 u: b* ~% Z) E2 ?iptables -A INPUT -p tcp –dport 80 -j ACCEPT
3 v+ I ^1 i9 L0 X #允许FTP服务的21和20端口! j) T; z; f8 g7 s2 T+ N
iptables -A INPUT -p tcp –dport 21 -j ACCEPT' I8 ]4 B7 n% u% K. h" @- ?
iptables -A INPUT -p tcp –dport 20 -j ACCEPT
" M6 W1 C7 G2 |7 x0 b& r& t; z #如果有其他端口的话,规则也类似,稍微修改上述语句就行4 `' a. e P# k5 X( v1 O* ]2 ^& F
#禁止其他未允许的规则访问
& P6 b u8 ?; piptables -A INPUT -j REJECT1 N$ j: d: Y0 O5 m* v+ |& C. O" b
iptables -A FORWARD -j REJECT
" h$ u6 ~- ]# m: W9 c$ I3 u) k& _2 ]) H: |' ^
4、屏蔽IP/ _1 \. T: r) g3 I2 V
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
- B+ Z: H) D% \" s6 P#屏蔽单个IP的命令是
9 h% j. O* g' n5 Q' Jiptables -I INPUT -s 123.45.6.7 -j DROP7 Q2 }8 X' h6 X. X& ~. L$ _. v
#封整个段即从123.0.0.1到123.255.255.254的命令
7 b2 r2 Q- v& V" q) |iptables -I INPUT -s 123.0.0.0/8 -j DROP9 Q" ^, F: g! G. n
#封IP段即从123.45.0.1到123.45.255.254的命令
# o5 r" }! D: P1 e! Kiptables -I INPUT -s 124.45.0.0/16 -j DROP
6 t% v$ V- G( G1 B% S* Z7 X #封IP段即从123.45.6.1到123.45.6.254的命令是
; z3 A# h/ h& f9 U2 |8 liptables -I INPUT -s 123.45.6.0/24 -j DROP
, d$ [% i; d L, Q) q1 Q; Y, a: d2 T0 I
4、查看已添加的iptables规则
4 N7 y( j2 O! r3 x8 L5 aiptables -L -n
, J/ [% {( C/ n- M$ S4 I v:显示详细信息,包括每条规则的匹配包数量和匹配字节数0 D* W7 O% a3 k3 @( U
x:在 v 的基础上,禁止自动单位换算(K、M): h) i( [ {; \! N7 l
n:只显示IP地址和端口号,不将ip解析为域名8 O( @# q4 A1 h& z* p) I; A- Z
) J/ I; m* ]3 a( b+ c: u0 b- I5、删除已添加的iptables规则. E- h0 I5 x: ~
将所有iptables以序号标记显示,执行:
) Z4 B. G4 l4 p; z2 Uiptables -L -n –line-numbers
" m5 `! N \# A$ N! g2 q! \比如要删除INPUT里序号为1的规则,执行:
: G7 p' V% e3 Z: ?* G" a- piptables -D INPUT 1
# p- c" k' X" f m8 M" \& B% E" K% [
( Z8 [7 e4 z' ]9 ]2 K6、iptables的开机启动及规则保存
9 O/ a, s" W, ]5 J f/ jchkconfig –level 345 iptables on
' c6 w9 d3 t7 x CentOS上可以执行:service iptables save保存规则
0 ^& f1 b N# [linux下使用iptables封ip段的一些常见命令:
# a& }( M) c. Z+ o; x: T; K 封单个IP的命令是:
9 s! X) r9 A0 q6 {iptables -I INPUT -s 211.1.0.0 -j DROP. R: F' U, M# h% L9 z" b$ W
封IP段的命令是:
1 h& ^3 o" @, U' r' Uiptables -I INPUT -s 211.1.0.0/16 -j DROP" {. ^3 b& g; p- S; e# Q
iptables -I INPUT -s 211.2.0.0/16 -j DROP/ S+ `/ q4 M3 L0 m, m8 C. l2 T# n
iptables -I INPUT -s 211.3.0.0/16 -j DROP
" e8 {( x9 X/ i* g: }/ ?4 f% Y- u
- \* l' h m* z8 X封整个段的命令是:
$ V9 y: y+ t$ v1 o, r' K, V2 ~iptables -I INPUT -s 211.0.0.0/8 -j DROP- C. J- ?* ]0 m- Q
- r' c/ n j6 K
封几个段的命令是:$ ?$ r3 I1 j. A' C2 w7 K& i
iptables -I INPUT -s 61.37.80.0/24 -j DROP4 d$ q$ u! l( ?2 p5 Y
iptables -I INPUT -s 61.37.81.0/24 -j DROP
& L$ r) J. C+ J6 B. ~( e
% b9 p5 k- T3 X# T6 a8 x1 K9 Y5 {解封的话:6 O( [9 u. w4 T, p+ z
iptables -D INPUT -s IP地址 -j REJECT
7 B0 G8 G& f4 b2 I0 Q iptables -F 全清掉了
9 { Q1 s4 \0 q' d! Z
$ u5 M1 [4 I) u- q0 @关闭: /etc/rc.d/init.d/iptables stop
4 O$ A9 `; m1 t/ ]启动: /etc/rc.d/init.d/iptables start
l w. n! ^5 {重启: /etc/rc.d/init.d/iptables restart/ X8 G; M1 J& w7 c! D
& a7 x$ c$ @/ i/ o+ c
1、重启后生效& P: F- x9 D4 b) O. y
开启:chkconfig iptables on' R( w. c* |. C( \" J
关闭:chkconfig iptables off
) S3 M) ]' l% S8 |# i# H 2、即时生效,重启后失效
. a3 I: n% t6 H1 o, F 开启:service iptables start& a' j! V7 q) S- b3 g9 F
关闭:service iptables stop |
|