คุณทำตามขั้นตอนอะไรเพื่อรักษาความปลอดภัยเซิร์ฟเวอร์ Debian [ปิด]


66

ฉันกำลังติดตั้งเซิร์ฟเวอร์ Debian ซึ่งเชื่อมต่อกับอินเทอร์เน็ตโดยตรง เห็นได้ชัดว่าฉันต้องการทำให้มันปลอดภัยที่สุด ฉันต้องการให้คุณ / gals เพิ่มความคิดของคุณเพื่อรักษาความปลอดภัยและโปรแกรมที่คุณใช้สำหรับมัน

ฉันต้องการเป็นส่วนหนึ่งของคำถามนี้เพื่อครอบคลุมสิ่งที่คุณใช้เป็นไฟร์วอลล์? เพียงiptablesกำหนดค่าด้วยตนเองหรือคุณใช้ซอฟต์แวร์บางชนิดเพื่อช่วยคุณ? วิธีที่ดีที่สุดคืออะไร บล็อกทุกอย่างและอนุญาตเฉพาะสิ่งที่จำเป็นเท่านั้น อาจมีแบบฝึกหัดที่ดีสำหรับผู้เริ่มต้นในหัวข้อนี้หรือไม่?

คุณเปลี่ยนพอร์ต SSH ของคุณหรือไม่ คุณใช้ซอฟต์แวร์อย่างFail2Banเพื่อป้องกันการโจมตีแบบ bruteforce หรือไม่?


1
มีจำนวนมากของการทับซ้อนอยู่กับserverfault.com/questions/42/securing-a-fresh-ubuntu-serverและ
Zoredache

1
อูบุนตูมี ufw Debian ไม่ได้;) ผมก็ woundering ไม่ว่าจะเป็นคนที่ได้รับการกำหนดค่า iptables ตัวพวกเขาหรือการใช้ซอฟแวร์บางอย่างเช่น fireHOL
Thomaschaaf

ฉันมักจะเขียน iptables ด้วยตัวเองเสมอ ฉันมีจานหม้อไอน้ำที่ทำสิ่งต่าง ๆ เช่นวางชิ้นส่วนทั้งหมดแพ็คเก็ตคริสต์มาสและอื่น ๆ นอกเหนือจากนั้นเป็นระบบที่เฉพาะเจาะจงและมักจะค่อนข้างเล็ก ฉันไม่สามารถเครียดพอที่จะทิ้งเศษเมื่อใช้ iptables, btw ด้วยเหตุผลบางอย่างที่ฉันยังไม่ได้วิจัย iptables ตรวจสอบเฉพาะส่วนแรกและสุ่มสี่สุ่มห้าผ่านส่วนที่เหลือโดยไม่ตรวจสอบ ในใจของฉันที่ทำให้ชิ้นส่วนรับผิด
Scott Pack

3
เอ่อ ... Debian มี ufw packages.debian.org/ufw
womble

คำตอบ:


50

บังคับ:

  • การติดตั้งระบบด้วยโหมดผู้เชี่ยวชาญเฉพาะแพ็คเกจที่ฉันต้องการ
  • ไฟร์วอลล์ที่เขียนด้วยมือพร้อมกับนโยบายเริ่มต้นใน iptables'input: ปล่อย, อนุญาตการเข้าถึง SSH, HTTP หรือเซิร์ฟเวอร์อื่นที่ให้ทำงาน
  • Fail2Banสำหรับ SSH [และบางครั้ง FTP / HTTP / อื่น ๆ - ขึ้นอยู่กับบริบท]
  • ปิดใช้งานการเข้าสู่ระบบรากบังคับใช้ผู้ใช้ปกติและ sudo
  • เคอร์เนลที่กำหนดเอง [นิสัยเก่าเพียง]
  • อัพเกรดระบบตามกำหนด

ขึ้นอยู่กับระดับของความหวาดระแวงนอกจากนี้:

  • ปล่อยนโยบายออกผลลัพธ์ยกเว้นสองปลายทาง / พอร์ตที่อนุญาต
  • integritสำหรับการตรวจสอบว่าบางส่วนของเครื่องระบบไฟล์ไม่ได้ถูกแก้ไข [โดยเก็บค่า checksum ไว้ภายนอกเครื่อง] เช่นTripwire
  • กำหนดการสแกนอย่างน้อยด้วย nmap ของระบบจากภายนอก
  • การตรวจสอบบันทึกอัตโนมัติสำหรับรูปแบบที่ไม่รู้จัก [แต่ส่วนใหญ่เป็นการตรวจสอบความผิดปกติของฮาร์ดแวร์หรือการขัดข้องเล็กน้อย]
  • กำหนดการวิ่งของchkrootkit
  • แอตทริบิวต์ที่ไม่เปลี่ยนรูปแบบ/etc/passwdเพื่อเพิ่มผู้ใช้ใหม่เป็นเรื่องยากขึ้นเล็กน้อย
  • / tmp ถูกเมาท์ด้วย noexec
  • ตัวเคาะพอร์ตหรือวิธีที่ไม่เป็นมาตรฐานอื่น ๆ ในการเปิดพอร์ต SSH [เช่นการเยี่ยมชมหน้าเว็บ 'ลับ' บนเว็บเซิร์ฟเวอร์ช่วยให้การเชื่อมต่อ SSH ขาเข้าเป็นระยะเวลาที่ จำกัด จากที่อยู่ IP ที่ดูหน้านั้น หากคุณเชื่อมต่อ-m state --satete ESTABLISHEDดูแลการอนุญาตให้ส่งแพ็กเก็ตตราบเท่าที่คุณใช้เซสชัน SSH เดียว]

สิ่งที่ฉันไม่ทำเอง แต่สมเหตุสมผล:

  • grsecurityสำหรับเคอร์เนล
  • syslog ระยะไกลเพื่อให้บันทึกไม่สามารถเขียนทับเมื่อระบบได้รับอันตราย
  • แจ้งเตือนเกี่ยวกับการเข้าสู่ระบบ SSH ใด ๆ
  • กำหนดค่าrkhunterและตั้งค่าให้ทำงานเป็นครั้งคราว

4
หลังจากทำสิ่งเหล่านี้ให้เรียกใช้ BASTILLE กับระบบเพื่อค้นหาสิ่งอื่น ฉันขอแนะนำให้ทำแบบเต็มเจาะตรวจสอบ Nessus สแกนระบบที่ไม่ปลอดภัยเช่นกัน จากนั้นแก้ไขทุกสิ่งที่แจ้งเตือน
Scott Pack

13
การคอมไพล์เคอร์เนลแบบกำหนดเองไม่ได้ให้ข้อดีด้านความปลอดภัยหากคุณไม่รู้ว่ากำลังทำอะไรอยู่ นอกจากนี้คุณจะละเลยที่จะอัปเดตอยู่เสมอเว้นแต่คุณจะใส่ไว้ในระบบการจัดการแพคเกจซึ่งจะส่งผลให้ความปลอดภัยแย่ลง
Adam Gibbins

3
-1 เพื่อความปลอดภัยผ่านความสับสน คำตอบที่ดีเป็นอย่างอื่น
dwc

@ อดัม - ใช่ฉันรู้ว่ายังคงฉันต้องการที่จะมีเคอร์เนลเสาหินที่ประกอบด้วยเฉพาะส่วนที่ฉันต้องการ นั่นอาจจะล้าหลัง แต่ฉันก็ทำเช่นนั้น @dwc - เป็นเพียงอีกหนึ่งขั้นตอนซึ่งเป็นเพียงไอซิ่งหรือที่เราบอกว่าเชอร์รี่อยู่ด้านบนของกองเหม็นเหม็น
pQd

1
และคุณหมายถึง sudo not su -
LapTop006

18

เพียงทราบเกี่ยวกับการไฟร์วอลล์เครื่องของคุณ ...

  • ใช้บัญชีปลอดภัยไม่ใช่บัญชีดำ - คือบล็อกทุกอย่างและอนุญาตเฉพาะสิ่งที่คุณต้องการปฏิเสธทุกอย่างอื่น
  • อย่าใช้ GUIs / ncurses หรือซอฟต์แวร์อื่นใดที่พยายามทำให้การเขียนไฟร์วอลล์ของคุณเหมาะสำหรับคุณ หากคุณเป็นเช่นนั้นคุณจะอนุญาตให้ซอฟต์แวร์สร้างสมมติฐานให้กับคุณ - คุณไม่จำเป็นต้องรับความเสี่ยงนั้นและไม่ควรทำ กำหนดค่าด้วยตัวคุณเองหากคุณไม่แน่ใจปิดการใช้งาน - คุณจะพบว่ามันเร็วพอหากจำเป็น หากเป็นระบบที่ใช้งานแล้วและคุณไม่สามารถขัดขวางการรับส่งข้อมูล (โดยการบล็อกโดยไม่ได้ตั้งใจ) ให้รัน tcpdump (ดัมพ์ไปยังไฟล์) และลองสุ่มตัวอย่าง - ศึกษาพวกมันในภายหลังแล้วหาว่าอะไรถูกอะไร
  • โดยส่วนตัวฉันไม่เห็นจุดใด ๆ ในการเรียกใช้บริการบนพอร์ตที่ไม่ได้มาตรฐานเครื่องมือเหล่านี้ไม่ได้โง่เง่ามากนักในวันนี้ที่จะคิดว่าเพราะมีบางสิ่งที่ทำงานบนพอร์ต 22 เช่นนั้นจะต้องเป็น ssh ไม่ใช่อย่างอื่น - สำหรับ ตัวอย่างamapและnmap's -Aตัวเลือก ต้องบอกว่าคุณสามารถ (และอาจเป็นกังวลหาก) ปรับเปลี่ยนบริการของคุณเพื่อซ่อนตัวเองจากการสอดรู้สอดเห็นตัวอย่างต่อไปนี้จะแจ้งให้ผู้โจมตีทราบรุ่นที่แน่นอนของOpenSSHสิ่งที่คุณกำลังทำงานอยู่พวกเขาสามารถหาช่องโหว่สำหรับ รุ่นที่แน่นอน หากคุณซ่อนสิ่งต่าง ๆ คุณจะทำให้มันยากขึ้นสำหรับพวกเขา
    [root @ ud-olis-1 uhtbin] # telnet localhost 22
    ลอง 127.0.0.1 ...
    เชื่อมต่อกับ localhost.localdomain (127.0.0.1)
    ตัวละคร Escape คือ '^]'
    SSH-2.0-OpenSSH_3.9p1
  • ทำให้บริการสาธารณะทั้งหมดของคุณทันสมัยและได้รับการติดตั้งด้วย patch รักษาความปลอดภัยล่าสุด
  • อย่าเก็บข้อมูลใด ๆ บนเซิร์ฟเวอร์เกตเวย์อย่างน้อยที่สุดคุณจะซื้อเวลาที่พวกเขาจัดการเพื่อบุกเข้าไปในเครื่องนี้และคุณจะสูญเสียบริการหนึ่งหรือสองครั้งและบางเวลา แต่ไม่ใช่ข้อมูล

บรรทัดล่างคือคุณจะไม่ประสบความสำเร็จในการทำสิ่งใดปลอดภัย 100% - มันเป็นไปไม่ได้ - ดังนั้นเป้าหมายคือการทำให้มีความปลอดภัยมากที่สุด - ถ้ามันเป็นความพยายามมากเกินไปที่จะทำลายระบบของคุณมันก็ดีพอ สคริปต์ -kiddies จะย้ายไปยังระบบถัดไป

  • iptables เป็นวิธีที่จะไปสำหรับระบบ Linux ใด ๆ - แต่กำหนดค่าด้วยตัวคุณเอง

ไม่เคยใช้ "ซอฟต์แวร์ความปลอดภัย" ใด ๆ ที่ไม่ได้ใช้มาตรฐานแบบเปิดเพราะซอฟต์แวร์เหล่านี้ถูกเขียนไม่ดีและจะถูกแฮ็ก (ไม่ใช่เรื่องของ "ถ้า" แต่ "เมื่อ") โอเพ่นซอร์สและโปรโตคอลเปิดนั้นเปิดให้สาธารณชนตรวจสอบและรวมตัวกันเพื่อให้กลายเป็นผลิตภัณฑ์ที่ครบวงจรและน่าเชื่อถือ ซอฟต์แวร์โอเพนซอร์ซส่วนใหญ่อาศัยความเชื่อมั่นในตัวเองของผู้เขียนว่าผลิตภัณฑ์ที่มีความปลอดภัย / ยอดเยี่ยมที่พวกเขาคิดว่าเป็นอย่างไร - คือดวงตาจำนวนเล็กน้อยเทียบกับดวงตาที่เต็มไปด้วยโลก

หวังว่าจะช่วย :)


"... ดวงตาจำนวนเล็กน้อยเทียบกับดวงตาที่เต็มไปด้วยแผ่นดิน" - ฉันต้องการให้ "บริษัท " ตระหนักถึงสิ่งนี้มากพอ แต่การรักษาความปลอดภัยผ่านความคลุมเครือดูเหมือนจะเป็นแนวโน้มที่ตามมามากที่สุด ใช่ใช้งานบริการเช่น ssh บนพอร์ตที่ไม่ได้มาตรฐานจะไม่ทำให้ผู้โจมตีที่มุ่งหวังออกไป อย่างไรก็ตามจะทำให้สคริปต์ของ kiddies หายไป - มีคนใช้งานพจนานุกรมโจมตีบนที่อยู่ IP หลากหลายพอร์ตที่พอร์ต 22
L0neRanger

12
  • ปิดใช้งานการเข้าสู่ระบบราก
  • ปิดใช้งานการเข้าสู่ระบบด้วยรหัสผ่าน (อนุญาตการเข้าสู่ระบบด้วยรหัสสาธารณะเท่านั้น
  • เปลี่ยนพอร์ต SSH
  • ใช้ denyhosts (หรือคล้ายกัน)

  • เขียนสคริปต์ iptbles ของคุณเอง (เพื่อให้คุณสามารถควบคุมสิ่งที่อนุญาตและสามารถวางทุกอย่างอื่นได้)

  • บังคับใช้การสื่อสารที่ปลอดภัยของ SSL / TLS และตรวจสอบให้แน่ใจว่ามีใบรับรองที่ถูกต้องไม่หมดอายุและลงชื่อ

  • เปิดการตรวจสอบใบรับรองที่เข้มงวดสำหรับบริการภายนอกทั้งหมด (ตัวอย่างเช่นเมื่อตรวจสอบผู้ใช้ด้วยเซิร์ฟเวอร์ LDAP ในเครื่องอื่น)

คุณได้รับ upvote สำหรับการปิดใช้งานการตรวจสอบรหัสผ่าน
derobert


6

ในฐานะที่เป็นจุดเริ่มต้นทั่วไปฉันทำตามเกณฑ์มาตรฐาน / คำแนะนำจากศูนย์ความปลอดภัยทางอินเทอร์เน็ตซึ่งเป็นการรวบรวมวิธีปฏิบัติที่ดีที่สุดด้านความปลอดภัย ดูเหมือนว่ามาตรฐานเดเบียนของพวกเขาจะได้รับการปรับปรุงในบางครั้ง แต่ภาพรวมทั่วไปของขั้นตอนคือ:

  • ใช้แพตช์ / แพ็คเกจระบบปฏิบัติการล่าสุด
  • เปิดใช้งานการบัญชีระบบ / เคอร์เนล / กระบวนการ
  • เปิดใช้งาน MAC (เช่น SELinux หรือ AppArmor)
  • เปิดใช้งานไฟร์วอลล์ตามโฮสต์ (iptables)
  • ตรวจสอบ APT sources.list (คีย์ถูกต้องแหล่งที่เชื่อถือได้)
  • ลดบริการเครือข่ายปิดการใช้งานทุกอย่างที่ไม่จำเป็นและไฟร์วอลล์คืออะไร
  • ใช้ TCPWrappers เพื่อ จำกัด การเข้าถึงระบบเพิ่มเติม
  • ใช้โปรโตคอลเครือข่ายที่เข้ารหัสเท่านั้นปิดใช้งานบริการที่ไม่ได้เข้ารหัส (telnet, ftp และอื่น ๆ )
  • กำหนดค่าการเข้าถึงระยะไกลไปที่ SSH เท่านั้น
  • ปิดการใช้งานรหัสผ่านการเข้าสู่ระบบของผู้ใช้และต้องการการรับรองความถูกต้องด้วยคีย์
  • ปิดใช้งานการแชร์ระบบไฟล์ (NFS, SMB)
  • เปิดใช้งานการบันทึกระบบจากระยะไกล / ส่วนกลาง (และตรวจสอบบันทึกเป็นประจำ!)
  • ตั้งค่ารหัสผ่านระดับ BIOS / เฟิร์มแวร์
  • ตั้งรหัสผ่าน bootloader
  • กำหนดค่าการสำรองข้อมูลระบบมีแผนกู้คืนความเสียหายและทดสอบว่าการสำรองข้อมูลนั้นถูกต้องและบุคลากรทราบขั้นตอนการกู้คืนความเสียหาย!

มีทรัพยากรมากมายในการตั้งค่าต่างๆเหล่านี้รวมถึงคำสั่งเฉพาะและไฟล์การกำหนดค่าที่จะนำไปใช้กับระบบในการวัดประสิทธิภาพ CISecurity


5

ฉันขอแนะนำไม่ให้ติดตั้งเครื่องกับอินเทอร์เน็ตโดยตรง วางไฟร์วอลล์บางชนิดระหว่างเครื่องกับอินเทอร์เน็ต สิ่งนี้ช่วยให้คุณสามารถตรวจสอบความปลอดภัยและเครือข่ายได้โดยไม่ต้องเพิ่มภาระบนเซิร์ฟเวอร์ โดยส่วนตัวแล้วฉันพบว่าการแบ่งส่วนเครือข่ายและฟังก์ชั่นทำให้การแก้ไขปัญหาเครือข่ายง่ายขึ้นแม้ว่าในบางครั้งความซับซ้อนเพิ่มเติมจะทำให้การวิเคราะห์ยากขึ้น

นโยบายไฟร์วอลล์ที่ปลอดภัยที่สุด แต่น่ารำคาญที่สุดในการจัดการคือการปฏิเสธทั้งหมดและอนุญาตเฉพาะทราฟฟิกที่คุณต้องอนุญาตเท่านั้น สิ่งนี้น่ารำคาญเนื่องจากต้องมีการอัพเดทนโยบายไฟร์วอลล์บ่อยครั้งเนื่องจากเครือข่ายต้องการการเปลี่ยนแปลง

ฉันขอแนะนำให้ใช้ไฟร์วอลล์อินเทอร์เฟซบางชนิดบนเซิร์ฟเวอร์ - การป้องกันเชิงลึกคือกุญแจสำคัญ การใช้พอร์ตที่ไม่ได้มาตรฐานสำหรับบริการที่เกี่ยวข้องกับการดูแลระบบจะไม่เป็นอันตราย fail2ban ใช้ได้ ติดตามคำถามเฉพาะเพิ่มเติมเกี่ยวกับแอปพลิเคชันความปลอดภัยบน Serverfault เพื่อค้นหาแนวคิดเพิ่มเติม

ความปลอดภัยเปรียบเสมือนเรื่องตลกเกี่ยวกับนักปีนเขาสองคนกับหมี - ในขณะที่คน ๆ หนึ่งไม่สามารถบรรลุความปลอดภัยที่สมบูรณ์แบบได้มันจะเป็นเป้าหมายที่ยากกว่าคนอื่น ๆ


+1 สำหรับคำตอบที่ดี ฉันต้องชี้ให้เห็นว่าการปฏิเสธเริ่มต้นนั้นไม่น่ารำคาญหากคุณเข้าใกล้ แน่นอนคุณต้องรู้ว่าคุณอนุญาตอะไรใช่มั้ย อันที่จริงควรเขียนด้วยภาษาธรรมดาเป็นคำแถลงนโยบาย หากคุณไม่ได้ทำตามปกติคุณก็ไม่ได้ทำงานเป็นผู้ดูแล หากคุณเป็นเรื่องง่ายที่จะอัปเดตกฎไฟร์วอลล์
dwc

จุดที่ดีมาก ทุกองค์กรควรมีนโยบายความปลอดภัยภาษาธรรมดา เมื่อความต้องการขององค์กรเปลี่ยนแปลงไปควรมีการปรับปรุงคำชี้แจงนโยบาย หากผู้ดูแลระบบวางแผนการใช้กฎไฟร์วอลล์และ CYA เท่านั้นผู้ดูแลระบบอัจฉริยะจะรักษานโยบายดังกล่าวแม้ว่าการจัดการองค์กรจะไม่สามารถใส่ใจกับความปลอดภัยได้
pcapademic

4

บางคนได้ชี้ไปที่คู่มือการใช้งานการรักษาความปลอดภัย Debian สิ่งนี้ควรเพียงพอสำหรับทุกสิ่งยกเว้นความต้องการทางทหาร

หลายคนคิดว่าการหวาดระแวงหวาดระแวงนั้นเจ๋งหรือเป็นมืออาชีพหรืออะไรทำนองนั้น มันไม่ได้เป็นเพียงที่น่ารำคาญสำหรับผู้ดูแลระบบอื่น ๆ และตรงไปตรงมาปราบปรามผู้ใช้ของคุณ สิ่งที่คุณเห็นส่วนใหญ่เป็นเพียงแค่งานยุ่งปลอมที่จะรู้สึกว่ามีประโยชน์สำหรับผู้ดูแลระบบหวาดระแวง แต่ไม่เป็นประโยชน์จริง ๆ เนื่องจากการละเมิดความปลอดภัยที่แท้จริงน่าจะเกิดจากระบบที่อัปเดตไม่เพียงพอและ / หรือจากแหล่งภายใน

ที่กล่าวว่าฉันคิดว่ามันเป็นหนึ่งในหลักคำสอนของฉันที่จะไม่เชื่อถืออะไรในเครือข่ายท้องถิ่นมากกว่าอะไรจากอินเทอร์เน็ต ดังนั้นฉันจึงกำหนดค่าทุกอย่างเพื่อให้มีการรับรองความถูกต้องแม้ในเครือข่ายท้องถิ่น ฉันเข้ารหัสและรับรองความถูกต้องของการรับส่งข้อมูลทั้งหมดระหว่างคอมพิวเตอร์ทุกเครื่องโดยใช้ IPsec

ฉันอยู่ระหว่างการแปลงเป็นการเข้ารหัสดิสก์เต็มรูปแบบสำหรับเซิร์ฟเวอร์ทั้งหมดของฉัน

ฉันติดตั้งเฉพาะบริการที่ฉันใช้ ฉันไม่มีไฟร์วอลล์ ฉันกำหนดค่าบริการที่ฉันต้องมีการรับรองความถูกต้องหรือ จำกัด พวกเขา (โดยการกำหนดค่าของโปรแกรมเองหรือโดย TCP-wrappers) กับ IP บางอย่าง สิ่งเดียวที่ฉันต้องบล็อกโดยใช้ iptables คือmemcachedเนื่องจากมันไม่มีไฟล์การกำหนดค่าและไม่ได้ใช้ TCP-wrappers

ฉันใช้รหัสผ่านที่ดีที่สร้างแบบสุ่มสำหรับบัญชีของฉันและเชื่อถือเซิร์ฟเวอร์ SSH ของฉัน (และบริการอื่น ๆ ทั้งหมด) เพื่อป้องกันผู้ที่ไม่ทราบรหัสผ่าน fail2banสำหรับผู้ที่มีพื้นที่ จำกัด สำหรับไฟล์บันทึกเท่านั้น IMO (คุณควรมีรหัสผ่านที่ดีพอที่จะเชื่อถือได้)


3

ดูวิธีการที่ดีได้ที่ www.debian.org/doc/manuals/securing-debian-howto/

ส่วนตัวฉันเปลี่ยนพอร์ต ssh และใช้ fail2ban + denyhosts และฉันปิดกั้นทุกสิ่งที่ไม่จำเป็น ยิ่งบล็อกมากเท่าไหร่คุณก็ยิ่งกังวลน้อยลงเท่านั้น


4
ฮึ. คุณมีฉันจนถึง "เปลี่ยนพอร์ต SSH" ไม่มีประเด็น โดยเฉพาะอย่างยิ่งไม่ได้เมื่อใด ๆ ที่มีเวลาเพียงพอในมือของเขาสามารถสแกนพอร์ตและค้นหาทันทีว่าพอร์ต SSH ทำงานอยู่ มันประกาศชื่อบริการ (และรุ่นเซิร์ฟเวอร์) ทันทีที่คุณเชื่อมต่อ
Matt Simmons

3
ใช่ฉันรู้ว่าทุกคนสามารถสแกนพอร์ตของคุณและค้นหาพอร์ตที่ถูกต้อง แต่การโจมตีส่วนใหญ่อยู่ในพอร์ตเริ่มต้น เพียงลองรับสถิติโดยเปลี่ยนพอร์ต
Vihang D
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.