|
|
1、安装iptables防火墙; w6 W! X) p; h2 C9 J& I! K
CentOS执行:yum install iptables( `* b( w% d- M
Debian/Ubuntu执行:apt-get install iptables( |" j* t$ E! R* Z% l
% |# m0 J0 Y7 q
2、清除已有iptables规则; B9 s; b$ Q7 ^# ]3 G4 q; R
iptables -F/ c# v+ ?( r. H* q' v# _
iptables -X
; x E$ q4 l! M iptables -Z
# k! ], `( l1 C$ ^& k% n* `1 g. m) c; k7 L8 G) N& Q
3、开放指定的端口
2 K+ J- h5 N% H% U( n3 S2 Z2 s8 F g#允许本地回环接口(即运行本机访问本机)
+ i' O/ X h3 |$ Piptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
: }& f1 E) V! \- Q3 D # 允许已建立的或相关连的通行5 }- h* v8 \! Z
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
3 o: X2 m& ]$ }. B! W8 x+ O6 M #允许所有本机向外的访问
. v; z9 _: m. H* w: ]/ b% wiptables -A OUTPUT -j ACCEPT0 B( n( z2 Q9 n9 C' J9 V
# 允许访问22端口. Z2 A1 {3 w6 N5 e
iptables -A INPUT -p tcp –dport 22 -j ACCEPT6 Y( @# u9 r( z
#允许访问80端口
3 j/ R. H2 m! a. m9 t9 p* ?! B# Liptables -A INPUT -p tcp –dport 80 -j ACCEPT
$ r7 ?$ D( k) \* c6 I #允许FTP服务的21和20端口
) }9 A' f, R2 b, Piptables -A INPUT -p tcp –dport 21 -j ACCEPT
2 {4 A6 s% R" f, J" Y iptables -A INPUT -p tcp –dport 20 -j ACCEPT
9 Y: g( N3 q6 J #如果有其他端口的话,规则也类似,稍微修改上述语句就行
: z' V& y& g% g; z#禁止其他未允许的规则访问. k0 N7 t7 L, B J' D G0 i- l
iptables -A INPUT -j REJECT0 j/ v6 X3 H5 b: A% g
iptables -A FORWARD -j REJECT
) {0 f, a5 s1 G& c8 H# W' _! F$ ~0 h' O
4、屏蔽IP& d% e: n1 R2 A/ g3 U
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
. j% N2 M% a& v% m2 A$ W& Z#屏蔽单个IP的命令是. |2 C9 |# ~! O" O0 l
iptables -I INPUT -s 123.45.6.7 -j DROP: Z# \2 g3 {; Q
#封整个段即从123.0.0.1到123.255.255.254的命令# g0 d6 K* h$ e
iptables -I INPUT -s 123.0.0.0/8 -j DROP) T. ?$ F& Y7 n1 F
#封IP段即从123.45.0.1到123.45.255.254的命令% b6 \' E; l' A7 a# `2 ?
iptables -I INPUT -s 124.45.0.0/16 -j DROP
2 d+ U0 k: d F, u! t #封IP段即从123.45.6.1到123.45.6.254的命令是
8 X. z& M$ W: q% @9 `iptables -I INPUT -s 123.45.6.0/24 -j DROP
* Q1 j' }3 y: p; |% g# X5 b" e& k. Q
$ @. x+ {) u5 b: x4 Z. |4、查看已添加的iptables规则9 ^9 J) @0 U* V
iptables -L -n$ l$ A. ^# j7 w4 p
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数; T" |) Y- u" k. _. s' }
x:在 v 的基础上,禁止自动单位换算(K、M)
4 b: q& O4 B- u3 h e' In:只显示IP地址和端口号,不将ip解析为域名
6 Q1 j( h$ O# n5 Z. ^
0 g6 ~8 }+ l0 R, I- |5、删除已添加的iptables规则9 x$ ?2 d, F7 l1 q+ Q; k9 o3 R
将所有iptables以序号标记显示,执行:
" i0 i; }% q% ]iptables -L -n –line-numbers
: x, d+ m/ `! R8 U/ c比如要删除INPUT里序号为1的规则,执行:/ P) U7 O* u5 ^) f4 z+ T
iptables -D INPUT 1
' \& [& G7 O5 g4 U: _# s% |4 p$ d' F: |/ }& P
6、iptables的开机启动及规则保存
! C! _/ A H& X0 gchkconfig –level 345 iptables on
' K$ ?/ e) T" t CentOS上可以执行:service iptables save保存规则1 u; a9 v. U9 }: x+ {. F
linux下使用iptables封ip段的一些常见命令:
6 S6 u7 p9 C* V! C' l" ]3 e5 d5 y1 L 封单个IP的命令是:
9 B% g& _: c- a9 o! Viptables -I INPUT -s 211.1.0.0 -j DROP, M+ |8 _0 p: |1 m. z0 A8 Q& V5 Z
封IP段的命令是:$ j* ^: k) w* `% z
iptables -I INPUT -s 211.1.0.0/16 -j DROP
% [# s( ^1 r: S/ [. b iptables -I INPUT -s 211.2.0.0/16 -j DROP
, r9 C9 P8 k" n, } X: h) ~8 O5 e iptables -I INPUT -s 211.3.0.0/16 -j DROP
1 T6 m$ i {- y7 p+ G: Z7 F! n( ]0 z4 I2 N" M
封整个段的命令是: n2 ?3 q9 e& J8 W6 F: @) G9 a$ W
iptables -I INPUT -s 211.0.0.0/8 -j DROP' M9 J- j2 V/ L7 Q% R- ]9 l( N
* e# X: d) Z2 F* T- A* B
封几个段的命令是:7 T; t) U* Y0 j0 E! \' K* H- T
iptables -I INPUT -s 61.37.80.0/24 -j DROP
! h, }/ c2 {4 [: b iptables -I INPUT -s 61.37.81.0/24 -j DROP
2 a+ S4 T! C: Q% h0 S+ |( _
! @: E) f ~9 S- l# q解封的话:
& c3 o( I+ f0 ^) o- h0 o4 xiptables -D INPUT -s IP地址 -j REJECT" o H- V" E0 w1 ]" c, g3 w9 `
iptables -F 全清掉了# |# ]' H! x6 ?: ?' P% b
5 }: G) G! W z关闭: /etc/rc.d/init.d/iptables stop
# W; `- Y% W3 J/ z( t启动: /etc/rc.d/init.d/iptables start6 Y9 u- C7 b) A' }6 c; a
重启: /etc/rc.d/init.d/iptables restart
% x# o# R5 q+ s" Y; U1 A9 h4 m# x
9 l3 f4 ], s) Q: ]1、重启后生效
5 ^1 p5 q* Q. m Z3 q5 S 开启:chkconfig iptables on' ]- o% X4 @1 K4 I0 k6 N
关闭:chkconfig iptables off6 C+ }9 U0 Q- z# x8 a# k) E- V
2、即时生效,重启后失效2 k8 \! m8 o* l( h5 b9 G* ^
开启:service iptables start1 h, o/ M" R9 U, A% R9 t
关闭:service iptables stop |
|