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

Kubernetes 集群安全機制詳解

云計算
本文主要介紹 Kubernetes 的安全機制,如何使用一系列概念、技術(shù)點、機制確保集群的訪問是安全的,涉及到的關(guān)鍵詞有:api-server,認證,授權(quán),準入控制,RBAC,Service Account,客戶端證書認證,Kubernetes 用戶,Token 認證等等。

[[320833]]

 本文主要介紹 Kubernetes 的安全機制,如何使用一系列概念、技術(shù)點、機制確保集群的訪問是安全的,涉及到的關(guān)鍵詞有:api-server,認證,授權(quán),準入控制,RBAC,Service Account,客戶端證書認證,Kubernetes 用戶,Token 認證等等。雖然涉及到的技術(shù)點比較瑣碎,比較多,但是了解整個機制后就很容易將其串起來,從而能很好地理解 Kubernetes 集群安全機制。

Kubernetes api-server 安全訪問機制

kube-apiserver 是 Kubernetes 整個集群的入口,是一個 REST API 服務(wù),提供的 API 實現(xiàn)了 Kubernetes 各類資源對象(如 Pod,RC,Service 等)的增、刪、改、查,API Server 也是集群內(nèi)各個功能模塊之間交互和通信的樞紐,是整個集群的總線和數(shù)據(jù)中心。

 

Kubernetes 集群安全機制詳解

 

由此可見 API Server 的重要性了,我們用 kubectl、各種語言提供的客戶端庫或者發(fā)送 REST 請求和集群交互,其實底層都是以 HTTP REST 請求的方式同 API Server 交互,那么訪問的安全機制是如何保證的呢,總不能隨便來一個請求都能接受并響應(yīng)吧。API Server 為此提供了一套特有的、靈活的安全機制,每個請求到達 API Server 后都會經(jīng)過:認證(Authentication)–>授權(quán)(Authorization)–>準入控制(Admission Control)三道安全關(guān)卡,通過這三道安全關(guān)卡的請求才給予響應(yīng):

 

Kubernetes 集群安全機制詳解

 

認證(Authentication)

認證階段的工作是識別用戶身份,支持的認證方式有很多,比如:HTTP Base,HTTP token,TLS,Service Account,OpenID Connect 等,API Server 啟動時可以同時指定多種認證方式,會逐個使用這些方法對客戶請求認證,只要通過任意一種認證方式,API Server 就會認為 Authentication 成功。高版本的 Kubernetes 默認認證方式是 TLS。在 TLS 認證方案中,每個用戶都擁有自己的 X.509 客戶端證書,API 服務(wù)器通過配置的證書頒發(fā)機構(gòu)(CA)驗證客戶端證書。

授權(quán)(Authorization)

授權(quán)階段判斷請求是否有相應(yīng)的權(quán)限,授權(quán)方式有多種:AlwaysDeny,AlwaysAllow,ABAC,RBAC,Node 等。API Server 啟動時如果多種授權(quán)模式同時被啟用,Kubernetes 將檢查所有模塊,如果其中一種通過授權(quán),則請求授權(quán)通過。 如果所有的模塊全部拒絕,則請求被拒絕(HTTP狀態(tài)碼403)。高版本 Kubernetes 默認開啟的授權(quán)方式是 RBAC 和 Node。

準入控制(Admission Control)

準入控制判斷操作是否符合集群要求,準入控制配備有一個“準入控制器”的列表,發(fā)送給 API Server 的每個請求都需要通過每個準入控制器的檢查,檢查不通過,則 API Server 拒絕調(diào)用請求,有點像 Web 編程的攔截器的意思。具體細節(jié)在這里不進行展開了,如想進一步了解見這里: Using Admission Controllers 。

Kubernetes 認證方式之客戶端證書(TLS)

通過上一節(jié)介紹我們知道 Kubernetes 認證方式有多種,這里我們簡單介紹下客戶端證書(TLS)認證方式,也叫 HTTPS 雙向認證。一般我們訪問一個 https 網(wǎng)站,認證是單向的,只有客戶端會驗證服務(wù)端的身份,服務(wù)端不會管客戶端身份如何。我們來大概看下 HTTPS 握手過程(單向認證):

  1. 客戶端發(fā)送 Client Hello 消息給服務(wù)端;
  2. 服務(wù)端回復(fù) Server Hello 消息和自身證書給客戶端;
  3. 客戶端檢查服務(wù)端證書的合法性,證書檢查通過后根據(jù)雙方發(fā)送的消息生成 Premaster Key,然后用服務(wù)端的證書里面的公鑰加密 Premaster Key 并發(fā)送給服務(wù)端 ;
  4. 服務(wù)端通過自己的私鑰解密得到 Premaster Key,然后通過雙方協(xié)商的算法和交換的消息生成 Session Key(后續(xù)雙方數(shù)據(jù)加密用的對稱密鑰,客戶端也能通過同樣的方法生成同樣的 Key),然后回復(fù)客戶端一個消息表明握手結(jié)束,后續(xù)發(fā)送的消息會以協(xié)商的對稱密鑰加密。

HTTPS 雙向認證的過程就是在上述第 3 步的時候同時回復(fù)自己的證書給服務(wù)端,然后第 4 步服務(wù)端驗證收到客戶端證書的合法性,從而達到了驗證客戶端的目的。在 Kubernetes 中就是用了這樣的機制,只不過相關(guān)的 CA 證書是自簽名的:

 

Kubernetes 集群安全機制詳解

 

Kubernetes 授權(quán)方式之 RBAC 介紹

基于角色的訪問控制(Role-Based Access Control,即 RBAC),是 Kubernetes 提供的一種授權(quán)策略,也是新版集群默認啟用的方式。RBAC 將角色和角色綁定分開,角色指的是一組定義好的操作集群資源的權(quán)限,而角色綁定是將角色和用戶、組或者服務(wù)賬號實體綁定,從而賦予這些實體權(quán)限。可以看出 RBAC 這種授權(quán)方式很靈活,要賦予某個實體權(quán)限只需要綁定相應(yīng)的角色即可。針對 RBAC 機制,Kubernetes 提供了四種 API 資源:Role、ClusterRole、RoleBinding、ClusterRoleBinding。

 

Kubernetes 集群安全機制詳解

 

Role:只能用于授予對某一單一命名空間中資源的訪問權(quán)限,因此在定義時必須指定 namespace,以下示例描述了 default 命名空間中的一個 Role 對象的定義,用于授予對 Pod 的讀訪問權(quán)限:

  1. kind: Role 
  2.  
  3. apiVersion: rbac.authorization.k8s.io/v1beta1 
  4.  
  5. metadata: 
  6.  
  7. namespace: default 
  8.  
  9. name: pod-reader 
  10.  
  11. rules: 
  12.  
  13. - apiGroups: [""] # 空字符串""表明使用core API group 
  14.  
  15. resources: ["pods"
  16.  
  17. verbs: ["get""watch""list"

ClusterRole:針對集群范圍的角色,能訪問整個集群的資源,下面示例中的 ClusterRole 定義可用于授予用戶對某一特定命名空間,或者所有命名空間中的 secret(取決于其綁定方式)的讀訪問權(quán)限:

  1. kind: ClusterRole 
  2.  
  3. apiVersion: rbac.authorization.k8s.io/v1beta1 
  4.  
  5. metadata: 
  6.  
  7. # 鑒于ClusterRole是集群范圍對象,所以這里不需要定義"namespace"字段 
  8.  
  9. name: secret-reader 
  10.  
  11. rules: 
  12.  
  13. - apiGroups: [""
  14.  
  15. resources: ["secrets"
  16.  
  17. verbs: ["get""watch""list"

RoleBinding:將 Role 和用戶實體綁定,從而賦予用戶實體命名空間內(nèi)的權(quán)限,同時也支持 ClusterRole 和用戶實體的綁定,下面示例中定義的 RoleBinding 對象在 default 命名空間中將 pod-reader 角色授予用戶 jane。 這一授權(quán)將允許用戶 jane 從 default 命名空間中讀取 Pod:

  1. # 以下角色綁定定義將允許用戶"jane""default"命名空間中讀取 Pod。 
  2.  
  3. kind: RoleBinding 
  4.  
  5. apiVersion: rbac.authorization.k8s.io/v1beta1 
  6.  
  7. metadata: 
  8.  
  9. nameread-pods 
  10.  
  11. namespace: default 
  12.  
  13. subjects: 
  14.  
  15. - kind: User 
  16.  
  17. name: jane 
  18.  
  19. apiGroup: rbac.authorization.k8s.io 
  20.  
  21. roleRef: 
  22.  
  23. kind: Role 
  24.  
  25. name: pod-reader 
  26.  
  27. apiGroup: rbac.authorization.k8s.io 

ClusterRoleBinding:將 ClusterRole 和用戶實體綁定,從而賦予用戶實體集群范圍的權(quán)限,下面示例中所定義的 ClusterRoleBinding 允許在用戶組 manager 中的任何用戶都可以讀取集群中任何命名空間中的 secret:

  1. # 以下`ClusterRoleBinding`對象允許在用戶組"manager"中的任何用戶都可以讀取集群中任何命名空間中的secret。 
  2.  
  3. kind: ClusterRoleBinding 
  4.  
  5. apiVersion: rbac.authorization.k8s.io/v1beta1 
  6.  
  7. metadata: 
  8.  
  9. nameread-secrets-global 
  10.  
  11. subjects: 
  12.  
  13. - kind: Group 
  14.  
  15. name: manager 
  16.  
  17. apiGroup: rbac.authorization.k8s.io 
  18.  
  19. roleRef: 
  20.  
  21. kind: ClusterRole 
  22.  
  23. name: secret-reader 
  24.  
  25. apiGroup: rbac.authorization.k8s.io 

關(guān)于 RBAC 更詳細的講解見這里: https://jimmysong.io/kubernete ... .html

Kubernetes 中兩種賬號類型介紹

Kubernetes 中有兩種用戶(User):服務(wù)賬號(ServiceAccount)和普通的用戶(User)。 ServiceAccount 是由 Kubernetes 管理的,而 User 賬號是在外部管理,Kubernetes 不存儲用戶列表,也就是說針對用戶的增、刪、該、查都是在集群外部進行,Kubernetes 本身不提供普通用戶的管理。

兩種賬號的區(qū)別:

  • ServiceAccount 是 Kubernetes 內(nèi)部資源,而普通用戶是存在于 Kubernetes 之外的;
  • ServiceAccount 是屬于某個命名空間的,不是全局的,而普通用戶是全局的,不歸某個 namespace 特有;
  • ServiceAccount 一般用于集群內(nèi)部 Pod 進程使用,和 api-server 交互,而普通用戶一般用于 kubectl 或者 REST 請求使用;

ServiceAccount 的實際應(yīng)用

ServiceAccount 可以用于 Pod 訪問 api-server,其對應(yīng)的 Token 可以用于 kubectl 訪問集群,或者登陸 kubernetes dashboard。

普通用戶的實際應(yīng)用

  • X509 客戶端證書,客戶端證書驗證通過為 API Server 指定 –client-ca-file=xxx 選項啟用,API Server 通過此 ca 文件來驗證 API 請求攜帶的客戶端證書的有效性,一旦驗證成功,API Server 就會將客戶端證書 Subject 里的 CN 屬性作為此次請求的用戶名。關(guān)于客戶端證書方式的用戶后面會有專門的實踐介紹。
  • 靜態(tài)token文件,通過指定 –token-auth-file=SOMEFILE 選項來啟用 bearer token 驗證方式,引用的文件是一個包含了 token,用戶名,用戶 ID 的 csv 文件,請求時,帶上 Authorization: Bearer xxx 頭信息即可通過 bearer token 驗證;
  • 靜態(tài)密碼文件,通過指定 --basic-auth-file=SOMEFILE 選項啟用密碼驗證,引用的文件是一個包含密碼,用戶名,用戶 ID 的 csv 文件,請求時需要將 Authorization 頭設(shè)置為 Basic BASE64ENCODED(USER:PASSWORD);

實踐:基于客戶端證書認證方式新建 Kubeconfig 訪問集群

Kubeconfig 文件詳解

我們知道在安裝完 Kubernetes 集群后會生成 $HOME/.kube/config 文件,這個文件就是 kubectl 命令行工具訪問集群時使用的認證文件,也叫 Kubeconfig 文件。這個 Kubeconfig 文件中有很多重要的信息,文件大概結(jié)構(gòu)是這樣,這里說明下每個字段的含義:

  1. apiVersion: v1 
  2.  
  3. clusters: 
  4.  
  5. - cluster: 
  6.  
  7. certificate-authority-data: ... 
  8.  
  9. server: https://192.168.26.10:6443 
  10.  
  11. name: kubernetes 
  12.  
  13. contexts: 
  14.  
  15. - context: 
  16.  
  17. cluster: kubernetes 
  18.  
  19. user: kubernetes-admin 
  20.  
  21. name: kubernetes-admin@kubernetes 
  22.  
  23. current-context: kubernetes-admin@kubernetes 
  24.  
  25. kind: Config 
  26.  
  27. preferences: {} 
  28.  
  29. users: 
  30.  
  31. name: kubernetes-admin 
  32.  
  33. user
  34.  
  35. client-certificate-data: ... 
  36.  
  37. client-key-data: ... 

可以看出文件分為三大部分:clusters、contexts、users。

clusters 部分

定義集群信息,包括 api-server 地址、certificate-authority-data: 用于服務(wù)端證書認證的自簽名 CA 根證書(master 節(jié)點 /etc/kubernetes/pki/ca.crt 文件內(nèi)容 )。

contexts 部分

集群信息和用戶的綁定,kubectl 通過上下文提供的信息連接集群。

users 部分

多種用戶類型,默認是客戶端證書(x.509 標準的證書)和證書私鑰,也可以是 ServiceAccount Token。這里重點說下前者:

  • client-certificate-data:base64 加密后的客戶端證書;
  • client-key-data:base64 加密后的證書私鑰;

一個請求在通過 api-server 的認證關(guān)卡后,api-server 會從收到客戶端證書中取用戶信息,然后用于后面的授權(quán)關(guān)卡,這里所說的用戶并不是服務(wù)賬號,而是客戶端證書里面的 Subject 信息:O 代表用戶組,CN 代表用戶名。為了證明,可以使用 openssl 手動獲取證書中的這個信息:

首先,將 Kubeconfig 證書的 user 部分 client-certificate-data 字段內(nèi)容進行 base64 解密,保存文件為 client.crt,然后使用 openssl 解析證書信息即可看到 Subject 信息:

  1. openssl x509 -in client.crt -text 

解析集群默認的 Kubeconfig 客戶端證書得到的 Subject 信息是:

  1. Subject: O=system:masters, CN=kubernetes-admin 

可以看出該證書綁定的用戶組是 system:masters,用戶名是 kubernetes-admin,而集群中默認有個 ClusterRoleBinding 叫 cluster-admin,它將名為 cluster-admin 的 ClusterRole 和用戶組 system:masters 進行了綁定,而名為 cluster-admin 的 ClusterRole 有集群范圍的 Superadmin 權(quán)限,這也就理解了為什么默認的 Kubeconfig 能擁有極高的權(quán)限來操作 Kubernetes 集群了。

新建具有只讀權(quán)限的 Kubeconfig 文件

上面我們已經(jīng)解釋了為什么默認的 Kubeconfig 文件具有 Superadmin 權(quán)限,這個權(quán)限比較高,有點類型 Linux 系統(tǒng)的 Root 權(quán)限。有時我們會將集群訪問權(quán)限開放給其他人員,比如供研發(fā)人員查看 Pod 狀態(tài)、日志等信息,這個時候直接用系統(tǒng)默認的 Kubeconfig 就不太合理了,權(quán)限太大,集群的安全性沒有了保障。更合理的做法是給研發(fā)人員一個只讀權(quán)限的賬號,避免對集群進行一些誤操作導(dǎo)致故障。

我們以客戶端證書認證方式創(chuàng)建 Kubeconfig 文件,所以需要向集群自簽名 CA 機構(gòu)(master 節(jié)點)申請證書,然后通過 RBAC 授權(quán)方式給證書用戶授予集群只讀權(quán)限,具體方法如下:

假設(shè)我們設(shè)置證書的用戶名為:developer – 證書申請時 -subj 選項 CN 參數(shù)。

1、創(chuàng)建證書私鑰:

  1. openssl genrsa -out developer.key 2048  

2、用上面私鑰創(chuàng)建一個 csr(證書簽名請求)文件,其中我們需要在 subject 里帶上用戶信息(CN為用戶名,O為用戶組):

  1. openssl req -new -key developer.key -out developer.csr -subj "/CN=developer" 

其中/O參數(shù)可以出現(xiàn)多次,即可以有多個用戶組

3、找到 Kubernetes 集群(API Server)的 CA 根證書文件,其位置取決于安裝集群的方式,通常會在 master 節(jié)點的 /etc/kubernetes/pki/ 路徑下,會有兩個文件,一個是 CA 根證書(ca.crt),一個是 CA 私鑰(ca.key)。

4、通過集群的 CA 根證書和第 2 步創(chuàng)建的 csr 文件,來為用戶頒發(fā)證書:

  1. openssl x509 -req -in developer.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out developer.crt -days 365 

至此,客戶端證書頒發(fā)完成,我們后面會用到文件是 developer.key 和 developer.crt

基于 RBAC 授權(quán)方式授予用戶只讀權(quán)限

在 Kubernetes 集群中已經(jīng)有個默認的名為 view 只讀 ClusterRole 了,我們只需要將該 ClusterRole 綁定到 developer 用戶即可:

  1. kubectl create clusterrolebinding kubernetes-viewer --clusterrole=view --user=developer 

基于客戶端證書生成 Kubeconfig 文件

前面已經(jīng)生成了客戶端證書,并給證書里的用戶賦予了集群只讀權(quán)限,接下來基于客戶端證書生成 Kubeconfig 文件:

拷貝一份 $HOME/.kube.config,假設(shè)名為 developer-config,在其基礎(chǔ)上做修改:

1、contexts 部分 user 字段改為 developer,name 字段改為 developer@kubernetes。(這些改動隨意命名,只要前后統(tǒng)一即可);

2、users 部分 name 字段改為 developer,client-certificate-data 字段改為 developer.crt base64 加密后的內(nèi)容,client-key-data 改為 developer.key base64 加密后的內(nèi)容;

注意:證書 base64 加密時指定 –wrap=0 參數(shù)

  • cat developer.crt | base64 –wrap=0
  • cat developer.key | base64 –wrap=0

接下來測試使用新建的 Kubeconfig 文件:

 

  1. [root@master ~]# kubectl –kubeconfig developer-config –context=developer@kubernetes get pod 
  2.  
  3. NAME READY STATUS RESTARTS AGE 
  4.  
  5. nginx-deployment-5754944d6c-dqsdj 1/1 Running 0 5d9h 
  6.  
  7. nginx-deployment-5754944d6c-q675s 1/1 Running 0 5d9h 
  8.  
  9. [root@master ~]# kubectl –kubeconfig developer-config –context=developer@kubernetes delete pod nginx-deployment-5754944d6c-dqsdj 
  10.  
  11. Error from server (Forbidden): pods “nginx-deployment-5754944d6c-dqsdj” is forbidden: User “developer” cannot delete resource “pods” in API group “” in the namespace “default” 

可以看出新建的 Kubeconfig 文件可以使用,寫權(quán)限是被 forbidden 的,說明前面配的 RBAC 權(quán)限機制是起作用的。

實踐:Kubeconfig 或 token 方式登陸 Kubernetes dashboard

我們打開 kubernetes dashboard 訪問地址首先看到的是登陸認證頁面,有兩種登陸認證方式可供選擇:Kubeconfig 和 Token 方式。

 

Kubernetes 集群安全機制詳解

 

其實兩種方式都需要服務(wù)賬號的 Token,對于 Kubeconfig 方式直接使用集群默認的 Kubeconfig: $HOME/.kube/config 文件不能登陸,因為文件中缺少 Token 字段,所以直接選擇本地的 Kubeconfig 文件登陸會報錯。正確的使用方法是獲取某個服務(wù)賬號的 Token,然后將 Token 加入到 $HOME/.kube/config 文件。下面具體實踐下兩種登陸 dashboard 方式:

準備工作

首先,兩種方式都需要服務(wù)賬號,所以我們先創(chuàng)建一個服務(wù)賬號,然后為了測試,給這個服務(wù)賬號一個查看權(quán)限(RBAC 授權(quán)),到時候登陸 dashboard 后只能查看,不能對集群中的資源做修改。

1、創(chuàng)建一個服務(wù)賬號(在 default 命名空間下):

 

  1. kubectl create serviceaccount kube-dashboard-reader 

2、將系統(tǒng)自帶的 ClusterRole:view 角色綁定到上一步創(chuàng)建的服務(wù)賬號,授予集群范圍的資源只讀權(quán)限:

 

  1. kubectl create clusterrolebinding kube-dashboard-reader --clusterrole=view --serviceaccount=default:kube-dashboard-reader 

3、獲取服務(wù)賬號的 token:

 

  1. kubectl get secret `kubectl get secret -n default | grep kube-dashboard-reader | awk '{print $1}'` -o jsonpath={.data.token} -n default | base64 -d 

Kubeconfig 方式登陸 dashboard

拷貝一份 $HOME/.kube/config,修改內(nèi)容,將準備工作中獲取的 Token 添加入到文件中:在 Kubeconfig 的 Users 下 User 部分添加,類型下面這樣:

 

  1. ... 
  2.  
  3. users: 
  4.  
  5. name: kubernetes-admin 
  6.  
  7. user
  8.  
  9. client-certificate-data: ... 
  10.  
  11. client-key-data: ... 
  12.  
  13. token: <這里為上面獲取的 Token...> 

然后登陸界面選擇 Kubeconfig 單選框,選擇該文件即可成功登陸 dashboard。

Token 方式登陸 dashboard

登陸界面選擇 Token 單選框,將準備工作中獲取的 Token 粘貼進去即可成功登陸。

 

責任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2014-12-24 09:35:29

Docker集群管理kubernetes

2025-02-26 10:49:14

2015-06-17 11:27:47

Hadoop集群管理安全機制

2025-06-12 09:10:23

2022-05-24 06:04:25

多云混合云Kubernetes

2009-07-15 09:15:26

2010-02-26 09:50:57

WCF傳輸安全機制

2023-06-27 17:37:08

Kubernete容器集群

2023-03-30 09:17:42

KubesprayKubernetesLinux

2020-07-08 08:03:37

KubernetesLens集群

2022-01-03 07:49:04

Kubernetes集群容器

2015-01-20 09:35:52

2009-07-08 15:01:00

Servlet Ses

2025-08-22 14:05:00

RSTP網(wǎng)絡(luò)端口

2024-07-16 08:38:06

2021-09-06 18:55:57

MySQLCheckpoint機制

2017-02-14 13:08:45

2022-05-24 09:00:00

云計算Kubernetes安全

2021-02-07 08:00:00

Kubernetes集群云原生

2022-07-24 21:11:19

KubernetesLinux
點贊
收藏

51CTO技術(shù)棧公眾號

精品蜜桃一区二区三区| 亚洲欧美制服另类日韩| 韩日视频在线观看| 日韩在线观看视频网站| 首页综合国产亚洲丝袜| 少妇激情综合网| 中文字幕在线观看91| 伊人久久综合一区二区| 国产精品家庭影院| 精品一区久久久久久| 一区二区久久精品66国产精品| 国内自拍一区| 中文字幕9999| 99re久久精品国产| 国产香蕉久久| 色综合一区二区三区| www.午夜色| 国产三级在线| av中文字幕在线不卡| 国产欧美日韩中文| 国产一级视频在线播放| 国产精品久久久乱弄| 亚洲欧美日韩图片| 久久久久国产免费| 国产精品久久久久久av公交车| 欧美性开放视频| 第九区2中文字幕| 在线观看国产原创自拍视频| av综合在线播放| 成人一区二区在线| 国产男女裸体做爰爽爽| 麻豆久久久久久| 7777免费精品视频| 国产一级aa大片毛片| 99久久精品国产亚洲精品| 亚洲欧美成人一区二区在线电影| xxxx国产视频| 久久久久久久久成人| 欧美日韩亚洲综合在线| 蜜臀av午夜一区二区三区| free性欧美| 亚洲一区二区免费视频| 久久精品在线免费视频| 欧美激情办公室videoshd| 亚洲国产精品99久久久久久久久| 久久伊人一区| 亚洲 精品 综合 精品 自拍| 丁香婷婷综合激情五月色| 51成人做爰www免费看网站| 夜夜躁很很躁日日躁麻豆| 免费成人在线网站| 国产精品免费观看在线| 18国产免费视频| 日韩二区三区四区| 国产精品美女呻吟| 亚洲最新av网站| 国模娜娜一区二区三区| 国产精品偷伦视频免费观看国产 | av在线不卡观看| 国产乱色精品成人免费视频| 精品一区二区三区日韩| 成人午夜激情免费视频| 国产美女明星三级做爰| 国产一区二区剧情av在线| 亚洲bt欧美bt日本bt| 国产成人精品亚洲精品色欲| 国产福利精品一区| 国产精品伊人日日| 三级无遮挡在线观看| 久久精品免视看| 午夜精品一区二区三区在线观看| 午夜小视频在线| 亚洲女女做受ⅹxx高潮| av电影一区二区三区| 国产美女性感在线观看懂色av | 日韩av一级大片| 91网页在线观看| 亚洲女人的天堂| 免费av观看网址| 日韩欧美一区二区三区免费观看| 欧美日韩在线免费视频| 国产精品igao网网址不卡| 国产毛片精品| 这里只有精品视频| 青娱乐免费在线视频| 亚洲免费网址| 成人国产精品一区| 高h放荡受浪受bl| 久久一日本道色综合| 亚洲欧美国产一区二区| 日韩伦理av| 91久久精品一区二区| 午夜啪啪小视频| 欧美sss在线视频| 色老头一区二区三区| 国产亚洲欧美久久久久| 日韩av电影天堂| 懂色一区二区三区av片| 国产高清一区在线观看| 亚洲精品久久久蜜桃| 日韩视频在线免费看| 激情综合婷婷| 夜夜躁日日躁狠狠久久88av| 欧美日韩国产精品综合| 久久久久国产精品一区二区| 91免费欧美精品| 嫩草研究院在线| 亚洲夂夂婷婷色拍ww47| 手机在线成人免费视频| 久久久精品国产**网站| y97精品国产97久久久久久| 国产区一区二区三| 国产成人自拍高清视频在线免费播放| 欧美精品一区二区视频| 日韩三级免费| 欧美日韩一区二区三区在线看| 亚洲欧美高清在线| 久久久久蜜桃| 国产精品久久久久不卡| 天堂av中文在线资源库| 亚洲精品国产一区二区精华液| 久久综合久久色| 国产精品毛片久久久| 久久视频精品在线| 国产精品传媒在线观看| 91色九色蝌蚪| 成人免费观看cn| 亚洲精品高潮| 久久好看免费视频| 中文字幕无码乱码人妻日韩精品| 99国产欧美久久久精品| 免费网站永久免费观看| 高清久久精品| 上原亚衣av一区二区三区| 手机av免费观看| 91视频免费播放| 免费成人在线视频网站| 成人在线视频中文字幕| 欧美激情视频播放| 亚洲第一天堂在线观看| 亚洲精品视频在线观看免费| 污视频网址在线观看| 欧美激情成人| 国产主播在线一区| 免费黄色在线看| 制服丝袜亚洲精品中文字幕| 91香蕉视频污在线观看| 久久99精品久久久久久动态图| 日韩精品一区二区三区四区五区| 丝袜美腿一区| 亚洲天堂免费视频| 国产裸体美女永久免费无遮挡| 久久九九久久九九| 妺妺窝人体色www在线观看| 狠狠做六月爱婷婷综合aⅴ| 国产精品国内视频| a√资源在线| 欧美丰满嫩嫩电影| 欧美日韩在线观看免费| 国产高清亚洲一区| 人人妻人人做人人爽| 天堂av一区二区三区在线播放| 欧美孕妇性xx| 国产精品久久一区二区三区不卡| 欧美视频完全免费看| 久久爱一区二区| 国产成人精品免费| 国产毛片视频网站| 久久不见久久见国语| 91精品国产综合久久香蕉最新版 | 日本免费久久高清视频| 国产高清免费av在线| 欧美日韩国产123区| 亚洲天堂黄色片| va亚洲va日韩不卡在线观看| 内射国产内射夫妻免费频道| 国产欧美日韩| 成人国产精品日本在线| free性欧美| 色哟哟网站入口亚洲精品| 国产成人精品毛片| 一本一本大道香蕉久在线精品 | 久久成人综合| 97免费资源站| 韩国久久久久久| 久久黄色av网站| 性猛交xxxx| 555www色欧美视频| 日韩女同强女同hd| 中文在线资源观看网站视频免费不卡 | 99久热re在线精品996热视频 | 国语自产精品视频在免费| 偷拍25位美女撒尿视频在线观看| 在线视频一区二区免费| 成人免费毛片东京热| 91伊人久久大香线蕉| 欧美第一页浮力影院| 亚洲激情女人| 中国成人在线视频| 五月综合久久| 91免费的视频在线播放| 欧美特黄aaaaaaaa大片| 欧美激情xxxxx| 婷婷五月在线视频| 亚洲成人精品久久| 国产一区二区三区在线观看| 精品久久久久久久久久国产| 五月综合色婷婷| 91麻豆福利精品推荐| 午夜不卡福利视频| 日本欧美韩国一区三区| 国产一区二区网| 欧美一区二区三区久久精品茉莉花 | 国产精品国产a| 老司机福利av| 岛国精品一区二区| 国产永久免费网站| 日本午夜精品视频在线观看| 国产原创中文在线观看| 欧美日韩免费观看一区=区三区| 少妇免费毛片久久久久久久久 | 国产精品中文欧美| 91插插插插插插插插| 亚洲欧美春色| 亚洲熟妇无码另类久久久| 一区二区三区午夜探花| 影音先锋在线亚洲| 日韩国产欧美| 天天人人精品| jizzjizz欧美69巨大| 久久久久久久久久久久久久久久av| 日韩精品免费视频一区二区三区| 国产女同一区二区| 成人国产一区| 国产精品青草久久久久福利99| 制服丝袜专区在线| 91精品国产91久久久久福利| av伦理在线| 欧美第一黄色网| 欧美人与性动交α欧美精品济南到| 久久久91精品国产| 国产三区视频在线观看| 久久九九国产精品怡红院| 麻豆网在线观看| 大量国产精品视频| a级片国产精品自在拍在线播放| 精品国偷自产在线视频| 黄色网在线播放| 欧美成人免费全部观看天天性色| 国产精品va在线观看视色| 日韩中文在线中文网三级| 免费在线看黄| 欧美精品性视频| 国产精品蜜臀| 97欧美精品一区二区三区| 欧美激情护士| 国产精品av电影| 看片一区二区| 538国产精品一区二区免费视频 | 亚洲视频在线一区观看| 亚洲综合图片一区| 日韩理论片在线| 国产精品美乳一区二区免费| av福利在线导航| 8050国产精品久久久久久| 成人直播视频| 国产精品日日摸夜夜添夜夜av| 国产亚洲欧美日韩精品一区二区三区 | 婷婷视频在线播放| 欧美在线观看天堂一区二区三区| 91传媒免费视频| 一本一本久久| 天天干在线影院| 国产一区二区三区四| 香蕉视频污视频| 国产调教视频一区| 免费国产羞羞网站美图| 亚洲成av人片一区二区| 黄色av网站免费| 欧美一区二区三区日韩视频| 开心激情综合网| 中文字幕欧美国内| 日韩电影免费观看| 日韩av电影手机在线| 宅男噜噜噜66国产精品免费| 国产精品区二区三区日本| 国产精品免费不| 老司机激情视频| 久久一二三四| 中文字幕一区二区三区人妻在线视频| 99麻豆久久久国产精品免费 | 欧美日本中文| 日日摸天天爽天天爽视频| 国产一区欧美二区| 蜜桃传媒一区二区亚洲av| 中文字幕视频一区| 国产精品视频免费播放| 91精品免费在线观看| 欧美日韩在线中文字幕| 欧美裸体男粗大视频在线观看| 欧美动物xxx| 国产精品区二区三区日本| 久久在线播放| 亚洲国产精品久久久久爰色欲| 精品一区二区av| 波多野吉衣中文字幕| 亚洲一区二区三区四区五区黄| 超碰在线97观看| 亚洲第一网站免费视频| 老司机av在线免费看| 国产成人精品综合| 国产精品毛片av| 日本精品福利视频| 久久精品国产一区二区三| 一出一进一爽一粗一大视频| 一区二区三区中文在线观看| 亚洲天堂自拍偷拍| 亚洲日本成人女熟在线观看| av在线最新| 国产99在线免费| 永久亚洲成a人片777777| jizz欧美性11| 国产欧美一区二区精品婷婷| 国产精品视频久久久久久久| 欧美r级电影在线观看| 国产三区视频在线观看| 国产精品一区久久| 欧美手机视频| 免费毛片小视频| 99久久99久久综合| 国产无码精品视频| 日韩欧美国产高清| 91cn在线观看| 亚洲字幕一区二区| 亚洲欧美在线专区| 亚洲网中文字幕| 亚洲男人都懂的| 国产乱淫av片免费| 久久精品欧美视频| www.久久热| 韩国黄色一级大片| 国产一区二区精品久久| 污污的视频在线免费观看| 7777精品伊人久久久大香线蕉超级流畅 | 99er在线视频| 成人性生交大合| 久久露脸国语精品国产91| 亚洲国产精品字幕| 鲁鲁在线中文| 日韩国产一区久久| 秋霞电影一区二区| 5566中文字幕| 日韩丝袜美女视频| 黑人精品视频| 国内一区在线| 视频在线在亚洲| 少妇愉情理伦三级| 欧美一级淫片007| 国产精品一区hongkong| 久久艳妇乳肉豪妇荡乳av| 日韩在线a电影| 中文字幕91视频| 欧美大片一区二区| 忘忧草在线影院两性视频| 欧美日韩一区在线播放| 免费成人在线观看| 青娱乐国产盛宴| 亚洲精品一区中文| 开心久久婷婷综合中文字幕| 久久久久亚洲av无码专区喷水| 国产成人超碰人人澡人人澡| 亚洲国产成人精品激情在线| 一区二区在线视频| 国产欧美视频在线| 久久久久免费看黄a片app| 国产欧美日韩久久| 国产黄色美女视频| 奇米影视亚洲狠狠色| 天天射天天综合网| 色婷婷免费视频| 在线观看成人免费视频| 18av在线视频| 欧美精品与人动性物交免费看| 久久精品国产一区二区| 日韩污视频在线观看| 色先锋资源久久综合5566| 国产精品毛片av| 午夜视频在线网站| 婷婷久久综合九色综合伊人色| www日韩tube| 国产精品日韩欧美一区二区三区| 日日夜夜免费精品| 久久婷婷综合国产| 在线视频中文亚洲| 国产精品欧美大片| 亚洲激情在线看| 懂色av中文一区二区三区天美| 欧美性天天影视| 欧美不卡福利| 国产91精品免费|