找回密码
 注册
查看: 750|回复: 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步骤# _" L  v+ Z5 Z, ^, d9 a
iptables -F #清除规则: _* [. E6 X" p. }: ~6 k) [9 y
iptables -X #删除自定义链
* [- J# q7 j) g6 r: L4 Aiptables -Z #清空计数
% k" {6 W0 j! v  u1 Hiptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问, |4 d3 N1 t% |0 j: L1 J& Z9 Z2 X7 u/ C
iptables -A INPUT -i lo ACCEPT #信任回环端口. Z/ N! O1 m- N! P1 w
iptables -A OUTPUT -o lo -j ACCEPT
5 P3 u( n" P1 P% M9 giptables -P INPUT DROP #设置INPUT链的默认规则为DROP8 X, Q0 ^6 f% N3 _) x: v
iptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP
6 I! D# R) r' K7 L! iiptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP; D- h" j2 k5 y1 e: }* C
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #允许PING包
. y: [6 N9 a" A% w####开放信任网段
6 D: F9 [! X- N  `+ B0 R7 viptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT" v6 F1 Q) B' d' X- |7 ^/ ~
iptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT
+ {! c6 v: G; ^" ]2 {2 r####开启对外服务端口
) d% ?  L9 F+ n7 C3 }; L. J, w! x" T- jiptables -A INPUT -p tcp --dport 80 -j ACCEPT
% X1 B) t0 P* t  y' `iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT
. t4 J2 {5 z. E1 L####允许关联的包通过
7 N/ B, a" b' P# [3 E) i  \% W1 Z+ K' eiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT$ I: S9 M* z: M: v1 L
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
; t  {9 W6 l8 D( K" \5 M0 G& Y* l
. D  e% l$ H/ Z9 s2、查看当前运行状态的iptables的规则
/ m' x# R# ?5 s9 a1 aiptables-save0 A! o* `3 U5 W6 J' ?! H8 U2 _# X; k7 p
3、查看默认iptables配置配置文件的规则
/ _9 l- ]; `5 A. T# _$ ?cat /etc/sysconfig/iptables
& E! W1 I! }7 y  Z, K' q4、保存iptables配置
8 Y# u. e2 M( P. F$ i- Yiptables-save > /etc/sysconfig/iptables; n$ ~+ g" s8 T  @# M
/etc/init.d/iptables save
6 b* C, N4 d5 b4 i5、重新执行iptables配置文件2 U" j$ p" Y5 X2 B* ^* K" y
/etc/init.d/iptables reload
+ r0 b, z& S/ |# M# oiptables-restore /etc/sysconfig/iptables
+ S( g+ v  Q/ ]2 O6、启停防火墙1 Z: g8 r; p/ G, ?1 `
/etc/init.d/iptables start
7 ]# g  u6 o' ]2 u/ j. m0 ]/etc/init.d/iptables stop
/ h# s5 {1 ^  d! M$ f8 x7、查看详细的规则配置
5 _; A/ Y# Q+ H( P[root@centos6 sysconfig]# iptables -nvL --line' d; k  G7 l& v# h' W$ q: Z
Chain INPUT (policy DROP 0 packets, 0 bytes)8 \. I5 F$ G, C  g( W; K9 O5 V
num pkts bytes target prot opt in out source destination0 [! h& X% g# g* C6 ]0 x; j
1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0) n' g& n/ f: n! X
2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8, A" |; A6 h- ^3 w+ J* |
3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
" Z! K, H8 u: R, d. d% Y4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/0
* b  d! _6 A" w, {5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0
$ R; Q. j* {  O6 x: Z6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/09 h: y( A/ x* f) l$ r9 B
7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034/ i( o$ P8 }& V# E0 I
8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034" S4 b; \/ B3 b5 o3 T
9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:801 X0 ?+ V, v2 r$ r2 Q
10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910
! i" k* Q$ J9 x) M11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443+ s2 j* F& O6 x" y
12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
3 ?7 A2 O* v. [; ]% H- G9 r% \. a+ V2 F! K0 z
Chain FORWARD (policy DROP 0 packets, 0 bytes)6 {$ ?* x. n' {$ H) Y9 \
num pkts bytes target prot opt in out source destination
4 P& f5 i% i4 _2 F# _5 i0 ^) f& p% Y+ n7 P& V9 G9 {
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)$ z; E, M) K- c4 Z
num pkts bytes target prot opt in out source destination
/ ]1 g" A, F& t9 E3 o" v6 {& _7 r1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0' f  j. f3 Z& L. w" r" ]
2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
( X% ^. d$ q# F& c9 ?- }
' E: e9 H1 H. k3 f5 z- T& ]8、基本配置文件示例0 g8 ?4 j5 d; G& F0 C" ^
[root@centos6 sysconfig]# cat /etc/sysconfig/iptables
7 [# K3 z' j0 C; T8 `# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018# ]! d$ v8 _0 o8 U* C0 b, j! X2 I
*filter: O" p; B( t1 M% j0 }! ~
:INPUT DROP [0:0]6 p7 J6 j% R( I- A4 Z8 g) N% Z
:FORWARD DROP [0:0]* W5 g2 ]0 H5 h: ?) ]1 T' h
:OUTPUT ACCEPT [0:0]
" G; y- ?9 P0 d$ U####Trust loopback interface and Ping
! v" x% M8 h* \' H8 E-A INPUT -i lo -j ACCEPT
9 |" r/ D" }4 X' R8 {/ P$ [9 U-A OUTPUT -o lo -j ACCEPT! v9 N2 ?: ^4 n
-A INPUT -p icmp --icmp-type 8 -j ACCEPT
4 ^5 C9 V, p7 s9 }####Trust Network
# r# G2 p$ e& m-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT% [1 F! O) w* I  c0 {' {% P
-A INPUT -s 10.8.26.0/24 -j ACCEPT7 F4 Y! ]! [6 Q
-A INPUT -s 10.8.201.0/24 -j ACCEPT; l; Q6 y4 }0 n! h( Q
-A INPUT -s 10.9.1.1/32 -j ACCEPT
; [9 |  T. M( \9 s! U-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT( T( a9 ?* B$ f/ t
####Open Port" g6 s7 Y: z0 B* U: \, [) [5 w/ i
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT/ y' k* A9 t; Z: V* J6 K
-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT7 b* ?: O7 y4 Y' F, d4 k# J
-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT
0 h9 z+ @9 B4 e: |####Relate Packets6 w- \8 K! i/ f
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
6 I# C, s# _+ {* V-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT2 Z0 I5 @; u$ ^2 c& J5 _1 x# ~8 @" B
COMMIT2 X: v6 a4 N$ V1 G' Z3 e
# Completed on Fri Jan 19 03:14:49 2018

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:20:53 | 显示全部楼层
在此实例获得了 nova-network 主机上的一个浮动 IP 后,这些规则适用: - {; e; z+ t4 G9 P6 V3 Y: b
* ?, N( P' G& W! ^6 a
-A nova-network-OUTPUT -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
/ \/ w2 m" W  u
* p( f) U3 Z6 B-A nova-network-PREROUTING -d 192.168.1.233/32 -j DNAT --to-destination 10.10.10.2
- l1 v, v& F" |
( a1 Z) g' d2 X( h-A nova-network-float-snat -s 10.10.10.2/32 -j SNAT --to-source 192.168.1.233 9 c  R3 f+ u! ~& V

$ P8 |- B$ V# e1 _6 z您会看到该 dNAT 规则被用来将此浮动 IP 转换成此实例的固定 IP。如果一个包到达 nova-network 主机并以浮动 IP 为目标 IP,则此目标 IP 就会被转换。然后,就会有另一项 sNAT 规则会将来自此实例的固定 IP 的流量转换到此浮动 IP。由于所有从 VM 到固定网络之外的流量均被指向网关(是由 nova-network 的 dnsmasq 进行设置),有了 sNAT 规则,出 VM 的流量就可以成功标志成来自此浮动 IP。此外,已包装的 OUTPUT 链内还有一个 dNAT 规则,允许 nova-network 上的本地过程访问具有浮动 IP 的 VM。 
  c& \2 Y5 F; E0 x, u" A( E1 r+ i  L
使用浮动 IP 的 Ping VM:6 s& z1 y, ]3 h( x# V; _. E6 R# I8 A

3 Y; @( k% T) E. c1 i要将 VM 与浮动 IP Ping 在一起,也需要一些规则。请记住,在此 nova-compute 主机上,针对每个实例必须有一个特定链;其内的规则只允许来自固定子集内的 IP 的流量。如果想要 ping 一个浮动 IP,流量就会被这些规则丢弃,因为 ping 包的源 IP 并不在此固定子集内。显然,需要一个规则以允许 icmp 流量。 为了添加一个允许 ping 的规则,可以使用Ag的安全组规则的概念:, C/ A0 k8 U' L3 X2 T5 T/ ^- G/ X
1 Z. K; G3 b8 A  I
# nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 之后,就可以看到在此实例的特定链下多创建了一个规则:
1 C8 ^% u7 o8 `
. C( G- \6 k$ @* q-A nova-compute-inst-1 -p icmp -j ACCEPT " B; A7 s. h+ r1 n
4 A: {  R: L/ s, H- V9 @, p
同样的方式,可以对具有浮动 IP 的 VM 启用 SSH。 
6 S& B* R8 E9 Z

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:23:21 | 显示全部楼层
一、首次命令行新建iptables步骤+ E& T# V/ k" q  Y
iptables -F #清除规则
9 o, q  L; T8 a* H% l# x- viptables -X #删除自定义链
( i2 r+ x/ O. @. x! U# H( W7 {( P" R% Yiptables -Z #清空计数" b3 e- i- d1 n4 a. h' O
iptables -A INPUT -p tcp --dport 22 -j ACCEPT #开放22端访问2 ~7 @. D4 v/ f2 K9 _6 s$ s
iptables -A INPUT -i lo ACCEPT #信任回环端口. r4 S% r, R' r
iptables -A OUTPUT -o lo -j ACCEPT
2 F6 i" X1 A9 M* }' h9 liptables -P INPUT DROP #设置INPUT链的默认规则为DROP
) i; V# {2 v4 C! o; J0 Fiptables -P OUTPUT ACCEPT #设置OUTPUT链的默认规则为DROP
9 D: t) W* I$ Niptables -P FORWARD DROP #设置FORWARD链的默认规则为DROP
& G5 a0 D/ r9 d1 fiptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT #容许PING包
( }% C. P- q) b& E* m$ x1 v+ Y####开放信任网段
8 G0 t' M7 e4 A) [" j# W# ciptables -A INPUT -s 192.168.1.100,192.168.2.0/24,192.168.3.0/24 -p all -j ACCEPT
5 s+ _: _* o$ niptables -A INPUT -p tcp --dport 5900:5910 -j ACCEPT7 h# D" e4 q% A2 i" n" q' a
####开启对外服务端口6 y7 k/ a/ X- i
iptables -A INPUT -p tcp --dport 80 -j ACCEPT; R. g0 j8 @8 D* |
iptables -A INPUT -p tcp -m multiport --dport 80,8080,443 -j ACCEPT1 g) W* a3 z8 j! S* p2 G3 d
####容许关联的包经过6 j1 w; `- }& j; U+ C$ Q  H
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
( q8 A2 _  g3 d" D2 C$ niptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPTcentos
$ o: ?" S7 g4 A  j8 }  Z/ h  I2 S2 h
二、查看当前运行状态的iptables的规则( C1 H3 S/ J6 L! Z4 v! n8 B1 @
iptables-save7 O1 e8 J, Q/ E1 {4 B
三、查看默认iptables配置配置文件的规则
. P  l7 `  ~+ [1 L1 o, p6 pcat /etc/sysconfig/iptables
+ ?6 l& b9 K0 T* ~- [& J四、保存iptables配置: ?- M0 D$ @  p: K
iptables-save > /etc/sysconfig/iptables, {! X' m1 _0 d# L
/etc/init.d/iptables save
4 \8 [* H4 B& J0 y& U5 a五、从新执行iptables配置文件7 X- q- [9 w( r# f7 `: F) Z
/etc/init.d/iptables reload7 c) l1 R( w/ F& G
iptables-restore /etc/sysconfig/iptables3 S" C, a% g2 K* e
六、启停防火墙
: p8 k$ h' s, Y" Z* R. H( V2 [" U/etc/init.d/iptables start/ Q* S6 t, t; Y2 _) q% j
/etc/init.d/iptables stop
- t& M8 l2 ^! B6 q( m七、查看详细的规则配置
  n# B/ s4 |9 n$ L) \4 r[root@centos6 sysconfig]# iptables -nvL --line9 H4 z# O  u2 ~+ Z' U
Chain INPUT (policy DROP 0 packets, 0 bytes)
: _& ]4 N. E/ c" I1 _num pkts bytes target prot opt in out source destination
: f) S2 n8 @; z, |" c1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/0
+ o% m" F9 V0 Q, b5 c3 {3 p9 Z8 q2 0 0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8
( W; e; @- Q) f3 247 20668 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22# c6 ]) k) }# i: w+ t
4 411 49930 ACCEPT all -- 10.8.26.0/24 0.0.0.0/03 S2 T  x, C; T  V3 f
5 0 0 ACCEPT all -- 10.8.201.0/24 0.0.0.0/0! ]0 O/ n5 b5 |( a/ n
6 0 0 ACCEPT all -- 10.9.1.1 0.0.0.0/0
2 Y- e& P) M3 p8 P% L5 K7 0 0 ACCEPT tcp -- 10.8.26.0/24 0.0.0.0/0 multiport dports 6888,11034
. B( r% g: Z0 e; j( Q2 q/ {8 0 0 ACCEPT tcp -- 10.8.201.0/24 0.0.0.0/0 multiport dports 6888,11034
. f' D  i* ~0 c, L6 I+ d( Z6 B2 Z9 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
; M, c* l) `. h" }10 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:5900:5910/ Y7 ^# S  k: ^( A# x
11 0 0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 8080,443
0 J" j" ?1 C& q! e2 e12 0 0 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDtcp& k/ V+ n* e7 S/ ]8 h# F

% o, J) r7 Q, s+ tChain FORWARD (policy DROP 0 packets, 0 bytes)
4 Q% Z1 X) e: v9 R& E1 snum pkts bytes target prot opt in out source destinationide& T  p1 X) [2 ?! A
/ S$ ~1 c6 y! x% w: P6 f8 P
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
# E7 U/ ^$ K& m: x* e8 E! Xnum pkts bytes target prot opt in out source destination
) o. j. Q; u1 R. D' f7 r8 Y7 \8 j' l1 0 0 ACCEPT all -- lo 0.0.0.0/0 0.0.0.0/08 T/ k6 K) O; s( |+ v, n
2 172 17712 ACCEPT all -- * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDoop
* U0 O: f, R7 I4 _3 N6 D% N5 Y$ f$ i4 Q8 v) x
八、基本配置文件示例7 A& \( @6 O% H2 m. o7 K
[root@centos6 sysconfig]# cat /etc/sysconfig/iptables
+ d( ~& y- s8 w: B/ S# Generated by iptables-save v1.4.7 on Fri Jan 19 03:14:49 2018- m3 B5 L" i- N( a3 W2 b: y. {
*filter0 c: Y8 V. q/ o8 h" Q; ?" \2 M
:INPUT DROP [0:0]
. Z9 D8 e: E( W5 s5 S6 a8 a# ^. R:FORWARD DROP [0:0], X8 V) B7 G) P4 h" u9 A) ^. c
:OUTPUT ACCEPT [0:0]
' t- T/ b& W! [  H) E& ^. M3 J####Trust loopback interface and Ping# @6 a& @* X. q1 M5 G7 s0 m
-A INPUT -i lo -j ACCEPT
7 e7 J7 l, H% a1 T1 ]. c" f5 o" ], W8 M-A OUTPUT -o lo -j ACCEPT9 v  C8 X7 w* j/ y9 G0 C0 u
-A INPUT -p icmp --icmp-type 8 -j ACCEPT
/ F" h6 p* y; Z4 R5 r) i# z####Trust Network8 j$ ]' n6 [4 o/ \2 v1 @' _! Q% E
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT7 O# B- W7 Z4 `8 n6 K) F  B3 j
-A INPUT -s 10.8.26.0/24 -j ACCEPT
1 u! b& Z9 V2 B+ X2 g$ _1 _. E+ C+ N( B-A INPUT -s 10.8.201.0/24 -j ACCEPT
. [: l$ T" A3 O& }8 _- I% R( x-A INPUT -s 10.9.1.1/32 -j ACCEPT& T# R0 [  G3 @+ K' a# p; q) z
-A INPUT -s 10.8.26.0/24,10.8.201.0/24 -p tcp -m multiport --dport 6888,11034 -j ACCEPT2 [, N9 k: y: F0 o" S4 E% W
####Open Port3 |$ p2 F3 G4 I! X# P, F
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
, m- \9 r# ]2 E3 t+ ?-A INPUT -p tcp -m tcp --dport 5900:5910 -j ACCEPT
3 B3 J; {) U9 N! M2 s-A INPUT -p tcp -m multiport --dports 8080,443 -j ACCEPT" ^8 B7 N' j0 C) O, @
####Relate Packets
+ j7 P& N7 v; i2 q/ {-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT3 y5 q1 \4 X, l& b; `8 w
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT' a3 G# G; a, s
COMMIT0 W  s$ P$ H) F% j/ }0 }
# Completed on Fri Jan 19 03:14:49 2018命令行

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2022-7-3 08:25:44 | 显示全部楼层
通过在计算节点加iptables规则block所以对计算节点进行vnc请求的流量,但放开novnc过来的访问流量。
' l7 Y+ [+ ^4 \+ e! Wiptables -A INPUT -p tcp ! -s 10.5.0.67 --sport 6080 -m multiport --dports 5900:5999 -j DROP1 W* Q5 w3 Z& ^
如果有多个novnc-proxy节点可以:+ B; X' ?2 ]) p  J' g
sudo iptables -A INPUT -p tcp -s 10.5.0.81 -m multiport --dports 5900:5999 -j ACCEPT
$ p- D7 Z. U3 r  n% r- `9 X) usudo iptables -A INPUT -p tcp -m multiport --dports 5900:5999 -j DROP
0 f" U5 q. |4 b0 A6 \, T( u或者使用ipset,
# Z+ ~; J, E/ @4 Jsudo ipset create good_ips iphash
4 U0 g9 E/ ~: I" D( H5 fsudo ipset add good_ips 172.24.0.93
0 S/ C) O( x9 f! h- T4 T. osudo ipset add good_ips 172.24.0.193! ^9 ^" g6 O' {5 P/ `  I
sudo iptables -A INPUT -m set ! --match-set good_ips src -j DROP
6 U" H+ y( M4 |- w! a' U+ {; h6 s+ ]% o: S7 I
当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中默认就是打开的。; |. l0 Y/ X1 L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:55 , Processed in 0.038984 second(s), 35 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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