找回密码
 注册
查看: 751|回复: 4

iptables添加openstack平台加固VNC访问安全

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2022-7-3 08:18:44 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:19:16 | 显示全部楼层
1、首次命令行新建iptables步骤
5 U% d& J; A+ {8 biptables -F #清除规则& Y0 Y( u: e" W5 Z  \. N  q4 M
iptables -X #删除自定义链: j3 Q( T" R. Z' w& E7 D5 ^
iptables -Z #清空计数
7 p# h. J5 {9 b7 {" h$ ciptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问: a+ m2 w5 y. b3 U" v; ^* {* J
iptables -A INPUT -i lo ACCEPT #信任回环端口
6 g6 e. s& d; b, ~+ J1 Eiptables -A OUTPUT -o lo -j ACCEPT- v! d+ J- l: K2 h
iptables -P INPUT DROP #设置INPUT链的默认规则为DROP6 e; G, ?  `3 H" d1 ~: }6 }' T$ F
iptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP# ~7 j$ X3 H  t" d5 j! ^  C
iptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP( r! ^7 l+ s5 o; R5 p6 W% o' m
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许PING包. r6 Z; C: F! F* W% x& f; L
####开放信任网段
2 u" S8 Z  Q. x6 f% Qiptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT
) i6 w& a6 s/ K4 q. Oiptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT3 E, x' P& q7 b2 N/ E
####开启对外服务端口+ A, }. r, L/ P0 d" A1 G5 M
iptables -A INPUT -p tcp --dport 80 -j ACCEPT- Y7 d* D" s& V
iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
1 J; q0 N% c5 }+ D####允许关联的包通过3 P. I4 Y+ E8 W1 u. w$ x
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT) \; S4 M  g% I0 B: E5 M. c
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT9 y, c2 E+ @! |" p5 z7 |' V
+ S& y# \; J. \& a# H( a, b! o
2、查看当前运行状态的iptables的规则
& n' i) h) v* a% m* `iptables-save
. e, Q! ?6 K7 Q4 b3、查看默认iptables配置配置文件的规则
2 G# H6 I3 _" b/ k8 `. J# O& zcat /etc/sysconfig/iptables
; y! t1 A7 C* O0 A- q4 t4、保存iptables配置
  h4 B. v4 q5 |  G3 ?' ciptables-save > /etc/sysconfig/iptables
0 o4 _$ d0 m2 k: c$ ]) }: v/etc/init.d/iptables save1 i+ r- U9 ?1 u8 k  s0 b
5、重新执行iptables配置文件
/ D$ D+ O5 O. j) e; I/ p/etc/init.d/iptables reload
6 s' x1 n3 \! R  c" d* D( g. l7 y; V' _iptables-restore /etc/sysconfig/iptables" e2 \: k* [# {# I& w5 r" o) X
6、启停防火墙' p* U9 e7 B0 X. e/ z# ^5 N2 M2 S
/etc/init.d/iptables start% N% A2 t) \% L4 K2 \
/etc/init.d/iptables stop
( D7 N0 l" v# p8 S7、查看详细的规则配置$ y  t4 K) F2 R
[root@centos6 sysconfig]# iptables -nvL --line
3 h& |1 a6 @; t; g' G/ U! `Chain INPUT (policy DROP 0 packets, 0 bytes)% j9 z. w) [! E5 ~" X
num pkts bytes target prot opt in out source destination0 n$ m2 q8 d" |# G
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/03 a7 p1 I/ C% j" A
2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
) J! u$ F' a( ?, ~/ ]3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
" H3 z$ V) I7 O4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/0# Y( S  W4 O4 m( m- n5 ]+ _$ e
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0
( P) w8 w# C' }6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0( G, w9 \) E  P6 _+ j
7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
( F& i5 {  ]& h+ a8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034
: Y4 o; j& y# C9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
! H2 \, l- E2 c1 ^) C10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910
- @: S9 N, `% i* t11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443
( {; X: w8 `4 d1 \  O. F12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED( e* G3 ?; P) T. a  M+ h8 Q
& }. O  {" N  Q0 f! h
Chain FORWARD (policy DROP 0 packets, 0 bytes)8 p; b' o7 K+ Z) ^
num pkts bytes target prot opt in out source destination8 M8 }  |1 @/ K! ?

' ^( {* @& x9 W' P1 B' s5 YChain OUTPUT (policy ACCEPT 0 packets, 0 bytes): Y; E* I( e/ W* P6 Z
num pkts bytes target prot opt in out source destination
2 j. b: h* z3 a6 W7 Y& H4 }1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
8 j: {& N4 `% _8 E1 ]' |2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED0 g, ?" o; ?. Y; j& ]- |# ]

/ U; v' T% r' s$ z+ G8 c2 P) {( a8、基本配置文件示例
% b  y! X; |2 Z* C: j[root@centos6 sysconfig]# cat /etc/sysconfig/iptables1 [! }4 N- v# C/ Z
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018
% ?6 f) L5 g8 S; v" l: d*filter
) |) Y9 Y+ J( t! q* J# i:INPUT DROP [0:0]5 x3 A9 J# {9 e
:FORWARD DROP [0:0]
+ w' b7 P' p  H2 b:OUTPUT ACCEPT [0:0]1 B( O, @6 w$ p) _  D# h+ r
####Trust loopback interface and Ping
: h4 \& i7 U! ^: u" f-A INPUT -i lo -j ACCEPT; N+ X( m+ J+ U! b
-A OUTPUT -o lo -j ACCEPT
3 A& P' i- f" k" ?5 r-A INPUT -p icmp --icmp-type 8 -j ACCEPT
% @9 A8 }, i$ s1 B####Trust Network
: D  ~9 L: Y2 v9 v. M6 y-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT& V, ~5 {2 e: K& M4 n
-A INPUT -s 10.8.26.0/24 -j ACCEPT
; i, B2 \/ D' p' e) ^' X-A INPUT -s 10.8.201.0/24 -j ACCEPT
. p  g5 m0 ~% |-A INPUT -s 10.9.1.1/32 -j ACCEPT" w) U" e' r4 ]* O% `( _: V" ~
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT( _# A. q& z5 f# N: V/ s
####Open Port
$ m5 C) Y" u; Q; s, u& x4 i+ ^& H; u-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
6 h, I2 y9 l5 g" Y-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT/ I% H; ]" a. u8 Z) N
-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT9 C  m$ C1 Y; C
####Relate Packets
1 V; U& C  F# e-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
" o( p. d: I5 S' i-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT* D" f7 P9 k3 P; d
COMMIT2 K" `* Z: O2 ?& y6 g8 Z
# Completed on Fri Jan 19 03:14:49 2018

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:20:53 | 显示全部楼层
在此实例获得了 nova-network 主机上的一个浮动 IP 后,这些规则适用: ) K, S! F& q. W
' O$ ~, o: t5 j; A
-A nova-network-OUTPUT -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.26 Z# U/ ^% j7 a5 s! P4 ?# j8 a
% P* h0 ?# {1 Q
-A nova-network-PREROUTING -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
/ u( W7 i9 ~2 A* U8 U2 I& `
. U2 C2 J9 u6 d; b% e) I- E-A nova-network-float-snat -s 10.10.10.2/32 -j SNAT --to-source 192.168.1.233 1 p+ r/ V/ m# K. T+ B9 C, Q

6 _# M. y. A* N6 N- e3 Q6 i2 v您会看到该 dNAT 规则被用来将此浮动 IP 转换成此实例的固定 IP。如果一个包到达 nova-network 主机并以浮动 IP 为目标 IP,则此目标 IP 就会被转换。然后,就会有另一项 sNAT 规则会将来自此实例的固定 IP 的流量转换到此浮动 IP。由于所有从 VM 到固定网络之外的流量均被指向网关(是由 nova-network 的 dnsmasq 进行设置),有了 sNAT 规则,出 VM 的流量就可以成功标志成来自此浮动 IP。此外,已包装的 OUTPUT 链内还有一个 dNAT 规则,允许 nova-network 上的本地过程访问具有浮动 IP 的 VM。 % w# ]3 J( a- q/ X* U5 z
: C$ v5 H7 _. F5 A3 h8 g' @
使用浮动 IP 的 Ping VM:
/ @, Q3 R/ I* u. i3 [: y
8 B, H/ }6 e3 X8 a要将 VM 与浮动 IP Ping 在一起,也需要一些规则。请记住,在此 nova-compute 主机上,针对每个实例必须有一个特定链;其内的规则只允许来自固定子集内的 IP 的流量。如果想要 ping 一个浮动 IP,流量就会被这些规则丢弃,因为 ping 包的源 IP 并不在此固定子集内。显然,需要一个规则以允许 icmp 流量。 为了添加一个允许 ping 的规则,可以使用Ag的安全组规则的概念:( d+ j/ C$ x# v  S
" a% ~; c2 T& S
# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 之后,就可以看到在此实例的特定链下多创建了一个规则:  M+ p. K! t$ a8 D
5 ]! O+ _1 m( x7 Y- A8 Y# X/ U. K
-A nova-compute-inst-1 -p icmp -j ACCEPT 
3 O5 ~" [. p) N4 p- z1 `$ T. V1 M2 K7 X! [9 v& E
同样的方式,可以对具有浮动 IP 的 VM 启用 SSH。 
  G( ^6 B" `# V! c% O9 z6 V" d

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:23:21 | 显示全部楼层
一、首次命令行新建iptables步骤
% Z" Q. V0 o* I& niptables -F #清除规则
8 D* ~8 t6 D9 Yiptables -X #删除自定义链- n1 a5 U( v7 u1 C+ D! E& o  d! }
iptables -Z #清空计数. J" H* C" }3 V' z/ E2 \* R; P
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问
" I  g  J  C- x( \$ u9 O( _iptables -A INPUT -i lo ACCEPT #信任回环端口8 ~. l! x2 }" J' w& w$ L8 L' j* V/ o
iptables -A OUTPUT -o lo -j ACCEPT; s2 F8 \- ^: r" x6 u# ~( h
iptables -P INPUT DROP #设置INPUT链的默认规则为DROP; ]  e; H, ?- m9 h+ y4 H" N
iptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP9 c1 V) Y, R: g; y: s; W9 z
iptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP0 ~! ^, C: \. T+ q" A/ ], ~
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #容许PING包
: }  @# ~. w' n) ], J7 v####开放信任网段* d2 u3 H2 A7 {: z$ i' g% W% L
iptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT& m! N0 o7 T3 P: Y( S2 N7 ?, u' G
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT/ y2 S; |; v6 F
####开启对外服务端口6 }0 A/ w$ m" l. ^: b. o, P4 K( P" Q
iptables -A INPUT -p tcp --dport 80 -j ACCEPT- D. r# i+ ^  P; _" ^
iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
& m- p4 T  D2 C$ f# }2 \! g& G1 S####容许关联的包经过
. V2 n0 W# A$ d* ]7 g8 z  F& e' Siptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
! a) s3 z' K4 i% Z% n: H3 h) xiptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPTcentos1 c' O2 C! L, L8 K2 G
) W7 l# V. I+ ]- B) C- c
二、查看当前运行状态的iptables的规则3 e$ A+ V* ^9 Q
iptables-save# D& Y* i& G( q4 ]  ~+ N* v
三、查看默认iptables配置配置文件的规则3 z- o' V; z; N* U: k9 u
cat /etc/sysconfig/iptables
; o& J* n& C0 w$ \& ?. o四、保存iptables配置
7 B: a* i" s- R( F  p. ciptables-save > /etc/sysconfig/iptables/ `+ s* x( g: I6 M+ j4 S
/etc/init.d/iptables save( d- P- ~9 ?' V
五、从新执行iptables配置文件# I. I* o+ B: Y6 f& E7 q
/etc/init.d/iptables reload- T1 ]+ H! U% Z( F. I) i" E
iptables-restore /etc/sysconfig/iptables, D" O9 A2 A" L# }4 R
六、启停防火墙
' K2 ?7 n2 ?# y9 V( b; q9 V/etc/init.d/iptables start
4 S7 M( N$ @" t+ Q5 F! v/etc/init.d/iptables stop- ~; X4 S1 ~0 E( y5 _
七、查看详细的规则配置5 N& W: R, Z! ?7 x2 f
[root@centos6 sysconfig]# iptables -nvL --line
2 O+ [) `1 h. gChain INPUT (policy DROP 0 packets, 0 bytes)
) C" U) Z5 @) O: p% {num pkts bytes target prot opt in out source destination* S  C& a0 Z8 Z8 }% z
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0$ A6 D6 o  p; u( r8 ^) M
2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 86 y, ^5 s3 ^1 A2 d) d: I& h. i* u8 ^
3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22; m7 P$ f7 H( b0 Q
4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/03 D  A2 i  |& o  V
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/08 A) V" _) |# S% z. [/ X
6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0
4 C2 D7 Z/ i  j! ^  E7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
1 n* w8 S- l+ C' M0 l) x8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034  l& h  y+ G  Z  X7 X" L0 G
9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80$ x3 F. w/ n0 o* v! o9 ~
10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:59103 Q. W! B9 |$ Z( Z
11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443
" ?, ~, k- s8 S7 U  ~7 H12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDtcp
' H3 H' l7 V8 V/ ?% P' ^' M" J; t) e4 Z; ^! [- O
Chain FORWARD (policy DROP 0 packets, 0 bytes)
- c* w# q6 U7 h! I# i* \5 Gnum pkts bytes target prot opt in out source destinationide
9 H1 ~1 _* k5 U
8 [8 b0 E* E7 C, C8 `+ DChain OUTPUT (policy ACCEPT 0 packets, 0 bytes)9 ?3 z, j' R! C2 B1 c
num pkts bytes target prot opt in out source destination* E( ^3 O0 C- S, {- j3 J7 i  v
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0: k% a* Q! U  u  {  B! h5 g0 p
2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDoop9 e: F2 ^+ C' N0 t$ d: F6 ?
# i  {/ S9 _) X. g
八、基本配置文件示例& W' `& Q, W. m( T: f0 [
[root@centos6 sysconfig]# cat /etc/sysconfig/iptables$ R7 K- m3 T( u6 U4 k- y" Y4 U
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018# q) O1 q; o  l! F, V
*filter
7 {+ z3 U7 M$ O! c7 `:INPUT DROP [0:0]# K: }8 `8 C3 }! |9 L  B
:FORWARD DROP [0:0]0 U; \! r7 d  x! f( p9 U$ i, h
:OUTPUT ACCEPT [0:0]
- J* K. V+ Y2 _####Trust loopback interface and Ping2 R7 |  S0 g! |* r2 q: W% W! Z1 h
-A INPUT -i lo -j ACCEPT
9 P% ?4 ~) d5 z- }9 G: @  s2 H1 f  Y-A OUTPUT -o lo -j ACCEPT
9 D  {+ z7 S2 G$ |8 j-A INPUT -p icmp --icmp-type 8 -j ACCEPT8 u$ p3 Q5 j6 g7 B" u& ?
####Trust Network
% c# g) ], u* c; Z' p6 L. Z5 A-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
: R7 n! G$ z" J9 W2 E( q: ~/ `-A INPUT -s 10.8.26.0/24 -j ACCEPT1 M; L' `6 G3 }8 @& U
-A INPUT -s 10.8.201.0/24 -j ACCEPT! P8 e( m2 j' c( ?2 Y% m
-A INPUT -s 10.9.1.1/32 -j ACCEPT# s/ @" O7 |! Q, o
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT! B! v2 L: h* z) ^% B3 u* c
####Open Port
0 j2 |# F% B& P5 Y8 t-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
5 u: Y  g4 Q& O0 q! v4 G% J; H1 V-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT4 B$ |2 q$ T5 i* b# q
-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT
% s% B1 d0 o- ^1 \####Relate Packets7 k# t( q# |6 P& Q) Z% l
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT4 w3 c% @* f; |# t) |
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT; b% R3 \7 l6 |  V+ N; C! P
COMMIT
; V- e4 [) {% `1 [" X* N/ D# Completed on Fri Jan 19 03:14:49 2018命令行

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:25:44 | 显示全部楼层
通过在计算节点加iptables规则block所以对计算节点进行vnc请求的流量,但放开novnc过来的访问流量。. S3 S; `$ L9 e: T. M# ?7 K2 C  H# P
iptables -A INPUT -p tcp ! -s 10.5.0.67 --sport 6080 -m multiport --dports 5900:5999 -j DROP" Q+ C- G7 T; S9 {4 h& e
如果有多个novnc-proxy节点可以:5 t3 W' ^: g4 N/ @: _% }$ e
sudo iptables -A INPUT -p tcp -s 10.5.0.81 -m multiport --dports 5900:5999 -j ACCEPT( }  [0 b$ ?  K1 j! H! Q% d
sudo iptables -A INPUT -p tcp -m multiport --dports 5900:5999 -j DROP
' o2 Q& f( Y/ B% E9 ~$ ^% ?9 H或者使用ipset,
) |3 A% H6 y- S* t1 o. H& fsudo ipset create good_ips iphash% D6 L+ O( r! T4 N# r5 [6 b6 j8 `
sudo ipset add good_ips 172.24.0.93
7 `* v5 d* x3 D2 lsudo ipset add good_ips 172.24.0.1930 X  U8 e! c! }7 w1 L' W
sudo iptables -A INPUT -m set ! --match-set good_ips src -j DROP3 A& f7 ?& ]2 }  w9 o0 W+ a
0 f! k8 I4 N$ F0 X* t8 d
当horizon和nova-novnc-proxy不在同一个机器上时,应试在nova-novnc-proxy上有“sudo iptables -I INPUT -m state --state NEW -s 172.24.0.93,172.24.0.193 -m tcp -p tcp --dport 6080 -j ACCEPT”确保它接收从horizon传过来的流量,当然在openstack中默认就是打开的。
! C4 n) P% m: H( f4 z" n
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 01:59 , Processed in 0.108972 second(s), 33 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表