易陆发现互联网技术论坛

 找回密码
 开始注册
查看: 746|回复: 4
收起左侧

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

[复制链接]
发表于 2022-7-3 08:18:44 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-7-3 08:19:16 | 显示全部楼层
1、首次命令行新建iptables步骤
5 \# ^6 D7 K4 L1 C" [iptables -F #清除规则
4 D2 f6 D6 c$ H! b+ Z4 W  b6 |9 kiptables -X #删除自定义链
% Q: H( D7 E0 N, U; Iiptables -Z #清空计数
9 c$ j3 A0 g4 z: @/ |1 t8 Q1 ziptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问% j& D. I5 l' D9 Y& n* n6 R
iptables -A INPUT -i lo ACCEPT #信任回环端口1 M# h# j' R7 j; W% x
iptables -A OUTPUT -o lo -j ACCEPT* Z0 g; S' \' I6 B
iptables -P INPUT DROP #设置INPUT链的默认规则为DROP( R% }8 Z1 p% G) Z$ u4 i8 r
iptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP9 f( C) f  `' V: a5 R
iptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP5 V7 P% b: @# R; ~% }
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许PING包
. L3 u7 \+ z# t# T####开放信任网段# k4 Y3 B4 ~: y# u1 b: ?! C2 H/ j  n' u" @
iptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT% ], r1 r& R% E- {. d& c: J& L$ h
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT) S) z5 U2 P, E# Q& Z! w7 {- B
####开启对外服务端口: X3 e9 R  E  C  R
iptables -A INPUT -p tcp --dport 80 -j ACCEPT" }5 j9 p2 S' Q! X$ {  P/ X
iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
  T& m8 x* ?! j9 D+ X4 O: B9 U3 G####允许关联的包通过
* j/ J* @- t" w3 q2 Z$ ?2 @/ i6 U3 Oiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT0 Q5 D( Y1 d1 ^2 w8 E6 H4 G
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
; `0 U3 T7 }; @) k# \" G9 X; |: `8 L0 f0 I. n
2、查看当前运行状态的iptables的规则( Q) N) k! N7 q6 B
iptables-save; k  Z" h7 d9 A2 w+ m
3、查看默认iptables配置配置文件的规则
* F, N. F0 y( |9 H/ Vcat /etc/sysconfig/iptables
. _7 o! g4 R. v4 s" h4、保存iptables配置
7 W# K! I* g- D3 l9 H( q8 c* Liptables-save > /etc/sysconfig/iptables
9 W- T) \' W$ `1 L4 A/etc/init.d/iptables save) K% T! h& D4 ^7 U" p; E
5、重新执行iptables配置文件% ~- Y9 K6 Q: h8 ~
/etc/init.d/iptables reload- g4 P, F# q3 p. d4 B/ U
iptables-restore /etc/sysconfig/iptables$ y! I3 U" `# V: E! i  X# V
6、启停防火墙, k6 T  N: n* [6 h
/etc/init.d/iptables start
8 P9 `+ N2 s! F1 ?* d8 ]/etc/init.d/iptables stop
* K, d$ _8 G+ s7、查看详细的规则配置
- m3 a3 c$ d3 e$ g( R0 Y[root@centos6 sysconfig]# iptables -nvL --line
, o4 M2 z: d' b  h# rChain INPUT (policy DROP 0 packets, 0 bytes)
# k0 j& c- u- Q4 x6 tnum pkts bytes target prot opt in out source destination
/ e( y2 v: f# ?0 e1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
) x$ Q8 T1 I+ N+ o9 ^7 x2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
, n; m5 g% q9 o, v9 F3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:226 M9 T3 W& Y/ p* Z1 p) b
4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/09 a  b9 E) i6 V+ Y$ P$ N2 D
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0
8 N9 }- Y/ A7 m7 B; h" o6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/08 h* @  w: I; [7 h
7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
. C2 {- ?8 J; e8 k* x8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034* T8 ^8 B( J" @0 {
9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80* `/ A! M. `# k0 r
10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:59103 ?) p! f1 T- [9 A
11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443
( N- c# j8 |" Z; l, k12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
3 W: l# Z; R  s) O* m. J- N) M
6 G! D) n3 V! `. r1 z3 F; }' t3 y& eChain FORWARD (policy DROP 0 packets, 0 bytes)/ A1 `; i* M: s
num pkts bytes target prot opt in out source destination9 f, Y( {1 [$ f- }% l+ ?
! }6 y, Q$ q& S1 e0 v9 T: y+ i
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
; @% _) q. X- A0 o) u0 ynum pkts bytes target prot opt in out source destination& x+ N) _3 ]/ K  L8 M0 b  i
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
  g% U3 `; T" z2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
+ j5 H, l' l: t5 T
6 h  G( M* v- T8、基本配置文件示例
/ k% B# ^. }4 S% c[root@centos6 sysconfig]# cat /etc/sysconfig/iptables" D* Z. i. A5 }, Y; s* |
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018( o$ D0 B2 }1 W6 Y5 I+ d
*filter
  T! v9 n+ L# K' U:INPUT DROP [0:0]
+ `8 h% s4 I; [1 I, Q:FORWARD DROP [0:0]
- @. _0 \: q1 Q) X:OUTPUT ACCEPT [0:0]
! |( l& ?' y: e0 D' Z' I####Trust loopback interface and Ping
& H( |" |2 M0 A9 ^-A INPUT -i lo -j ACCEPT
( i( K7 p( o. I# Q1 I( A7 A: K-A OUTPUT -o lo -j ACCEPT4 r  ]9 P8 O$ U* f
-A INPUT -p icmp --icmp-type 8 -j ACCEPT0 a, g& U3 ^% w6 M4 ~: N; |! }
####Trust Network2 U" q  @: o  P9 P3 M8 _* W
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT* \4 s4 N$ }& s9 W# N
-A INPUT -s 10.8.26.0/24 -j ACCEPT
3 {9 z8 E5 A+ W4 _8 B-A INPUT -s 10.8.201.0/24 -j ACCEPT
% S, r+ U0 T! a6 O2 U: X-A INPUT -s 10.9.1.1/32 -j ACCEPT3 Z1 I3 \) H# \4 L0 @/ R; z
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT
" M, D* s4 N3 l% s5 x####Open Port
, [+ S9 [8 S5 }) |! ~-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
- H& a- Y8 W, T-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT7 ~3 o/ S7 W: M8 P7 j1 [
-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT) w2 _/ Z, s. y* \9 V
####Relate Packets
0 l9 D1 H) H" n4 a. h. u" G-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT% o& [7 B2 [: G2 S; T
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
( Y* `0 p# G% L! G& HCOMMIT
$ g; U# b3 C: `. b8 F/ r* r6 U, ]. l4 S# Completed on Fri Jan 19 03:14:49 2018
 楼主| 发表于 2022-7-3 08:20:53 | 显示全部楼层
在此实例获得了 nova-network 主机上的一个浮动 IP 后,这些规则适用: 1 N- c! b6 i- f, s# O9 h6 {

  o. b& D9 g. {-A nova-network-OUTPUT -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2/ P* d& c( G5 A5 C- \7 M
( q8 J( w3 w- p- X) v+ O
-A nova-network-PREROUTING -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
3 G4 s$ _( B" e" c! M4 @8 Z& [  C0 ~2 }& b9 q" W
-A nova-network-float-snat -s 10.10.10.2/32 -j SNAT --to-source 192.168.1.233 8 x2 b7 Y( v( Y! _% k; \/ g
9 F. @' p% }( t8 `( F4 X, W  j
您会看到该 dNAT 规则被用来将此浮动 IP 转换成此实例的固定 IP。如果一个包到达 nova-network 主机并以浮动 IP 为目标 IP,则此目标 IP 就会被转换。然后,就会有另一项 sNAT 规则会将来自此实例的固定 IP 的流量转换到此浮动 IP。由于所有从 VM 到固定网络之外的流量均被指向网关(是由 nova-network 的 dnsmasq 进行设置),有了 sNAT 规则,出 VM 的流量就可以成功标志成来自此浮动 IP。此外,已包装的 OUTPUT 链内还有一个 dNAT 规则,允许 nova-network 上的本地过程访问具有浮动 IP 的 VM。 
# t* S/ Q  {4 ?; f' e! X% P, v# k/ l( A, w4 _
使用浮动 IP 的 Ping VM:
+ @9 z( ~6 h; H5 k/ H: o8 }& `& q: {- E' |& x7 I+ ?$ [: _
要将 VM 与浮动 IP Ping 在一起,也需要一些规则。请记住,在此 nova-compute 主机上,针对每个实例必须有一个特定链;其内的规则只允许来自固定子集内的 IP 的流量。如果想要 ping 一个浮动 IP,流量就会被这些规则丢弃,因为 ping 包的源 IP 并不在此固定子集内。显然,需要一个规则以允许 icmp 流量。 为了添加一个允许 ping 的规则,可以使用Ag的安全组规则的概念:2 p. J& d+ w, K* Y2 T" V" o
: b: E  o! h3 s) q
# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 之后,就可以看到在此实例的特定链下多创建了一个规则:
" Z+ v# K& ^$ F" b$ n8 i4 V, a8 M
-A nova-compute-inst-1 -p icmp -j ACCEPT ! o2 q& }+ g3 g4 f
6 n" ]( K' A* c, L
同样的方式,可以对具有浮动 IP 的 VM 启用 SSH。 
/ M, V1 C/ L1 q. q% U3 [# u
 楼主| 发表于 2022-7-3 08:23:21 | 显示全部楼层
一、首次命令行新建iptables步骤+ s& e/ E% ^9 _, c" g2 c* w+ i: O) D
iptables -F #清除规则4 B5 c* F) N& w/ ^# L' _
iptables -X #删除自定义链9 J+ @# |# p: N/ e/ d
iptables -Z #清空计数1 j$ F  _% H: Z3 R9 I& F& G- F/ Y
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问9 c) }8 x( l# X' n
iptables -A INPUT -i lo ACCEPT #信任回环端口
3 H6 q: N* D. v4 Q( [$ m- [iptables -A OUTPUT -o lo -j ACCEPT0 h+ T) F* L: Q. u9 [
iptables -P INPUT DROP #设置INPUT链的默认规则为DROP
* L0 f' A5 f+ piptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP# }1 y8 b8 i& h3 C" [  d
iptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP
! H5 y' s/ ^" M& d2 J+ C5 @, V& Iiptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #容许PING包
) O( j- |8 ?& _9 ~: o####开放信任网段: |2 Z0 T; }5 ^5 [! j( t- H: x$ M4 W
iptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT& G; H" D# @; I, T% }! }2 m$ r
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT$ u0 W& L; A) O& x& Y' X
####开启对外服务端口& ~+ w1 ]% R$ h" H- U
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
1 V5 R2 b, c' b- L3 E' B# `. W' ~iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
" L8 H; W! H3 i2 s6 g####容许关联的包经过/ d; m5 H1 d# e  O
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
, X# p3 Q+ `; H/ T* q* L, t6 D+ piptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPTcentos
4 D; {  B+ J# w9 A% g8 e0 m" l+ t: _8 e3 G3 |3 B3 P. s
二、查看当前运行状态的iptables的规则
* S8 b/ o7 x( X4 P( S9 `iptables-save; f) u8 G  s# g6 z# B/ L5 |1 h# M
三、查看默认iptables配置配置文件的规则3 H& Q4 u, I& z% x5 [5 s, ^& ?
cat /etc/sysconfig/iptables9 Y% o1 p% f9 k4 R  c
四、保存iptables配置) j6 ~, `+ w( e! ?2 ^& f
iptables-save > /etc/sysconfig/iptables
) f/ u% ?% q. U- E" O, Z/etc/init.d/iptables save0 k8 n  ?" \. d* ?
五、从新执行iptables配置文件% E* z8 y1 e' V3 x
/etc/init.d/iptables reload
3 ?+ Q, x0 z! \: X: @* g$ F0 I- Ziptables-restore /etc/sysconfig/iptables
& G. ^+ ]3 r+ ]* S5 q- X* Q六、启停防火墙/ J0 `$ E9 U: q8 B( t
/etc/init.d/iptables start
. j- d8 u# p: e) t6 S9 h# d/etc/init.d/iptables stop3 \' W# R$ R2 ~2 t8 J# {
七、查看详细的规则配置
0 s# A9 y* A" x# Q+ c) a! W. L[root@centos6 sysconfig]# iptables -nvL --line, a) H, B  z! ?! B" M% {9 F
Chain INPUT (policy DROP 0 packets, 0 bytes)
/ S) k. G/ ^% T! }! rnum pkts bytes target prot opt in out source destination* D& F+ c" X. [- g
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
3 j7 Z* U+ z! B; @, f2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
8 D! y% P: C7 U: C2 ^3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:224 R2 `( M3 `$ V
4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/0
$ a5 i3 l1 d, V2 W% Q9 ~5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0* d7 a0 Q  F; j) _  B& w% x
6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0
0 |# ]* ~6 L: _* c3 `# `3 p+ d7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
# r2 K! a4 H  ^6 A2 n7 k7 j2 Q1 S  S8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034
+ @8 Y) M% H! p9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
" O7 Y8 r" B' G5 r10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910
7 H% G) n6 Y, o- a! z/ N! E11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,4430 l. |  _, U! V7 N% L
12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDtcp
  R6 m- w1 E0 P9 B& \5 [
  i0 o9 z( L& Q. z4 AChain FORWARD (policy DROP 0 packets, 0 bytes)/ _& O: _4 c5 N; X) S0 h( o
num pkts bytes target prot opt in out source destinationide5 F. ]. n& v  x  H+ t  T. S3 Q2 J

) J* V+ n, C) mChain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
3 F' K0 j* u0 ]! r" Anum pkts bytes target prot opt in out source destination1 k: K; L" W+ u& y9 y
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
9 `( L0 l$ L% q, a8 @) W! M2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDoop' e2 V8 v  e2 O, k7 Q' l( }1 A
+ ~8 H2 w8 w* u, C
八、基本配置文件示例
( @& X- n- G. c[root@centos6 sysconfig]# cat /etc/sysconfig/iptables, c1 J# q* {8 X4 t- D3 `' ?# z7 U
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 20187 s" L# P3 o% _7 V3 N, p
*filter% h% b/ _3 V$ `4 C+ e: S
:INPUT DROP [0:0]
/ x+ q( H4 I: c/ ^$ w6 h7 }:FORWARD DROP [0:0]% ~4 C- }$ _) J; l: Z
:OUTPUT ACCEPT [0:0]' i- C% I- V# q7 c; W" f
####Trust loopback interface and Ping! _. `+ ~/ m4 q& M: W( ^
-A INPUT -i lo -j ACCEPT" d; f1 u" t# `( c" v( U* v
-A OUTPUT -o lo -j ACCEPT
& }. Y$ Q! R, S1 k+ U9 X* ]-A INPUT -p icmp --icmp-type 8 -j ACCEPT% b) T) p% x! \+ j8 I
####Trust Network! R: P' ]8 M! }" Q
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ Y3 E7 B# T  j) f  n-A INPUT -s 10.8.26.0/24 -j ACCEPT
" U6 d$ m) ^# T' }0 S-A INPUT -s 10.8.201.0/24 -j ACCEPT" M" R6 q# @- ~7 H% l4 k
-A INPUT -s 10.9.1.1/32 -j ACCEPT; {" |. ?' B' S9 W  g. @, X
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT
" f- c4 B" Y5 Y/ _+ K####Open Port& F& X! _- v+ s: n% P) X6 P
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
3 u* U3 ]( L0 v( l0 h; W-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT
+ x' a' W/ H9 b% x7 |! W% v-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT
, ?9 r6 ?5 \7 H4 \4 a' _####Relate Packets& T$ e3 @0 ?' e, N4 }$ R  N: J3 y
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT* Q( t+ x# u1 z" g1 t/ k8 @) C: F
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
, D+ k# Y) O$ K( e( }& |# e/ W- WCOMMIT; d. r( B5 C: M* ^+ Z
# Completed on Fri Jan 19 03:14:49 2018命令行
 楼主| 发表于 2022-7-3 08:25:44 | 显示全部楼层
通过在计算节点加iptables规则block所以对计算节点进行vnc请求的流量,但放开novnc过来的访问流量。
5 A) O6 n9 m  k3 Z( b, miptables -A INPUT -p tcp ! -s 10.5.0.67 --sport 6080 -m multiport --dports 5900:5999 -j DROP% G1 c% k. |7 }8 Y# d
如果有多个novnc-proxy节点可以:
; z8 z7 n( s& v0 v1 D( Qsudo iptables -A INPUT -p tcp -s 10.5.0.81 -m multiport --dports 5900:5999 -j ACCEPT9 W$ c" R5 M9 }/ e
sudo iptables -A INPUT -p tcp -m multiport --dports 5900:5999 -j DROP
' C$ q* @& e/ N或者使用ipset,; I& Y2 m7 E0 ]9 O" o
sudo ipset create good_ips iphash, W" V3 N5 W( a
sudo ipset add good_ips 172.24.0.937 O/ h; R; |& q9 t5 b
sudo ipset add good_ips 172.24.0.193
* ]( W7 R  F: Vsudo iptables -A INPUT -m set ! --match-set good_ips src -j DROP
) @1 G0 t) e" \" H# @, N+ |- M4 l1 S! ~. s5 U+ O5 U. Y4 a
当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中默认就是打开的。. h: Q" u* A7 R; S7 d4 y% M+ \
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

北京云银创陇科技有限公司以云计算运维,代码开发

QQ|返回首页|Archiver|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )点击这里给我发消息

GMT+8, 2026-4-9 00:02 , Processed in 0.059132 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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