|
|
1、安装iptables防火墙
# M& c& U' s) w ECentOS执行:yum install iptables: J" o1 V& c2 A6 @/ K
Debian/Ubuntu执行:apt-get install iptables; `) H! q3 C7 R& D& n9 K" h
) l% @6 q7 R" A
2、清除已有iptables规则
% `. [( ]1 ~1 K1 @) C; Wiptables -F
( h7 x! {$ g2 b iptables -X3 h: ^4 s" Y# S9 _1 f: S, D
iptables -Z
( E$ u. L: Q/ T" x
# M% p( e' C4 o% c7 ^4 r3、开放指定的端口1 C( h$ H, f3 K7 i* Z( r
#允许本地回环接口(即运行本机访问本机)! W+ W! I$ P! V
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT4 J% z# b9 v% @6 n
# 允许已建立的或相关连的通行
5 A; ^$ [- X Xiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
2 U s7 ?; x% E0 o* \ #允许所有本机向外的访问
# p& I. Q' H" ~* Tiptables -A OUTPUT -j ACCEPT4 i1 g+ q6 {+ M9 G
# 允许访问22端口3 y# n8 Z1 N8 h
iptables -A INPUT -p tcp –dport 22 -j ACCEPT1 c4 h8 G2 A5 y4 l( A& j5 I
#允许访问80端口, U0 u( U: Q4 \. z7 B: V
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
: B' M. Q7 k0 b( W #允许FTP服务的21和20端口
) ]: W8 p& }; U0 P. b5 g2 e3 _8 @( K) g$ {iptables -A INPUT -p tcp –dport 21 -j ACCEPT$ a; Y, l5 @0 H/ |* c7 E
iptables -A INPUT -p tcp –dport 20 -j ACCEPT3 ~% T- j- ]5 O7 g6 l
#如果有其他端口的话,规则也类似,稍微修改上述语句就行: j7 n" e5 n/ c4 @
#禁止其他未允许的规则访问
4 x* m3 I6 E2 i! ~4 D, q5 l& Ziptables -A INPUT -j REJECT
8 Q' b: j3 p) K$ p8 j iptables -A FORWARD -j REJECT
' v: u0 u! j: V; a3 A2 d" n3 d
% D, A; p, [& S" A+ P7 i! ]4、屏蔽IP
; R9 D3 O0 B G+ r. I #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
, {& U: e# E3 U% z Y W- Z#屏蔽单个IP的命令是1 O% |) z. q/ `/ s H- j
iptables -I INPUT -s 123.45.6.7 -j DROP8 U* X$ d% k& E; s2 E; e
#封整个段即从123.0.0.1到123.255.255.254的命令
+ W: I7 ?. x! H# z( s1 e0 Hiptables -I INPUT -s 123.0.0.0/8 -j DROP
: I* |. b t( A& n9 U #封IP段即从123.45.0.1到123.45.255.254的命令+ r) f. J8 M4 t3 ~7 B& w
iptables -I INPUT -s 124.45.0.0/16 -j DROP
' I* U, E6 t8 F1 J #封IP段即从123.45.6.1到123.45.6.254的命令是
! ?9 P# p# F, A9 F. w% Z2 eiptables -I INPUT -s 123.45.6.0/24 -j DROP3 C+ Q' f9 h6 |- H. [
, b! k( N `/ _
4、查看已添加的iptables规则7 e4 C1 {% C+ T
iptables -L -n$ T. s/ W! `5 Z0 E/ l
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
) q. [8 N4 Y3 X8 S2 Bx:在 v 的基础上,禁止自动单位换算(K、M)& G8 ?) L- o7 v# B; j5 i
n:只显示IP地址和端口号,不将ip解析为域名& W- Q6 x. i# }3 j+ y
; n1 X" x0 m8 x7 T- B1 @5、删除已添加的iptables规则8 r: o1 [) M1 `* B
将所有iptables以序号标记显示,执行:0 N- N8 _5 c7 l7 E" b2 p7 x
iptables -L -n –line-numbers
: _7 _5 W# H Z2 ^( {! T/ r0 H比如要删除INPUT里序号为1的规则,执行:
3 G% m& @5 ]( ~) iiptables -D INPUT 1
9 q& c ~/ l* a8 t0 @- {, P4 D5 C6 h# c1 O, C
6、iptables的开机启动及规则保存! C0 a% |0 O+ e+ e: P
chkconfig –level 345 iptables on
5 z1 H6 {9 H8 k* G: X) h7 m# L CentOS上可以执行:service iptables save保存规则8 M* y0 E- [2 _5 R. F- j4 e: E
linux下使用iptables封ip段的一些常见命令:
; A7 g2 E4 {9 H 封单个IP的命令是:
: W6 P% F) R: P! T) Tiptables -I INPUT -s 211.1.0.0 -j DROP- n- K& B; ~+ `! H; I& Z' ?
封IP段的命令是:
0 e, B: r( e- f8 y6 U6 J5 G$ A Y; t& ~6 xiptables -I INPUT -s 211.1.0.0/16 -j DROP" a4 S" M6 _2 |# b6 p
iptables -I INPUT -s 211.2.0.0/16 -j DROP) e% h) e% C' T3 Y
iptables -I INPUT -s 211.3.0.0/16 -j DROP% Z: `0 q( i( O
: P& C1 v# Y/ ], K: e
封整个段的命令是:5 z- V4 @: k# G4 `, |4 P" t
iptables -I INPUT -s 211.0.0.0/8 -j DROP
8 W5 M V+ s4 I! h& `# j% _2 U- S8 V# e
封几个段的命令是:
! r4 B* g K3 P0 }+ `" `iptables -I INPUT -s 61.37.80.0/24 -j DROP I" ^. `$ s$ C# s
iptables -I INPUT -s 61.37.81.0/24 -j DROP$ g% }. x1 K8 M7 @2 @1 l6 _5 c' j+ n
4 A8 W4 c- f7 f' A+ i7 j( K解封的话:
* | `, i9 v' c! {iptables -D INPUT -s IP地址 -j REJECT; X1 J$ T& p7 i/ D( S
iptables -F 全清掉了
. T; Q/ }; [; a; M. K7 [$ J
, y. M; { ? p: H关闭: /etc/rc.d/init.d/iptables stop
2 X+ t3 u" S! G. j) ~8 E. ^启动: /etc/rc.d/init.d/iptables start
3 I& `; C8 G/ f7 A重启: /etc/rc.d/init.d/iptables restart
; Q3 k M% U, V3 i4 Y+ F
- a; z# h/ K3 R1 z1、重启后生效
3 g6 h9 C3 G7 _) k+ J5 S5 e+ T k 开启:chkconfig iptables on6 X7 `; J, U! |6 X: @
关闭:chkconfig iptables off
+ r7 i4 F0 C+ K( ` 2、即时生效,重启后失效0 p9 g* c3 |5 j, p
开启:service iptables start$ ?# v/ k, s. N. u7 y
关闭:service iptables stop |
|