|
|
1、安装iptables防火墙
2 P# Q; E1 C& ]2 T" g: l( HCentOS执行:yum install iptables
1 y9 \* s( x! p+ c; Y' a# } Debian/Ubuntu执行:apt-get install iptables% [7 r" n4 a3 Q* h0 w
+ k5 n& _9 ]6 v1 ?; H' j% n
2、清除已有iptables规则7 q0 \ s0 r& g8 g
iptables -F
" f* E6 u! R! h& @ iptables -X6 R+ n! Y7 x" G$ v% L" A( ]2 r
iptables -Z
4 h( ^' @. H% F% m+ K' Z' e' s0 `# c, M% X$ C; b8 `7 _. I" C, N
3、开放指定的端口
) _# X5 [4 u3 u: }#允许本地回环接口(即运行本机访问本机)
& n5 T$ Y# O' G: e7 V4 _! m; y- Miptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
. `1 r5 F4 f' ]8 H* x0 B # 允许已建立的或相关连的通行1 x' O* [0 Y" e5 O
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT5 v3 E9 k' X$ V1 S
#允许所有本机向外的访问
- i" N; R8 I% h9 N. N" m1 x* W. E! siptables -A OUTPUT -j ACCEPT
, o% F0 f1 i& v1 k9 }5 a; O # 允许访问22端口+ x8 b7 \2 ?# ?4 V5 [2 S
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
/ m$ r' h/ K2 h2 N* N( s #允许访问80端口
; u$ o t6 l" c% ^0 diptables -A INPUT -p tcp –dport 80 -j ACCEPT: b8 m& R+ l& h6 J' s% K% v7 s/ @
#允许FTP服务的21和20端口* E6 G" L0 S+ R) P4 A% j
iptables -A INPUT -p tcp –dport 21 -j ACCEPT
: {& O# [. q2 S8 \" g. ~5 g iptables -A INPUT -p tcp –dport 20 -j ACCEPT' V) [. a6 R' e; A
#如果有其他端口的话,规则也类似,稍微修改上述语句就行
# e/ X8 f! r2 D$ U# p8 P k#禁止其他未允许的规则访问
4 `% X; ~' A4 F! Ziptables -A INPUT -j REJECT U: Z+ y& w$ @! h& q
iptables -A FORWARD -j REJECT
3 I0 T9 j1 b9 d8 ?) C6 v5 _: e2 s0 {& Y
4、屏蔽IP
6 X5 O5 N1 O/ d& i' Q+ T; ` #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。+ Z& r, G4 b5 ]) R" |
#屏蔽单个IP的命令是5 z0 V4 Q/ Z" W- s- A
iptables -I INPUT -s 123.45.6.7 -j DROP9 W+ w4 _# F, a( [/ s/ n
#封整个段即从123.0.0.1到123.255.255.254的命令5 D4 }' I8 S: f Y
iptables -I INPUT -s 123.0.0.0/8 -j DROP
# G9 g& c) l# A% i3 w #封IP段即从123.45.0.1到123.45.255.254的命令
0 Y/ I1 Z$ U% W* J+ W4 l6 Fiptables -I INPUT -s 124.45.0.0/16 -j DROP# W4 y6 ?' q" O0 {' Y w& v9 k5 j2 E
#封IP段即从123.45.6.1到123.45.6.254的命令是
. J; |& t" h7 X r7 _/ s7 Niptables -I INPUT -s 123.45.6.0/24 -j DROP6 J8 V2 I( `* t4 z# c7 Q
. E! f5 [& D# R$ K* U1 t
4、查看已添加的iptables规则
: }; C, v# X- O! g* J4 Uiptables -L -n& i% K% Y9 i1 l/ k5 k" P6 I* J. @8 h
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数1 @2 i/ g% X/ x
x:在 v 的基础上,禁止自动单位换算(K、M)
3 N/ `7 V8 m8 H3 W) D9 c- N2 qn:只显示IP地址和端口号,不将ip解析为域名
% [2 s( }+ Q$ p2 ~# S* p8 Y5 x( ]4 L* y6 [# X4 Z( v1 m+ T
5、删除已添加的iptables规则5 _; @0 Z2 e/ |
将所有iptables以序号标记显示,执行:3 I1 L# r2 A( @' X2 ^
iptables -L -n –line-numbers
! h$ ~& e8 U/ K比如要删除INPUT里序号为1的规则,执行:
3 L( z# z& [ C( v K, T+ Jiptables -D INPUT 1
! G* f) g3 B% ?2 a4 \
' A/ ?6 ^( m/ G6、iptables的开机启动及规则保存
- z9 _% M; Q4 C/ cchkconfig –level 345 iptables on
2 ]1 {! p+ w7 N8 n, H' m7 b, q CentOS上可以执行:service iptables save保存规则
; I$ V, ~& R5 P2 B; z: f& l3 Jlinux下使用iptables封ip段的一些常见命令:
( O- ~! N2 \( K% V3 ~ 封单个IP的命令是:# p% I8 J' N+ J% k8 C& ^, f
iptables -I INPUT -s 211.1.0.0 -j DROP
$ v! Q* K7 w, U- H封IP段的命令是:' I) V' ]+ s- `& {
iptables -I INPUT -s 211.1.0.0/16 -j DROP
5 L( x- } T3 q iptables -I INPUT -s 211.2.0.0/16 -j DROP
: P9 t- u* m* z, W iptables -I INPUT -s 211.3.0.0/16 -j DROP
) w I I: E v4 {/ n
6 K& M( h R( `封整个段的命令是:
. I# b: ^7 d' u( e4 qiptables -I INPUT -s 211.0.0.0/8 -j DROP
2 }: [6 c! Y# {6 D6 S; {5 t# |* d* ~5 K1 n$ _
封几个段的命令是:
7 U, n, E8 O/ H2 |" aiptables -I INPUT -s 61.37.80.0/24 -j DROP
/ M5 E i( Z* ^% f1 F& T9 e2 ` X iptables -I INPUT -s 61.37.81.0/24 -j DROP5 i( e) n0 P6 o" _% `
8 {8 s6 j+ Q4 ]; `. s3 k; p3 P
解封的话:/ q9 [& ` T1 g1 q8 U( q# X
iptables -D INPUT -s IP地址 -j REJECT5 L# c/ R* X& {
iptables -F 全清掉了
6 b4 n; w$ S, h6 i! I4 l3 F$ }; y5 ^% m3 p
关闭: /etc/rc.d/init.d/iptables stop
' Q [, @- O+ A2 u1 {% P启动: /etc/rc.d/init.d/iptables start
) W3 J! U* V+ j% F$ B重启: /etc/rc.d/init.d/iptables restart7 B, ^* S# C1 y% g) b4 Y
+ ~* R0 E+ W2 J, ^$ f, T1、重启后生效. Z! i" w; b, W' z
开启:chkconfig iptables on" {7 y6 j* T5 z: m3 V
关闭:chkconfig iptables off, Y3 _7 r5 k; w4 p
2、即时生效,重启后失效6 b4 R1 Z! D' r+ K/ ]5 Q& l; `8 T1 U
开启:service iptables start, T" ?% G: G7 l; s9 P# y
关闭:service iptables stop |
|