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

Tomcat Java Servlet引擎安全設定

開發 后端
本文介紹Tomcat Java Servlet引擎安全設定,包括介紹Apache Tomcat和xinetd 解決方案等。

企業 Java 專家 Dennis Sosnoski 從 Java 服務器技術如何適合 Linux 來開始闡述他的觀點,然后給出在 Linux 上安全地設定 Tomcat Java Servlet引擎的一點建議。

Linux 平臺和 Java 平臺有著久遠的但有經常經歷曲折的關系。建置高效能虛擬機器的同時又要跟上日益增長的核心 Java API 集合,這樣做所帶來的復雜性在很大程度上使開發 Java 平臺的開放來源程序代碼「Clean Room」實作的早期行動困難重重。Java 技術的特許實作最終可用于 Linux,但這些實作并不是開放來源程序代碼。因此,大多數 Linux 分發版沒有包括該特許實作。

盡管有這些困難,Java 平臺還是提供了許多好處,從而導致在 Linux 上越來越多地使用該特許實作,尤其是對于服務器應用程序。在本文中,我回顧了 Java 平臺給服務器應用程序帶來的優點,然后研究了在 Linux 上簡單且安全地部署 Java 服務所涉及的問題。作為一個實際范例,我將討論設定 Apache Software Foundation 的廣泛使用的 Tomcat Java Servlet引擎的詳細信息以用于獨立作業。

為什么使用 Java 平臺?

有許多原因可以解釋為什么 Java 平臺成為基于服務器的商業應用程序的廣為接受的選擇。我將主要討論我認為對于該環境至關重要的三個原因︰跨平臺兼容性、受管執行時環境和易于開發。

Java 應用程序提供了跨多種操作系統和硬件平臺的二進制兼容性。對于非 GUI 服務器應用程序尤其是這樣,在此類別應用程序中,通常在實際目標系統中需要執行非常少的測試。工作人員可以在任何他們喜歡的平臺上進行編碼和除錯,同時仍可以將這些應用程序部署到他們也許不能直接控制的環境中。

Java 虛擬機器(Java Virtual Machine,JVM)環境的執行時特性以幾種方式來加強程序安全性。最顯著的方面之一是嚴格的類別型檢查、數組邊界檢查和自動垃圾收集的組合徹底防止了最具破壞性形式的服務器程序代碼攻擊︰緩沖區溢位、重復釋放的錯誤和游離的指針。Java 語言早期用于 applet,經過不斷發展,該語言還有一個完善的系統,用于對那些已確信存在安全性風險的設施進行細微的存取控制。這些方法可供獨立應用程序選擇使用,但它們已建置在許多 Java 服務的架構中。

這些執行時程序安全特性還提供了用 Java 語言開發的便利性。要對便利性這類別問題作任何精確測量是困難的,但大多數具有諸如 C 和 C++ 之類別語言背景而轉向 Java 程序化的工作人員都承認在轉變之后他們的生產力提高了。其中部分是因為在編譯時和執行時嚴格執行類別型確定,以及自動內存管理的簡單性。另一個因素是為 Java 平臺開發的標準 API 擴充的集合。這些 API 對于新的工作人員可能是一個重大挑戰,但是一旦學會了,API 會為各種企業需求提供優秀的跨平臺支持。

當然,對于某些應用程序而言,Java 平臺可能是一個糟糕的選擇。盡管 JVM 體系結構在持續改進,但 Java 應用程序通常會比使用相同算法的 C 或 C++ 應用程序執行得稍微慢一點。根據我的經驗和測試,我估計這個速度差異對于在特許 JVM 上執行的大多數服務器應用程序來說大約是在 20% 到 50% 的范圍內,然而這很大程度上取決于程序代碼的質量。與獨立程序相比,在這些 JVM 上執行的 Java 應用程序還忍受著比較慢的啟動,但是這對于長時間執行的服務器應用程序通常并不是一個重大問題。在大多數情況中,降低的效能和較慢的啟動祇是為獲得 Java 平臺的增強的安全性和更快速的開發優點所付出的微小代價。

開放來源碼替代選擇

除了標準特許 JVM(免費使用,但是來源碼受到限制;可用于 Sun、IBM、BEA 和 Blackdown 組織的 Linux)之外,對于 Linux 還有其它幾個替代選擇。這些選擇包括「Clean Room」開放來源碼 JVM 實作,其中使用最廣泛的可能是 Kaffe(在許多 Linux 分發版中都包括它)。Kaffe 是一個非常有意義的項目,它已經完成了一些令人驚訝的工作,但它只能提供與目前特許 JVM 有限的兼容性。因此,它通常無法使用于本文所關注的企業類別型的服務器應用程序。

用于 Java 程序的本機程序代碼編譯器的開放來源碼工作也有幾個替代選擇。這里最重要的項目是 GNU 編譯器集(GNU Compiler Collection)的 GCJ.使用諸如 CGJ 之類別的本機程序代碼編譯器會將獨立于平臺的 Java 字節碼在其執行之前轉換成特定于平臺的程序代碼(這與在 JVM 中執行成對比,在 JVM 中執行通常在執行時將字節碼轉換成特定于平臺的程序代碼)。

本機程序代碼編譯顯示出它極有可能成為一種避免在 JVM 中執行的 Java 應用程序啟動較慢的方法。但是,使用這種方法的編譯器通常都不能與當代特許 JVM 的穩定狀態效能相匹配。如果 Java 應用程序使用 Java 平臺的動態特性(如使用反射來存取字段或加載在執行時選擇的類別),這種情況尤其突出。根據所使用的實作和編譯選項,本機程序代碼編譯也許還會削弱 Java 平臺的許多執行時安全特性。最后,由于許可證問題,許多 Java API 不能與已編譯的本機程序代碼一起使用。由于這些限制,本機程序代碼編譯目前還不是 Java 平臺服務器應用程序的一個好選擇。

C# 怎么樣?

與 Java 執行時環境有許多共同點的一個替代方法是 Microsoft 的 C# 語言和相關的公共語言執行時(Common Language Runtime,CLR)。C# 是 Java 語言的關系緊密的衍生物,CLR 可能容許 C# 在許多平臺上使用。CLR 還提供了 JVM 的許多執行時安全特性(盡管有嚴重削弱安全保證的逃離出口)。Microsoft .Net 實作還支持預編譯成本機程序代碼的選項以獲得更快速啟動,這與 GCJ 對 Java 字節碼所做的工作相同。當然,Linux 使用者并不能直接使用這項功能,因為 .Net 只適用于 Windows 系統。

Mono Project 正致力于為多種 Linux 產品建置「CLean Room」開放來源碼 C# 和等價于 CLR 的產品。現在,該項目中的 C# 編譯器已開發完成,而且還完成了大部分的 CLR,Microsoft 已發布將它用于標準化。但是,無論從效能還是功能角度來看,在它成為合理的 Java 平臺替代選擇之前還有許多工作要做。CLR 只包括了與 Java 核心類別庫等價的基本內容。在可以將它看作是企業軟件開發的合理選項之前,還需要用許多額外 API 來補充它。

Mono Project 正在致力于開發 CLR 以外的 .Net 其它部分的移植,如果這些移植成功了 ─ 并且如果 Microsoft 不對 .Net 的這些部分強加它的專利權 ─ 那么它們會有助于滿足 C# 成為 Linux 上服務器軟件開發的可靠平臺的需要。但要使那些假設成為現實,還需要做很多工作,同時,Java 程序的本機程序代碼編譯器和開放來源碼 JVM 向那些確實想要避免使用特許 JVM 并可以忍受有限功能性的使用者提供了比較穩定的替代選擇。

Apache Tomcat

最普遍存在的 Java 平臺服務器應用程序之一是 Apache Tomcat.Tomcat 是基于最初由 Sun 捐贈的來源碼的開放來源碼項目。它是一個 HTTP 服務器,是 Sun 透過 Java Community Process 開發的、對廣泛使用的 Servlet 和 JavaServer Page(JSP)技術的正式參考實作。我將在本文中使用 Tomcat 作為樣本 Java 應用程序,將其部署成 Linux 上的一個服務。如果您想要嘗試自己執行 Tomcat,那么您將需要在系統上安裝 Java 開發工具箱(Java Development Kit,JDK),而不是安裝更小的 Java 執行時環境(Java Runtime Environment,JRE)。

Servlet 和 JSP 技術用于建構 HTTP 服務器應用程序。雖然 Servlet 技術中加入了許多特性(包括存取安全性、Session管理和執行緒控制),但它本身祇是粗略地等價于為快速直接的 Java 語言呼叫而定制的 CGI 接口。JSP 技術提供了一種處理動態生成的 HTML 頁面的簡便方法,這些 HTML 頁面被直接編譯成 Servlet 以用于快速執行時作業。

在這兩種技術之外,Tomcat 還提供了其它許多特性。憑它本身的效能,它實際上是全功能 Web 服務器,但它通常在 Linux 系統上與 Apache Web 服務器前端共同使用。Apache 向 Tomcat 提供了許多進階效能以適合靜態內容。對于靜態內容所占比例比較高且使用率很高的 Web 應用程序,Apache 前端非常有用。但對于許多簡單的 Web 應用程序,就沒必要使用它了,當更易于組態和管理時,單獨執行 Tomcat 就可提供足夠的效能(至少對于以前沒有使用過 Apache 的工作人員來說是這樣)。

連接埠難題

單獨執行 Tomcat 的一個大問題是它無法存取標準 HTTP 連接埠 80,除非是作為 root 使用者執行。作為 root 使用者執行服務器應用程序的想法通常并不是上串流公司所討論的問題,因此我將完全放棄這個想法﹗使用除 80 以外的連接埠是一個更好的選擇(例如,Tomcat 缺省連接埠 8080)。這通常適用于測試,但當使用者正在存取服務時,它會導致雜亂的 URL,因為需要在請求中清楚地說明連接埠號。使用非標準連接埠還意味著如果需要外部存取,就需要重新組態所有的防火墻。

xinetd 解決方案

幸好,Linux 支持一些利用 Tomcat(或任何其它使用者方式應用程序)處理連接端口 80 請求的簡便方式。一種常用方式是透過 xinetd.xinetd 是帶有廣泛存取控制和日志記錄支持的因特網服務守護程序,它還擁有方便的重新導向特性。重新導向讓您將系統組態成接受一個連接埠上的進入請求,然后將請求傳遞到另一個連接埠或者甚至另一個 IP 地址進行處理。

如果您想要在系統上設定 Tomcat 以處理連接埠 80 請求,就需要加入 xinetd 組態文件來實作這一目的。假設按一般在正常路徑上安裝了 xinetd,那么您可以透過對 /etc/xinetd.d 目錄加入一個文件(以 root 使用者身份)來執行這一作業。清單 1 提供了用于 Tomcat 的一個樣本組態文件。

清單 1. xinetd 重新導向組態

  1. # Redirects any requests on port 80  
  2. # to port 8080 (where Tomcat is listening)  
  3. service tomcat  
  4. {  
  5. socket_type = stream 
  6. protocol = tcp 
  7. user = root 
  8. wait = no 
  9. port = 80 
  10. redirect = localhost 8080  
  11. disable = no 

在加入了組態文件之后,需要重新啟動 xinetd 來真正活化重新導向。在大多數 Linux 安裝上,透過以 root 使用者身份執行以下指令來重新啟動 xinetd︰

/sbin/service xinetd restart

祇要將組態文件放在 /etc/xinetd.d 目錄中,當重新啟動系統時,重新導向就會自動啟動。如果沒有將 Tomcat 設定成自動啟動,那么在啟動 Tomcat 之前,會拒絕進入請求。

iptables 解決方案

xinetd 是處理請求重新導向的一種好方法,但它執行了一個處理序以在連接端口之間實際轉信數據,這確實增加了一些開銷。最新的 Linux 內核版本透過使用 iptables 來支持一種更好的設定重新導向的方法。iptables 與 xinetd 的區別之處在于它是一個真正的內核組件。因此,它可以避免 xinetd 方法增加的開銷。使用 iptables 的唯一缺點是它可能比 xinetd 更難以組態,而且它只可用于相當新的內核版本。

您需要執行支持 iptables 的 2.4.x 或更新的內核,以便使用我在這里描述的技術。組態和設定 iptables 是一個確信由幾篇文章來單獨描述的主題,所以我不打算在這里嘗試討論該主題。如果對 iptables 的入門需要幫助,請閱讀 Linux 分發版的手冊。要快速檢查 iptables 是否在您的系統上執行,嘗試以 root 使用者身份執行︰

/sbin/service iptables status

如果它正在執行,您將會在控制臺上看到表和鏈的清單。

iptables 使用幾個不同的表和封包鏈來處理規則的。為了將進入 HTTP 請求從連接端口 80 重新導向到系統中的另一個連接埠,您將要使用 nat 表(表示網絡地址轉換,Network Address Translation)和 PREROUTING 鏈。清單 2 提供了要執行的實際指令(以 root 使用者身份),以便于加入一條處理這一請求的規則。這條規則的作用是將進入包的目標連接端口 80 修改成目標連接端口 8080,因此祇有在您沒有阻止從外部使用連接埠 8080 時,這條規則才會正確工作。一旦執行了該指令,您就應該能夠立即處理進入請求。

清單 2. iptables 重新導向規則

  1. /sbin/iptables -t nat \  
  2. -A PREROUTING -j REDIRECT -p tcp \  
  3. ——destination-port 80:80 ——to-ports 8080  
  4. /sbin/service iptables save 

以便于儲存目前 iptables 組態。

自動啟動 Tomcat

當執行諸如 Tomcat 之類別的 Java 服務時的另一個問題是當系統啟動時,如何自動啟動該應用程序,以及當系統關機時如何自動停止它(換句話說,將它當作守護程序執行)。經驗豐富的 Linux 使用者已經知道怎樣做,但如果您還是個 Linux 新手,以下就是一些基礎知識。

如果您就在您的個人系統上執行它并且想要使用與直接執行 Tomcat 一樣的對 Tomcat 的文件和目錄的存取權,那么您可以用您自己的使用者名稱來設定它。但是,通常,一個比較好的想法是︰為將要作為守護程序執行的任何程序設定一個單獨的使用者。要針對 Tomcat 執行這一作業,以 root 使用者身份執行︰

/usr/sbin/useradd tomcat

這將建立一個名為 tomcat 的使用者賬戶并建立一個用于 Tomcat 安裝的主目錄 /home/tomcat.所建立的主目錄的所有者是 tomcat 使用者,而且通常只容許這個使用者存取(當然還有 root 使用者)。如果想要從其它賬戶存取 Tomcat 安裝,可以將許可權變更成包括組存取權,并將 tomcat 組新增到這些其它賬戶。

總之,要將 Tomcat 當作守護程序執行,需要將服務組態文件新增到 /etc/init.d 目錄中,而您可能要將該文件命名為「tomcat」。清單 3 提供了該文件的樣本。這假設了 Tomcat 安裝在 /home/tomcat 下,并且該位置中有兩個 shell 指令碼文件,用于處理啟動和停止服務器(tcstart.sh 和 tcstop.sh)。在執行實際的 Tomcat 啟動或停止指令碼之前,需要使用這些文件來設定 Tomcat 所需的環境變量(包括 JAVA_HOME 和 JDK_HOME)。

清單 3. Tomcat 服務定義

  1. #!/bin/bash  
  2. #  
  3. # tomcat Starts Tomcat Java server.  
  4. #  
  5. #  
  6. # chkconfig: 345 88 12  
  7. # description: Tomcat is the server for Java servlet applications.  
  8. ### BEGIN INIT INFO  
  9. # Provides: $tomcat  
  10. ### END INIT INFO  
  11. # Source function library.  
  12. 。 /etc/init.d/functions  
  13. [ -f /home/tomcat/tcstart.sh ] || exit 0  
  14. [ -f /home/tomcat/tcstop.sh ] || exit 0  
  15. RETVAL=0 
  16. umask 077  
  17. start() {  
  18. echo -n $"Starting Tomcat Java server: "  
  19. daemon su -c /home/tomcat/tcstart.sh tomcat  
  20. echo  
  21. return $RETVAL  
  22. }  
  23. stop() {  
  24. echo -n $"Shutting down Tomcat Java server: "  
  25. daemon su -c /home/tomcat/tcstop.sh tomcat  
  26. echo  
  27. return $RETVAL  
  28. }  
  29. restart() {  
  30. stop  
  31. start  
  32. }  
  33. case "$1" in  
  34. start)  
  35. start  
  36. ;;  
  37. stop)  
  38. stop  
  39. ;;  
  40. restart|reload)  
  41. restart  
  42. ;;  
  43. *)  
  44. echo $"Usage: $0 {start|stop|restart}"  
  45. exit 1  
  46. esac  
  47. exit $? 

以下是一個樣本 tcstart.sh,可以修改它來適合您的安裝。

清單 4. 樣本 tcstart.sh

  1. #!/bin/bash  
  2. export JDK_HOME=/usr/java/jdk  
  3. export JAVA_HOME=/usr/java/jdk  
  4. #run the startup script from Tomcat installation  
  5. /home/tomcat/server/bin/startup.sh 

chroot:最大的安全性監獄

對于真正的偏執狂,還可能進一步討論保護 Java 語言服務。當該服務提供對本地文件系統的某種形式的存取權時,這尤其有用。JVM 執行時安全性特性并不能阻止已經有權存取文件系統的應用程序存取除了使用者專用的文件之外的文件。在 Tomcat 的情況中,文件存取是它作為 HTTP 服務器使用時所固有的。它通常將為每個 Web 應用程序提供服務的文件限制為該應用程序目錄中的那些文件,但 Servlet 應用程序可以避開這些限制。當 Tomcat 與諸如 Apache 之類別的前端 Web 服務器共同執行時,也會發生這種情況。

透過使用 chroot,您可以阻止 Tomcat(和所有在 Tomcat 下執行的 Web 應用程序)存取為該服務器留出的空間以外的任何東西。chroot 并不以任何方式特定于 Java 應用程序,但它是為 JVM 提供的安全性加入最終包裝器的簡便方法。我將在這里為那些不熟悉 chroot 概念的人介紹設定它的要點。

chroot 所做的類別似于用于執行 Java 程序代碼的 JVM 沙箱,但它適用于文件系統本身。chroot 執行一條指令并將您指定的位置設定成有效根目錄。所執行的指令(可以是執行其它指令(包括應用程序)的 shell 指令碼)只能存取所指定的有效根目錄下的文件系統的一部分。文件系統的其余部分對于該指令來說完全不存在。

要對諸如 Tomcat 之類別的應用程序使用 chroot,需要將一些基本系統應用程序和鏈接庫(包括實際的 Java JDK 安裝)復制到新的虛擬根目錄下。這可能會占用許多空間 ─ 也許從一百兆字節到一千兆字節或更多 ─ 這取決于您想盡多少努力來將這些應用程序和鏈接庫減少到最小。設定它的最簡單方法也最浪費空間︰祇要將整個 /bin、/lib、/usr/bin 和 /usr/lib 目錄樹以及 Java 安裝復制到新的根目錄下,使 root 使用者成為對所有文件的擁有者和唯一授權的寫入者。如果想要讓磁盤使用率保持到最小,可以有選擇地只復制 chroot 中需要的指令(包括基本指令,如 ls、rm、echo 和 cat 等,以及實際的 Java 安裝)以及那些指令使用的庫(透過使用 ldd 可以找到那些庫)。

接下來,您將需要建立一些額外目錄作為一般系統的縮減版本。這包括 /dev,以及設備 /dev/null 和 /dev/zero;/etc 以及 /etc/passwd 和 /etc/group 文件的已編輯版本(只保留 root 和 tomcat 項),也許還有主機。如果正在多處理器系統上執行,您還需要在新的根目錄下掛裝 /proc 系統,因為 JVM 使用該系統來協調各個處理器。

最后,為了在設定了 chroot 后仍作為使用者 tomcat 執行,也許需要建置一個可以在虛擬根目錄下執行的 su 指令版本(許多分發版的一般版本不容許這樣做)。要這樣做,可以從 GNU 項目獲取 sh-utils 來源碼并根據該來源碼直接建置 su,然后將它復制到新的根目錄的 /bin 目錄中。

完成了所有這些設定后,可以嘗試以 root 使用者身份執行(假設新的根目錄位于 /home/tomcat):/usr/sbin/chroot /home/tomcat /bin/su tomcat

如果設定正確,這應該讓您在新的根目錄下作為 tomcat 執行,而且您可以嘗試使用您的指令碼來啟動和停止 Tomcat.在證實了所有東西都工作之后,最后一步就是將清單 3 中的 Tomcat 服務定義變更成使用 chroot 來代替 su,將 su 指令移到 tcstart.sh 指令碼和 tcstop.sh 指令碼。還需要確保只能由 root 使用者修改這些指令碼。

希望這篇概述的解釋很清楚,這個過程并不適合膽小的人﹗如果您選擇走使用 chroot 這條路線,但以前沒有使用過 chroot,那么您一定要參考網上的 chroot 參考數據之一,以獲取詳細信息。但是這確實會給您的 Java 服務器程序代碼可能最好的隔離,而且在某些情況下,帶來的內心的寧靜值得這樣做。

結語

Linux 和 Java 技術都正在贏得商業系統的市場份額。盡管開放來源碼 Linux 和特許 Java 技術之間存在著原理上的差異,但這兩者在一起確實配合得很好。Linux 對于 Java 應用程序,尤其是對于服務器類別型的應用程序是一個極好的部署環境,而 Java 技術是作為企業軟件開發的先進方法而建立且得到了認可。

透過正確的預防措施,在 Linux 上執行的 Java 服務器應用程序可以提供非常高的安全性程度 ─ 甚至高于本機應用程序 ─ 因為 Java 技術消除了服務器應用程序中許多弱點的常見來源。Java 技術的跨平臺性質所帶來的是包括企業工作人員和 Linux 立即就緒的應用程序的巨大資源集合。Java 服務器應用程序開始在日益增長的 Linux 的服務器市場份額中扮演重要角色,而且這種趨勢在將來只會幫助這兩種技術。

以上Tomcat Java Servlet引擎安全設定是我要感謝 Miles Sabin 向我指出了 /proc 文件系統,來解決在多處理器系統上 chroot Java 的問題。

【編輯推薦】

  1. Struts和JSP頁面的技術
  2. 詳解JSP向Servlet轉換
  3. Servlet2.5版本的特征淺析
  4. 淺談Servlet/JSP服務器端的重定向
  5. Ajax Servlet實例在網絡編程的應用
責任編輯:佚名 來源: IT168
相關推薦

2009-07-07 10:16:42

Servlet引擎

2024-12-10 00:00:30

ServletTomcat異步

2020-07-21 14:35:44

Servlet容器ApacheTomcat

2011-03-07 10:13:39

Vsftpd

2010-01-05 18:08:11

2019-12-09 15:00:48

TomcatServlet容器

2009-07-09 18:05:02

MyEclipse開發

2011-01-21 13:21:21

sendmail安全

2022-10-11 08:37:43

Servlet配置版本

2009-07-03 18:13:28

Servlet線程安全

2009-07-01 14:09:24

Servlet和BeaJSP

2010-05-26 13:56:59

Tomcat 7Servlet 3.0

2009-07-07 13:29:33

Servlet和JSP

2009-07-03 18:14:27

Servlet線程安全

2009-07-03 16:53:11

Servlet容器

2017-10-27 06:40:37

2009-06-15 16:47:41

Java環境變量

2009-07-08 09:35:53

Java ServleServlet 3.0

2009-07-03 14:02:51

2010-05-11 16:22:40

點贊
收藏

51CTO技術棧公眾號

欧美亚洲国产怡红院影院| 99免费精品在线| 久热精品视频在线免费观看 | 精品在线免费视频| 欧美激情视频网| 91网站免费视频| 96视频在线观看欧美| 午夜影院久久久| 亚洲mv在线看| 亚洲av无码乱码在线观看性色| 国产精品最新自拍| 久久久国产精彩视频美女艺术照福利| 香蕉视频污视频| 欧美男女视频| 色噜噜狠狠色综合中国| 青青草视频国产| 国外av在线| 成人精品免费看| 91精品国产综合久久男男| 成人免费看片98欧美| 亚洲精彩视频| 这里只有精品久久| 右手影院亚洲欧美| 超碰cao国产精品一区二区| 欧美欧美午夜aⅴ在线观看| 波多野结衣50连登视频| 欧美xxxx黑人又粗又长| 一区在线播放视频| 日本中文不卡| 手机av在线免费观看| 国产精品99久久久久久久女警| 国产成人综合精品| 免费黄色网址在线| 亚洲国内自拍| 欧美激情一区二区三区久久久 | 一个色妞综合视频在线观看| 午夜免费电影一区在线观看| 欧美挠脚心网站| 97se亚洲国产综合在线| 不卡视频一区| 国产黄色美女视频| 国产美女久久久久| 亚洲a级在线观看| 国产精品毛片一区二区在线看舒淇| 久久午夜影视| 日av在线播放中文不卡| 国产成人在线免费视频| 99精品视频免费观看| 欧美激情一区二区三区高清视频| 欧美成人三级视频| 亚洲欧美一级二级三级| 久久91亚洲精品中文字幕奶水| 日本裸体美女视频| 9191国语精品高清在线| 久久久极品av| 国产极品国产极品| 欧美精品入口| 久久久久久一区二区三区| 久久久一二三区| 精品动漫3d一区二区三区免费| 欧美黑人国产人伦爽爽爽| 精品少妇爆乳无码av无码专区| 欧美日韩一区自拍| 韩国欧美亚洲国产| 国产又大又黄视频| 久热精品视频| 国产欧美一区二区三区四区| 国产又黄又大又爽| 国产成人久久精品77777最新版本| 99精品国产高清一区二区| 丰满人妻妇伦又伦精品国产| 99精品久久免费看蜜臀剧情介绍| 久久av一区二区三区漫画| 黄色片视频在线观看| 中文在线资源观看网站视频免费不卡| 自拍偷拍99| 色呦呦在线看| 欧美日韩亚洲精品内裤| 男人插女人下面免费视频| 96sao精品免费视频观看| 精品奇米国产一区二区三区| 亚洲最大免费视频| 精品日本12videosex| 久久九九有精品国产23| 国产精品成人国产乱| 日韩精品乱码免费| 成人免费自拍视频| 天堂中文网在线| 国产日韩欧美一区二区三区乱码| 一卡二卡3卡四卡高清精品视频| 1stkiss在线漫画| 狠狠操狠狠色综合网| www.激情小说.com| 成人高潮视频| 最新国产精品亚洲| 久久视频免费在线观看| 热久久国产精品| 国产精品裸体一区二区三区| 国产黄在线观看| 尤物在线观看一区| 日本黄网站免费| 国产日韩一区二区三免费高清| 亚洲国产精品大全| 黄色录像免费观看| 亚洲欧美高清| av免费观看久久| 韩日视频在线| 亚洲777理论| 日韩av.com| 亚洲精品国产setv| 欧美激情欧美狂野欧美精品| 精品国产www| 91在线一区二区三区| 91制片厂免费观看| 视频在线日韩| 亚洲精品动漫100p| 极品盗摄国产盗摄合集| 日本欧美一区二区在线观看| 国产精品视频免费一区| 超碰电影在线播放| 欧美色综合天天久久综合精品| 国产又黄又粗又猛又爽的视频 | 91亚洲午夜精品久久久久久| 福利网在线观看| 成人午夜精品| 日韩精品一区二区视频| 麻豆影视在线播放| 国产一区二区在线影院| 天堂av一区二区| 亚洲国产欧美日本视频| 亚洲а∨天堂久久精品9966| 欧美黑人猛猛猛| 久久99深爱久久99精品| 日韩电影天堂视频一区二区| 免费看男女www网站入口在线| 日韩视频免费观看高清完整版在线观看 | 中文幕av一区二区三区佐山爱| 亚洲老司机av| 五月婷婷中文字幕| av亚洲精华国产精华| 国产美女主播在线| 91麻豆精品激情在线观看最新| 久久久成人精品视频| 国产精品毛片一区二区在线看舒淇| 中文字幕精品—区二区四季| 黄色国产小视频| 国产99久久| 国产成人免费91av在线| 国产原创av在线| 在线精品视频一区二区三四| 手机看片福利视频| 日本亚洲欧美天堂免费| 亚洲国产成人不卡| 色综合久久久| 久久精品视频导航| 国产成人毛毛毛片| 夜夜爽夜夜爽精品视频| 97精品人人妻人人| 国产欧美在线| 日韩欧美在线一区二区| 久久国内精品| 久久夜色精品亚洲噜噜国产mv | 456成人影院在线观看| 中文字幕成人精品久久不卡| 中文字幕免费播放| 亚洲色图一区二区| 无码人妻一区二区三区一| 亚洲国产高清一区| 欧美亚洲丝袜| 国产精品99久久久久久董美香| 久久精品视频网站| 手机在线观看毛片| 在线欧美小视频| 韩国一级黄色录像| 成人在线综合网| 人妻精品无码一区二区三区| 欧美日韩色图| 99在线高清视频在线播放| 黑森林国产精品av| 中文一区二区视频| 国产综合在线播放| 在线观看一区二区视频| 澳门黄色一级片| wwwwww.欧美系列| 欧美成人手机在线视频| 亚洲视频播放| 在线天堂一区av电影| baoyu135国产精品免费| 国产高清视频一区三区| 在线观看三级视频| 国产亚洲精品va在线观看| 国产精品久久久久久无人区| 精品免费在线观看| 久久久99999| 99riav一区二区三区| 一区二区在线免费看| 亚洲国产综合在线看不卡| 亚洲一区三区视频在线观看| silk一区二区三区精品视频| 国产精品激情自拍| 超清av在线| 神马久久久久久| 亚洲av电影一区| 91精品福利在线一区二区三区| 国产精品视频一区在线观看| 亚洲精品成人a在线观看| 日本精品在线观看视频| 丁香婷婷深情五月亚洲| 午夜激情av在线| 亚洲综合激情| 国产精品久久久久久久久电影网| 青青草原综合久久大伊人精品 | 青青草免费在线视频| 欧美一区二区三区在线看 | 欧美一级高清片| 国产亚洲欧美日韩高清| 亚洲国产视频一区二区| 亚洲欧美卡通动漫| 国产欧美综合在线| 亚洲永久无码7777kkk| 国产精品一二三区在线| 亚洲人视频在线| 秋霞午夜av一区二区三区| 欧美在线观看成人| 亚洲国产一区二区三区a毛片| 一级黄色片播放| 欧美激情另类| 欧美日韩一区在线观看视频| 欧美激情久久久久久久久久久| 亚洲综合成人婷婷小说| 亚洲欧美专区| 国产中文日韩欧美| 成人在线观看免费播放| 日韩免费av在线| 原纱央莉成人av片| 777午夜精品福利在线观看| 国产精品蜜臀| 高清欧美性猛交xxxx黑人猛交| 亚洲综合影视| 欧美高跟鞋交xxxxxhd| 欧美人体视频xxxxx| 久久99久国产精品黄毛片入口| 国产在线看片| 欧美成aaa人片免费看| 操你啦视频在线| 色综合久久中文字幕综合网小说| www在线视频| 欧美丰满少妇xxxx| √天堂8资源中文在线| 久久久久五月天| 国产拍在线视频| 69影院欧美专区视频| 青青青免费在线视频| 欧美一级电影在线| 日韩一区二区三区在线免费观看| 青草热久免费精品视频| 香蕉成人影院| 91精品在线观| 精品国产鲁一鲁****| 岛国视频一区| 国产香蕉精品| 欧美性大战久久久久| 91麻豆精品国产91久久久平台| 中文字幕日韩一区二区三区| 欧美在线亚洲| 男人日女人逼逼| 久久性色av| 一区二区久久精品| 国产sm精品调教视频网站| 欧美精品欧美极品欧美激情| 国产网站一区二区三区| 国产人与禽zoz0性伦| 一区二区三区免费在线观看| 国产又黄又粗又爽| 欧美视频在线一区| 国内精品国产成人国产三级| 亚洲精品成人久久久| 波多野结衣一区二区| 久久在线免费观看视频| 岛国在线视频网站| 国产精品高精视频免费| 久久亚洲精精品中文字幕| 韩国成人动漫在线观看| 欧美色爱综合| 99er在线视频| 久久久久久久尹人综合网亚洲| 性欧美在线视频| 成人av资源在线观看| www成人啪啪18软件| 亚洲成人精品影院| 一级做a爱片久久毛片| 亚洲国产精品推荐| 国产欧美久久久久久久久| 欧美综合第一页| 激情综合五月| 欧美激情一区二区三区在线视频| 在线国产一区二区| 久久国产乱子伦免费精品| 国模无码大尺度一区二区三区| 国产性生活毛片| 18成人在线视频| 久久青青草原亚洲av无码麻豆| 91精品视频网| 男女污视频在线观看| 欧美激情一区二区三区成人| 欧美高清影院| 欧美日本韩国国产| 亚洲人体大胆视频| 亚洲一二区在线观看| 国产日韩欧美精品电影三级在线| 日本特黄一级片| 666欧美在线视频| 九色在线播放| 欧美亚洲免费电影| 第一区第二区在线| 一级黄色片播放| 久久成人精品无人区| 37p粉嫩大胆色噜噜噜| 亚洲一区自拍偷拍| 国产精品久久777777换脸| 亚洲一区www| 中文av在线全新| 国产综合动作在线观看| 欧美在线资源| 51自拍视频在线观看| 国产精品乱码人人做人人爱| 奴色虐av一区二区三区| 日韩精品免费看| av在线最新| 国产精品一区二区免费看| 欧美黄污视频| 91av免费观看| 亚洲激情自拍视频| 国产精品视频一二区| 日韩在线免费av| 国产91欧美| 亚洲欧美丝袜| 九色porny丨国产精品| 91导航在线观看| 欧美少妇性性性| yjizz视频网站在线播放| 国产精品成人久久久久| 久久99蜜桃| 一区二区三区免费播放| 日本一区二区三级电影在线观看| 波多野结衣高清视频| 上原亚衣av一区二区三区| 亚洲精品一区| 日本成人三级电影网站| 爽好多水快深点欧美视频| 亚洲一区二区自偷自拍 | 亚洲调教一区| 成人羞羞国产免费网站| 国产婷婷色一区二区三区 | 久久一区中文字幕| 精品人妻无码一区二区三区换脸| 欧美成人黑人| 成人疯狂猛交xxx| 91欧美大片| 下面一进一出好爽视频| 一区二区三区在线播| 免费观看黄色av| 97超级碰碰人国产在线观看| 亚洲国产合集| 网站一区二区三区| 亚洲欧美另类在线| 隣の若妻さん波多野结衣| 国内外成人免费激情在线视频网站 | 欧美日韩日本国产| 国产精品秘入口| 91久久国产婷婷一区二区| 激情综合中文娱乐网| 亚洲精品乱码久久久久久久| 在线国产电影不卡| √天堂8在线网| 国产一区二区无遮挡| 日产欧产美韩系列久久99| 日韩在线中文字幕视频| 亚洲国产高清福利视频| 日韩电影av| dy888午夜| 91在线观看地址| 中文字幕欧美在线观看| 欧美大肥婆大肥bbbbb| 欧美日韩一区二区三区不卡视频| 日韩一级理论片| 一区二区三区蜜桃网| 黄视频在线观看免费| 亚洲在线免费视频| 午夜在线精品| 亚洲色婷婷一区二区三区| 国产丝袜一区二区三区| 只有精品亚洲| 大肉大捧一进一出好爽动态图| 亚洲视频在线一区二区| 日韩av成人| 91精品国产91久久久久青草| 国产毛片一区| 黑鬼狂亚洲人videos| 亚洲人成电影网站色|