|
|
1、安装iptables防火墙
9 d5 f: K2 S# GCentOS执行:yum install iptables. r4 N! g0 t9 x1 g) m2 ~/ ~
Debian/Ubuntu执行:apt-get install iptables( U' v- x( @8 e7 \3 o
8 S! \: R- _* W' B% b
2、清除已有iptables规则
* g* g$ F: n3 _# x: Ciptables -F. {5 ~8 q# w' I6 m
iptables -X
0 T, r1 Q4 f3 @8 o: z( c9 ~ iptables -Z# ^2 M8 H* E0 U
7 |. p$ S$ {1 M3 m5 J) l
3、开放指定的端口- r; Q O, N$ l* m% s
#允许本地回环接口(即运行本机访问本机)- D: w y ^3 ^* V' C {
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
0 V- z1 B6 X* ]+ H' P# V% |7 Z% @ # 允许已建立的或相关连的通行
P1 m/ R+ `0 c Biptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT z: O( e, y& y: T* ~
#允许所有本机向外的访问/ d8 ~7 N: `) B4 B) J
iptables -A OUTPUT -j ACCEPT
5 M4 {( Z0 Q. }' k3 H2 M- \ # 允许访问22端口
- J* p" U o6 B6 `: R: [iptables -A INPUT -p tcp –dport 22 -j ACCEPT
1 @" e6 e A. O8 V #允许访问80端口" z$ Z& S. ]% B4 A
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
' e, ?5 l6 n o+ S" n$ \2 z3 P #允许FTP服务的21和20端口4 l' d$ Z8 r2 n" m! H9 L
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
3 P6 G. ^7 F" k iptables -A INPUT -p tcp –dport 20 -j ACCEPT0 j9 | u$ g% \8 ~. G
#如果有其他端口的话,规则也类似,稍微修改上述语句就行- y7 o* j% K; }' z
#禁止其他未允许的规则访问- d5 k# H8 ^6 q r4 X+ A. `
iptables -A INPUT -j REJECT/ ?( l: |+ y& t0 n: J4 A
iptables -A FORWARD -j REJECT
. ]. C6 Z; g1 G# B P8 N) n: {: l) S/ _: L
4、屏蔽IP9 ~' g. |. j) r+ i* j2 S
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。0 W$ R5 }6 V4 O5 z7 S% W5 ^
#屏蔽单个IP的命令是9 D- b8 M) i, p$ C
iptables -I INPUT -s 123.45.6.7 -j DROP7 s. S7 H, K6 y$ D* G' x7 v
#封整个段即从123.0.0.1到123.255.255.254的命令
- H; d7 ]7 R. Q3 b, hiptables -I INPUT -s 123.0.0.0/8 -j DROP, {- q* j! t0 M- B8 K) A6 p/ J7 o
#封IP段即从123.45.0.1到123.45.255.254的命令
; P5 T4 M# z4 Qiptables -I INPUT -s 124.45.0.0/16 -j DROP2 k" q& \6 B, a7 |- ~& c! X
#封IP段即从123.45.6.1到123.45.6.254的命令是9 d2 t6 S# j" g, j- A
iptables -I INPUT -s 123.45.6.0/24 -j DROP/ h) n9 [/ ]5 k9 b! `
+ j( N. A# L1 j
4、查看已添加的iptables规则
, q$ z7 I0 o4 N3 Eiptables -L -n* X7 H2 X& \) x% x3 c
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数+ n$ C/ Y, T& q
x:在 v 的基础上,禁止自动单位换算(K、M)6 G6 ? y. q* N: r6 m4 K
n:只显示IP地址和端口号,不将ip解析为域名5 I9 Q2 e% X: t b7 F
- R% ?' [1 w7 [/ S$ m% O5 G, N! ^
5、删除已添加的iptables规则
1 P' K4 m/ N! k) r+ q 将所有iptables以序号标记显示,执行:5 F9 L3 I' F. J7 w
iptables -L -n –line-numbers
% Y, U# M7 i0 |# X& }( q+ A比如要删除INPUT里序号为1的规则,执行:: |7 {: Z# p1 H* |' }# y7 p- B
iptables -D INPUT 1
: ^; F \: D! ?* p% ?2 {+ |9 N% A4 F. r+ Q; ]5 p4 k. B
6、iptables的开机启动及规则保存/ ?2 j% O- R) ~ k, @. h
chkconfig –level 345 iptables on
2 t# z/ U$ b1 i& ~4 D- c CentOS上可以执行:service iptables save保存规则. w1 a* w0 a9 g8 z: J
linux下使用iptables封ip段的一些常见命令:
1 j7 g- E6 U5 Q 封单个IP的命令是:2 }( `/ N/ N( |( b0 P' \
iptables -I INPUT -s 211.1.0.0 -j DROP
: L& R6 j& x t( s封IP段的命令是:5 d: w! a# S# s
iptables -I INPUT -s 211.1.0.0/16 -j DROP
# ^) A2 |3 Y2 n) P) l8 J iptables -I INPUT -s 211.2.0.0/16 -j DROP
1 q8 C0 o v- }# m# G3 z% D iptables -I INPUT -s 211.3.0.0/16 -j DROP
3 ^9 c5 f# T$ {) E. I: y6 M
4 A6 ^! {# p% g7 T0 b封整个段的命令是:
: k1 ^+ }# P* N1 b9 R+ Wiptables -I INPUT -s 211.0.0.0/8 -j DROP: s) |, U7 o- h) i1 h
# M) t6 u! |$ o1 L# A$ u& C, S% Y封几个段的命令是:
& Z9 T8 Q7 t! d& eiptables -I INPUT -s 61.37.80.0/24 -j DROP9 b: I$ G! x) k( P( [ l8 S$ [
iptables -I INPUT -s 61.37.81.0/24 -j DROP% O } T& s' S" J9 a
[" q* E" p6 k) a w& I8 D
解封的话:! }) Q" j7 J; h) m/ j
iptables -D INPUT -s IP地址 -j REJECT+ _ a5 Y' M& b: y% n
iptables -F 全清掉了# A6 z5 M2 }' e% B
$ m3 N9 `9 v/ H* l" ?/ y( l, m关闭: /etc/rc.d/init.d/iptables stop
( Q/ p! K! B! q8 H; s启动: /etc/rc.d/init.d/iptables start
9 i5 z0 d: J; F* N+ K# v! N重启: /etc/rc.d/init.d/iptables restart1 K, H' c% x, z& K4 @. o( L! a
" }% E) m' N* a: ]! e
1、重启后生效! U) s0 a2 \+ @- o* S
开启:chkconfig iptables on4 q+ x3 v; N1 C) Y, Q
关闭:chkconfig iptables off7 I l- ~: g- U- `& R9 @
2、即时生效,重启后失效( o: b6 q4 `, O
开启:service iptables start5 J& ]. i8 V% x- m
关闭:service iptables stop |
|