找回密码
 注册
查看: 753|回复: 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步骤
. B7 G$ [* }! d6 N- I# Niptables -F #清除规则
5 ~* ?9 P2 k# H" ~iptables -X #删除自定义链7 v. E/ N$ f) L( g2 P
iptables -Z #清空计数- I- W& f$ R) h2 t
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问) ~' M1 {' d" M1 S7 l/ }' |  `
iptables -A INPUT -i lo ACCEPT #信任回环端口0 M$ b5 T% E7 c- A/ |5 R
iptables -A OUTPUT -o lo -j ACCEPT
5 k% s7 i5 D- t% n4 Siptables -P INPUT DROP #设置INPUT链的默认规则为DROP* L2 k0 t2 A: T; V
iptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP5 b7 k7 Y' j: b
iptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP
. o( P/ _5 G& q  oiptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许PING包
; S, I4 B' l3 O####开放信任网段7 O/ e* H: h7 X! X
iptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT- J2 ?+ t7 P& V# ]" g. u0 Z. O
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT9 f  X$ ^  ?' A% o6 u
####开启对外服务端口3 M" C  s' p6 S/ t7 Z: m2 A# g
iptables -A INPUT -p tcp --dport 80 -j ACCEPT7 v+ f. N" l7 S
iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
( v' F1 g3 [8 ~####允许关联的包通过
- W0 ]: k+ P9 k0 G% f8 niptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT) {% `1 W, m  P  t; t/ V; u
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
, ?$ W- X; T2 [( N( t2 V, w" F# v4 O* B# J4 y
2、查看当前运行状态的iptables的规则8 X4 E" Z- D% z1 Q/ _* ]' }: W7 F
iptables-save
4 y0 J6 O9 {8 \3 z3、查看默认iptables配置配置文件的规则
; u: t* }8 y$ {  d$ O- j" Pcat /etc/sysconfig/iptables+ H% G/ E. X, n: T! y8 o
4、保存iptables配置4 f6 a) {% }5 Q- Y: r$ G) I
iptables-save > /etc/sysconfig/iptables* d) T6 z/ H; ^
/etc/init.d/iptables save/ p' O7 E7 ^( f3 G
5、重新执行iptables配置文件1 L3 t/ m9 f( E- r, d- {, ^
/etc/init.d/iptables reload
9 |: I9 o# C% c; ?) f; }+ Oiptables-restore /etc/sysconfig/iptables9 z* Q5 m2 e( w" a+ [$ Z/ Y$ z
6、启停防火墙
6 J/ t; B- T* L% j( y& R3 W/etc/init.d/iptables start! M3 V3 }$ v. J% V4 X9 I4 B: b& U
/etc/init.d/iptables stop, c5 I, |+ J' j* n6 y& Z# z
7、查看详细的规则配置
  }: \# X3 t2 P$ b- Z[root@centos6 sysconfig]# iptables -nvL --line
& R# @# G; w0 ^* h9 \; u! |Chain INPUT (policy DROP 0 packets, 0 bytes)* L4 k' S. V6 B' y
num pkts bytes target prot opt in out source destination. u! S# @0 U$ [* L' V" t& T5 i
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
! U" ^! ?' S" M3 D8 @, I5 P2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 86 ?: Q) u. p# i. v$ M
3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
# }! u- ?& @  ]# l" G. v& U( Q4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/09 L8 Q* H3 {$ g
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0
8 _$ P6 j1 U& A4 x+ k+ S! _6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0" g+ l" i9 s+ J+ [! n
7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034! r; N, x' M3 ~2 Q2 S
8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034* I% [' K( I  N5 q
9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:803 g+ j4 @) m0 j* O
10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910
; X$ J% b/ W+ Z. l3 L! J" i  M11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443+ ?, F  N9 e; N& [
12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
6 s( D8 S% u$ B5 ?
" A' G6 q0 R2 Q3 F+ p, SChain FORWARD (policy DROP 0 packets, 0 bytes)
* W& I2 r' O  W: c$ Z) k0 \" Mnum pkts bytes target prot opt in out source destination0 p7 Y4 m% ]& @. y
1 }4 j$ A8 \# A; S( h) ~2 `
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
; K' N/ Q  M+ Gnum pkts bytes target prot opt in out source destination2 U) l; @. N+ I# ]" }
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
5 s  e3 \. i4 n2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED7 _  z  D: U/ q% S3 o  _# w
% A3 f4 b( U) }) E3 G5 f  [% h
8、基本配置文件示例3 q" C0 D- G3 n
[root@centos6 sysconfig]# cat /etc/sysconfig/iptables! _  d8 U( o3 q5 a6 O  p3 M
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018
  F# a6 F: j6 {7 l*filter- k" y' \) G- @- o% ~; O$ L
:INPUT DROP [0:0]
' h- n$ ?, X  S" U:FORWARD DROP [0:0]- @* ^/ e/ p6 [) x, H; i
:OUTPUT ACCEPT [0:0]7 W& F( c8 `9 |: y3 c6 u
####Trust loopback interface and Ping$ T' j! D6 M# K! N9 Z8 `2 Z6 Q
-A INPUT -i lo -j ACCEPT" P9 E! h  h. n
-A OUTPUT -o lo -j ACCEPT4 m* t/ u5 l- O* n7 U/ Q) {$ |
-A INPUT -p icmp --icmp-type 8 -j ACCEPT  O9 H8 u7 X7 p6 h
####Trust Network
# ]  E9 p' c* D9 ?% }8 k, `3 G-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ D4 `% N* s+ F: [- y/ G- Y-A INPUT -s 10.8.26.0/24 -j ACCEPT. n  G. Q! V: E7 [
-A INPUT -s 10.8.201.0/24 -j ACCEPT
  ^# t: L9 e1 l/ P7 g0 ]6 _-A INPUT -s 10.9.1.1/32 -j ACCEPT
/ p6 h) {- K$ @0 q' S1 d-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT, V, r* h2 V) t
####Open Port
: J, O+ q6 z+ ~. v0 z-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT( L: t  E0 ~/ `8 J  u. ~4 o; Q
-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT- ?1 `+ V$ L5 a7 [1 Q2 z
-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT
) O$ \' Y0 V6 ?6 A& x####Relate Packets
1 y- c* ^' g1 s  S6 C5 h) b% w% h-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
0 u4 E) e: e: y# d; G  @-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT3 C) g, n9 M" [7 T: [' Y; t* g
COMMIT: D( G. `( U- N# ~$ v% B
# Completed on Fri Jan 19 03:14:49 2018

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:20:53 | 显示全部楼层
在此实例获得了 nova-network 主机上的一个浮动 IP 后,这些规则适用: 
( M/ g6 t5 }8 @- e0 ]5 N$ P+ O- P0 z& F. i5 q9 `* s
-A nova-network-OUTPUT -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
4 w' r3 {' B% x8 L5 R; Z4 i" Z
. J9 @% B' m4 G& ?7 K1 e-A nova-network-PREROUTING -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2  V) S0 t1 Q. \4 F, k& e  O

& @8 P' x$ a! t6 R-A nova-network-float-snat -s 10.10.10.2/32 -j SNAT --to-source 192.168.1.233 
0 h2 t  ]$ s  \7 k( f! _9 I9 K2 F' d' D1 k# A9 w- x
您会看到该 dNAT 规则被用来将此浮动 IP 转换成此实例的固定 IP。如果一个包到达 nova-network 主机并以浮动 IP 为目标 IP,则此目标 IP 就会被转换。然后,就会有另一项 sNAT 规则会将来自此实例的固定 IP 的流量转换到此浮动 IP。由于所有从 VM 到固定网络之外的流量均被指向网关(是由 nova-network 的 dnsmasq 进行设置),有了 sNAT 规则,出 VM 的流量就可以成功标志成来自此浮动 IP。此外,已包装的 OUTPUT 链内还有一个 dNAT 规则,允许 nova-network 上的本地过程访问具有浮动 IP 的 VM。 $ M" y' W) S% f( g% W9 J( S& b

; f9 z4 Z+ \& B% I; L2 h, @8 v使用浮动 IP 的 Ping VM:8 Y  ?0 D% ^5 Y+ ^& j8 u
0 E5 J* s/ {7 H) m0 f# g0 b
要将 VM 与浮动 IP Ping 在一起,也需要一些规则。请记住,在此 nova-compute 主机上,针对每个实例必须有一个特定链;其内的规则只允许来自固定子集内的 IP 的流量。如果想要 ping 一个浮动 IP,流量就会被这些规则丢弃,因为 ping 包的源 IP 并不在此固定子集内。显然,需要一个规则以允许 icmp 流量。 为了添加一个允许 ping 的规则,可以使用Ag的安全组规则的概念:
) G  }. o2 l) d1 X; M) Q" O
5 j' r# Y# ]# Q% {; P7 Y) I# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 之后,就可以看到在此实例的特定链下多创建了一个规则:
/ @4 [" g" |2 J3 H0 {3 o8 k$ Q5 p0 h9 Y2 c4 _
-A nova-compute-inst-1 -p icmp -j ACCEPT 
' s" h$ F8 ^2 c  b- R# e# Q( N: p* C4 n# U5 }
同样的方式,可以对具有浮动 IP 的 VM 启用 SSH。 
# Z7 {9 q& t4 m2 E- i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:23:21 | 显示全部楼层
一、首次命令行新建iptables步骤  u' Y  t& H- i+ t9 o
iptables -F #清除规则$ L% C! p. i, Q  `$ f
iptables -X #删除自定义链; q) N: t* j1 t4 m: ?/ y/ h
iptables -Z #清空计数
7 Z- O( P3 j  r# A6 B8 e' H; S5 g' ^iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问
( A& d- F0 |* b/ U* j: uiptables -A INPUT -i lo ACCEPT #信任回环端口
7 d* [4 A2 [* `3 viptables -A OUTPUT -o lo -j ACCEPT& K3 M/ @0 @3 z" ?& k
iptables -P INPUT DROP #设置INPUT链的默认规则为DROP
) f  e  ~; m' m( s1 e( Tiptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP
5 }( Q6 X( r( Y$ q$ e: K' Giptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP# u; z2 |* @  ~1 e' O3 z
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #容许PING包! k* F' l9 z6 h* N- E: X
####开放信任网段* E5 U7 _# L- e# O" U: q
iptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT
% E4 t: w3 z+ F; h- jiptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT3 Y; X6 N( Q$ x. n" @3 |: c- y. j
####开启对外服务端口
7 s# k) x, Z5 |; M. E% k& ?iptables -A INPUT -p tcp --dport 80 -j ACCEPT
7 H* K" `/ M, K. ^, Z" S* z* Xiptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
- x4 c8 H0 Y/ C$ z) N' h####容许关联的包经过4 F0 s, Y+ N1 V9 ?% U
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT% {4 b- w8 B" L2 I
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPTcentos, Y! \1 s% Q$ U. [4 L- m: A
! S- `  o, K- X" L/ d* k( H
二、查看当前运行状态的iptables的规则
. ?+ S$ k5 z1 A  L' {7 f# l# ~- {4 a! ciptables-save
) t# y. ^, M% P  ], h+ z三、查看默认iptables配置配置文件的规则
$ E5 I8 ?+ l/ @' }$ B6 V% \cat /etc/sysconfig/iptables
6 |, r5 P- g9 T) @, O5 e- z四、保存iptables配置0 D8 E+ {1 H* h0 W
iptables-save > /etc/sysconfig/iptables
: G% E, `+ ]7 p# ]/etc/init.d/iptables save
' y% \/ D0 A5 w$ }" O; A五、从新执行iptables配置文件6 o, E0 U) G* v- {
/etc/init.d/iptables reload. U+ [  G. F. F0 k
iptables-restore /etc/sysconfig/iptables8 h, E6 V1 F; V3 |
六、启停防火墙
4 B6 p, f- \' o! c9 ^! J/etc/init.d/iptables start
% a/ Z8 f$ ~- ^' T6 y/etc/init.d/iptables stop
( a( \) w! b8 D' l七、查看详细的规则配置3 l3 k0 ~* q* h7 }" ^
[root@centos6 sysconfig]# iptables -nvL --line
: F/ w- m6 Y: J$ ?# XChain INPUT (policy DROP 0 packets, 0 bytes)9 a1 }8 u) w, f0 S& h
num pkts bytes target prot opt in out source destination
9 G' }# }' G; v/ I* R$ i/ d1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
' \& d. u# N: t; F0 a  [- Z2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8, M+ O5 L3 j- {# h
3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
' o; \, S/ `; s, ?4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/0- ]* r; v: G" h
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0) }/ i4 L: m  `& @4 q7 J3 h' e
6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/09 C+ S& g3 V9 K, {% G* q) R* r5 K
7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
9 Q* v9 l3 @" n* L# N$ g8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034
" N8 G' p3 @% P9 D9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80! P1 Z% \/ x7 a0 I
10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910% H$ {5 X& u  X& t/ W
11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443
# E4 ]4 K% r. m" {( T4 P% A; k12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDtcp
: L1 I0 O0 m4 m9 ~7 j
5 a* A& Y2 G$ }. O6 s6 F2 x7 [Chain FORWARD (policy DROP 0 packets, 0 bytes)
5 q; F9 k4 t8 V% X7 J$ y$ M3 ]$ Mnum pkts bytes target prot opt in out source destinationide
5 Z9 w3 P( I( B. g( E3 P/ q+ L
' z7 T& S! s: f$ @3 `7 w5 ?4 P5 FChain OUTPUT (policy ACCEPT 0 packets, 0 bytes)* l  t5 W  I6 M3 n* O( R* }  ^
num pkts bytes target prot opt in out source destination" Z. n+ d" Y# P
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
' t$ {! \8 ]+ L  K! _0 S5 o$ Z2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDoop
) R% e6 A8 V& f5 a$ ^3 K) z8 e$ M
$ D! L* K' p0 R4 t八、基本配置文件示例
3 a" B( h: ]' b* y+ U* h[root@centos6 sysconfig]# cat /etc/sysconfig/iptables! n$ h2 C* p! G8 L% r3 T
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018% t+ _  G; i+ s+ |- ~: m* E
*filter
, f6 J, d: |9 |:INPUT DROP [0:0]
8 d2 f/ L- `, K& @:FORWARD DROP [0:0]4 i9 M" _( h  G7 i! X
:OUTPUT ACCEPT [0:0]
; d6 K5 i1 w' n; E; H4 B####Trust loopback interface and Ping. o. T; O! x) P
-A INPUT -i lo -j ACCEPT4 S( p! B6 v3 v7 f' j
-A OUTPUT -o lo -j ACCEPT+ r* k' r+ Z, o0 o) X! x
-A INPUT -p icmp --icmp-type 8 -j ACCEPT
" m: Y1 H' K/ s3 ]####Trust Network
4 r+ x6 Q7 ~2 C-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
+ Y# D! m' z# H3 t: ?( A-A INPUT -s 10.8.26.0/24 -j ACCEPT1 s, c# ~' i0 w: N: c# |  z
-A INPUT -s 10.8.201.0/24 -j ACCEPT  _, k7 D$ y8 X3 W2 t+ q& c( t2 J
-A INPUT -s 10.9.1.1/32 -j ACCEPT/ m. t3 @" z% y
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT
" O$ F, g! q, h. z1 o& t$ b####Open Port% k! ]# ~+ j! T% M+ u4 T' \
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
- C2 h* Y( `8 u  r& n/ v-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT
1 p2 d; Q) m) S. n" L-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT
0 d5 X9 L: F6 N! A5 U; F####Relate Packets
0 ?9 d8 r  D1 E2 {-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT1 x0 I( ~2 i- b* s8 k' V2 Y3 O8 t
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  Y: J9 k7 d5 i6 ~COMMIT; D0 ?) t" y; b2 u; a4 x
# Completed on Fri Jan 19 03:14:49 2018命令行

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:25:44 | 显示全部楼层
通过在计算节点加iptables规则block所以对计算节点进行vnc请求的流量,但放开novnc过来的访问流量。% t& y* W* M5 I0 N1 R1 Q0 E1 S
iptables -A INPUT -p tcp ! -s 10.5.0.67 --sport 6080 -m multiport --dports 5900:5999 -j DROP
% s# V8 R4 `4 {% B. `" I6 p3 W如果有多个novnc-proxy节点可以:
) h' }1 z7 j/ s8 }  `" ?; d* l+ Jsudo iptables -A INPUT -p tcp -s 10.5.0.81 -m multiport --dports 5900:5999 -j ACCEPT% l6 _- T9 U/ S
sudo iptables -A INPUT -p tcp -m multiport --dports 5900:5999 -j DROP
) V+ W* p. f! N或者使用ipset,+ O0 \7 C, K8 a* q# R5 |: V
sudo ipset create good_ips iphash
' g+ I/ O5 }( v) X/ Dsudo ipset add good_ips 172.24.0.93
9 i( Y; ^, ~. c+ V4 psudo ipset add good_ips 172.24.0.193
& ^7 c8 `! F3 y- Z# K# s7 Vsudo iptables -A INPUT -m set ! --match-set good_ips src -j DROP$ A' T1 @5 D' Y. g2 h5 O
3 U( f- V* e* ]# n8 f" J# c: q
当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中默认就是打开的。
4 s6 Z1 g; ^% d* [* j* a. n  Z
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 04:06 , Processed in 0.038531 second(s), 33 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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