|
|
1、安装iptables防火墙
; o+ {+ ^" U) }CentOS执行:yum install iptables
5 f I/ C' [3 q: Z( R9 j! h4 ? Debian/Ubuntu执行:apt-get install iptables
5 ?' g& o- E5 [9 Q1 O4 {6 F5 H, b) n% k+ \( L8 J
2、清除已有iptables规则. y9 T( \8 U3 U/ F
iptables -F) }+ T. J& w7 r# A9 K' K
iptables -X) E* D8 x" i4 l, \9 r' v
iptables -Z
4 e# f5 r! W7 J; U/ l
" h# t; k8 z0 t* e9 C. p' a/ B+ o3、开放指定的端口+ d/ T& Z, _5 ?
#允许本地回环接口(即运行本机访问本机)
& V; m- u" H1 z+ {- b' ziptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
7 B4 y1 S6 s+ k% T$ y0 p8 _8 U5 a # 允许已建立的或相关连的通行" q1 [; ?' W4 c" |4 \. I$ q1 W
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
: ?7 e* Z2 D4 y D w' Q5 m- _- q #允许所有本机向外的访问/ Y( A' T+ P5 I
iptables -A OUTPUT -j ACCEPT+ G) B( U, S0 }# p# o/ k' z
# 允许访问22端口9 a5 c: o) ^' w
iptables -A INPUT -p tcp –dport 22 -j ACCEPT" @9 L3 A0 g( }
#允许访问80端口
3 B# P; F' N+ N1 |1 riptables -A INPUT -p tcp –dport 80 -j ACCEPT
4 C# @! n9 m$ u8 R) N$ |1 k #允许FTP服务的21和20端口7 C7 m; C1 C5 ^% r+ q
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
3 m/ f4 }2 u( r iptables -A INPUT -p tcp –dport 20 -j ACCEPT
( }, Y' q2 X+ o+ }! `6 D4 @- K' d #如果有其他端口的话,规则也类似,稍微修改上述语句就行7 \7 b' S0 X1 B/ O1 i4 y
#禁止其他未允许的规则访问
# i% D; x V" C- u" X: m; |3 }iptables -A INPUT -j REJECT; ?$ V x2 ]2 Z; Y3 u
iptables -A FORWARD -j REJECT% x# V! C: |- i" p0 u. o- k
* q# U/ C, `4 J5 _% I4、屏蔽IP
/ L4 Z6 Y# X$ [/ j2 f/ { #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。# _( x6 I9 C. v+ O
#屏蔽单个IP的命令是
3 a0 _# T2 s" S" v; ^, Niptables -I INPUT -s 123.45.6.7 -j DROP4 Q6 ]* o+ t4 m6 P Y# S
#封整个段即从123.0.0.1到123.255.255.254的命令/ y- X- \' N! d8 N( v
iptables -I INPUT -s 123.0.0.0/8 -j DROP6 z) [8 e3 M% N2 ^) P* _3 B
#封IP段即从123.45.0.1到123.45.255.254的命令7 v* R h) z0 R; H1 ]! O" i
iptables -I INPUT -s 124.45.0.0/16 -j DROP
4 [ A$ u& n) Z+ _/ G: }: x8 h #封IP段即从123.45.6.1到123.45.6.254的命令是
% n0 i0 a9 S& u! s1 C; S" Fiptables -I INPUT -s 123.45.6.0/24 -j DROP
6 h# @9 `! m; B. I- a! L, E( }( }# L( _
4、查看已添加的iptables规则% i1 n; @) m) U) p9 ]
iptables -L -n
( H" |% k; ]' {- M! P v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
o: I- Q8 \8 D" Y; U! gx:在 v 的基础上,禁止自动单位换算(K、M)
( a3 U: W3 h7 o' sn:只显示IP地址和端口号,不将ip解析为域名5 S, f+ s1 h# T! V4 t( p4 W* w0 O- [! C
8 Z) M' G7 q5 X: i7 N
5、删除已添加的iptables规则
% n1 J3 X- ]# m 将所有iptables以序号标记显示,执行:7 |9 J, O1 R0 e' U. X
iptables -L -n –line-numbers
+ l0 O5 n; }- s% f s# U# K比如要删除INPUT里序号为1的规则,执行:
( x# F5 G; O: c! q7 viptables -D INPUT 1
. F! I9 \" D" d1 v
: I" V) U" \, [- H1 Y0 M+ k6、iptables的开机启动及规则保存
# o: i, w: t# k% B9 Dchkconfig –level 345 iptables on" D( R% V0 M. S4 d/ y* O
CentOS上可以执行:service iptables save保存规则* @( ^) q7 u7 u2 ~* k0 H
linux下使用iptables封ip段的一些常见命令:
! @1 X8 g: D0 X 封单个IP的命令是:
9 M# g) J! l" \+ h" Giptables -I INPUT -s 211.1.0.0 -j DROP" k9 _( ~2 M; l: b/ N8 e
封IP段的命令是:: \ Q9 b% a: G
iptables -I INPUT -s 211.1.0.0/16 -j DROP4 t" W1 W, S; r! y7 A/ ]0 @
iptables -I INPUT -s 211.2.0.0/16 -j DROP
" t$ A* m( o% F* X iptables -I INPUT -s 211.3.0.0/16 -j DROP1 O$ \) u7 L; W
& Z, k+ ^+ P$ l2 p1 u/ S
封整个段的命令是:2 D% N* A2 e* G& x" S
iptables -I INPUT -s 211.0.0.0/8 -j DROP2 e) P& K# Y: I
( p2 u1 C; o# _2 p
封几个段的命令是:
! n1 |* N6 s1 q/ h/ j9 o+ Niptables -I INPUT -s 61.37.80.0/24 -j DROP
& Q3 o6 D6 k* q) R5 V5 _ iptables -I INPUT -s 61.37.81.0/24 -j DROP
" M A- U2 R- Z6 R/ V/ B; s$ D4 n" C+ c2 m# b' [8 t
解封的话: ]# e0 A9 [5 K5 r2 @" i0 B5 y
iptables -D INPUT -s IP地址 -j REJECT
$ R) C! w ~$ q. X; G* t iptables -F 全清掉了
+ B# k% I* j. p% `2 ^7 s
% b, _* d. u& s关闭: /etc/rc.d/init.d/iptables stop( y1 S9 [5 { m4 e
启动: /etc/rc.d/init.d/iptables start3 G. Y9 _" ?; X3 J3 V+ E1 G- N
重启: /etc/rc.d/init.d/iptables restart* e0 @$ e! l" d8 \, l2 c b
7 k7 {- u/ k; o6 Y
1、重启后生效/ E; Q& h K) s* X9 [
开启:chkconfig iptables on
. I4 t. P; j+ X, r: Y% S关闭:chkconfig iptables off
0 E. g# v6 t( C/ j# Z3 o. t; D5 u5 U4 ] 2、即时生效,重启后失效
! J5 d \, D' W 开启:service iptables start
+ ?1 P# t5 h2 w5 g+ L$ H8 N关闭:service iptables stop |
|