易陆发现互联网技术论坛

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

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

[复制链接]
发表于 2022-7-3 08:18:44 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 10 金钱 才能浏览
 楼主| 发表于 2022-7-3 08:19:16 | 显示全部楼层
1、首次命令行新建iptables步骤
; h! a% [# l4 V( I: K/ hiptables -F #清除规则
- T$ k+ I$ v1 L2 C, H2 y( r6 u1 hiptables -X #删除自定义链7 d/ M; b! W* t0 q" X( F
iptables -Z #清空计数
: U: @1 a4 w/ M$ Q1 h. |: ^) Miptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问0 f: `- ~! i7 D' A3 H6 O
iptables -A INPUT -i lo ACCEPT #信任回环端口
% c: O5 D% g5 diptables -A OUTPUT -o lo -j ACCEPT
$ y# F4 }$ y, V1 {) l6 t5 {$ Uiptables -P INPUT DROP #设置INPUT链的默认规则为DROP
  D! N; X2 z1 Biptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP
( m  u5 P4 O8 _) T; p/ w: F- ziptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP
: v" K1 u# Q4 z" @2 Uiptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许PING包: h& T% y0 S% Z& `7 J
####开放信任网段
) q7 ^# L/ b& ]( j+ a7 kiptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT  o+ a8 U% H1 P$ ~- P8 _" M; \
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT
8 O/ ?; C8 \5 H: i* I####开启对外服务端口% y) S, \" k7 j( A' f9 u8 ?: v
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
& m% y$ J/ @" |4 S/ E+ n1 aiptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT8 T* x9 `& c% O1 J5 e. A- }5 c( c
####允许关联的包通过, s. q' u9 Q* G7 Q. S8 c: |
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
4 F5 `; t" Q: z& wiptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
! h, J$ @: X, D
+ v7 o. W) ?4 Q+ K& q- y2、查看当前运行状态的iptables的规则
0 V. ]2 R, W+ Kiptables-save
) m3 H. x- \& s3、查看默认iptables配置配置文件的规则
, H. M  {6 e4 [, X7 Y4 u. [cat /etc/sysconfig/iptables3 U6 l0 d  q( W5 K1 l; w
4、保存iptables配置2 {3 F, ]! `8 N% i! \
iptables-save > /etc/sysconfig/iptables+ q( {% a, B4 `, ]6 T
/etc/init.d/iptables save( y$ M' G) h& Y2 s/ U8 {; i, p
5、重新执行iptables配置文件1 a3 `" d3 S1 R. u
/etc/init.d/iptables reload0 p2 h" ~6 X8 M" q0 u- j
iptables-restore /etc/sysconfig/iptables8 d1 `$ S7 J6 D: ]# b
6、启停防火墙8 D4 p, p+ z- T& P5 l6 G
/etc/init.d/iptables start% G2 G" v$ g% x9 P
/etc/init.d/iptables stop& z) }  ^% d9 V9 A
7、查看详细的规则配置
4 h+ Y2 ]. e( M1 }[root@centos6 sysconfig]# iptables -nvL --line
" Z. g( k- L: P8 T8 uChain INPUT (policy DROP 0 packets, 0 bytes)  x0 D$ y3 s( Q. c  g+ ^8 \* x
num pkts bytes target prot opt in out source destination
0 w* q0 s' A+ x. ~/ C7 H1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0! z* h, |2 \3 A
2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
7 m( Q7 z; w9 D! k) _3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
# |) p0 p& v( S" f4 X4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/0
) u% _0 g. Y1 l3 ?% E3 [' C5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0
9 P( c5 F& V+ B6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0# s0 N- M9 ~1 L4 o) E9 {
7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
/ i  m! U9 T, R  M8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034# I3 f9 i; c- |- P( E/ a( }2 a! A
9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
) Y2 k5 D, p6 F5 ?10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910
, f4 R# T. r0 K7 `9 m11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443
1 v6 G8 ]2 \# [  k  q3 p# P7 `12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED0 p* D# n4 R+ U: Y9 N  e) y
" H* G; I( E2 ~' q. w5 ~" `
Chain FORWARD (policy DROP 0 packets, 0 bytes)2 i3 \& X& e: N" S0 K2 K
num pkts bytes target prot opt in out source destination2 A! H' f2 C7 N( }8 g3 {

+ K5 t( W5 {+ \0 K1 qChain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
) @7 Y) |8 N+ G  P5 enum pkts bytes target prot opt in out source destination
2 ]# v# }8 ?  l6 }) L* G0 \1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
" p5 T3 s# V5 n3 j2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
3 {1 ?4 ~& a& [% J5 [2 T' N9 J+ U. w# z
8、基本配置文件示例
2 |( X( ~1 A( B8 |2 a5 |5 k[root@centos6 sysconfig]# cat /etc/sysconfig/iptables; C) U! ]" L/ h% a1 M1 D# @
# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018
) O  G% [9 K) r  y) T*filter
( R7 ]) `  }. \6 L:INPUT DROP [0:0]3 f: Q9 k4 b8 D( l; z
:FORWARD DROP [0:0]
; l' H4 M8 g/ p: `7 V2 [:OUTPUT ACCEPT [0:0]
& m) K. W4 a$ F+ w$ F  L0 a$ h####Trust loopback interface and Ping
" |1 s2 u% N; D) ]) l! \/ D$ B-A INPUT -i lo -j ACCEPT+ M0 |" R" f- L7 D# M/ x  S" W
-A OUTPUT -o lo -j ACCEPT! B8 z0 j' o' _: r0 F% d3 F
-A INPUT -p icmp --icmp-type 8 -j ACCEPT# T& K$ H4 J" n. y$ h
####Trust Network2 ]1 E; _( }7 \: X
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT! W! [9 T  e' G" F, S3 E
-A INPUT -s 10.8.26.0/24 -j ACCEPT
; n! P8 W1 X/ y7 I0 A-A INPUT -s 10.8.201.0/24 -j ACCEPT7 B1 v' ~) }) w
-A INPUT -s 10.9.1.1/32 -j ACCEPT) l1 s& J4 d% o' K% U
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT0 c3 @. a, C2 j6 O3 ~# T% ^( E# K9 b
####Open Port. d) F) F, t: l4 i1 ?
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT% V( q$ R6 h3 u
-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT
0 H, U6 ^  Q* d' I! ~6 b. g) g-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT! y2 {' Z, M; s
####Relate Packets& P; e) x% _- A! l
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
* D5 s3 c; e/ v-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT0 C$ x9 V) ?+ j5 p0 I- v! ?* }$ {3 s
COMMIT$ i% ^5 t4 h- c& I" ?' U
# Completed on Fri Jan 19 03:14:49 2018
 楼主| 发表于 2022-7-3 08:20:53 | 显示全部楼层
在此实例获得了 nova-network 主机上的一个浮动 IP 后,这些规则适用: & J2 n. j; y! d! A" Z# X  n# C

) b5 S4 K9 E% h, ]% z, Q-A nova-network-OUTPUT -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
4 g" ^; `3 P9 b0 g6 ^0 O, ~5 s3 w3 ]( n- V: @% Z  J- f/ k, I
-A nova-network-PREROUTING -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
3 G* I  T# e/ h& h
0 a8 Y1 o0 V5 h; j, g/ g2 ]-A nova-network-float-snat -s 10.10.10.2/32 -j SNAT --to-source 192.168.1.233 
% O9 }4 C% I3 W6 o2 b8 P9 |
. h7 D3 n8 f3 M6 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。 * F- o( z# u; E/ W; H" D) P  C

. D  \$ i1 ]1 N+ w' ^; K使用浮动 IP 的 Ping VM:# n1 n9 o8 I2 ]' a

# p' Q! r4 v# x. E. ]3 @要将 VM 与浮动 IP Ping 在一起,也需要一些规则。请记住,在此 nova-compute 主机上,针对每个实例必须有一个特定链;其内的规则只允许来自固定子集内的 IP 的流量。如果想要 ping 一个浮动 IP,流量就会被这些规则丢弃,因为 ping 包的源 IP 并不在此固定子集内。显然,需要一个规则以允许 icmp 流量。 为了添加一个允许 ping 的规则,可以使用Ag的安全组规则的概念:* s/ @8 o& D; d) w. B+ }0 c

4 x+ U- C* u' u: b7 p$ Q0 S# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 之后,就可以看到在此实例的特定链下多创建了一个规则:
  v# Q$ P# V' ~1 I0 ]; [& Q9 r/ i- d
9 e3 E1 e/ Z5 C  p-A nova-compute-inst-1 -p icmp -j ACCEPT 
- Y1 O5 b8 K1 O% S; A8 I8 L
/ ?9 Y- B2 \$ D5 k# B) {同样的方式,可以对具有浮动 IP 的 VM 启用 SSH。 
8 G* [* u  ^3 {7 ~% h, ]
 楼主| 发表于 2022-7-3 08:23:21 | 显示全部楼层
一、首次命令行新建iptables步骤
1 j' q* D6 R8 A+ siptables -F #清除规则4 {' W* I+ h8 z3 `
iptables -X #删除自定义链
. A$ Q$ l$ y& ^8 t" k0 |iptables -Z #清空计数
5 K4 g  r) o  a0 p7 e7 B# B3 a+ q: diptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问
. F: C) D" P9 N$ q, }; S0 J0 H- r! Iiptables -A INPUT -i lo ACCEPT #信任回环端口% H8 i4 S" t' {: G; E9 p: F" r
iptables -A OUTPUT -o lo -j ACCEPT( E( ~. f; f- }- \9 H
iptables -P INPUT DROP #设置INPUT链的默认规则为DROP
$ r. [: w/ j) U  M" v. J3 Viptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP
& s7 I- K' H! ?4 ]; B4 {1 J  B1 yiptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP' f8 ~- k1 B% y
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #容许PING包6 ^! j; r* ]: Q5 I
####开放信任网段
6 ?/ \4 C4 Q, e& m$ G' i4 s9 @iptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT# J# x6 ^: y6 |2 e
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT# U5 e% a* e2 W+ z
####开启对外服务端口1 T1 ]5 T7 Q( ]; I# U
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
3 F4 ]; t; R5 W  ?iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT  q0 m; J2 v0 \7 [( a! i3 H
####容许关联的包经过
' Y' W, w( _3 N3 }8 eiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT% a; E. @8 Q" Z: X1 _1 h* q' Z, x5 H7 l
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPTcentos& d  t2 Y  Y( [: T, v

+ _% A! ~* q( X, E  H: u二、查看当前运行状态的iptables的规则
, }; s. f; I+ C8 n+ W% S0 L& h* hiptables-save
! D& m6 j6 I, D" X4 ~% F' r$ o/ Y三、查看默认iptables配置配置文件的规则- l. n3 c0 H5 F4 j5 Z4 Q: }
cat /etc/sysconfig/iptables
" R9 Q6 h+ s: z' \6 q" q3 N5 C4 D四、保存iptables配置
* |$ v8 N" f5 J3 P" V7 N  Oiptables-save > /etc/sysconfig/iptables1 _( m+ a/ M' f3 a
/etc/init.d/iptables save0 w: E3 @) d* o1 Z% D# n# G5 z
五、从新执行iptables配置文件& i0 D$ |! X: w
/etc/init.d/iptables reload. P. Z2 M% r2 L$ f9 `4 R
iptables-restore /etc/sysconfig/iptables6 A9 d/ Z' H+ t6 g, d% P9 F
六、启停防火墙, q5 ~" ^' c9 _5 I
/etc/init.d/iptables start( m1 d4 V8 U, ^# v9 v
/etc/init.d/iptables stop
0 B: E( {+ j2 N& T  G) Q七、查看详细的规则配置
$ ?% E9 m/ q5 R% W* v3 {0 x[root@centos6 sysconfig]# iptables -nvL --line' z% V" j7 P" Z, b
Chain INPUT (policy DROP 0 packets, 0 bytes)
  |, \  y8 Y3 v+ e! J& h2 wnum pkts bytes target prot opt in out source destination
2 P3 {# p: s$ z$ T! }5 v# |1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0- U; r$ G& a' |: u
2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 80 Q/ a  z" j; e
3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22+ A) L( r+ d% v/ Y# Q6 h) K
4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/01 c; W9 `6 d: @0 Z
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0
1 D( C& w4 q2 P# ~8 r- F4 [' z6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0
6 L6 N# m8 J( V4 B, I1 b  ]7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034" P- |, q; B0 K% e
8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034- G9 _! W2 T3 C9 D& K
9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:801 o8 b' X( |0 V
10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910- Y5 c6 R$ H3 i9 H2 g5 \' B- p% B
11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443+ g1 ?$ h+ @; s  f3 o+ G
12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDtcp- r& Q. l7 @8 z% d2 B3 x
1 Y3 @7 ~* [3 j- c# y% I) m) A
Chain FORWARD (policy DROP 0 packets, 0 bytes)
8 R) {8 p  T/ [# Y" F3 {9 ^num pkts bytes target prot opt in out source destinationide7 v( c3 l, q% u& u% B" G9 T8 l
- A' f8 p. C: i: q: `
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)0 M& H3 ^- p8 B2 O. g0 a
num pkts bytes target prot opt in out source destination4 P5 H- f1 F. \; K( d. P9 b  o
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/05 L1 ]5 j% H2 x4 h5 i, l4 ?
2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDoop5 p' u- K; U1 }% W2 H2 \

  @7 a  k- I" v* ~8 D3 w八、基本配置文件示例
0 Z1 Y; b! N; c9 Y9 r[root@centos6 sysconfig]# cat /etc/sysconfig/iptables
2 K+ f+ U6 A3 Q# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018; n7 }8 k6 Z" C
*filter
  q& S& k5 }; B' F:INPUT DROP [0:0]# |- X4 S  ^, u1 o4 v- D
:FORWARD DROP [0:0]5 Q. H6 i6 x7 e, ]1 e1 h8 m% a: ~
:OUTPUT ACCEPT [0:0]
) }* ~5 d  W$ u$ D- e####Trust loopback interface and Ping
  F/ i6 T1 c/ o6 s3 X2 w-A INPUT -i lo -j ACCEPT6 D+ _% V! S# V$ {) W& X
-A OUTPUT -o lo -j ACCEPT
5 e! c5 E  z; U-A INPUT -p icmp --icmp-type 8 -j ACCEPT" N: d! V5 f0 R  y& q* k3 ~
####Trust Network6 _) W; U: g5 y' s
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT+ N0 ]: K- J: O& K- i) l+ W' e5 Z& O
-A INPUT -s 10.8.26.0/24 -j ACCEPT
% y8 Y3 A3 b5 E) W, W% _4 D-A INPUT -s 10.8.201.0/24 -j ACCEPT
, x/ V5 L- A5 Z8 Y! ~) C-A INPUT -s 10.9.1.1/32 -j ACCEPT
9 h* M: h' ]9 S0 t-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT! H+ r% x1 T5 e
####Open Port( n6 K8 |0 p% u- F% _
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT$ u6 |- {5 A  `/ A0 [; m
-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT
' l: ?5 j# H4 G! k! ~1 m" E5 ^" H-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT7 V* Q9 j/ r2 M' ]3 s. v5 W% J
####Relate Packets
- Z- `6 N$ U$ B: `8 B-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT: |2 i. M( n* U: f& L
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT8 s' V7 E7 u# I: ?0 h) D9 J
COMMIT
9 S4 B6 S5 a2 ~! A& g! v: r. b# Completed on Fri Jan 19 03:14:49 2018命令行
 楼主| 发表于 2022-7-3 08:25:44 | 显示全部楼层
通过在计算节点加iptables规则block所以对计算节点进行vnc请求的流量,但放开novnc过来的访问流量。
5 n! h# Q% d% J  Y$ _5 d; p2 niptables -A INPUT -p tcp ! -s 10.5.0.67 --sport 6080 -m multiport --dports 5900:5999 -j DROP
! L# ^# W: V* B6 w- [如果有多个novnc-proxy节点可以:
) k( n! {  j0 z) D# a6 Jsudo iptables -A INPUT -p tcp -s 10.5.0.81 -m multiport --dports 5900:5999 -j ACCEPT6 g7 a. l& o5 Y0 |7 @2 P6 B3 ]
sudo iptables -A INPUT -p tcp -m multiport --dports 5900:5999 -j DROP5 ]- |) r+ }; {' ~( h' y
或者使用ipset,
  I  {& t( Y/ e$ X6 Z$ I: ssudo ipset create good_ips iphash6 J& C% ?0 H5 J6 a3 p
sudo ipset add good_ips 172.24.0.93: M1 T% H% D# M; w
sudo ipset add good_ips 172.24.0.193" C8 P# w; Q1 o0 N- ]7 F; N; }- H
sudo iptables -A INPUT -m set ! --match-set good_ips src -j DROP
. ?& ?" i0 t% x8 V$ x& t( t4 @
6 \1 @: z* P4 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中默认就是打开的。
( A: D7 B, |4 r$ d1 G
您需要登录后才可以回帖 登录 | 开始注册

本版积分规则

关闭

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

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

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

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

Powered by Discuz! X3.4 Licensed

© 2012-2025 Discuz! Team.

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