|
|
1、安装iptables防火墙
* M# T8 L/ U- ?CentOS执行:yum install iptables' q1 y" M& v- y
Debian/Ubuntu执行:apt-get install iptables* Y: \9 x, F3 C! k" j! T$ i$ m! z3 N
+ E9 `2 J, l- c
2、清除已有iptables规则+ I" k" {7 Z7 P; ~
iptables -F8 p0 P! I( q; y% h+ l' v, e
iptables -X7 }- ~( ]# e, T z K; J K) b
iptables -Z- h: h8 k, O. z3 q
7 P+ A* W7 t) M2 k! y* ~% P+ P" V8 H
3、开放指定的端口
7 q* [' M1 z+ a7 b% k- y/ S. G#允许本地回环接口(即运行本机访问本机)+ `* c$ |% [% t" V, `$ |
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT9 i3 q4 l: ^$ {) A# p
# 允许已建立的或相关连的通行5 F+ D$ R9 ~1 r% E; a
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT; k# k% p- v+ D* P
#允许所有本机向外的访问
; t+ i6 X, V' G$ N& E- C+ P7 Liptables -A OUTPUT -j ACCEPT; E9 m. t4 r2 o. X8 l' q
# 允许访问22端口- Q( t2 D* I( H7 i9 {% K) O+ Y
iptables -A INPUT -p tcp –dport 22 -j ACCEPT! s, C; j* L6 ^0 B& X
#允许访问80端口
9 L6 D* y& m2 y( Y, Ciptables -A INPUT -p tcp –dport 80 -j ACCEPT4 v! h) `5 h4 ?
#允许FTP服务的21和20端口
/ f. \5 h( ~0 q/ n) q X% E6 piptables -A INPUT -p tcp –dport 21 -j ACCEPT
$ @) H& X. O: v iptables -A INPUT -p tcp –dport 20 -j ACCEPT
0 A8 w5 n, K' i* |8 y #如果有其他端口的话,规则也类似,稍微修改上述语句就行
2 [0 v! x6 Q% F#禁止其他未允许的规则访问
L$ s) P* p# m+ x* b# k( c2 iiptables -A INPUT -j REJECT
4 P8 o: R( F! }" o2 ^ iptables -A FORWARD -j REJECT
. m$ _5 u" L- ?, K; E1 g, {) c$ }; o9 L5 [+ V
4、屏蔽IP/ C, ^- l% B' F
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
7 x J, z j% [. n' w& T+ f* C#屏蔽单个IP的命令是
, {5 j1 {1 }/ [iptables -I INPUT -s 123.45.6.7 -j DROP' m) @( |$ r' Y
#封整个段即从123.0.0.1到123.255.255.254的命令; m5 E, {# D! R* P& }7 z& D
iptables -I INPUT -s 123.0.0.0/8 -j DROP
1 f) F! |' o! B( |0 B #封IP段即从123.45.0.1到123.45.255.254的命令
9 A& A# E: X4 k- `iptables -I INPUT -s 124.45.0.0/16 -j DROP/ ?7 A C/ F" m
#封IP段即从123.45.6.1到123.45.6.254的命令是
& j# y M H; Miptables -I INPUT -s 123.45.6.0/24 -j DROP) R9 ?1 y. P- c8 X8 {
. D8 W+ s# t: S+ F4、查看已添加的iptables规则
) C$ H L/ D) L. E/ C1 N- [3 tiptables -L -n: A4 m5 H6 M& ?! V
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
3 b& j: B G- t2 Z3 ?x:在 v 的基础上,禁止自动单位换算(K、M)# O) r$ Q1 g/ c8 K
n:只显示IP地址和端口号,不将ip解析为域名/ |' E) {! R$ g- @5 r
6 F3 o: Q- J, u' s% C
5、删除已添加的iptables规则
: y/ _9 n3 c# A3 E- e3 u! n" J. f 将所有iptables以序号标记显示,执行:* e8 R( z6 k0 M
iptables -L -n –line-numbers
/ b# W- Q# E3 X% {3 U. @比如要删除INPUT里序号为1的规则,执行:
0 n* }9 O# E P Giptables -D INPUT 1- v" f9 K1 }2 O/ G# o
( w8 I: g7 C9 [% c3 [0 z6、iptables的开机启动及规则保存 A8 x: M2 l$ {$ y( c
chkconfig –level 345 iptables on7 H; ^: v& `9 S$ x. T* d7 w6 w
CentOS上可以执行:service iptables save保存规则9 _5 Z% I/ R' ]8 q4 b
linux下使用iptables封ip段的一些常见命令:
5 u* F7 N1 v( Q1 c2 ]( }0 ~ 封单个IP的命令是:5 X: d! P7 M' I6 c: Y
iptables -I INPUT -s 211.1.0.0 -j DROP
) m7 \* t2 G5 a封IP段的命令是:
1 w! m) R& L. ]& e: m) i/ piptables -I INPUT -s 211.1.0.0/16 -j DROP
3 |" `: @" D! g. e( f iptables -I INPUT -s 211.2.0.0/16 -j DROP; s* D' ]+ e% S9 E; ]
iptables -I INPUT -s 211.3.0.0/16 -j DROP
2 f! ]! @% I$ ~. y1 x
+ v2 y* F. n7 p2 a7 K封整个段的命令是:) d3 o. }/ e' n8 I/ {8 b
iptables -I INPUT -s 211.0.0.0/8 -j DROP3 N5 Y6 u# f: l$ h/ {
% L- w: e) S) U( {; ?) u% v* O
封几个段的命令是:$ O. V0 M4 o2 k& Y3 r: [
iptables -I INPUT -s 61.37.80.0/24 -j DROP
: Y6 F1 p3 I6 L. L; S8 O iptables -I INPUT -s 61.37.81.0/24 -j DROP
: m! t9 ~; R) }. |; r; [6 A" B) s
+ x& D! E! @8 d7 w! s! F解封的话:1 x- m/ [" x2 c8 Z7 u( D
iptables -D INPUT -s IP地址 -j REJECT3 S& n2 D' T' ^! v' e* _7 O
iptables -F 全清掉了
, Z( n1 G' X5 \' }/ B$ ?0 H- K! g2 M l/ H. J
关闭: /etc/rc.d/init.d/iptables stop/ G# d; \4 U$ w1 U5 m/ c
启动: /etc/rc.d/init.d/iptables start
, u- f% V8 b. a; x3 T! n重启: /etc/rc.d/init.d/iptables restart
# H$ }8 u+ c1 J. G4 B/ }: a) v$ F3 ]/ z' y8 {7 _
1、重启后生效
5 E0 E* x& J0 G- P1 W: Y 开启:chkconfig iptables on
9 k. T* ^# Z1 J5 W/ V关闭:chkconfig iptables off5 k$ }. J9 K. P
2、即时生效,重启后失效
, I6 P) o/ X C/ `1 c) o/ r 开启:service iptables start8 u0 m1 [3 L8 Z6 q0 u% H+ n6 Z$ p2 Y" u4 s
关闭:service iptables stop |
|