精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于 Kubernetes 的 Secret 并不安全這件事

系統 Linux
Secret 其實并不安全,稍微用 kubectl 查看過 Secret 的人都知道,我們可以非常方便的看到 Secret 的原文,只要有相關的權限即可,盡管它的內容是 base64 編碼的,這基本上等同于明文。

 K8s 提供了 Secret 資源供我們來保存、設置一些敏感信息,比如 API endpoint 地址,各種用戶密碼或 token 之類的信息。在沒有使用 K8s 的時候,這些信息可能是通過配置文件或者環境變量在部署的時候設置的。

不過,Secret 其實并不安全,稍微用 kubectl 查看過 Secret 的人都知道,我們可以非常方便的看到 Secret 的原文,只要有相關的權限即可,盡管它的內容是 base64 編碼的,這基本上等同于明文。

所以說,K8s 原生的 Secret 是非常簡單的,不是特別適合在大型公司里直接使用,對 RBAC 的挑戰也比較大,很多不該看到明文信息的人可能都能看到。

尤其是現在很多公司采用了所謂的 GitOps 理念,很多東西都需要放到 VCS,比如 git 中,這一問題就更日益突出,因為 VCS 也得需要設置必要的權限。

問題

簡單來說,大概有幾個地方都可以讓不應該看到 Secret 內容的人獲得 Secret 內容:

  •  etcd 存儲
  •  通過 API server
  •  在 node 上直接查看文件

這里我們以這個例子來看一下 Secret 在 K8s 中的使用情況。

Secret 定義, 用戶名和密碼分別為 admin 和 hello-secret: 

  1. apiVersion: v1  
  2. kind: Secret  
  3. metadata:  
  4.   name: mysecret  
  5. type: Opaque  
  6. data:  
  7.   username: YWRtaW4 
  8.   passwordaGVsbG8tc2VjcmV0Cg== 

Pod 定義,這里我們將 Secret 作為 volume mount 到容器中。 

  1. apiVersion: v1  
  2. kind: Pod  
  3. metadata:  
  4.   name: mypod  
  5. spec:  
  6.   containers:  
  7.   - name: mypod  
  8.     image: docker.io/containerstack/alpine-stress  
  9.     command:  
  10.       - top  
  11.     volumeMounts:  
  12.     - name: foo  
  13.       mountPath: "/etc/foo"  
  14.       readOnly: true  
  15.   volumes:  
  16.   - name: foo  
  17.     secret:  
  18.       secretName: mysecret 

Pod 啟動后,我們可以到容器中來查看 Secret 作為 volume mount 到容器后的文件內容。 

  1. $ kubectl exec -it mypod sh  
  2. / # cd /etc/foo/  
  3. /etc/foo # ls -tal  
  4. total 4  
  5. drwxr-xr-x    1 root     root          4096 Apr 14 08:55 ..  
  6. drwxrwxrwt    3 root     root           120 Apr 14 08:55 .  
  7. drwxr-xr-x    2 root     root            80 Apr 14 08:55 ..2021_04_14_08_55_54.401661151  
  8. lrwxrwxrwx    1 root     root            31 Apr 14 08:55 ..data -> ..2021_04_14_08_55_54.401661151  
  9. lrwxrwxrwx    1 root     root            15 Apr 14 08:55 password -> ..data/password  
  10. lrwxrwxrwx    1 root     root            15 Apr 14 08:55 username -> ..data/username  
  11. /etc/foo # ls -tal ..2021_04_14_08_55_54.401661151  
  12. total 8  
  13. drwxr-xr-x    2 root     root            80 Apr 14 08:55 .  
  14. drwxrwxrwt    3 root     root           120 Apr 14 08:55 ..  
  15. -rw-r--r--    1 root     root            13 Apr 14 08:55 password  
  16. -rw-r--r--    1 root     root             5 Apr 14 08:55 username  
  17. /etc/foo # cat password  
  18. hello-secret  
  19. /etc/foo #  

etcd 存儲

API server 中的資源都保存在 etcd 中,我們可以直接從文件看到相關內容: 

  1. # hexdump -C /var/lib/etcd/member/snap/db | grep -A 5 -B 5 hello  
  2. 00043640  12 00 1a 07 64 65 66 61  75 6c 74 22 00 2a 24 32  |....default".*$2|  
  3. 00043650  35 66 37 35 38 30 38 2d  37 33 31 33 2d 34 38 64  |5f75808-7313-48d|  
  4. 00043660  39 2d 39 61 38 65 2d 38  61 35 66 66 32 32 63 64  |9-9a8e-8a5ff22cd|  
  5. 00043670  64 35 39 32 00 38 00 42  08 08 98 dc da 83 06 10  |d592.8.B........|  
  6. 00043680  00 7a 00 12 19 0a 08 70  61 73 73 77 6f 72 64 12  |.z.....password.|  
  7. 00043690  0d 68 65 6c 6c 6f 2d 73  65 63 72 65 74 0a 12 11  |.hello-secret...|  
  8. 000436a0  0a 08 75 73 65 72 6e 61  6d 65 12 05 61 64 6d 69  |..username..admi|  
  9. 000436b0  6e 1a 06 4f 70 61 71 75  65 1a 00 22 00 00 00 00  |n..Opaque.."....|  
  10. 000436c0  00 00 00 08 95 5f 00 00  00 00 00 00 00 00 0a 37  |....._.........7|  
  11. 000436d0  2f 72 65 67 69 73 74 72  79 2f 73 65 72 76 69 63  |/registry/servic|  
  12. 000436e0  65 73 2f 65 6e 64 70 6f  69 6e 74 73 2f 6b 75 62  |es/endpoints/kub| 

可以看到,基本 yaml 中的內容都是明文存放的,而且是進行 base64 解碼之后的內容。

使用下面的命令也可以獲得類似的結果。 

  1. ETCDCTL_API=3 etcdctl get --prefix /registry/secrets/default/mysecret | hexdump -C 

etcd 本來存儲的是明文數據,這個好像已經從 1.7 開始支持加密存儲了,而且直接訪問 etcd 從物理上來說也不是那么容易。

API server

通過 API server 則簡單的多,只要有權限就可以從任何節點上通過訪問 API server 來得到 secret 的明文內容。 

  1. $ kubectl get secret mysecret -o yaml  
  2. apiVersion: v1  
  3. data:  
  4.   password: aGVsbG8tc2VjcmV0Cg==  
  5.   username: YWRtaW4 
  6. kind: Secret  
  7. metadata:  
  8.   creationTimestamp: "2021-04-14T08:55:52Z"  
  9.   name: mysecret  
  10.   namespace: default  
  11.   resourceVersion: "2196"  
  12.   selfLink: /api/v1/namespaces/default/secrets/mysecret  
  13.   uid: 25f75808-7313-48d9-9a8e-8a5ff22cdd59  
  14. type: Opaque 

節點上

在節點上也可以看到 Secret 文件的內容。

查找 foo volume 的掛載點: 

  1. # mount | grep foo   
  2. tmpfs on /var/lib/kubelet/pods/280451e8-512b-489c-b5dd-df2b1a3c9b29/volumes/kubernetes.io~secret/foo type tmpfs (rw,relatime)  

查看這個 volume 下面的文件內容: 

  1. # ls -tal /var/lib/kubelet/pods/280451e8-512b-489c-b5dd-df2b1a3c9b29/volumes/kubernetes.io~secret/foo  
  2. total 4  
  3. drwxrwxrwt 3 root root  120 4月  14 16:55 .  
  4. drwxr-xr-x 2 root root   80 4月  14 16:55 ..2021_04_14_08_55_54.401661151  
  5. lrwxrwxrwx 1 root root   31 4月  14 16:55 ..data -> ..2021_04_14_08_55_54.401661151  
  6. lrwxrwxrwx 1 root root   15 4月  14 16:55 password -> ..data/password  
  7. lrwxrwxrwx 1 root root   15 4月  14 16:55 username -> ..data/username  
  8. drwxr-xr-x 4 root root 4096 4月  14 16:55 ..  
  9. # cat /var/lib/kubelet/pods/280451e8-512b-489c-b5dd-df2b1a3c9b29/volumes/kubernetes.io~secret/foo/password  
  10. hello-secret 

第三方方案

針對上面提到的可能泄露 Secret 的幾點,大概解決方案不難想到如下幾種:

  •  etcd 加密
  •  API server 嚴格進行權限設計
  •  強化 node 節點用戶權限管理和系統安全

不過,要相關確保 Secret 的絕對安全,上面這幾種方案都是必須,缺一不可,缺少了那一個都相當于在墻上留了一個洞。

社區和公有云提供商都有一些產品和方案,我們可以參考一下。

  •  shyiko/kubesec: Secure Secret management for Kubernetes (with gpg, Google Cloud KMS and AWS KMS backends)
  •  bitnami-labs/sealed-secrets: A Kubernetes controller and tool for one-way encrypted Secrets
  •  Vault by HashiCorp
  •  mozilla/sops
  •  Kubernetes External Secrets
  •  Kamus

shyiko/kubesec

kubesec 只對 Secret 中數據進行加密/解密,支持如下 key 管理服務或軟件:

  •  AWS Key Management Service
  •  Google Cloud KMS
  •  GnuPG

bitnami-labs/sealed-secrets

Bitnami 在 K8s 領域也是一家人人知曉的公司,輸出了很多技術和最佳實踐。

本圖來自 Sealed Secrets: Protecting your passwords before they reach Kubernetes

SealeSecret 將 secret 資源整個加密保存為 SealedSecret 資源,而解密只能由該集群中的 controller 進行。

SealeSecret 提供了一個 kubeseal 工具來對 secret 資源進行加密,這個過程需要一個公開 key(公鑰),這個公開 key 就是從 SealeSecret controller 拿到的。

不過,只從從說明文檔來看, SealeSecret controller 加密解密所依賴的 key,也是通過普通的 Secret 來保存的,這難道不是一個問題?同時也增加了 SealeSecret controller 的運維成本。

mozilla/sops

嚴格來說, sops 跟 K8s 并沒有什么必然關系,它只是一個支持 YAML/JSON/ENV/INI 等文件格式的加密文件編輯器,它支持 AWS KMS, GCP KMS, Azure Key Vault, age, 和 PGP 等服務與應用。

如果有有興趣可以看它的主頁。

Kubernetes External Secrets

Kubernetes External Secrets 是知名域名服務提供商 godaddy 開發的開源軟件,它可以直接將保存在外部 KMS 中的機密信息傳給 K8s 。目前支持的 KSM 包括:

  •  AWS Secrets Manager
  •  AWS System Manager
  •  Hashicorp Vault
  •  Azure Key Vault
  •  GCP Secret Manager
  • Alibaba Cloud KMS Secret Manager

它通過自定義 controller 和 CRD 來實現,具體架構圖如下:

具體來說用戶需要創建一個 ExternalSecret 類型的資源,來將外部 KMS 的數據映射到 K8s 的 Secret 上。

不過,這種方式大概只有兩點好處:

  • 統一 key 的管理,或者沿用既有 key 資產
  • key 信息不想放到 VCS 等

對于防止 Sercet 信息泄露,作用不大,因為其明文資源還是可以在 API server/etcd 上看到。

或者說,External Secrets 真正做的事情,也就是從外部 KMS 中的 key ,映射成 K8s 中的 Secret 資源而已,對保證在 K8s 集群中數據的安全性用處不大。

Kamus

Kamus 同樣提供了加密 key 的方法(一個命令行工具),同時只有通過 K8s 中的 controller 才能對這個 key 進行解密。不過它 保存在 K8s 中的 Secret 是加密的狀態,用戶不能像 External Secrets 那樣直接獲得 Secret 的明文內容。

Kamus 由 3 個組件組成,分別是:

  •  Encrypt API
  •  Decrypt API
  •  Key Management System (KMS)

KMS 是一個外部加密服務的封裝,目前支持如下服務:- AES - AWS KMS - Azure KeyVault - Google Cloud KMS

Kamus 以 service account 為單位對 secret 進行加密,之后 Pod 會通過 service account 來請求 Kamus 的解密服務來對該 secret 進行解密。

對 K8s 來說,解密 secret 可以通過 init container 來實現:定義一個 基于內存的 emptyDir ,業務容器和 init 容器使用同一個 volume, init 容器解密后,將數據存放到該 volume 下,之后業務容器就可以使用解密后的 secret 數據了。

Vault by HashiCorp

HashiCorp 公司就不多說,在云計算/DevOps領域也算是數一數二的公司了。

Vault 本身就是一個 KMS 類似的服務,用于管理機密數據。對于 K8s 的原生 secret ,大概提供了如下兩種方式的支持:

  •  Agent Sidecar Injector/vault-k8s
  •  Vault CSI Provider

Agent Sidecar Injector

這種方式和上面的 Kamus 類似,也是需要兩個組件:

  •  Mutation webhook:

          負責修改 pod 定義,注入init/sidecar

  •  agent-sidecar:

           負責獲取和解密數據,將數據保存到指定的 volume/路徑下

Vault agent sidecar injector 不僅提供了 init container 來初始化 secret ,還通過 sidecar 來定期更新 secret ,這樣就非常接近原生 secret 的實現了。

應用程序則只需要在文件系統上讀取指定的文件就可以了,而不必關系如何從外部獲取加密信息。

這是官方 blog 中的一個示例:

Pod 信息: 

  1. spec:  
  2.   template:  
  3.     metadata:  
  4.       annotations:  
  5.         vault.hashicorp.com/agent-inject: "true"  
  6.         vault.hashicorp.com/agent-inject-secret-helloworld: "secrets/helloworld"  
  7.         vault.hashicorp.com/role: "myapp" 

這個定義中,vault-k8s 會對該 pod 注入 vault agent,并使用 secrets/helloworld 來初始化。Pod 運行后,可以在 /vault/secrets 下找到一個名為 helloworld 的文件。 

  1. $ kubectl exec -ti app-XXXXXXXXX -c app -- cat /vault/secrets/helloworld  
  2. data: map[password:foobarbazpass username:foobaruser]  
  3. metadata: map[created_time:2019-12-16T01:01:58.869828167Z deletion_time: destroyed:false version:1] 

當然這個數據是raw data,沒有經過格式化。如果想指定輸出到文件中的格式,可以使用 vault 的模板功能。

Vault CSI Provider

這部分可以參考下面的社區方案部分。

社區方案

當然,社區沒有理由意識不到原生 secret 的問題,因此社區也有 Kubernetes Secrets Store CSI Driver ,一種通過 CSI 接口將 Secret 集成到 K8s 的方案。

Secrets Store CSI driver(secrets-store.csi.k8s.io)可以讓 K8s mount 多個 secret 以 volume 的形式,從外部 KMS mount 到 Pod 里。

要想使用 Secrets Store CSI Driver ,大致過程如下:

  •  定義 SecretProviderClass 
  1. apiVersion: secrets-store.csi.x-k8s.io/v1alpha1  
  2. kind: SecretProviderClass  
  3. metadata:  
  4.   name: my-provider  
  5. spec: 
  6.   provider: vault   # accepted provider options: azure or vault or gcp  
  7.   parameters:       # provider-specific parameters 
  •  為 Pod 配置 Volume 
  1. kind: Pod  
  2. apiVersion: v1  
  3. metadata:  
  4.   name: secrets-store-inline  
  5. spec:  
  6.   containers:  
  7.   - image: k8s.gcr.io/e2e-test-images/busybox:1.29  
  8.     name: busybox  
  9.     command:  
  10.     - "/bin/sleep"  
  11.     - "10000"  
  12.     volumeMounts:  
  13.     - name: secrets-store-inline  
  14.       mountPath: "/mnt/secrets-store"  
  15.       readOnly: true  
  16.   volumes:  
  17.     - name: secrets-store-inline  
  18.       csi:  
  19.         driver: secrets-store.csi.k8s.io  
  20.         readOnly: true  
  21.         volumeAttributes:  
  22.           secretProviderClass: "my-provider" 

Pod 啟動之后,就可以確認解密后的數據了: 

  1. $ kubectl exec secrets-store-inline -- ls /mnt/secrets-store/  
  2. foo 

總結

上面的總結都是基于互聯網公開的資料而來,并沒有經過親身體驗,因此有些地方可能理解有誤,要想深入了解還需要自己親手確認最好。

不過總體來說,社區這種方案可能最簡單,部署也不是很麻煩,只是這就和原生的 secret 基本沒什么關系了。。。 

 

責任編輯:龐桂玉 來源: 奇妙的Linux世界
相關推薦

2015-05-27 13:19:23

2020-11-13 11:27:04

短信驗證

2015-07-01 14:48:51

2015-07-06 14:32:10

2018-03-12 13:47:27

2023-06-01 19:24:16

2018-07-10 08:56:19

編程程序員開發

2023-10-19 10:43:38

2012-04-16 10:12:54

Java線程

2020-11-03 12:32:25

影子物聯網物聯網IOT

2021-04-04 23:16:52

安全刷臉銀行

2020-04-22 20:35:02

HashMap線程安全

2009-08-03 16:58:59

C#不安全代碼

2024-01-19 08:42:45

Java線程字符串

2023-05-12 17:45:15

MySQL索引排序

2014-04-09 09:37:29

2014-09-12 17:44:23

2020-04-23 10:36:45

容器云安全云計算

2018-01-26 10:49:19

2009-11-12 08:38:34

點贊
收藏

51CTO技術棧公眾號

中国精品一区二区| 亚洲色图14p| 黄页网站在线| 久久久综合九色合综国产精品| 国产精品久久久精品| 日本午夜在线观看| 另类ts人妖一区二区三区| 欧美性猛交xxxx黑人交| 国产高清不卡无码视频| 蜜桃视频在线免费| 国产精品综合在线视频| 91爱爱小视频k| 日韩欧美国产成人精品免费| 国产精品玖玖玖在线资源| 欧美性高清videossexo| 日本五级黄色片| 一级毛片视频在线| 成人短视频下载| 国产色视频一区| 亚洲精品视频在线观看免费视频| 欧美电影一二区| 日韩av综合网站| 性鲍视频在线观看| 在线成人视屏| 精品久久久久久久久中文字幕| 在线观看成人av电影| 视频一区二区在线播放| 国产精品99久久久久久似苏梦涵| 国产第一区电影| 999这里只有精品| 欧美69wwwcom| 久久精品成人一区二区三区 | 国产精品99精品无码视| 日韩精品久久| 亚洲天堂成人在线| 好吊色视频一区二区三区| 欧美特黄色片| 欧美三级乱人伦电影| 少妇性饥渴无码a区免费| 国精产品一区一区三区mba下载| 国产精品美女久久久久久2018| 久久婷婷开心| 手机在线观看免费av| 韩国三级在线一区| 国产在线视频不卡| 亚洲无码久久久久| 免费成人在线网站| 国产精品亚洲网站| 正在播放木下凛凛xv99| 日韩电影网1区2区| 国产精品永久免费在线| 中文字幕+乱码+中文乱码www| 亚洲深夜福利| 4444欧美成人kkkk| 欧美日韩一级黄色片| 午夜亚洲激情| 日本午夜人人精品| 高潮毛片又色又爽免费| 日韩精品免费专区| 国产精品一区电影| 91成人国产综合久久精品| 久久精品二区亚洲w码| 国产日韩中文字幕| www.桃色av嫩草.com| 国产aⅴ精品一区二区三区色成熟| 成人av免费看| 手机在线不卡av| 久久综合久久综合亚洲| 日本精品一区二区| 91大神在线网站| 亚洲视频在线一区观看| 青青在线视频免费观看| 超碰在线中文字幕| 日韩欧美精品中文字幕| 亚洲无吗一区二区三区| 91精品国产一区二区在线观看| 欧美一区二区视频在线观看 | 日韩一区二区三区精品视频第3页 日韩一区二区三区精品 | 一呦二呦三呦精品国产| 欧美日韩在线播放三区四区| 激情久久综合网| 国产精品巨作av| 亚洲无线码在线一区观看| 91狠狠综合久久久久久| 综合日韩在线| 欧美亚洲另类在线| 中文字幕 视频一区| 国产精品一区二区黑丝| 久久亚洲高清| 黄av在线免费观看| 欧美日韩久久久久| 亚洲精品综合在线观看| 粉嫩精品导航导航| 中文字幕日韩av电影| 真实国产乱子伦对白在线| 99精品视频免费观看| 国产精品久久久久久久久| 精品美女www爽爽爽视频| 99久久99久久精品国产片果冻| 天堂√在线观看一区二区| 26uuu亚洲电影在线观看| 午夜亚洲福利老司机| 中文字幕有码av| 极品国产人妖chinesets亚洲人妖| 亚洲天堂av网| 久久久久99精品成人片毛片| 日本亚洲欧美天堂免费| 国产精品theporn88| 国产二区视频在线观看| 亚洲电影在线免费观看| www.久久91| 一本色道久久综合狠狠躁的番外| 久久影院中文字幕| 波多野结衣在线观看视频| 国产91精品欧美| 亚洲午夜激情| 欧美无毛视频| 亚洲第一av网| 婷婷在线精品视频| 捆绑调教一区二区三区| 另类视频在线观看+1080p| 亚洲男同gay网站| 欧美色大人视频| av小说在线观看| 99riav1国产精品视频| 亚洲自拍偷拍网址| 亚洲天天影视| 欧美视频在线不卡| 能免费看av的网站| 99精品视频免费观看视频| 99re在线国产| 3d玉蒲团在线观看| 欧美精品vⅰdeose4hd| 精品成人无码一区二区三区| av不卡在线| 成人三级在线| 肉体视频在线| 精品少妇一区二区三区视频免付费 | 国产毛片久久久久| 国产精品福利一区二区三区| 爱情岛论坛vip永久入口| 欧美禁忌电影网| 青青久久av北条麻妃黑人| 天堂av手机版| 福利视频第一区| 免费无码一区二区三区| 激情婷婷亚洲| 国产区日韩欧美| 51漫画成人app入口| 精品99一区二区| 日本三级午夜理伦三级三| 国产高清精品在线| 日韩a级黄色片| 中文字幕日韩高清在线| 久久99亚洲精品| 精品国产av 无码一区二区三区| 亚洲欧洲一区二区三区| 日韩成人av免费| 亚洲澳门在线| 国产精品国产精品| 黄色18在线观看| 亚洲人永久免费| 中文字幕永久免费视频| 中文字幕在线不卡一区| 91精产国品一二三| 亚洲区第一页| 日本高清不卡一区二区三| 成人激情视屏| 免费97视频在线精品国自产拍| 精品人妻一区二区三区麻豆91| 一区二区三区四区视频精品免费 | 三区四区不卡| 91免费综合在线| av成人福利| 亚洲视频第一页| 中文字字幕在线观看| 亚洲三级电影网站| 日本五十肥熟交尾| 日本视频中文字幕一区二区三区| 尤物一区二区三区| 卡通动漫国产精品| 国产精品女人久久久久久| 成年人网站在线| 日韩电影中文字幕在线观看| 亚洲精品国产精品国自产网站按摩| 综合在线观看色| 国产免费一区二区三区最新6| 另类激情亚洲| 亚洲区成人777777精品| 偷拍自拍一区| 亚洲精品欧美日韩专区| 亚洲最新无码中文字幕久久| 中文字幕亚洲欧美一区二区三区| 国产综合在线播放| 欧美日韩亚洲国产综合| 久久久久久久久久久网| 久久精品一二三| 久久av一区二区三| 秋霞影院一区二区| 精品人妻少妇一区二区| 青草国产精品| 久久国产精品 国产精品| 色999韩欧美国产综合俺来也| 国模精品一区二区三区色天香| av色图一区| 日韩高清欧美高清| 超碰在线观看av| 欧美区在线观看| 久久久成人免费视频| 樱桃国产成人精品视频| 成人无码av片在线观看| gogogo免费视频观看亚洲一| 99精品视频国产| 日日夜夜免费精品| 丰满少妇大力进入| 亚洲欧美一区在线| 亚洲精品9999| 久久av免费看| 久久久一本精品99久久精品66| 亚洲综合色婷婷在线观看| 国产精品视频区| 免费成人动漫| 91成人精品网站| av影视在线| 欧美国产第二页| 97超碰在线公开在线看免费| 色综合影院在线| 国产高清av在线| 亚洲欧美国产一本综合首页| 欧美一级在线免费观看| 日韩一卡二卡三卡国产欧美| 中文字幕永久免费视频| 在线观看亚洲精品视频| 男人天堂av在线播放| 欧美色图在线视频| aaa人片在线| 欧美午夜片欧美片在线观看| 亚欧视频在线观看| 亚洲高清免费视频| 国产一级中文字幕| 亚洲一二三区不卡| 精品小视频在线观看| 亚洲精品你懂的| 亚洲色图 激情小说| 国产女主播在线一区二区| 精品成人无码一区二区三区| 国产香蕉久久精品综合网| 女尊高h男高潮呻吟| 26uuu精品一区二区三区四区在线| 亚洲av成人精品一区二区三区| 成人av综合一区| 亚洲成人av免费在线观看| 97久久久精品综合88久久| 三级黄色片网站| 久久嫩草精品久久久久| 性の欲びの女javhd| 中文字幕中文字幕一区| 九九精品视频免费| 亚洲一区影音先锋| 日韩精品一区二区三| 懂色av影视一区二区三区| 天堂网一区二区三区| 欧美性高跟鞋xxxxhd| 中文字幕第四页| 欧美视频在线观看一区二区| 91午夜交换视频| 日韩欧美国产1| 人妻一区二区三区免费| 亚洲剧情一区二区| 在线视频婷婷| 欧美巨大黑人极品精男| 爱福利在线视频| 国产激情久久久久| 粉嫩一区二区三区在线观看| 99久久精品免费看国产四区| 日韩高清三区| 亚洲一区二区在线观| 午夜精品影院| 国产日韩一区二区在线| 老司机午夜精品| 色悠悠在线视频| 国产欧美一区二区三区在线老狼 | 亚洲成av人电影| 99在线精品免费视频| 久久男女视频| 中文字幕在线视频一区二区| 91天堂素人约啪| 久久精品亚洲a| 午夜精品久久久久久久99樱桃| 看黄色一级大片| 欧美一二三在线| 韩国三级在线观看久| 免费av在线一区| 亚洲第一会所001| 国产精品免费一区二区三区| 精品日韩免费| 每日在线观看av| 韩国欧美一区二区| 中字幕一区二区三区乱码| 玖玖综合伊人| 欧美成人video| 成人在线免费电影| 欧美激情在线有限公司| 精品裸体bbb| 久久国产精品久久| 欧美~级网站不卡| 五月婷婷丁香综合网| av一区二区久久| 国产日韩欧美在线观看视频| 一本久道久久综合中文字幕| 国产www免费观看| 在线一区二区日韩| 国模套图日韩精品一区二区| 114国产精品久久免费观看| heyzo久久| 成人一级片网站| 成人美女视频在线看| 国产成人自拍网站| 欧美视频一区二区三区四区| 四虎影视2018在线播放alocalhost| 日韩视频在线观看免费| 日韩毛片免费观看| 精品免费一区二区三区蜜桃| 中文字幕亚洲综合久久五月天色无吗''| 丁香啪啪综合成人亚洲| www.激情成人| 国产在线视频卡一卡二| 日韩一区二区影院| 午夜伦理在线| 国产精品视频永久免费播放| 亚洲欧美成人vr| 精品人妻一区二区三区四区在线| 国产成人精品1024| 18岁成人毛片| 欧美成人r级一区二区三区| av在线播放国产| 91中文字幕在线观看| 国产精品久久久久久| 久热精品在线播放| 日本一区二区视频在线| 啪啪小视频网站| 国产性猛交xxxx免费看久久| 欧美成人ⅴideosxxxxx| 乱一区二区三区在线播放| 小嫩嫩精品导航| 国精品无码人妻一区二区三区| 欧美日韩亚洲91| 日韩av免费观影| 国产精品91在线观看| 成人婷婷网色偷偷亚洲男人的天堂| 韩国中文字幕av| 日韩一区日韩二区| 国产婷婷一区二区三区久久| 久久成人在线视频| 亚洲网址在线观看| 免费毛片网站在线观看| 99r国产精品| 在线永久看片免费的视频| 亚洲人线精品午夜| 日韩成人在线一区| 欧洲xxxxx| 丁香六月综合激情| 午夜毛片在线观看| 伊人一区二区三区久久精品| 狠狠久久综合| 国产av熟女一区二区三区| fc2成人免费人成在线观看播放| 四虎成人在线观看| 日韩中文字幕在线| 日本精品在线播放| 99视频在线免费播放| 国产亚洲va综合人人澡精品| 亚洲性生活大片| 久久99精品视频一区97| 欧美自拍视频| 少妇一级淫免费播放| 亚洲精品视频观看| 日韩一级免费视频| 国产精品久久久久久久久久免费| 国产精品久久久久久| 亚洲图片综合网| 欧美视频在线观看一区二区| 日本动漫同人动漫在线观看| 久久一区免费| 国内精品伊人久久久久av影院| 久久免费视频播放| 一区二区三区高清国产| 日韩在线观看一区二区三区| 国产又黄又大又粗视频| 国产精品黄色在线观看| 色噜噜在线播放| 国产精品网站大全| 中文久久精品| 秋霞欧美一区二区三区视频免费| 精品成人a区在线观看| 国产黄色精品| 青青青青草视频| 综合网在线视频| 九色视频在线观看免费播放 | 在线免费观看一区二区|