|
|
1、安装iptables防火墙* u+ ]) D, g9 Y1 a0 m' y# H2 ]
CentOS执行:yum install iptables
0 x$ o% M3 j& n5 r Debian/Ubuntu执行:apt-get install iptables
7 q- d- w" T/ b2 o& P/ x0 |% J
; V/ g# s# v' O L$ E: V2、清除已有iptables规则$ E7 ^" D) \3 Q) M
iptables -F
5 ^8 u' l k' N% `' ^ iptables -X
# ]) V: t* ~9 ?: p' F. B# R iptables -Z
; [1 R |9 E$ N6 H
, F2 T B9 G# R* y. f9 S8 o* R3、开放指定的端口0 j6 S2 k: V9 t% }
#允许本地回环接口(即运行本机访问本机)4 |2 A4 L" D& W1 c+ c3 F D
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# z, [% k) U* F, n # 允许已建立的或相关连的通行
9 N7 O* {; g( O5 Siptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT, |$ k' g$ y' L9 w% t% k5 o1 V- r
#允许所有本机向外的访问
+ `- { `6 `, @/ x1 \. Ciptables -A OUTPUT -j ACCEPT: T6 f3 N. f4 k
# 允许访问22端口) W7 Q/ R. z4 V$ C. R6 Q3 _
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
4 t& X5 H& m& n# l9 P #允许访问80端口
- A& `+ K7 q/ xiptables -A INPUT -p tcp –dport 80 -j ACCEPT/ p b0 L/ ~; |( t
#允许FTP服务的21和20端口
+ A7 Y' [+ {" r( F: j: P! |iptables -A INPUT -p tcp –dport 21 -j ACCEPT
6 ~' O/ o3 i/ j/ V9 k iptables -A INPUT -p tcp –dport 20 -j ACCEPT
6 H- Z! r+ Q$ _7 Z9 S5 k- I #如果有其他端口的话,规则也类似,稍微修改上述语句就行1 D8 O' C. V: f/ h) L5 |. a
#禁止其他未允许的规则访问& T9 m% b7 m2 X
iptables -A INPUT -j REJECT
. a K' G$ m$ U5 c0 {( C, X iptables -A FORWARD -j REJECT
0 _" ~' V( K. v; C0 T" ^6 F* ~. r
4、屏蔽IP
0 e6 _; v' n6 n( w% t* D #如果只是想屏蔽IP的话3、“开放指定的端口”可以直接跳过。% c' z/ y7 g4 R7 w' R! k
#屏蔽单个IP的命令是8 |' \, }7 k) f% e) u# K; B% X
iptables -I INPUT -s 123.45.6.7 -j DROP
, V/ K S' b5 |1 w0 d #封整个段即从123.0.0.1到123.255.255.254的命令3 V4 e) L1 t- n
iptables -I INPUT -s 123.0.0.0/8 -j DROP
. G9 P1 m; `' _' f3 G #封IP段即从123.45.0.1到123.45.255.254的命令
: E8 C, \* R0 }' a: R9 liptables -I INPUT -s 124.45.0.0/16 -j DROP
5 P3 g! O/ i7 w- b2 {, h #封IP段即从123.45.6.1到123.45.6.254的命令是) E7 C3 ?' P0 K; q8 B) l
iptables -I INPUT -s 123.45.6.0/24 -j DROP
( G2 J, S. p( ^; X% n# O4 h! N! r5 t% D' a% f$ u! \$ z3 t n- ?3 n; X
4、查看已添加的iptables规则+ Y4 I5 B o& v( [. u
iptables -L -n
% z0 K- p. ~ j2 }$ m, e# E H5 n v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
2 k/ I% k' F* ]) }x:在 v 的基础上,禁止自动单位换算(K、M)
1 Z) U4 _' I& r4 Vn:只显示IP地址和端口号,不将ip解析为域名: Z2 v( U% b* A/ I9 i/ l4 ~
( S& Q; B* ~: P; T$ g2 d4 ?5 H
5、删除已添加的iptables规则$ \) A0 w0 e q) @ F
将所有iptables以序号标记显示,执行:8 {+ H0 y: t, c3 p" Z8 I: G
iptables -L -n –line-numbers
0 z$ o+ N% m+ j/ }4 Z! g% Q比如要删除INPUT里序号为1的规则,执行:
a! J) m4 c4 ?iptables -D INPUT 1: S0 h8 T6 J, q" z
4 O9 p4 M8 `9 P; m1 w- w( p6、iptables的开机启动及规则保存
3 `0 L; p9 I# {6 [* e: ]chkconfig –level 345 iptables on" Z/ y8 t% F3 @$ B7 _
CentOS上可以执行:service iptables save保存规则
+ O4 l( Z; {( w/ f% `1 b. |; ?linux下使用iptables封ip段的一些常见命令:
) m) o6 p2 b+ m 封单个IP的命令是:& Q5 m/ r4 s8 d- o" F2 Q
iptables -I INPUT -s 211.1.0.0 -j DROP
P( t1 `% p' n4 p/ r- t( x封IP段的命令是:* Z+ X+ K$ \; ~& g- L
iptables -I INPUT -s 211.1.0.0/16 -j DROP, V* X, O3 Q5 A4 V3 w# Y
iptables -I INPUT -s 211.2.0.0/16 -j DROP
$ Q3 @5 f, Y8 m iptables -I INPUT -s 211.3.0.0/16 -j DROP
5 H4 x1 X# P3 O, c: l
$ [ U6 j) z$ Z' O Z9 T6 ]- T2 K$ R4 T封整个段的命令是:
6 R3 t9 z J. Q3 Q6 B- e" siptables -I INPUT -s 211.0.0.0/8 -j DROP6 m3 B( {" H/ v8 I; q
8 M1 S ?4 x M
封几个段的命令是:& Z2 Z1 u8 X% h# I: U
iptables -I INPUT -s 61.37.80.0/24 -j DROP
3 n4 m( G ]' h/ Q: L3 O5 a: b5 A iptables -I INPUT -s 61.37.81.0/24 -j DROP- m/ R8 ~1 j4 z' o. I. J$ n
# j' Q4 o# f7 y E1 h8 Q# ~7 I解封的话:8 \' s" f9 w" J* r
iptables -D INPUT -s IP地址 -j REJECT
# O# I. f" y/ f# p! I: F) B iptables -F 全清掉了
8 s. l# `0 r$ j% k% G3 Z M y N/ v6 M! t S1 t+ D8 {* v4 I
关闭: /etc/rc.d/init.d/iptables stop
# g* f4 v% u- q启动: /etc/rc.d/init.d/iptables start/ w* P x: P* u
重启: /etc/rc.d/init.d/iptables restart8 s U4 Y* C6 i
7 t0 |, d9 y2 h1、重启后生效, `, T- L! @$ i O1 H, @
开启:chkconfig iptables on( K' d% v$ @( v; g$ V6 y
关闭:chkconfig iptables off/ j1 I9 l- \' D1 b6 h
2、即时生效,重启后失效; c+ {6 @& d; x& M1 t: P' [
开启:service iptables start/ {( K9 K: i3 p7 y _. u5 l
关闭:service iptables stop |
|