ฉันต้องการให้ผู้ใช้รายหนึ่ง (ไม่ใช่ในรายการ sudoers) มีอินเทอร์เน็ตตั้งแต่ 14:00 น. ถึง 16:00 น. และ 17:00 น. ถึง 18:30 น. เป็นไปได้ไหม? ฉันสามารถกำหนดช่วงเวลาที่แตกต่างกันสำหรับวันในสัปดาห์ที่แตกต่างกันได้หรือไม่
ฉันต้องการให้ผู้ใช้รายหนึ่ง (ไม่ใช่ในรายการ sudoers) มีอินเทอร์เน็ตตั้งแต่ 14:00 น. ถึง 16:00 น. และ 17:00 น. ถึง 18:30 น. เป็นไปได้ไหม? ฉันสามารถกำหนดช่วงเวลาที่แตกต่างกันสำหรับวันในสัปดาห์ที่แตกต่างกันได้หรือไม่
คำตอบ:
คุณสามารถใช้owner
ส่วนขยายของ iptables เพื่อบล็อกผู้ใช้จากการเข้าถึงเน็ตเช่น
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
ตอนนี้คุณสามารถใช้ cron เพื่อเพิ่มหรือลบกฎเหล่านั้น (ซึ่งอาจต้องใช้สคริปต์เชลล์เล็กน้อยหากคุณมีกฎ iptable อยู่แล้วหรือต้องการให้ผู้ใช้ที่แตกต่างกันในเวลาที่ต่างกัน)
-j REJECT --reject-with <argument>
หรือไม่
เข้าสู่ระบบด้วย root:
sudo su
ตรวจสอบสถานะไฟร์วอลล์ของคุณ:
ufw status
หากไฟร์วอลล์ไม่ได้ใช้งานปัญหา:
ufw enable
เพื่อที่จะ จำกัด การใช้วิลเฮล์อินเทอร์เน็ตในวันอาทิตย์, วันอังคาร, วันพุธและวันศุกร์กับช่วงเวลาที่ได้รับอนุญาตให้เวลา (14: 00-16: 00 และ 17: 00-18: 30):
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 00:00:01 --timestop 14:00:00 -j DROP
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 16:00:00 --timestop 17:00:00 -j DROP
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 18:30:00 --timestop 23:59:59 -j DROP
หมายเหตุด้านข้าง : * โปรดทราบการใช้-I
สวิตช์แทน-A
สวิตช์ของiptables
คำสั่ง -I
สวิตช์แทรกกฎระเบียบดังกล่าว (3) ที่จุดเริ่มต้น (บนสุด) ของห่วงโซ่กฎ OUTPUT มากกว่าที่ด้านล่างของห่วงโซ่ การวางกฎที่ผนวกด้วยตนเองไว้ด้านบนของนโยบายไฟร์วอลล์ปกติเป็นสิ่งสำคัญเนื่องจากกฎจะถูกประมวลผลจากบนลงล่าง ถ้ากฎสูงสุดยอมรับแพ็กเก็ตเชน OUTPUT จะไม่ถูกตรวจสอบกฎต่อไปนี้อีกต่อไปซึ่งอาจมี DROPped แพ็กเก็ต
โปรดตรวจสอบให้แน่ใจว่าได้ป้อนกฎอย่างถูกต้องแล้ว:
iptables -L OUTPUT
เพื่อที่จะลบกฎที่ไม่เหมาะสมพูด (นับ 1 ตามมาจากด้านบนของการปกครองฉบับที่ 1, iptables -v -L OUTPUT
) iptables -D OUTPUT 1
ปัญหา:
บันทึก iptables สำหรับการกู้คืนในการบูตครั้งถัดไป:
iptables-save > /etc/iptables.rules
ใน/etc/rc.local
ท้ายบรรทัด:
iptables-restore < /etc/iptables.rules
เสร็จแล้ว
-
ทดสอบกับ Ubuntu 11.10 (oneiric) locale: he
central european summer time -2 hours
ในกรณีของฉัน
ufw
แม้ว่าคุณจะใช้ในภายหลังiptables
?
--kerneltz
ตัวเลือก ("ใช้เขตเวลาเคอร์เนลแทน UTC")