ดัชนีทั่วไปของซีรี่ส์: Computer Networks for SMEs: Introduction
สวัสดีเพื่อนและเพื่อน!
ในบทความนี้เราตั้งใจจะเสนอภาพรวมในหัวข้อการพิสูจน์ตัวตนผ่าน PAM. เราคุ้นเคยกับการใช้เวิร์กสเตชันของเรากับระบบปฏิบัติการ Linux / UNIX เป็นประจำทุกวันและเราแทบไม่ได้หยุดศึกษาว่ากลไกการพิสูจน์ตัวตนเกิดขึ้นได้อย่างไรในแต่ละครั้งที่เราเริ่มเซสชัน เรารู้หรือไม่ว่ามีอยู่ของหอจดหมายเหตุ / etc / passwdและ / etc / shadow ที่เป็นฐานข้อมูลหลักของ Authentication Credentials ของผู้ใช้ภายในเครื่อง เราหวังว่าหลังจากอ่านโพสต์นี้คุณจะมีความคิดที่ชัดเจนเกี่ยวกับวิธีการทำงานของ PAM
การรับรอง
การพิสูจน์ตัวตน - เพื่อวัตถุประสงค์ในทางปฏิบัติ - เป็นวิธีที่ผู้ใช้ตรวจสอบกับระบบ กระบวนการรับรองความถูกต้องจำเป็นต้องมีชุดข้อมูลประจำตัวและข้อมูลรับรอง - ชื่อผู้ใช้และรหัสผ่านซึ่งเปรียบเทียบกับข้อมูลที่จัดเก็บในฐานข้อมูล หากข้อมูลประจำตัวที่แสดงตรงกับข้อมูลที่จัดเก็บไว้และบัญชีของผู้ใช้ใช้งานอยู่ระบบจะบอกว่าผู้ใช้เข้าสู่ระบบ แท้จริง สำเร็จหรือผ่านไฟล์ การรับรอง.
เมื่อตรวจสอบสิทธิ์ผู้ใช้แล้วข้อมูลนั้นจะถูกส่งไปยังไฟล์ บริการควบคุมการเข้าถึง เพื่อพิจารณาว่าผู้ใช้สามารถทำอะไรได้บ้างในระบบและทรัพยากรใดที่พวกเขาได้รับ การอนุญาต เพื่อเข้าถึงพวกเขา
ข้อมูลเพื่อตรวจสอบผู้ใช้สามารถเก็บไว้ในฐานข้อมูลโลคัลบนระบบหรือระบบโลคัลสามารถอ้างถึงฐานข้อมูลที่มีอยู่บนระบบรีโมตเช่น LDAP, Kerberos, ฐานข้อมูล NIS และอื่น ๆ
ระบบปฏิบัติการUNIX® / Linux ส่วนใหญ่มีเครื่องมือที่จำเป็นในการกำหนดค่าเซอร์วิสการพิสูจน์ตัวตนไคลเอนต์ / เซิร์ฟเวอร์สำหรับฐานข้อมูลผู้ใช้ที่พบบ่อยที่สุด ระบบเหล่านี้บางระบบมีเครื่องมือกราฟิกที่สมบูรณ์เช่น Red Hat / CentOS, SUSE / openSUSE และการแจกแจงอื่น ๆ
PAM: โมดูลการตรวจสอบสิทธิ์แบบเสียบได้
ลอส โมดูลที่แทรกสำหรับการพิสูจน์ตัวตน เราใช้ทุกวันเมื่อเราเข้าสู่เดสก์ท็อปของเราด้วยระบบปฏิบัติการที่ใช้ Linux / UNIX และในโอกาสอื่น ๆ อีกมากมายเมื่อเราเข้าถึงบริการในพื้นที่หรือระยะไกลที่มีโมดูล PAM เฉพาะในเครื่อง แทรก สำหรับการตรวจสอบสิทธิ์กับบริการนั้น
แนวคิดที่เป็นประโยชน์เกี่ยวกับวิธีการแทรกโมดูล PAM สามารถรับได้ผ่านลำดับสถานะ ของการรับรองความถูกต้อง en ทีม Debian และ en อื่นกับ CentOS ที่เราจะพัฒนาต่อไป.
debian
เอกสาร
หากเราติดตั้งแพคเกจ libpam-doc เราจะมีเอกสารที่ดีมากอยู่ในไดเรกทอรี / usr / share / doc / libpam-doc / html.
root @ linuxbox: ~ # aptitude ติดตั้ง libpam-doc รูท @ linuxbox: ~ # ls -l / usr / share / doc / libpam-doc /
นอกจากนี้ยังมีเอกสารเพิ่มเติมเกี่ยวกับ PAM ในไดเรกทอรี:
root @ linuxbox: ~ # ls -l / usr / share / doc / | grep pam drwxr-xr-x 2 root root 4096 5 เมษายน 21:11 libpam0g drwxr-xr-x 4 root root 4096 7 เม.ย. 16:31 libpam-doc drwxr-xr-x 2 root root 4096 5 เม.ย. 21:30 libpam-gnome- keyring drwxr-xr-x 3 root root 4096 5 เมษายน 21:11 libpam-modules drwxr-xr-x 2 root root 4096 5 เมษายน 21:11 libpam-modules-bin drwxr-xr-x 2 root root 4096 เมษายน 5 21: 11 libpam-runtime drwxr-xr-x 2 root root 4096 5 เมษายน 21:26 libpam-systemd drwxr-xr-x 3 root root 4096 5 เมษายน 21:31 python-pam
เราเชื่อว่าก่อนที่จะค้นหาเอกสารบนอินเทอร์เน็ตเราควรตรวจสอบเอกสารที่ติดตั้งไว้แล้วหรือที่เราสามารถติดตั้งได้โดยตรงจากที่เก็บโปรแกรมที่มีอยู่สำหรับบางสิ่งบางอย่างและหลายครั้งเราคัดลอกไปยังฮาร์ดไดรฟ์ ตัวอย่างมีดังต่อไปนี้:
root @ linuxbox: ~ # less / usr / share / doc / libpam-gnome-keyring / README gnome-keyring เป็นโปรแกรมที่เก็บรหัสผ่านและความลับอื่น ๆ สำหรับผู้ใช้ รันเป็น daemon ในเซสชันคล้ายกับ ssh-agent และแอ็พพลิเคชันอื่น ๆ ค้นหาผ่านตัวแปรสภาพแวดล้อมหรือ D-Bus โปรแกรมสามารถจัดการคีย์ริงได้หลายคีย์โดยแต่ละคีย์จะมีรหัสผ่านหลักของตัวเองและยังมีคีย์ริงของเซสชันซึ่งจะไม่ถูกเก็บไว้ในดิสก์ แต่จะถูกลืมเมื่อเซสชันสิ้นสุดลง ไลบรารี libgnome-keyring ถูกใช้โดยแอปพลิเคชันเพื่อรวมเข้ากับระบบพวงกุญแจ GNOME
ที่แปลได้อย่างอิสระต้องการที่จะแสดง:
- gnome-keyring เป็นโปรแกรมที่ดูแลรักษารหัสผ่านและความลับอื่น ๆ สำหรับผู้ใช้ ในแต่ละเซสชันจะรันเป็น daemon คล้ายกับ ssh-agent และกับแอ็พพลิเคชันอื่น ๆ ที่อยู่ผ่านตัวแปรสภาพแวดล้อม - สภาพแวดล้อมหรือผ่าน D-Bus โปรแกรมสามารถจัดการคีย์สตริงได้หลายแบบโดยแต่ละคีย์จะมีรหัสผ่านหลักของตัวเอง นอกจากนี้ยังมีเซสชันพวงกุญแจที่จะไม่ถูกเก็บไว้ในฮาร์ดดิสก์และจะถูกลืมเมื่อเซสชันสิ้นสุดลง. แอปพลิเคชันใช้ไลบรารี libgnome-keyring เพื่อรวมเข้ากับระบบพวงกุญแจ GNOME.
Debian พร้อมระบบปฏิบัติการพื้นฐาน
เราเริ่มต้นจากคอมพิวเตอร์ที่เราเพิ่งติดตั้ง Debian 8 "Jessie" เป็นระบบปฏิบัติการและในระหว่างขั้นตอนการติดตั้งเราเลือกเฉพาะ "ยูทิลิตี้ระบบพื้นฐาน" โดยไม่ต้องทำเครื่องหมายตัวเลือกอื่นเพื่อติดตั้งงาน - งาน หรือแพ็คเกจที่กำหนดไว้ล่วงหน้าเช่นเซิร์ฟเวอร์ OpenSSH หากหลังจากเริ่มเซสชันแรกเราดำเนินการ:
root @ master: ~ # pam-auth-update
เราจะได้รับผลลัพธ์ต่อไปนี้:
ซึ่งแสดงให้เราเห็นว่า PAM Module เดียวที่ใช้จนถึงขณะนั้นคือ UNIX Authentication ยูทิลิตี้ pam-auth-อัปเดต อนุญาตให้เรากำหนดค่านโยบายการพิสูจน์ตัวตนส่วนกลางสำหรับระบบเมื่อใช้โปรไฟล์ที่กำหนดไว้ล่วงหน้าที่จัดเตรียมโดยโมดูล PAM สำหรับข้อมูลเพิ่มเติมโปรดดู คน pam-auth-update.
เนื่องจากเรายังไม่ได้ติดตั้งเซิร์ฟเวอร์ OpenSSH เราจะไม่พบโมดูล PAM ในไดเร็กทอรี /etc/pam.d/ซึ่งจะมีโมดูลและโปรไฟล์ PAM ที่โหลดจนถึงช่วงเวลาเหล่านี้:
รูท @ มาสเตอร์: ~ # ls -l /etc/pam.d/ รวม 76 -rw-r - r-- 1 รูท 235 30 ก.ย. 2014 atd -rw-r - r-- 1 root root 1208 6 เม.ย. 22:06 common-account -rw-r - r-- 1 root root 1221 6 เม.ย. 22:06 common-auth -rw-r - r-- 1 root root 1440 6 เม.ย. 22:06 common-password -rw-r - r-- 1 root root 1156 6 เม.ย. 22:06 common-session -rw -r - r-- 1 root root 1154 6 เม.ย. 22:06 common-session-noninteractive -rw-r - r-- 1 root root 606 Jun 11 2015 cron -rw-r - r - 1 root root 384 Nov 19 2014 chfn -rw-r - r-- 1 root root 92 19 พฤศจิกายน 2014 chpasswd -rw-r - r-- 1 root root 581 Nov 19 2014 chsh -rw-r-- r-- 1 root root 4756 Nov 19 2014 เข้าสู่ระบบ -rw-r - r-- 1 root root 92 พ.ย. 19 2014 ผู้ใช้ใหม่ -rw-r - r-- 1 root root 520 6 ม.ค. 2016 อื่น ๆ -rw-r- -r-- 1 root 92 Nov 19 2014 passwd - rw-r - r-- 1 root root 143 29 มีนาคม 2015 runuser -rw-r - r-- 1 root root 138 29 มีนาคม 2015 runuser-l -rw -r - r-- 1 root root 2257 พ.ย. 19 2014 su - rw-r - r-- 1 รูท 220 ก.ย. 2 2016 systemd-user
ตัวอย่างเช่นการใช้โมดูล PAM /etc/pam.d/chfn ระบบกำหนดค่าบริการ เงาในขณะที่ผ่าน /etc/pam.d/cron daemon ถูกกำหนดค่า cron. หากต้องการเรียนรู้เพิ่มเติมอีกเล็กน้อยเราสามารถอ่านเนื้อหาของแต่ละไฟล์เหล่านี้ซึ่งให้คำแนะนำอย่างมาก เป็นตัวอย่างที่เราให้ไว้ด้านล่างเนื้อหาของโมดูล /etc/pam.d/cron:
root @ master: ~ # น้อยกว่า /etc/pam.d/cron # ไฟล์คอนฟิกูเรชัน PAM สำหรับ cron daemon @ รวมการตรวจสอบสิทธิ์ทั่วไป # ตั้งค่าเซสชันแอ็ตทริบิวต์กระบวนการ loginuid ที่ต้องการ pam_loginuid.so # อ่านตัวแปรสภาพแวดล้อมจากไฟล์ดีฟอลต์ของ pam_env / etc / environment # และ /etc/security/pam_env.conf เซสชั่นที่จำเป็น pam_env.so # นอกจากนี้เซสชันข้อมูลโลแคลอ่านระบบจำเป็น pam_env.so envfile = / etc / default / locale @ รวมบัญชีทั่วไป @ รวมเซสชันทั่วไปที่ไม่โต้ตอบ # ตั้งค่าขีด จำกัด ของผู้ใช้โปรดกำหนดขีด จำกัด สำหรับงาน cron # ผ่าน /etc/security/limits.conf เซสชันที่ต้องการ pam_limits.so
ลำดับของคำสั่งภายในแต่ละไฟล์มีความสำคัญ โดยทั่วไปเราไม่แนะนำให้แก้ไขใด ๆ เว้นแต่เราจะรู้ดีว่ากำลังทำอะไรอยู่
Debian พร้อม OS พื้นฐาน + OpenSSH
root @ master: ~ # aptitude ติดตั้ง task-ssh-server จะมีการติดตั้งแพ็คเกจใหม่ต่อไปนี้: openssh-server {a} openssh-sftp-server {a} task-ssh-server
เราจะตรวจสอบว่ามีการเพิ่มและกำหนดค่าโมดูล PAM อย่างถูกต้อง sshd:
root @ master: ~ # ls -l /etc/pam.d/sshd -rw-r - r-- 1 รูท 2133 22 ก.ค. 2016 /etc/pam.d/sshd
หากเราต้องการทราบเนื้อหาของโปรไฟล์นั้น:
root @ master: ~ # น้อยกว่า /etc/pam.d/sshd
กล่าวอีกนัยหนึ่งเมื่อเราพยายามเริ่มเซสชันระยะไกลจากคอมพิวเตอร์เครื่องอื่นโดยใช้ SSHการรับรองความถูกต้องบนคอมพิวเตอร์เฉพาะที่ทำได้ผ่านโมดูล PAM sshd ส่วนใหญ่โดยไม่ลืมด้านการอนุญาตและความปลอดภัยอื่น ๆ ที่เกี่ยวข้องกับบริการ ssh เช่นนี้
ในการส่งผ่านเราเพิ่มไฟล์การกำหนดค่าหลักของบริการนี้คือ / etc / SSH / sshd_configและอย่างน้อยที่สุดใน Debian จะมีการติดตั้งตามค่าเริ่มต้นโดยไม่อนุญาตให้ล็อกอินผู้ใช้แบบโต้ตอบ ราก. เราต้องแก้ไขไฟล์เพื่อให้อนุญาต / etc / SSH / sshd_config และเปลี่ยนบรรทัด:
PermitRootLogin โดยไม่ต้องใช้รหัสผ่าน
โดย
PermitRootLogin ใช่
จากนั้นรีสตาร์ทและตรวจสอบสถานะของบริการโดย:
root @ master: ~ # systemctl รีสตาร์ท ssh root @ master: ~ # systemctl สถานะ ssh
Debian กับเดสก์ท็อป LXDE
เรายังคงอยู่กับทีมเดิม - เราเปลี่ยนชื่อหรือ ชื่อโฮสต์ โดย "กล่องลินุกซ์»สำหรับการใช้งานในอนาคต - ซึ่งเราติดตั้ง LXDE Desktop เสร็จแล้ว มาวิ่งกันเถอะ pam-auth-อัปเดต และเราจะได้รับผลลัพธ์ต่อไปนี้:
ระบบได้เปิดใช้งาน Profiles -Modules- ทั้งหมดที่จำเป็นสำหรับการตรวจสอบสิทธิ์ที่ถูกต้องในระหว่างการติดตั้งเดสก์ท็อป LXDE แล้วซึ่งมีดังต่อไปนี้:
- UNIX Authentication Module
- โมดูลที่บันทึกเซสชันผู้ใช้ในกลุ่มควบคุมตามลำดับชั้นของ systemd.
- โมดูล GNOME Keyring Daemon
- เราถือโอกาสนี้แนะนำว่าในทุกกรณีเมื่อถูกขอให้ "เปิดใช้โปรไฟล์ PAM" เราจะเลือกตัวเลือก เว้นแต่เราจะรู้ดีว่ากำลังทำอะไรอยู่ หากเราเปลี่ยนการกำหนดค่า PAM ที่ระบบปฏิบัติการสร้างขึ้นเองโดยอัตโนมัติเราสามารถปิดการเข้าสู่ระบบบนคอมพิวเตอร์ได้อย่างง่ายดาย.
ในกรณีข้างต้นเรากำลังพูดถึง การรับรองความถูกต้องภายในเครื่อง หรือการรับรองความถูกต้องกับคอมพิวเตอร์ในระบบที่เกิดขึ้นเมื่อเราเริ่มเซสชันระยะไกลผ่าน SSH.
หากเราใช้วิธีการ การตรวจสอบระยะไกล ในทีมท้องถิ่น สำหรับผู้ใช้ที่มีข้อมูลประจำตัวที่เก็บไว้ในเซิร์ฟเวอร์ OpenLDAP ระยะไกลหรือใน Active Directory ระบบจะคำนึงถึงรูปแบบใหม่ของการพิสูจน์ตัวตนและจะเพิ่มโมดูล PAM ที่จำเป็น
ไฟล์หลัก
- / etc / passwd: ข้อมูลบัญชีผู้ใช้
- / etc / shadow: ข้อมูลที่ปลอดภัยของบัญชีผู้ใช้
- /etc/pam.conf: ไฟล์ที่ควรใช้เฉพาะในกรณีที่ไม่มีไดเร็กทอรี /etc/pam.d/
- /etc/pam.d/: ไดเร็กทอรีที่โปรแกรมและบริการติดตั้งโมดูล PAM
- /etc/pam.d/passwd: การกำหนดค่า PAM สำหรับ passwd.
- /etc/pam.d/common-account: พารามิเตอร์การอนุญาตใช้งานร่วมกับบริการทั้งหมด
- /etc/pam.d/common-auth: พารามิเตอร์การตรวจสอบความถูกต้องทั่วไปสำหรับบริการทั้งหมด
- /etc/pam.d/common-รหัสผ่าน: โมดูล PAM ใช้กับบริการทั้งหมดที่เกี่ยวข้องกับรหัสผ่าน - รหัสผ่าน
- /etc/pam.d/common-session: โมดูล PAM ใช้กับบริการทั้งหมดที่เกี่ยวข้องกับเซสชันผู้ใช้
- /etc/pam.d/common-session-noninteractive: โมดูล PAM ใช้กับบริการทั้งหมดที่เกี่ยวข้องกับเซสชันที่ไม่ใช่แบบโต้ตอบหรือที่ไม่ต้องการการแทรกแซงของผู้ใช้เช่นงานที่ดำเนินการในตอนต้นและตอนท้ายของเซสชันที่ไม่โต้ตอบ
- / usr / share / doc / passwd /: ไดเร็กทอรีเอกสาร
ขอแนะนำให้อ่านหน้าคู่มือของ passwd y เงา ตลอด ผู้ชาย passwd y เงาคน. นอกจากนี้ยังเป็นการดีที่จะอ่านเนื้อหาของไฟล์ บัญชีทั่วไป, การตรวจสอบสิทธิ์ร่วมกัน, รหัสผ่านทั่วไป, เซสชันทั่วไป y Common-session-noninteractive.
มีโมดูล PAM
เพื่อรับแนวคิดเกี่ยวกับโมดูล PAM ที่มีให้ priori ในที่เก็บ Debian มาตรฐานเราเรียกใช้:
buzz @ linuxbox: ~ $ aptitude ค้นหา libpam
รายการมีความยาวและเราจะแสดงเฉพาะโมดูลที่แสดงให้เห็นว่ามันครอบคลุมมากแค่ไหน:
libpam-afs-session - PAM module to set up a PAG and obtain AFS tokens libpam-alreadyloggedin - PAM module to skip password authentication for logged users libpam-apparmor - changehat AppArmor library as a PAM module libpam-barada - PAM module to provide two-factor authentication based on HOTP libpam-blue - PAM module for local authenticaction with bluetooth devices libpam-ca - POSIX 1003.1e capabilities (PAM module) libpam-ccreds - Pam module to cache authentication credentials libpam-cgrou - control and monitor control groups (PAM) libpam-chroot - Chroot Pluggable Authentication Module for PAM libpam-ck-connector - ConsoleKit PAM module libpam-cracklib - PAM module to enable cracklib support libpam-dbus - A PAM module which asks the logged in user for confirmation libpam-duo - PAM module for Duo Security two-factor authentication libpam-dynalogin - two-factor HOTP/TOTP authentication - implementation libs libpam-encfs - PAM module to automatically mount encfs filesystems on login libpam-fprintd - PAM module for fingerprint authentication trough fprintd libpam-geo - PAM module checking access of source IPs with a GeoIP database libpam-gnome-keyring - PAM module to unlock the GNOME keyring upon login libpam-google-authenticator - Two-step verification libpam-heimdal - PAM module for Heimdal Kerberos libpam-krb5 - PAM module for MIT Kerberos libpam-krb5-migrate-heimdal - PAM module for migrating to Kerberos libpam-lda - Pluggable Authentication Module for LDA libpam-ldapd - PAM module for using LDAP as an authentication service libpam-mkhomedir - libpam-mklocaluser - Configure PAM to create a local user if it do not exist already libpam-modules - Pluggable Authentication Modules for PAM libpam-modules-bin - Pluggable Authentication Modules for PAM - helper binaries libpam-mount - PAM module that can mount volumes for a user session libpam-mysql - PAM module allowing authentication from a MySQL server libpam-nufw - The authenticating firewall [PAM module] libpam-oath - OATH Toolkit libpam_oath PAM module libpam-ocaml - OCaml bindings for the PAM library (runtime) libpam-openafs-kaserver - AFS distributed filesystem kaserver PAM module libpam-otpw - Use OTPW for PAM authentication libpam-p11 - PAM module for using PKCS#11 smart cards libpam-passwdqc - PAM module for password strength policy enforcement libpam-pgsql - PAM module to authenticate using a PostgreSQL database libpam-pkcs11 - Fully featured PAM module for using PKCS#11 smart cards libpam-pold - PAM module allowing authentication using a OpenPGP smartcard libpam-pwdfile - PAM module allowing authentication via an /etc/passwd-like file libpam-pwquality - PAM module to check password strength libpam-python - Enables PAM modules to be written in Python libpam-python-doc - Documentation for the bindings provided by libpam-python libpam-radius-auth - The PAM RADIUS authentication module libpam-runtime - Runtime support for the PAM library libpam-script - PAM module which allows executing a script libpam-shield - locks out remote attackers trying password guessing libpam-shish - PAM module for Shishi Kerberos v5 libpam-slurm - PAM module to authenticate using the SLURM resource manager libpam-smbpass - pluggable authentication module for Samba libpam-snapper - PAM module for Linux filesystem snapshot management tool libpam-ssh - Authenticate using SSH keys libpam-sshauth - authenticate using an SSH server libpam-sss - Pam module for the System Security Services Daemon libpam-systemd - system and service manager - PAM module libpam-tacplus - PAM module for using TACACS+ as an authentication service libpam-tmpdir - automatic per-user temporary directories libpam-usb - PAM module for authentication with removable USB block devices libpam-winbind - Windows domain authentication integration plugin libpam-yubico - two-factor password and YubiKey OTP PAM module libpam0g - Pluggable Authentication Modules library libpam0g-dev - Development files for PAM libpam4j-java - Java binding for libpam.so libpam4j-java-doc - Documentation for Java binding for libpam.so
สรุปข้อสรุปของคุณเอง
CentOS
หากในระหว่างกระบวนการติดตั้งเราเลือกตัวเลือก«เซิร์ฟเวอร์ที่มี GUI«เราจะได้รับแพลตฟอร์มที่ดีในการใช้บริการต่างๆสำหรับเครือข่าย SME CentOS / Red Hat®มีคอนโซลและเครื่องมือกราฟิกที่แตกต่างจาก Debian ซึ่งทำให้ชีวิตง่ายขึ้นสำหรับผู้ดูแลระบบหรือเครือข่าย
เอกสาร
ติดตั้งโดยค่าเริ่มต้นเราพบในไดเรกทอรี:
[root @ linuxbox ~] # ls -l /usr/share/doc/pam-1.1.8/ รวม 256 -rw-r - r--. 1 root root 2045 18 มิ.ย. 2013 ลิขสิทธิ์ drwxr-xr-x. 2 รูท 4096 9 เม.ย. 06:28 น HTML -rw-r - r--. 1 รูท 175382 5 พ.ย. 19:13 น. Linux-PAM_SAG.txt -rw-r - r--. 1 รูท 67948 18 มิ.ย. 2013 rfc86.0.txt drwxr-xr-x. 2 รูท 4096 9 เม.ย. 06:28 น txt
[root @ linuxbox ~] # ls /usr/share/doc/pam-1.1.8/txts/ README.pam_access README.pam_exec README.pam_lastlog README.pam_namespace README.pam_selinux README.pam_timestamp README.pam_console README.pam_faildelay README.pam_limits README.pam_nologin README.pam_sepermit README.pam_tty_audit README.pam_cracklib README.pam_faillock README.pam_listfile README.pam_permit README pam_shells README.pam_umask README.pam_chroot README.pam_filter README.pam_localuser README.pam_postgresok README.pam_stress README.pam_unix README.pam_debug README.pam_ftp README.pam_loginuid README.pam_pwhistory README.pam_succeed_if README.pam_userdb README.pam_deny README.pam_group README.pam_mail README .pam_rhosts README.pam_tally README.pam_warn README.pam_echo README.pam_issue README.pam_mkhomedir README.pam_rootok README.pam_tally2 README.pam_wheel README.pam_ADMEADME_MEADME
ใช่เราเรียกทีม CentOS ว่า "linuxbox" เช่นเดียวกับ Debian ซึ่งจะให้บริการเราสำหรับบทความในอนาคตเกี่ยวกับ SMB Networks
CentOS พร้อม GNOME3 GUI
เมื่อเราเลือกระหว่างการติดตั้งตัวเลือก«เซิร์ฟเวอร์ที่มี GUI«เดสก์ท็อป GNOME3 รวมถึงยูทิลิตี้และโปรแกรมพื้นฐานอื่น ๆ ได้รับการติดตั้งเพื่อพัฒนาเซิร์ฟเวอร์ ในระดับคอนโซลเพื่อทราบสถานะการรับรองความถูกต้องที่เราดำเนินการ:
[root @ linuxbox ~] # authconfig-tui
เราตรวจสอบว่าเฉพาะโมดูล PAM ที่จำเป็นสำหรับการกำหนดค่าเซิร์ฟเวอร์ปัจจุบันเท่านั้นที่เปิดใช้งานแม้กระทั่งโมดูลสำหรับอ่านลายนิ้วมือระบบตรวจสอบความถูกต้องที่เราพบในแล็ปท็อปบางรุ่น
CentOS ที่มี GNOME3 GUI เข้าร่วมกับ Microsoft Active Directory
อย่างที่เราเห็นมีการเพิ่มและเปิดใช้งานโมดูลที่จำเป็น -winbind- สำหรับการตรวจสอบสิทธิ์กับ Active Directory ในขณะที่เราตั้งใจปิดการใช้งานโมดูลเพื่ออ่านลายนิ้วมือเนื่องจากไม่จำเป็น
ในบทความในอนาคตเราจะกล่าวถึงรายละเอียดเกี่ยวกับวิธีการเข้าร่วมไคลเอนต์ CentOS 7 กับ Microsoft Active Directory เราคาดการณ์เฉพาะสิ่งนั้นโดยใช้เครื่องมือ autoconfig-gtk การติดตั้งแพ็กเกจที่จำเป็นการกำหนดค่าการสร้างไดเร็กทอรีอัตโนมัติของผู้ใช้โดเมนที่รับรองความถูกต้องภายในเครื่องและกระบวนการเข้าร่วมไคลเอนต์กับโดเมนของ Active Directory เป็นแบบอัตโนมัติอย่างมาก บางทีหลังจากการรวมกันแล้วจำเป็นต้องรีสตาร์ทคอมพิวเตอร์เท่านั้น
ไฟล์หลัก
ไฟล์ที่เกี่ยวข้องกับ CentOS Authentication อยู่ในไดเร็กทอรี /etc/pam.d/:
[root @ linuxbox ~] # ls /etc/pam.d/ atd liveinst smartcard-auth-ac authconfig login smtp authconfig-gtk อื่น ๆ smtp.postfix authconfig-tui passwd sshd config-util password-auth su crond password-auth-ac sudo cups พลูโต sudo-i chfn polkit-1 su-l chsh postlogin ระบบตรวจสอบลายนิ้วมือ auth postlogin-ac system-auth-ac ลายนิ้วมือ auth-ac ppp system-config-authentication gdm-autologin remote systemd-user gdm-Fingerprint runuser vlock gdm-launch-environment runuser-l vmtoolsd gdm-password samba xserver การตั้งค่า gdm-pin gdm-smartcard smartcard-auth
มีโมดูล PAM
เรามีที่เก็บ ฐาน, centosplus, epel, y การปรับปรุง. ในนั้นเราพบ -among อื่น ๆ - โมดูลต่อไปนี้โดยใช้คำสั่ง ยำค้นหาแพม -, ยำค้นหา pam_และ ยำค้นหา libpam:
nss-pam-ldapd.i686: โมดูล nsswitch ที่ใช้ไดเร็กทอรีเซิร์ฟเวอร์ nss-pam-ldapd.x86_64: โมดูล nsswitch ที่ใช้ไดเร็กทอรีเซิร์ฟเวอร์ ovirt-guest-agent-pam-module.x86_64: โมดูล PAM สำหรับ pam oVirt Guest Agent -kwallet.x86_64: โมดูล PAM สำหรับ KWallet pam_afs_session.x86_64: AFS PAG และ AFS โทเค็นในการเข้าสู่ระบบ pam_krb5.i686: โมดูลการตรวจสอบความถูกต้องแบบเสียบได้สำหรับ Kerberos 5 pam_krb5.x86_64: โมดูลการตรวจสอบความถูกต้องแบบเสียบได้สำหรับเซิร์ฟเวอร์ Kerberos a-5 pamAP_mapi กับเซิร์ฟเวอร์ Kerberos .x86_64: โมดูล PAM สำหรับการตรวจสอบการล็อกอินแบบเสียบได้สำหรับ OATH pam_pkcs86.i64: PKCS # 11 / NSS PAM login module pam_pkcs686.x11_11: PKCS # 86 / NSS PAM login module pam_radius.x64_11: PAM Module for RADIUS Authentication pam_script.x86 โมดูลสำหรับเรียกใช้สคริปต์ pam_snapper.i64: โมดูล PAM สำหรับการเรียกใช้ snapper pam_snapper.x86_64: โมดูล PAM สำหรับการเรียกใช้ snapper pam_ssh.x686_86: โมดูล PAM สำหรับใช้กับคีย์ SSH และ ssh-agent pam_ssh_agent_64 86: โมดูล PAM สำหรับการพิสูจน์ตัวตนด้วย ssh-agent pam_ssh_agent_auth.x64_686: โมดูล PAM สำหรับการพิสูจน์ตัวตนด้วย ssh-agent pam_url.x86_64: โมดูล PAM เพื่อพิสูจน์ตัวตนกับเซิร์ฟเวอร์ HTTP pam_wrapper.x86_64: เครื่องมือสำหรับทดสอบแอปพลิเคชัน PAM และโมดูล PAM pam_yubico.x86_64: โมดูลการตรวจสอบความถูกต้องแบบเสียบได้สำหรับ yubikeys libpamtest-doc.x86_64: เอกสาร libpamtest API python-libpamtest.x86_64: ตัวห่อ python สำหรับ libpamtest libpamtest.x86_64: เครื่องมือสำหรับทดสอบแอปพลิเคชัน PAM และโมดูล PAM เครื่องมือ libpamtest-devel.x86_64 แอปพลิเคชัน PAM และโมดูล PAM
ข้อมูลอย่างย่อ
สิ่งสำคัญคือต้องมีความรู้ขั้นต่ำเกี่ยวกับ PAM หากเราต้องการทำความเข้าใจโดยทั่วไปว่าการพิสูจน์ตัวตนดำเนินการอย่างไรทุกครั้งที่เราลงชื่อเข้าใช้คอมพิวเตอร์ Linux / UNIX ของเรา สิ่งสำคัญคือต้องทราบว่ามีเพียง Local Authentication เท่านั้นที่เราสามารถให้บริการกับคอมพิวเตอร์เครื่องอื่น ๆ ในเครือข่าย SME ขนาดเล็กเช่น Proxy, Mail, FTP และอื่น ๆ ทั้งหมดรวมอยู่ในเซิร์ฟเวอร์เครื่องเดียว บริการก่อนหน้านี้ทั้งหมดและอื่น ๆ อีกมากมายตามที่เราเห็นก่อนหน้านี้ - มีโมดูล PAM
ปรึกษาแหล่งที่มา
- คู่มือคำสั่ง - man pages.
- การรับรอง: หน้า Wikipedia ในภาษาสเปน
- โมดูลการตรวจสอบสิทธิ์แบบเสียบได้
- Red_Hat_Enterprise_Linux-6-Deployment_Guide-en-US
เวอร์ชัน PDF
ดาวน์โหลดเวอร์ชัน PDF ที่นี่.
พบกันใหม่บทความหน้า!
ผู้แต่ง: Federico A.Valdes Toujague
federicotoujague@gmail.com
https://blog.desdelinux.net/author/fico
บทความที่มีรายละเอียดมากเกี่ยวกับการรับรองความถูกต้องโดยใช้ PAM ฉันยอมรับว่าฉันไม่ทราบรายละเอียดเกี่ยวกับการดำเนินการตรวจสอบสิทธิ์และแอปพลิเคชันที่มีรายละเอียดและปลอดภัยมากขึ้นไม่รู้จบที่เราสามารถมอบให้คุณได้ นี่เป็นบทความที่ยอดเยี่ยมที่ช่วยให้คุณเห็นภาพขอบเขตของการพิสูจน์ตัวตน PAM ซึ่งอาจมีหลายวัตถุประสงค์ในธุรกิจ SMEs
อีกหนึ่งผลงานที่ยอดเยี่ยมของคุณขอบคุณมากสำหรับวัสดุ Fico ที่ดีเช่นนี้
ขอบคุณสำหรับความคิดเห็นของคุณ Luigys ที่รัก วัตถุประสงค์ของบทความนี้คือเพื่อเปิดใจผู้อ่านเกี่ยวกับ PAM และโมดูลต่างๆ ฉันคิดว่าโพสต์ประสบความสำเร็จ
ฉันแจ้งให้คุณทราบว่าความคิดเห็นไม่สามารถส่งถึงฉันทางไปรษณีย์ได้
ฮ่า ๆ ฉันลืมเขียนที่อยู่อีเมลของฉันในความคิดเห็นก่อนหน้านี้ นั่นเป็นเหตุผลที่ Anonymous ออกมา 😉
บทความยอดเยี่ยมเช่นเคย
Federico ให้คำแนะนำอย่างมากฉันต้องจัดการกับ PAM มากกว่าหนึ่งครั้งและฉันชื่นชมการออกแบบมันมีประโยชน์มากที่จะสามารถแทรกฟังก์ชันใน hooks ที่อนุญาตได้เช่นสิ่งสุดท้ายที่ฉันทำคือ REST API ใน Python / กระติกน้ำที่รวบรวมการเข้าสู่ระบบและการออกจากระบบของผู้ใช้โดเมนของฉัน (สไตล์พี่ใหญ่รู้ทุกอย่าง) เนื่องจากพวกเขาเดาไม่ออกว่าฉันโทรไป curl เพื่อแจ้ง api ที่ไหน? ใช่แล้วกับ PAM
ขอบคุณ HO2GI สำหรับการประเมินโพสต์
Dhunter: ทักทายอีกครั้ง เช่นเคยคุณกำลังทำสิ่งที่น่าสนใจมาก ไม่มีอะไรโพสต์นี้เป็นหนึ่งในรายการที่ฉันแคตตาล็อก "เพื่อเปิดใจ"