|
|
1、安装iptables防火墙
\+ ]5 n& Y1 MCentOS执行:yum install iptables
2 i; l9 _7 y+ @ Debian/Ubuntu执行:apt-get install iptables1 g. p z2 i- h+ x$ N# f2 p
$ o% _8 y, e2 h
2、清除已有iptables规则
9 y* B) e! k Y& A: c5 ^iptables -F
2 [4 ~, W8 a7 F7 F' K: ], T iptables -X
/ j* a8 H- G) a, W/ k+ w iptables -Z' ?2 t* H/ v2 `( S, R4 j
: k) r/ M+ l! F
3、开放指定的端口
) Y9 h2 v: \( p% Y) I+ f2 q9 ?#允许本地回环接口(即运行本机访问本机)
4 z F. ?2 ]0 u% x* |# Diptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT% a2 B" R! a2 A# ^
# 允许已建立的或相关连的通行
" s8 v% B, ~4 Q8 i4 @iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT9 d- J( S. E9 B0 S9 F% z
#允许所有本机向外的访问( [- P6 f, D! i( }
iptables -A OUTPUT -j ACCEPT
1 ?- `' ~" T8 ~ # 允许访问22端口8 y0 ~7 A- u) w/ [2 \* a2 Q1 c
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
) j, G6 v) _# V+ |8 L+ ^* v #允许访问80端口
: Z& W8 Q: t( A. s9 O0 c; ziptables -A INPUT -p tcp –dport 80 -j ACCEPT
7 j E+ }8 ?& z% ] #允许FTP服务的21和20端口
; J! s, R% p# x% Uiptables -A INPUT -p tcp –dport 21 -j ACCEPT
0 ?* V5 [# r9 C% J7 I iptables -A INPUT -p tcp –dport 20 -j ACCEPT- C$ E& ?2 m% k
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
7 V. D; P0 p% N0 X" `' e! T#禁止其他未允许的规则访问+ w3 m2 x2 e2 f! A! c
iptables -A INPUT -j REJECT4 o% |' B( M9 B0 l
iptables -A FORWARD -j REJECT
" z3 ]+ M( u+ }' |- t: m* k/ \- f% | |4 J/ }
4、屏蔽IP
# y1 \, I4 r# H5 l& \9 {- i4 q #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
% ]# i4 q2 R1 u" Y% T3 d, }# _#屏蔽单个IP的命令是
; [& |, u+ g1 ciptables -I INPUT -s 123.45.6.7 -j DROP
Y& Q; P3 r0 b& P: {) n' o* n+ a8 a #封整个段即从123.0.0.1到123.255.255.254的命令+ d3 I. v, w. E! p H' z% a
iptables -I INPUT -s 123.0.0.0/8 -j DROP
/ D1 ~* ], H$ W! V #封IP段即从123.45.0.1到123.45.255.254的命令
, @; m6 ]+ j! A7 Piptables -I INPUT -s 124.45.0.0/16 -j DROP
+ S3 D# O- m: j& d #封IP段即从123.45.6.1到123.45.6.254的命令是
: U$ u1 ` \) F9 Oiptables -I INPUT -s 123.45.6.0/24 -j DROP
* j. h0 a1 y4 B) j: S, ~+ [' p! C
- j$ ? L& l1 |% n* l/ ?( ]1 C% Y- v4、查看已添加的iptables规则4 \2 b% T' g0 t& t
iptables -L -n
# T% X9 M7 h: p# w8 S v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
3 f% p8 u, _5 {+ h0 }6 o @) Vx:在 v 的基础上,禁止自动单位换算(K、M)
# \: G1 c E# sn:只显示IP地址和端口号,不将ip解析为域名" X7 y0 S& y0 f0 @; a- }
9 ?& H, E7 q# N, V% l* R5 E: c* f
5、删除已添加的iptables规则
( |! M) y) l% q5 {/ B 将所有iptables以序号标记显示,执行:, _% s2 Y& @) I- m" t
iptables -L -n –line-numbers7 x3 _6 }! A. o1 H* v/ M
比如要删除INPUT里序号为1的规则,执行:' p) _% D: |9 j# I6 `1 N
iptables -D INPUT 1! Q' _+ @! H3 g( c0 r; U
G7 U9 y+ G' G2 I& w" h% T
6、iptables的开机启动及规则保存
9 j2 E/ C( u7 z! n& U$ Lchkconfig –level 345 iptables on s2 l i' ?! b5 h @$ \$ C
CentOS上可以执行:service iptables save保存规则9 I. h2 T' o! F/ _! }
linux下使用iptables封ip段的一些常见命令:
3 q. J/ R5 V" |; `$ B 封单个IP的命令是:
* ~! e! }3 \3 w$ I' Q' Oiptables -I INPUT -s 211.1.0.0 -j DROP/ ^9 x" v+ @9 `0 Z8 n
封IP段的命令是:
+ D0 v+ e9 G/ U$ e- _" ?: v Ciptables -I INPUT -s 211.1.0.0/16 -j DROP
9 ^0 ]& s$ y. k" L iptables -I INPUT -s 211.2.0.0/16 -j DROP
/ d) p9 \, K' l! o/ d iptables -I INPUT -s 211.3.0.0/16 -j DROP7 x. Q1 G9 P4 Y$ o U. V
3 S5 k j1 R( ^6 |; E8 D; p封整个段的命令是:$ T- B: @9 n$ _" x1 ?! W: E! V9 R, p8 k
iptables -I INPUT -s 211.0.0.0/8 -j DROP3 x9 n+ t* V) u$ O8 a3 R* w
( S3 A& o. w4 t' e封几个段的命令是:! M1 g1 r. l3 d. n% b; E* U4 V
iptables -I INPUT -s 61.37.80.0/24 -j DROP3 n7 ^+ n7 H& C
iptables -I INPUT -s 61.37.81.0/24 -j DROP
; T1 i4 O6 g& n, O: Y
5 ?+ G: ?' q& M+ \* |3 D解封的话:
* c# n/ C- w0 h0 a' Eiptables -D INPUT -s IP地址 -j REJECT6 C1 u, q" X. P, C, C' L( @9 z
iptables -F 全清掉了
1 t/ k, J6 o) s+ ?/ V; J7 Q# f
" d; A; G- R6 d+ Z( K* a关闭: /etc/rc.d/init.d/iptables stop
- R, I7 K$ P' ~1 n) F- R启动: /etc/rc.d/init.d/iptables start# {6 N- t! l5 L- H* Q
重启: /etc/rc.d/init.d/iptables restart
7 J( ?: B; {0 N8 e$ m& C. q; |1 q" A i! I3 a* l
1、重启后生效# T# |0 ?+ m. _) M. _
开启:chkconfig iptables on% g! ?; U8 S( k
关闭:chkconfig iptables off
. X# ]4 b2 z) m1 h7 c0 w 2、即时生效,重启后失效3 o' Q4 r3 W/ d9 p
开启:service iptables start$ b8 @# p! A3 ?* a. b: ^ r* o
关闭:service iptables stop |
|