|
|
1、安装iptables防火墙4 z0 p2 D0 T4 q7 \
CentOS执行:yum install iptables
/ D! k6 D9 d, {4 w+ d Debian/Ubuntu执行:apt-get install iptables' g( C4 F; M+ n; v! F# _$ e
- o! H; S1 y" |* z, [4 L
2、清除已有iptables规则
. y' d& F2 @/ ~* wiptables -F
4 |& u, T4 A( M+ Y7 J iptables -X
9 T; w; ^3 b ^$ R3 |+ i iptables -Z' Z3 j5 J) k# X+ b
; E ^' p$ N& V2 h. _
3、开放指定的端口, m. {; p; O( B" P7 b/ u, T
#允许本地回环接口(即运行本机访问本机)
0 X& u2 R% j, c( a7 _+ x: yiptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT& u! J f4 U" Z; s3 _. H0 z
# 允许已建立的或相关连的通行
9 u9 C/ b) J: Viptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT9 h9 N" m# D& y, \# A
#允许所有本机向外的访问
0 d% z1 ^+ B Z) z' ~+ Miptables -A OUTPUT -j ACCEPT) [- X7 {1 Z4 q0 r) ~
# 允许访问22端口: o' R# M. {2 Z* T* B* Z: H: p4 P
iptables -A INPUT -p tcp –dport 22 -j ACCEPT% H J5 s E4 m a+ e5 h
#允许访问80端口
6 T4 F2 s& A* w1 _& ?7 g. fiptables -A INPUT -p tcp –dport 80 -j ACCEPT7 E( s/ J* i1 W- h2 {" Y. }5 x
#允许FTP服务的21和20端口6 L: q1 c& u! T) h# Z: Y
iptables -A INPUT -p tcp –dport 21 -j ACCEPT: l3 l/ ~" M' ?# s
iptables -A INPUT -p tcp –dport 20 -j ACCEPT
, u3 u0 B# C) x" P #如果有其他端口的话,规则也类似,稍微修改上述语句就行- y* a4 z; r& w# g) |
#禁止其他未允许的规则访问2 W% k, c9 r9 i+ W4 p
iptables -A INPUT -j REJECT
/ V2 C" ]" h6 q1 L3 c iptables -A FORWARD -j REJECT- c5 l) L" r7 F! V6 P
6 Q% d' P. z% a6 P" ^# g/ _3 @4、屏蔽IP2 I/ A$ h5 y7 W1 Y* n' J
#如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。; j- \0 p" X$ B! f8 Q7 b
#屏蔽单个IP的命令是
$ t+ b* a8 R6 D$ q5 ]* ^; Niptables -I INPUT -s 123.45.6.7 -j DROP, \% X/ T, N2 ^
#封整个段即从123.0.0.1到123.255.255.254的命令
1 r5 A# h6 H9 r; Siptables -I INPUT -s 123.0.0.0/8 -j DROP
4 ?; S/ H" i: B+ W0 I #封IP段即从123.45.0.1到123.45.255.254的命令% d9 d9 o, r: N
iptables -I INPUT -s 124.45.0.0/16 -j DROP$ P! t+ s* D" B, g6 {. L5 J
#封IP段即从123.45.6.1到123.45.6.254的命令是 K4 I5 ~: `/ V# q! h1 e0 {& ?
iptables -I INPUT -s 123.45.6.0/24 -j DROP! ]0 s. n1 e4 {% o6 I6 Z
# L" F( R; y0 s6 Y0 s9 E4、查看已添加的iptables规则6 }% X7 d8 N6 }9 D) L
iptables -L -n
$ d# ?' J. T2 V3 ? v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
$ F( [" B% Y) f% @x:在 v 的基础上,禁止自动单位换算(K、M)( I& I) }2 ?# g1 f) S; Y
n:只显示IP地址和端口号,不将ip解析为域名3 A/ W. T+ C, C- ]- J. e
! Y) ^4 b M) L
5、删除已添加的iptables规则- d( m2 c! G; i9 \1 [. W# ^
将所有iptables以序号标记显示,执行:6 Z I( e$ a, i% J
iptables -L -n –line-numbers6 U6 t+ ? e. V" j- F# k2 R& a
比如要删除INPUT里序号为1的规则,执行:0 H# g6 L7 N5 n% A* J; p( E! z% e0 p5 y
iptables -D INPUT 1
' B& Z7 T* D0 P9 p- ]3 y7 W5 C& |5 n! \. j" @& R
6、iptables的开机启动及规则保存
4 ^ m7 }7 s/ I6 b# j; C# Vchkconfig –level 345 iptables on
' Y; N0 m+ X U5 B% \7 w CentOS上可以执行:service iptables save保存规则6 R$ ^1 ]: b M" s* u0 T v
linux下使用iptables封ip段的一些常见命令:
6 d- M4 ]! m9 a* Q' v6 T 封单个IP的命令是:( C" [8 b. H- X5 e. i$ ]9 A6 ~- J
iptables -I INPUT -s 211.1.0.0 -j DROP. t, M5 M/ R7 j
封IP段的命令是:
! N& c/ w/ S: k3 a/ ] Z+ Tiptables -I INPUT -s 211.1.0.0/16 -j DROP# y$ h: Z% K, Z- H8 h* `
iptables -I INPUT -s 211.2.0.0/16 -j DROP
8 O: P" m) \3 ~1 l iptables -I INPUT -s 211.3.0.0/16 -j DROP7 p9 q& ]! Y# ]/ w: @3 h, L
- `! y' X1 @/ z! w: r封整个段的命令是:
+ n6 p! D e$ m3 hiptables -I INPUT -s 211.0.0.0/8 -j DROP; v, x: M8 p% C* ~+ L
1 z: X# C2 U1 x& ]7 [8 \( S
封几个段的命令是:
F1 Q0 ^$ o* a; z: Diptables -I INPUT -s 61.37.80.0/24 -j DROP0 D3 O; P" o3 v9 A2 B, [7 ?
iptables -I INPUT -s 61.37.81.0/24 -j DROP
, f1 k% T1 K+ A
3 X9 p& W( t3 C解封的话:
' k. g. B7 _9 [0 `iptables -D INPUT -s IP地址 -j REJECT
A/ r3 o! _7 H4 E' [7 s iptables -F 全清掉了5 T; g& K% ?4 T+ D+ o9 M8 ^) V
7 g4 l) w$ D) S; @
关闭: /etc/rc.d/init.d/iptables stop9 `: ` p& W+ _) H3 f
启动: /etc/rc.d/init.d/iptables start; @2 C7 k k2 k0 s
重启: /etc/rc.d/init.d/iptables restart
7 y* s; C- u+ F! K6 X0 f9 k7 O- F/ q, y- L+ M/ Y% @6 g. a
1、重启后生效
1 I, Z- G- V( A7 t J 开启:chkconfig iptables on
' _# b: {3 C; J关闭:chkconfig iptables off, v7 s$ ]3 H& u' `& H5 H+ u
2、即时生效,重启后失效* S& e& c5 L/ {0 [& ?4 h/ x
开启:service iptables start
8 K2 A t! c8 L$ c关闭:service iptables stop |
|