|
|
1、安装iptables防火墙
9 J$ n* k- h9 n2 [8 F" E% tCentOS执行:yum install iptables
' \+ V/ Z0 I3 `4 t/ a: k) A Debian/Ubuntu执行:apt-get install iptables9 v2 E5 Y1 x# L# m% j5 ]
. C3 n7 f$ j) S* i* g9 H
2、清除已有iptables规则4 }; @% D# r" r3 c) E
iptables -F2 W1 h; a: m7 x7 p
iptables -X
% R* C3 V/ G! A- E! p" m4 @ iptables -Z
2 g' G, S( h2 b9 O! ?+ a8 ~: A5 s& i9 m L5 S( S, d# N; A0 U% p0 r
3、开放指定的端口 F. O7 W. ^, K X3 i
#允许本地回环接口(即运行本机访问本机)
9 S/ U) r' e7 [7 aiptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
) a. _+ T) q+ d( V+ o* f4 u% u. M # 允许已建立的或相关连的通行/ h# |' |, J1 D3 ^1 e
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
( l# W% }* s6 p) T# p2 a$ `- m #允许所有本机向外的访问
. }1 D! U! D% ?! X; N6 S3 Tiptables -A OUTPUT -j ACCEPT
1 G) I, @6 ^8 }. U1 ]$ Q # 允许访问22端口
1 d- E+ y. B+ W- X' X5 q' J( riptables -A INPUT -p tcp –dport 22 -j ACCEPT3 y( W7 t* b0 ~' P' r
#允许访问80端口
! L/ s$ Z3 T3 n( i2 q ]iptables -A INPUT -p tcp –dport 80 -j ACCEPT9 T' m+ O% u6 f! t/ K4 y' X* w
#允许FTP服务的21和20端口1 H9 F% n. [% Q/ Z& N" a
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
* r, p" e) S: F+ m$ d iptables -A INPUT -p tcp –dport 20 -j ACCEPT
0 m. M8 C7 A1 [# ^! u #如果有其他端口的话,规则也类似,稍微修改上述语句就行
# ]' R- x4 B9 n' J% Q$ E) w( j4 ?#禁止其他未允许的规则访问, e0 d8 |1 W0 i% w& y4 L2 X# \
iptables -A INPUT -j REJECT3 {0 k% j) I1 l8 I% @' r
iptables -A FORWARD -j REJECT
( H5 @ \2 `, e C0 P- Z6 A2 p, j+ D5 C, T7 Z# D& N
4、屏蔽IP
8 [: ^& Z G# ]8 n8 U( i #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
$ h8 G2 H, @4 \- ^1 _# ~2 X' ~#屏蔽单个IP的命令是
& t( @2 u+ G8 F. E2 y+ ?iptables -I INPUT -s 123.45.6.7 -j DROP& B9 |) Q/ t3 g4 `1 G
#封整个段即从123.0.0.1到123.255.255.254的命令: ~- B; h5 c0 U1 \
iptables -I INPUT -s 123.0.0.0/8 -j DROP/ ` I% P- t; Z \( f6 |' S
#封IP段即从123.45.0.1到123.45.255.254的命令
9 _9 }/ n- y6 s0 iiptables -I INPUT -s 124.45.0.0/16 -j DROP
6 l3 ]; H% n4 S) S1 H #封IP段即从123.45.6.1到123.45.6.254的命令是
1 o8 `9 |. x. Q T- Oiptables -I INPUT -s 123.45.6.0/24 -j DROP
3 f( e6 ]$ S7 m" b+ u( N0 f# r2 ^: d3 }/ h. i3 R0 @
4、查看已添加的iptables规则
/ z& ^7 }9 w3 ~' a9 @" S- wiptables -L -n) {# z ~- T9 `3 s5 k* u
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数7 a0 M; I5 Q% e( _+ |" n2 n
x:在 v 的基础上,禁止自动单位换算(K、M)
7 j# g: }+ G: N9 d) h4 f w) [% An:只显示IP地址和端口号,不将ip解析为域名
' `: e6 R! l, f$ n% s' N
4 o) w3 g3 b ?" Q% s5、删除已添加的iptables规则: }# q" H7 K9 g' {
将所有iptables以序号标记显示,执行:- R) v5 m t( L/ U2 d, ^, ^
iptables -L -n –line-numbers
, p3 ~# l9 D! B) }" s比如要删除INPUT里序号为1的规则,执行:
' [# x7 _ Q2 K; viptables -D INPUT 1
: f0 i9 Z; G* j7 C% m% J3 b1 o9 \$ _$ U- B! G
6、iptables的开机启动及规则保存
- ]3 |2 X3 o" i/ ?1 x/ `0 Vchkconfig –level 345 iptables on; N. I$ r/ b Q3 H5 w. H. m6 n
CentOS上可以执行:service iptables save保存规则
4 ]1 ? d0 R6 [5 N9 ?linux下使用iptables封ip段的一些常见命令:
$ x% b% t& g( @; O) x 封单个IP的命令是:
# R1 N6 F5 N+ b! j+ y( {) Viptables -I INPUT -s 211.1.0.0 -j DROP
g ]7 L+ u* N1 @" A9 d% [封IP段的命令是:/ q; |% Y, q( T! u$ @, |! E5 u
iptables -I INPUT -s 211.1.0.0/16 -j DROP0 ~0 }1 h5 X) c" t6 \! L
iptables -I INPUT -s 211.2.0.0/16 -j DROP2 r& H- B' N& t2 b
iptables -I INPUT -s 211.3.0.0/16 -j DROP
5 c5 ]# P0 w& C0 ?; Q1 I6 b5 G$ V$ C# y- [/ s* X
封整个段的命令是:: t# d7 V* r5 F: L
iptables -I INPUT -s 211.0.0.0/8 -j DROP8 P4 S+ F( u9 [% N5 `$ p) [
' x2 N1 D( E* ~6 W l9 u* O; K
封几个段的命令是:
5 G. p) M' T! W+ [- Liptables -I INPUT -s 61.37.80.0/24 -j DROP
! T0 k$ O( D; [, n, I% ]* z iptables -I INPUT -s 61.37.81.0/24 -j DROP
4 D9 ]- s" A! _% v5 j. Y6 t" v, D2 C: M' Q
解封的话:
0 r/ N" R/ Y$ }. n9 c% U* O- `& |% _iptables -D INPUT -s IP地址 -j REJECT* G: o' r* C: G
iptables -F 全清掉了* k$ ^6 D4 M( C7 x8 ?- _ P
- P s2 [$ [# K. |; D# [* R3 o3 b# O
关闭: /etc/rc.d/init.d/iptables stop
& {2 N& u; C. _; X: @" e, k$ J启动: /etc/rc.d/init.d/iptables start- C, K1 m9 g& s
重启: /etc/rc.d/init.d/iptables restart8 V$ [: T9 {' c' `! i
7 E) l V5 @) ^1、重启后生效
! l% b5 l3 l0 J' c ^ 开启:chkconfig iptables on
! m8 u- v( C; B9 u关闭:chkconfig iptables off' D( |7 v2 ^6 h: n) O; i
2、即时生效,重启后失效
% ?4 ~, `! l' _! P5 a 开启:service iptables start( Q5 m4 J: I) U9 ]1 o) T5 r
关闭:service iptables stop |
|