|
|
1、安装iptables防火墙; @6 ~' X* H5 R0 W, Z, |
CentOS执行:yum install iptables
5 n L8 g1 m$ K Debian/Ubuntu执行:apt-get install iptables
7 S+ |2 h/ T/ Z) O
2 a/ R4 j9 g- V( W$ f' k2、清除已有iptables规则
+ B% K8 L" j5 j5 G' j4 M- iiptables -F
+ @6 B% ]! `; L1 X iptables -X' Q* h. x3 Z) D: e' w
iptables -Z e h* B% V4 ^7 |. N0 H: c
1 |! u( d9 @* y! m. l% V
3、开放指定的端口& k) J* E5 @; i) s6 f+ \
#允许本地回环接口(即运行本机访问本机)& p3 V9 R& E. ]9 o
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT" e+ B* B/ I* B% S0 {, F. [' B
# 允许已建立的或相关连的通行- _1 p8 T; c/ [$ U: s$ ~8 e8 a
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT; w+ B( I4 D% k7 i/ ]( ]0 u
#允许所有本机向外的访问7 J( E2 q! T+ g( ]# }" o" Z
iptables -A OUTPUT -j ACCEPT7 Q8 ~; O1 m3 v. ?9 m
# 允许访问22端口9 X" ^0 ~. e: T' }3 u9 f
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
9 Q& L8 \8 d8 c9 U2 x7 G #允许访问80端口
( `- n9 v8 V1 v9 l5 Liptables -A INPUT -p tcp –dport 80 -j ACCEPT% y: X0 h$ b) @( e# k
#允许FTP服务的21和20端口
/ \8 B3 a7 ~4 O2 G; }iptables -A INPUT -p tcp –dport 21 -j ACCEPT
) N8 c) M) k' K iptables -A INPUT -p tcp –dport 20 -j ACCEPT
& u3 W& F$ j9 q4 j- ] #如果有其他端口的话,规则也类似,稍微修改上述语句就行7 g% m. e, x0 b; N! y0 N5 G* a
#禁止其他未允许的规则访问# t9 v% ]6 ^! @5 f
iptables -A INPUT -j REJECT: j' O7 u, q" R! |$ x! ^! y9 B
iptables -A FORWARD -j REJECT
- g1 B+ h0 t- ^5 _$ o6 O' D# o, w# A) [- t! R: O+ D
4、屏蔽IP
/ v; @% V! S' @3 a- o #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。2 O o* |/ l" d0 f1 R. p5 _0 |; }
#屏蔽单个IP的命令是; E8 j9 w. C" J
iptables -I INPUT -s 123.45.6.7 -j DROP
( }5 M1 N; W8 u5 p$ S4 Z2 Z. o #封整个段即从123.0.0.1到123.255.255.254的命令) ]7 ]- ^0 S: E+ N2 W# A% y" q2 ?
iptables -I INPUT -s 123.0.0.0/8 -j DROP
! }6 ^! T; R7 r2 h #封IP段即从123.45.0.1到123.45.255.254的命令
# S |- ?3 U) @! l) r; x; ciptables -I INPUT -s 124.45.0.0/16 -j DROP
$ [4 m2 X% E( Q9 ^* q+ V: ?5 F) D #封IP段即从123.45.6.1到123.45.6.254的命令是: C; U9 `8 b4 ^4 g
iptables -I INPUT -s 123.45.6.0/24 -j DROP
5 ?4 `+ Z$ |# z( H! g( [
3 c; w9 ^! Y1 O! I1 X4、查看已添加的iptables规则
3 a3 d i% ?) ]3 siptables -L -n
9 ]. r! o0 F& M& e: k v:显示详细信息,包括每条规则的匹配包数量和匹配字节数9 n8 S3 o8 ]# u7 M5 ^! I
x:在 v 的基础上,禁止自动单位换算(K、M)
) f: h0 J; p4 d+ c$ I0 y+ y7 z3 D: G/ bn:只显示IP地址和端口号,不将ip解析为域名- q& e% a6 e1 G* g) [
t; m4 ^! f% ]8 M7 b6 \7 l+ h( |$ `5、删除已添加的iptables规则' E: g: `1 [* C
将所有iptables以序号标记显示,执行:% e) ?# [* B' T8 j$ V
iptables -L -n –line-numbers0 L2 T1 L; M' x5 C/ N+ x8 u& ~& o$ u1 Y
比如要删除INPUT里序号为1的规则,执行:& Z( `2 j) }$ q' ]' y' {& q3 o
iptables -D INPUT 1' _1 w7 {- z* K% Y' S8 Q i
' W O4 K5 c( m) V
6、iptables的开机启动及规则保存7 M5 ?8 y8 e J: O; x
chkconfig –level 345 iptables on0 [0 o/ u3 p# D
CentOS上可以执行:service iptables save保存规则
/ p" ^- {& x2 S/ r, [linux下使用iptables封ip段的一些常见命令:
, i1 t; @9 Q! X& m* P# C2 ] 封单个IP的命令是:, p. |; x# x& d, B5 f) Z9 C B
iptables -I INPUT -s 211.1.0.0 -j DROP! g. g% F0 `0 o% k) }* P, b2 x1 H; y
封IP段的命令是:7 {* j, O# R) `2 j5 d4 C& F+ w7 }
iptables -I INPUT -s 211.1.0.0/16 -j DROP. D! `% K ^; H6 p" z+ R
iptables -I INPUT -s 211.2.0.0/16 -j DROP
, W. e5 @' L$ e( b" R W iptables -I INPUT -s 211.3.0.0/16 -j DROP
* O' i* a; J, A: v- E/ ]
4 c" L' ?3 A. S# E Z% T2 J- h封整个段的命令是:
8 }" P1 [$ G, miptables -I INPUT -s 211.0.0.0/8 -j DROP
5 j9 J& h; m: ?$ D6 t0 f. \/ i8 C- G6 X, y
封几个段的命令是:; z# [# V. ^6 V! c
iptables -I INPUT -s 61.37.80.0/24 -j DROP$ G) [7 {; l5 F6 d2 i0 B
iptables -I INPUT -s 61.37.81.0/24 -j DROP' @& c0 q4 [' f
) v B; `4 s: L. l( v/ y, c+ ^2 b6 x
解封的话:3 q( |* K7 V5 b4 T
iptables -D INPUT -s IP地址 -j REJECT% Z4 H2 T l& W% p2 z
iptables -F 全清掉了5 T: L1 c ^( l. N/ T
5 \7 _9 c5 `) y8 E W
关闭: /etc/rc.d/init.d/iptables stop
, Z& ]; g1 w' R4 R8 q* Y启动: /etc/rc.d/init.d/iptables start! O) T. A/ t, B6 u
重启: /etc/rc.d/init.d/iptables restart
4 P! J+ I# [8 U o( G; S# p
. U1 r$ U) H2 Z1、重启后生效
( W( A0 I" F0 X v$ l 开启:chkconfig iptables on/ c4 V% `+ O6 W/ x5 \- {
关闭:chkconfig iptables off
. j' U& }1 P/ W$ w; e 2、即时生效,重启后失效
- O3 f) P6 Z, w2 T. S1 f. b 开启:service iptables start6 {" |& t- q6 e8 v d' A
关闭:service iptables stop |
|