|
|
1、安装iptables防火墙/ R$ b+ E* |" q9 B* ? x. T( c
CentOS执行:yum install iptables0 B* S( N/ l, [/ R
Debian/Ubuntu执行:apt-get install iptables
+ ^/ `8 u7 b) w. m* g W* A; x C% d# Y( w) R# u! k! `5 d, f
2、清除已有iptables规则$ ^# L% Z Q1 O1 R' f
iptables -F
" {9 h; V6 m, m. m/ | iptables -X
) h4 |7 Q5 o( `$ _ |8 a iptables -Z
% F$ R8 M7 c+ r R& G* c
* j5 I/ u8 p6 b4 h4 ]9 Z# b$ U! [3、开放指定的端口
# V' u- v2 R% K- u4 J$ @! D: w" O1 `" q#允许本地回环接口(即运行本机访问本机)
) V, N, x4 M9 k* h( }% Riptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT1 M5 l: `4 t- L$ j
# 允许已建立的或相关连的通行
& g( ^5 T* Z+ Fiptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT1 Z4 ?5 Q" w% X5 [
#允许所有本机向外的访问* Y4 j) ~$ ~; @, f* S* q
iptables -A OUTPUT -j ACCEPT
; N. Q0 h9 X+ ?; i # 允许访问22端口
5 b6 G/ b# x9 J- a8 j+ Ziptables -A INPUT -p tcp –dport 22 -j ACCEPT
' L' Y. `" b' Z7 t: y3 Z #允许访问80端口
. R0 e, f) D1 `* I6 O& Iiptables -A INPUT -p tcp –dport 80 -j ACCEPT
$ m+ D/ s& p) f. { #允许FTP服务的21和20端口2 t2 m8 H: ^ {1 Q
iptables -A INPUT -p tcp –dport 21 -j ACCEPT, h x6 p3 w# n+ I' j8 M
iptables -A INPUT -p tcp –dport 20 -j ACCEPT$ X: o: M8 Z( Y. i1 o A& H
#如果有其他端口的话,规则也类似,稍微修改上述语句就行/ H; w- n) h7 M5 ^' x8 A
#禁止其他未允许的规则访问5 _3 V2 t, s# l; l
iptables -A INPUT -j REJECT* w# V$ M# f3 Z% w B5 p* K7 Q
iptables -A FORWARD -j REJECT
+ k5 C% Z8 } g3 ?9 }8 b. X5 C# s+ h4 o0 u# |* b& i; J
4、屏蔽IP4 C; u/ W/ V# p5 \ v
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。
+ \! e, C- b4 U2 l% V( n! m( E#屏蔽单个IP的命令是2 B; @- ~+ L3 r7 u) L& m
iptables -I INPUT -s 123.45.6.7 -j DROP
+ |8 j5 v ?* _, X2 R #封整个段即从123.0.0.1到123.255.255.254的命令
6 g* d3 M# f* l& X! qiptables -I INPUT -s 123.0.0.0/8 -j DROP
* p' O, \0 v6 o: c8 P0 G) c #封IP段即从123.45.0.1到123.45.255.254的命令
: `5 E/ w; U5 W1 `( kiptables -I INPUT -s 124.45.0.0/16 -j DROP
' V( l2 Q, Y+ s6 E5 q' y( Z #封IP段即从123.45.6.1到123.45.6.254的命令是
7 ~3 I9 A u" y5 K {* S) _6 [iptables -I INPUT -s 123.45.6.0/24 -j DROP; n/ O5 V J- W
' D1 k% ]% O }9 l5 y4、查看已添加的iptables规则) b p }, Y) l1 L
iptables -L -n# L+ e* t3 W/ U" M
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
( M! @8 b$ ` W$ w8 M; kx:在 v 的基础上,禁止自动单位换算(K、M), X3 F" u3 M$ O; V6 |+ i5 z
n:只显示IP地址和端口号,不将ip解析为域名
0 p# c; w* U4 q. S2 _ ]" x- j. n
% A( |' D0 r' L5、删除已添加的iptables规则" D( ]# h; g8 z
将所有iptables以序号标记显示,执行:
$ n, @ s" [- h! i' v* I0 miptables -L -n –line-numbers3 g; b' z# _) _% }4 m, V% M8 a
比如要删除INPUT里序号为1的规则,执行:
) b+ \" K+ T: I" l, Tiptables -D INPUT 1
6 a2 ]$ y5 Q. L6 m, Z5 P# ~
i! D% |2 B! S6 c. Y2 K6、iptables的开机启动及规则保存2 {$ F8 m( a- o, @( O
chkconfig –level 345 iptables on/ v+ ] Y+ |2 D5 B `, L
CentOS上可以执行:service iptables save保存规则
1 P/ y: r7 S2 k, E$ klinux下使用iptables封ip段的一些常见命令:
% y# k! _* r' d8 o+ ]: Q R( G 封单个IP的命令是:+ }2 G: `. y: F" ` y
iptables -I INPUT -s 211.1.0.0 -j DROP
4 i1 U& k* e6 `6 c. i+ C: M) c封IP段的命令是:
) w& Q5 C* j! f, R1 Siptables -I INPUT -s 211.1.0.0/16 -j DROP
6 `3 l) I" D# h3 \- t" M iptables -I INPUT -s 211.2.0.0/16 -j DROP
1 g, ^2 x# t) P L6 u/ o* B iptables -I INPUT -s 211.3.0.0/16 -j DROP2 T* x' w- s2 R" s6 [) v m- l7 G8 x
. i& w( Q8 e9 q# R9 K2 m0 a. y
封整个段的命令是:
+ y: Z) K7 {% k) ]) i5 M- k4 d' Kiptables -I INPUT -s 211.0.0.0/8 -j DROP
7 ]" |5 |3 ]" L( R- V& @. T; ~+ L0 N5 _5 X- V3 X# ~/ Z+ q. }: ?
封几个段的命令是:
1 ^5 C# Z$ v* P$ piptables -I INPUT -s 61.37.80.0/24 -j DROP+ \4 I, p8 v* i
iptables -I INPUT -s 61.37.81.0/24 -j DROP& S/ x8 U) H1 e; k
* X' U3 S+ v# J B( T- V( h4 H$ ?
解封的话:& a) b( z+ S0 P
iptables -D INPUT -s IP地址 -j REJECT
) g7 w, {% N4 w" L" l# I iptables -F 全清掉了
2 v. T/ ~5 O+ K) A F
, U: A$ ]2 j% S0 z# ?关闭: /etc/rc.d/init.d/iptables stop. W* Y9 s9 K+ b6 Q: {9 N
启动: /etc/rc.d/init.d/iptables start
- t* ~; Q+ T7 u& U+ G: m. w% D重启: /etc/rc.d/init.d/iptables restart0 ^& C0 m$ w1 U$ x/ b
( I4 U3 q8 Z6 Z# _1、重启后生效
8 |! e3 _8 U0 L: J$ H1 S 开启:chkconfig iptables on
- m1 t5 Q! }. j& T关闭:chkconfig iptables off
7 P# E+ `$ A" k9 [: i/ Z. Q4 z$ q3 t 2、即时生效,重启后失效
4 O5 x* x$ N3 _+ H0 h 开启:service iptables start/ c% n$ w9 ?8 r3 F
关闭:service iptables stop |
|