|
1、安装iptables防火墙
* r# K5 `9 P% e9 SCentOS执行:yum install iptables
1 O9 n8 a0 _1 \) L C3 r" K Debian/Ubuntu执行:apt-get install iptables
% B* P7 O# g T L' ], K! ?: ~
" g$ @8 P( m7 v; O: U2 T# i8 Q2、清除已有iptables规则
4 E: `; m, W7 h. S8 Xiptables -F
/ ~# s c/ w/ O. D% y/ j iptables -X
$ P2 t! X9 E$ y: J* } iptables -Z w$ |5 S- o. f. B4 I
R @: M I( R8 n3 H+ m3 S1 G5 y$ W1 ?. \3、开放指定的端口3 E) L$ D: O+ i! a% G
#允许本地回环接口(即运行本机访问本机)
* O: |. r$ E+ W; u% X6 }iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
: k/ O' X# h/ L0 N* t # 允许已建立的或相关连的通行
3 S& {) W4 b, j( i* F# hiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT4 F" [4 e( P3 Q O' }1 ~; l
#允许所有本机向外的访问! @5 u$ E' E+ n
iptables -A OUTPUT -j ACCEPT6 N4 y3 e2 j& P: M: F$ g
# 允许访问22端口5 B+ ~) h. d1 @6 V' m0 ]) M
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
6 ^# r, u4 {; ]: s. W #允许访问80端口, I+ z+ y& t, u* c$ P7 z- V
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
1 r# F* X y# D$ J; F/ J0 s- F! S #允许FTP服务的21和20端口
; @- y* n. ]# W! q4 t+ |& `iptables -A INPUT -p tcp –dport 21 -j ACCEPT+ Q" u7 r9 f% w z, k
iptables -A INPUT -p tcp –dport 20 -j ACCEPT I% ]( E8 Y, p& O$ V' c$ y
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
2 H0 o( V; s2 {" j#禁止其他未允许的规则访问6 A5 @7 I# L8 }
iptables -A INPUT -j REJECT
7 W. v- _3 R7 s& b# O iptables -A FORWARD -j REJECT
+ `) w, f* z3 j! ~% ]3 f* }3 a% k# Z D# T! V% s& J" W* ]5 u
4、屏蔽IP+ `. i" T1 x( L- E9 s' d
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。1 ]( y, w1 g8 B0 _" ]9 Y
#屏蔽单个IP的命令是 W+ g; y1 G3 k& U# F8 t, J
iptables -I INPUT -s 123.45.6.7 -j DROP
1 v/ W) _: |" m #封整个段即从123.0.0.1到123.255.255.254的命令4 [6 M2 \& x3 h0 |8 {
iptables -I INPUT -s 123.0.0.0/8 -j DROP
. N" K, Q' f: E" X #封IP段即从123.45.0.1到123.45.255.254的命令- h7 ]) X! @3 z
iptables -I INPUT -s 124.45.0.0/16 -j DROP
- i# } r6 {6 R3 ? #封IP段即从123.45.6.1到123.45.6.254的命令是" K" h6 N+ v n9 C. E: c% A( ]
iptables -I INPUT -s 123.45.6.0/24 -j DROP
) S. u" w. r: l1 S8 ?% S
2 m$ F8 P5 f! j# @ h4、查看已添加的iptables规则
! }6 C5 N! O8 B- [- q Kiptables -L -n& f- O# U4 A! X' w, e( O1 Y
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
6 b6 i6 F' Q W$ I# F. Zx:在 v 的基础上,禁止自动单位换算(K、M)
7 N+ k- B4 B7 ]+ xn:只显示IP地址和端口号,不将ip解析为域名
; l8 @! L3 h( R8 }" u4 O3 W2 o* V. s0 O* ?7 S0 I. V+ c
5、删除已添加的iptables规则" H% ^) s s: E, ?' B5 ?
将所有iptables以序号标记显示,执行:: ?! u1 ]7 ^6 P- I }0 ?. G
iptables -L -n –line-numbers
& q9 R2 B# J K; y* ~6 Y8 Q比如要删除INPUT里序号为1的规则,执行:0 {# a8 M/ k! Q
iptables -D INPUT 18 T5 S9 l- ?3 z5 ~
' Z6 D& \1 Q. @' b: f" l3 G
6、iptables的开机启动及规则保存$ i9 ~+ L. c1 E& \7 P: |/ Q
chkconfig –level 345 iptables on
# w9 S; M7 a( J, w n( | CentOS上可以执行:service iptables save保存规则
9 {: g! y, Q& \' f9 E: b, v Ulinux下使用iptables封ip段的一些常见命令:
1 ~* U1 T2 [0 w# ^2 P 封单个IP的命令是:+ R! v! Y7 |! G' [- }8 `: e
iptables -I INPUT -s 211.1.0.0 -j DROP
& B* m% }! p+ {; X9 r0 t; S# O封IP段的命令是:& Y% O* O; o* X. [
iptables -I INPUT -s 211.1.0.0/16 -j DROP
$ d0 }1 m0 e+ h/ \& m2 W' t iptables -I INPUT -s 211.2.0.0/16 -j DROP
% i7 a) z% d8 I. ] iptables -I INPUT -s 211.3.0.0/16 -j DROP
& R3 M4 f2 \. b8 X& e: Y' d5 d( x! s; X1 `, A
封整个段的命令是:
$ u$ N2 T5 `* A- c3 Kiptables -I INPUT -s 211.0.0.0/8 -j DROP
6 |- T* I! o* o
; s( ?6 W8 E' z' M封几个段的命令是:7 i$ ?# b- b7 m; K4 A" s9 P
iptables -I INPUT -s 61.37.80.0/24 -j DROP) q+ ]) z4 n0 a$ l
iptables -I INPUT -s 61.37.81.0/24 -j DROP
0 w3 {* d9 Q+ q
5 J3 y$ M2 T0 o' F# b* X* Y4 Q解封的话:
3 K& N4 i3 P0 g6 L$ z- C! \iptables -D INPUT -s IP地址 -j REJECT
: S* a, ?; U6 u. g8 G iptables -F 全清掉了! H, k( H5 O! }
+ r6 q/ V! T9 E' ^
关闭: /etc/rc.d/init.d/iptables stop5 Y" F2 x0 F7 t* c
启动: /etc/rc.d/init.d/iptables start
. V# _# ]- V% O' P重启: /etc/rc.d/init.d/iptables restart1 ~# `5 C8 |+ \" q, Z
6 R) R$ ~6 S+ e1 J# @: B
1、重启后生效
% I1 \' V. _! @. f1 t# t 开启:chkconfig iptables on& i3 p( G- a4 M* [, B2 }
关闭:chkconfig iptables off
1 y4 T/ `3 o1 x% t 2、即时生效,重启后失效: K9 K; A1 U" d; e* N+ a( Q
开启:service iptables start
7 D3 W, {& E- q- Y/ m$ y关闭:service iptables stop |
|