Ubuntu <= 11.10 ผู้ใช้ทำตามคำแนะนำนี้สำหรับผู้ใช้ Ubuntu> = 11.10 อ่านประกาศด้านล่างของหน้า:
ใช่โปรแกรมเหล่านั้นล้าสมัยและคำถามทั้งหมดของคุณได้รับคำตอบที่นี่และดูดีพร้อมกับการควบคุมของผู้ปกครองของคุณ .....
เมื่อเราพูดถึงการบังคับให้ผู้ใช้ออกจากระบบสิ่งที่เรากำลังพูดถึงคือการใช้การ จำกัด เวลาในบัญชีสำหรับการเข้าถึงระบบหรือบริการ วิธีที่ง่ายที่สุดที่ฉันได้พบในการดำเนินการข้อ จำกัด เวลาใช้ปลั๊กอินโมดูลที่เรียกว่าลินุกซ์ PAM
Pluggable Authentication Module (PAM)เป็นกลไกสำหรับการตรวจสอบผู้ใช้ โดยเฉพาะเราจะใช้pam_time
โมดูลเพื่อควบคุมการเข้าถึงตามกำหนดเวลาสำหรับผู้ใช้บริการ
การใช้pam_time
โมดูลนั้นเราสามารถตั้งค่าการ จำกัด การเข้าถึงระบบและ / หรือแอพพลิเคชั่นที่เฉพาะเจาะจงในช่วงเวลาต่าง ๆ ของวันรวมถึงในวันที่ระบุหรือผ่านทางเทอร์มินัลต่างๆ ขึ้นอยู่กับการกำหนดค่าคุณสามารถใช้โมดูลนี้เพื่อปฏิเสธการเข้าถึงผู้ใช้แต่ละรายตามชื่อของพวกเขา, เวลาของวัน, วันในสัปดาห์, บริการที่พวกเขาใช้และเทอร์มินัลของพวกเขาที่พวกเขาร้องขอ .
เมื่อใช้pam_time
คุณต้องยกเลิกไวยากรณ์ของแต่ละบรรทัด (หรือกฎ) ใน/etc/security/time.conf
ไฟล์ด้วยบรรทัดใหม่ คุณสามารถแสดงความคิดเห็นในแต่ละบรรทัดด้วยเครื่องหมายปอนด์ [#] และระบบจะไม่สนใจข้อความนั้นจนกว่าจะขึ้นบรรทัดใหม่
นี่คือไวยากรณ์สำหรับกฎ:
บริการ ttys; ผู้ใช้; ครั้ง
The first field — services — is a logic list of PAM service names.
The second field — tty — is a logic list of terminal names.
The third field — users — is a logic list of users or a netgroup of users.
The fourth field — times — indicates the applicable times.
นี่คือตัวอย่างของกฎทั่วไป:
login ; * ; !bobby ; MoTuWeThFr0800-2000
login ; * ; !root ; !Al0000-2400
http ; * ; !bobby ; MoTuWeThFr0800-2000
http ; * ; !root; !Al0000-2400
กฎเหล่านี้ จำกัด ผู้ใช้บ็อบบี้จากการเข้าสู่ระบบระหว่างชั่วโมง 0800 และ 2000 และพวกเขายัง จำกัด การเข้าถึงอินเทอร์เน็ตในช่วงเวลาเหล่านี้ รูทจะสามารถเข้าสู่ระบบได้ตลอดเวลาและท่องอินเทอร์เน็ตตลอดเวลาเช่นกัน
หมายเหตุ:ระบบบันทึกข้อผิดพลาดด้วยกฎเหล่านี้เป็น syslog (3)
ด้วย Ubuntu Linux คุณสามารถกำหนดข้อ จำกัด ด้านเวลาของคอมพิวเตอร์ของคุณเพื่อป้องกันการเชื่อมต่อของผู้ใช้หนึ่งรายหรือมากกว่าเข้าสู่ระบบของคุณ ด้วยข้อ จำกัด ด้านเวลาคุณสามารถ จำกัด การเข้าถึงคอมพิวเตอร์สำหรับลูก ๆ ของคุณ(การควบคุมโดยผู้ปกครองในระยะสั้น)หรือแม้แต่ป้องกันการเชื่อมต่อกับเซิร์ฟเวอร์ของคุณในบางช่วงเวลา
กำหนดค่าด้วยตนเอง
ทำความเข้าใจกับสิ่งที่คุณจะทำ
ในบทช่วยสอนนี้เราจะใช้ PAM (โมดูลการตรวจสอบความถูกต้องแบบเสียบได้, โมดูลการตรวจสอบภาษาอังกฤษแบบเสียบได้) ช่วยให้คุณควบคุมการตรวจสอบผู้ใช้เมื่อพวกเขาเชื่อมต่อ จากนั้นเราจะใช้ไฟล์กำหนดค่าความปลอดภัยเพื่อกำหนดชั่วโมงการเข้าสู่ระบบที่ได้รับอนุญาต การปรับแต่งเหล่านี้สามารถทำได้บน Ubuntu ทุกรุ่นและต้องการโปรแกรมแก้ไขข้อความอย่างง่าย (vim, emacs, nano, gedit, kate, เพื่อตั้งชื่อ) เปิดใช้งานการ จำกัด ชั่วโมงผ่านโมดูล PAM
ก่อนอื่นให้ไป/etc/pam.d/
ที่ซึ่งเป็นบริการที่สามารถกำหนดค่าได้ทั้งหมด:
$ Ls /etc/pam.d/
atd common-account common-session gdm login ppp sudo
chfn common-auth cron gdm-autologin Other samba
chsh common-cupsys gnome-screensaver password passwd su
หากเราต้องการปิดกั้นการเชื่อมต่อกับคอมพิวเตอร์เราจะต้องเปลี่ยนบริการ gdm แก้ไขไฟล์ดังนั้น gdm และเพิ่มบรรทัดของรหัสนี้ (ท้ายไฟล์):
account required pam_time.so
GDM คือการกระจายหน้าจอเข้าสู่ระบบ Ubuntu, Edubuntu และ Xubuntu สำหรับ Kubuntu ซึ่งใช้ KDE จะมีการเรียกใช้บริการ kdm ซึ่งจะเป็นไฟล์ที่จะเปิดขึ้น และคุณก็ทำการตั้งค่า PAM เสร็จแล้ว! วิธีนี้จะช่วยให้สามารถควบคุมชั่วโมงในบริการนี้ได้
หากคุณมีเซิร์ฟเวอร์คุณอาจไม่มี GUI ในกรณีนี้ไม่ได้ติดตั้ง GDM / KDM และการเชื่อมต่อจะไม่ถูกบล็อก เพื่อป้องกันการเชื่อมต่อกับ TTY คุณต้องแก้ไขการเข้าสู่ระบบของไฟล์เดียวกันและเพิ่มรหัสบรรทัดเดียวกันกว่าที่ยอมรับก่อนหน้านี้ แอ็คชันนี้ยังใช้กับผู้ที่ติดตั้ง GUI และต้องการบล็อกการเข้าถึงหน้าจอล็อกอินและเทอร์มินัล
กำหนดค่าชั่วโมงการเข้าถึง
เมื่อบริการ PAM เปิดใช้งานแล้วเราจะต้องกำหนดเวลาการเข้าถึงเท่านั้น /etc/security
เปิด มีไฟล์การกำหนดค่าหลายไฟล์:
$ Ls /etc/security/
access.conf namespace.conf pam_env.conf
group.conf namespace.init time.conf
limits.conf opasswd time.conf.bak
time.conf
แก้ไขไฟล์ คำอธิบายและตัวอย่างบางส่วน (ภาษาอังกฤษ) แนะนำตัว หากต้องการตั้งค่ากำหนดการเข้าถึงให้คัดลอกและวางบรรทัดของรหัสต่อไปนี้ (ท้ายไฟล์เช่นเคย):
*;*;user;scheduler
แทนที่จะป้อนฟิลด์ผู้ใช้ให้ป้อนบัญชีเข้าสู่ระบบที่คุณต้องการบล็อก
หากคุณต้องการปิดกั้นผู้ใช้หลายคนให้เข้าสู่ระบบของพวกเขาในแถวคั่นด้วย | ผู้ประกอบการ ตัวอย่างเช่นหากฉันต้องการตรึงบัญชีของ Patrick, John และ Emily:
*;*;Patrick|jean|emilie;scheduler
ตามข้อเสียถ้าคุณต้องการปิดกั้นการเข้าถึงระบบสำหรับผู้ใช้ทั้งหมด แต่อย่างใดอย่างหนึ่งโดยเฉพาะใช้! ก่อนบุคคลที่เกี่ยวข้อง ตัวอย่างเช่นถ้าฉันต้องการเข้าถึงคอมพิวเตอร์ถูกปฏิเสธผู้ใช้ทั้งหมดยกเว้น Nicolas และ Xavier:
Nicolas *;*;!|xavier;scheduler
เปลี่ยนเป็นโซนเขตข้อมูลทันที ในฟิลด์นี้การเลือกวันและเวลาจะอนุญาตให้ทำการเชื่อมต่อได้ คุณต้องระบุวันในสัปดาห์โดยใช้ตัวย่อต่อไปนี้:
Mo : Monday Fr : Friday Wd : Sa/Su
Tu : Tuesday Sa : Saturday wk : Mo/Tu/We/Th/Fr
We : Wenesday Su : Sunday
Th : Thursday Al : All Days
ระวังอย่าสับสนระหว่างตัวย่อ Wk และ Wd ทำให้เข้าใจผิด! โดยเฉพาะอย่างยิ่งการระบุที่ไม่ดีบนอินเทอร์เน็ต: คุณสามารถค้นหาข้อมูลที่ขัดแย้งได้ง่าย!
จากนั้นเราจะระบุกำหนดเวลา สิ่งเหล่านี้ควรอยู่ในรูปแบบ 24H ประกอบด้วยตัวเลข 4 หลัก ตัวอย่างเช่นเพื่อ จำกัด 3:17 น. ถึง 18:34 น. เราเขียน: 1517-1834 เพื่อให้มารีเชื่อมต่อเฉพาะวันอังคารตั้งแต่ 15:17 น. ถึง 18:34 น. เราได้รับผลลัพธ์:
*;*;marie;Tu1517-1834
การเชื่อมต่อนอกเวลาเหล่านี้จะถูกแบน สำหรับผู้ใช้มันเป็นไปได้ที่จะใช้ตัวดำเนินการ | และ! เพื่อระบุหลาย ๆ ครั้ง (! จากนั้นระบุว่าอนุญาตให้ชั่วโมงการเข้าสู่ระบบทั้งหมดยกเว้นที่จะแสดง)
ดาวสองดวง (ไวด์การ์ด) ที่จุดเริ่มต้นของบรรทัดโค้ดคือตามลำดับและฟิลด์เซอร์วิส tty เนื่องจากคุณต้องการบล็อกการเข้าถึงระบบทั้งหมดจึงไม่จำเป็นต้องระบุบริการหรือสิ่งที่คุณต้องการบล็อก อย่างไรก็ตามหากคุณต้องการป้องกันการใช้บริการเฉพาะเพียงระบุเป็นตัวอย่างต่อไปนี้:
login;tty1|tty4|tty5;marie;!Wd0000-2400
ดังนั้นผู้ใช้ที่แต่งงานไม่สามารถเชื่อมต่อกับ TTY, 4 และ 5 ในช่วงสุดสัปดาห์
ตัวอย่างบางส่วนของข้อ จำกัด กำหนดการ
mathilde ได้รับอนุญาตให้เชื่อมต่อทุกวันตั้งแต่ 13:20 น. ถึง 15:20 น. และจาก 16:00 น. ถึง 20:30 น.:
*;*;mathilde;Al1320-1520|Al1600-2030
Stone, Frank และ Florian ได้รับอนุญาตให้เชื่อมต่อกับ 14:00 น. ถึง 18:45 น. ในช่วงวันธรรมดาและ 14:00 น. ถึง 22:15 น. สำหรับวันหยุดสุดสัปดาห์:
*;*;Stone|franck|florian;Wk1400-1845|Wd1400-2215
โอลีฟไม่เคยได้รับอนุญาตให้เชื่อมต่อ เจสสิก้าสามารถเข้าสู่ระบบในวันพุธตั้งแต่ 13.00 น. ถึง 16.00 น.
*;*;olivier;!Al0000-2400
*;*;jessica;We1300-1600
2 บรรทัดที่แตกต่างกันสำหรับสองเวลาที่แตกต่างกันสำหรับการหมดอายุของผู้ใช้แต่ละคนของเซสชัน
เมื่อเซสชันหมดอายุ (เกินเวลาที่ผู้ใช้เชื่อมต่ออยู่) PAM สามารถเข้าถึงผู้ใช้ได้ ในขณะที่ mathilde เชื่อมต่อในช่วงเวลาที่อนุญาตก็เป็นอิสระอย่างสมบูรณ์เกินเวลาเหล่านี้! สำหรับสิ่งนี้เราจะใช้โปรแกรมใหม่:´cron´ แอปพลิเคชั่นนี้รันคำสั่งตามช่วงเวลา ในกรณีของเราเราจะใช้คำสั่ง´skill-KILL-u´เพื่อตัดการเชื่อมต่อผู้ใช้เมื่อเซสชันหมดอายุ การจัดการนั้นง่ายมาก เพียงแก้ไขไฟล์ ´/ etc / crontab´ จากนั้นเพิ่มบรรทัดของรหัสต่อไปนี้:
Minute Hour Day * * (s) root skill -KILL -u User
เหมือนก่อนหน้านี้แทนที่ตารางเวลานาทีและเวลาที่ต้องการ จากนั้นกรอกวันตามวันที่ถูกแบนหรือพิมพ์เครื่องหมายดอกจัน (*) เพื่อระบุวันทั้งหมดของสัปดาห์ ในที่สุดเปลี่ยนฟิลด์ที่ใช้โดยบัญชีเข้าสู่ระบบที่จะถูกบล็อกและ voila!
วันไม่ได้สังเกตเช่นเดียวกับcron
งาน! นี่คือรายการของตัวย่อที่จะใช้กับโปรแกรมนี้:
mon : monday fri : friday
tue : tuesday sat : saturday
wed : wednesady sun : sunday
thu : thursday * : all hours
ตัวอย่างcron
งานบางส่วน(พร้อมตัวอย่างของเวลาในส่วนก่อนหน้า)
เจสสิก้าสามารถเข้าสู่ระบบในวันพุธตั้งแต่ 13.00 น. ถึง 16.00 น
-> ตัดการเชื่อมต่อ: วันอังคารเวลา 16:00 น.
00 16 * root * wed skill -KILL -u jessica
Mathilde ได้รับอนุญาตให้เชื่อมต่อทุกวันตั้งแต่ 13:20 น. ถึง 15:20 น. และจาก 16:00 น. ถึง 20:30 น.
-> การตัดการเชื่อมต่อ: ทุกวัน 20:30 น. ถึง 15:20 น. ET
20 15 * * * root skill -KILL -u mathilde
30 20 * * * root skill -KILL -u mathilde
Stone, Frank และ Florian ได้รับอนุญาตให้เชื่อมต่อกับ 14:00 น. ถึง 18:45 น. ในช่วงวันธรรมดาและ 14:00 น. ถึง 22:15 น. สำหรับวันหยุดสุดสัปดาห์
-> ตัดการเชื่อมต่อ (1): วันจันทร์วันอังคารวันพุธวันพฤหัสบดีและวันศุกร์เวลา 18:45 น. -> ตัดการเชื่อมต่อ (2): วันเสาร์และวันอาทิตย์เวลา 22:15 น.
45 18 * * mon,tue,wed,thu,fri root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
15 22 * * sat,sun root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
คำสั่ง skill-KILL-u ตัดการเชื่อมต่อผู้ใช้จาก GUI รวมถึง TTY มันสามารถใช้งานได้อย่างสมบูรณ์แบบสำหรับผู้ดูแลเซิร์ฟเวอร์ อย่างไรก็ตามคำสั่งนี้เป็นทันทีและจะตัดการเชื่อมต่อโดยไม่ต้องแจ้งให้ทราบล่วงหน้า ดังนั้นจึงเป็นการดีกว่าที่จะป้องกันการติดตั้งผู้ใช้อุปกรณ์นี้ของคอมพิวเตอร์หรือเครือข่ายที่เป็นปัญหา!
มีความเป็นไปได้ที่จะป้องกันผู้ใช้ด้วยwall
คำสั่งที่เปิดตัวภายในcron
ไม่กี่นาทีก่อนสิ้นสุดกรอบเวลาซึ่งจะปรากฏในเทอร์มินัลของผู้ใช้ทั้งหมด
40 18 * * Mon,Tue,wed,thu,fri root echo "end of session in 5 minutes" | wall
เพื่อป้องกันผู้ใช้จาก GUI สามารถใช้แทนคำสั่ง wall notify-send
ได้ในแพ็คเกจlibnotify-bin
40 18 * * Mon,Tue,wed,thu,fri stone DISPLAY=:0 notify-send "end of session in 5 minutes"
ผู้ใช้งาน Ubuntu 11.10
ฉันเคยเห็นผู้ใช้ที่มีปัญหากับ Pam และฉันเห็นข้อผิดพลาดจำนวนมากเกี่ยวกับเรื่องนั้นดังนั้นเหตุผลคืออะไร ??? ง่ายมาก Ubuntu 11.10 ไม่รองรับ GDM อีกต่อไปตัวจัดการการแสดงผลใหม่คือ lightGDM ปัญหาคือการติดตามที่จัดเก็บคำสั่งนี้account required pam_time.so
ฉันคิดว่าอยู่ใน/etc/pam.d/lightdm
หรือ/etc/pam.d/lightdm-autologin
แต่บั๊กอย่างไร ???
ดังนั้นสำหรับรอบ ๆ คุณสามารถตรวจสอบไฟล์บันทึก 2 LightGdm นี้:
- /var/log/lightdm/lightdm.log
- /var/log/lightdm/x-0.log
หรือเรียกใช้ LightGdm ในโหมดแก้ไขข้อบกพร่อง:
LightDM - debug
หรือรายงานข้อบกพร่อง:
ubuntu-bug lightdm
ฉันรายงานข้อผิดพลาดที่นี่เพื่อข้ามนิ้วของคุณและรอ