|
|
1、安装iptables防火墙
! ]+ \& Z A- m# `' zCentOS执行:yum install iptables9 o2 G+ V% U6 d& r3 b) o
Debian/Ubuntu执行:apt-get install iptables
* Q% Q! P7 ]/ x. s8 e" b
6 e* }) D. U) z4 T5 {2、清除已有iptables规则
8 ^" i' O2 ~' ?6 V/ h' T) |% eiptables -F
2 H3 h. [/ T v iptables -X
( c% a2 ^* l2 j% i( F# t iptables -Z9 ]0 u" D- T0 ?' P
# U, c2 Z0 w1 G/ A3、开放指定的端口) L, S K7 K' s+ q( m
#允许本地回环接口(即运行本机访问本机)
& k% D6 Y* Y% j biptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT% U) v3 `2 n- e6 f# Z
# 允许已建立的或相关连的通行
5 s; P( J9 T% W6 n) C- xiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
; ^; i& I. c$ k# _0 ?% X6 f8 Q #允许所有本机向外的访问
" _# C" }- N- @( Riptables -A OUTPUT -j ACCEPT
2 t& @8 |3 N3 w, A0 ]! b+ R3 S8 h # 允许访问22端口
# B9 F5 n: ]& p) E4 p/ Liptables -A INPUT -p tcp –dport 22 -j ACCEPT
/ T1 b9 N- S4 }5 J #允许访问80端口
- _- d M* o, Yiptables -A INPUT -p tcp –dport 80 -j ACCEPT
+ E, Q5 l' P# w7 ` #允许FTP服务的21和20端口
8 n5 F, ]# j3 @. qiptables -A INPUT -p tcp –dport 21 -j ACCEPT# a+ m4 \5 }# k3 N* V8 ~
iptables -A INPUT -p tcp –dport 20 -j ACCEPT5 L' E# {' L0 ?. d6 `
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
! [- q2 W$ h$ ~) h4 M' m#禁止其他未允许的规则访问! P7 ?! l& `& s ^' A" `- r! m
iptables -A INPUT -j REJECT7 _& A0 O: \0 ]- s
iptables -A FORWARD -j REJECT
2 _4 l4 |1 h4 M
/ F6 u/ Y8 I m" m& B" q, ~4、屏蔽IP
+ o( _) H8 X3 {7 q" k9 f #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
' K0 \. |6 {% u2 P" ~. ^#屏蔽单个IP的命令是
, |) ^2 }, T- M' d: Niptables -I INPUT -s 123.45.6.7 -j DROP( V/ ?7 }" Q$ m0 {1 Q' R
#封整个段即从123.0.0.1到123.255.255.254的命令
; O3 y. v) D+ r& _$ l. i( }3 fiptables -I INPUT -s 123.0.0.0/8 -j DROP$ T( e; w# d+ A0 ~6 u
#封IP段即从123.45.0.1到123.45.255.254的命令% \- z. }& C7 O/ \
iptables -I INPUT -s 124.45.0.0/16 -j DROP0 U8 ~7 ]# {' s8 `- ?5 V" \
#封IP段即从123.45.6.1到123.45.6.254的命令是
5 b2 N" h/ R6 s0 v# Niptables -I INPUT -s 123.45.6.0/24 -j DROP
. ^9 S3 i( Y2 T" X3 b. N4 f9 n5 u0 ~
4、查看已添加的iptables规则. F/ T6 E8 q' f8 ]) X; X
iptables -L -n
- l$ Z" W+ b3 { v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
& \1 q. r5 l" S% g+ {x:在 v 的基础上,禁止自动单位换算(K、M)8 ^, v: q7 A$ P1 I8 f
n:只显示IP地址和端口号,不将ip解析为域名) ]( C) D l1 f
k# i \# j* X4 u
5、删除已添加的iptables规则
; G: |: O! }+ b/ _1 \ r! M2 g 将所有iptables以序号标记显示,执行:$ |- Q# ?) ]2 f( W* \
iptables -L -n –line-numbers0 l5 Y, v9 J( x) O; Q% L
比如要删除INPUT里序号为1的规则,执行:
6 Z9 M+ a; b" q# J/ `iptables -D INPUT 1$ k* d2 ~0 I2 f% ]1 w! l8 C
& k% |3 }: q/ R# A% `1 E6、iptables的开机启动及规则保存
$ _7 p' V' J0 b- v& ochkconfig –level 345 iptables on
1 \0 e' i( @4 o7 B8 I) f+ Z CentOS上可以执行:service iptables save保存规则( ? N' B% [' [; r
linux下使用iptables封ip段的一些常见命令:
. o K+ v5 F7 } 封单个IP的命令是:
$ G5 }5 H( L' h% s& P/ Diptables -I INPUT -s 211.1.0.0 -j DROP' e# |6 Y$ Z) g9 w4 {% }: [8 ~
封IP段的命令是:
- x9 s0 O% t" F8 J% M) U0 miptables -I INPUT -s 211.1.0.0/16 -j DROP8 ?8 p# U$ x+ ^
iptables -I INPUT -s 211.2.0.0/16 -j DROP! l5 T6 [$ `. s: h8 q" o0 B
iptables -I INPUT -s 211.3.0.0/16 -j DROP
' B: P' g- [" z8 z" H! f3 Q5 K3 c; }: _9 h- A3 R2 E
封整个段的命令是:4 S+ U2 e3 e0 K: D3 c
iptables -I INPUT -s 211.0.0.0/8 -j DROP( n$ Y" j- z( p0 U9 v8 K1 v' n
8 Q9 A& B8 V+ t' h! s
封几个段的命令是:
( r K7 {" j8 i0 P6 T5 Tiptables -I INPUT -s 61.37.80.0/24 -j DROP; t4 A# l. E- e- \# v3 z- l6 L' z
iptables -I INPUT -s 61.37.81.0/24 -j DROP; }! I8 `# u+ E) w7 z/ J3 [! o
9 S! j- O6 I: k5 G! D2 ]解封的话:
7 U3 O+ w3 p6 C7 \' V; Uiptables -D INPUT -s IP地址 -j REJECT
7 r) m( \4 j$ O iptables -F 全清掉了
! J) H9 L* r# R" |8 \9 [9 K1 ]8 H/ B: o, u% B( z0 J# V
关闭: /etc/rc.d/init.d/iptables stop( x6 `2 D1 a3 `. F8 z
启动: /etc/rc.d/init.d/iptables start
0 C# P: b5 ?& k( j重启: /etc/rc.d/init.d/iptables restart
2 k0 w1 R$ R- \
0 i/ U. A5 Z" r2 Y2 Y1、重启后生效
0 m9 B3 [& I. Y" m0 { 开启:chkconfig iptables on
3 k( `- K% N1 X2 Q) Y/ u L关闭:chkconfig iptables off$ G* k( t( i: U
2、即时生效,重启后失效9 |- T" T' W( o, E3 T8 [4 W) e$ u5 \
开启:service iptables start
2 j- z: Y5 {8 z3 a, P9 H; q1 V! G关闭:service iptables stop |
|