AdminTalk - Talk to Learn

Navigation
Go Back   AdminTalk - Talk to Learn > Server Operating System > Linux Server
Linux Server Cài đặt, bảo mật, kinh nghiệm quản trị máy chủ Linux: CentOS, OpenSuSe, RedHat, Debian ...

Đề mục chính

Cấu trúc diễn đàn
Thông tin tổng hợp
Thông báo và quy định chung
Đóng góp ý kiến
Những bài viết có giá trị
Tin tức công nghệ
•• Tin tức công nghệ thông tin
•• Doanh Nghiệp & Người Tiêu Dùng
Premium Server, Hosting Support
Web Hosting / Domain
•• Kiến thức cơ bản về Web Hosting/Domain
•• Plesk - CPanel
Server / VPS
•• Kiến thức cơ bản Server - VPS
•• Server Review/ Hardware
•• Mail Server - AntiSPAM
Virtuozzo - VMWare - HyperV
•• For Windows
•• For Linux
Security
•• Mạng Wan - Lan
•• Internet - Virus - Hacker
VoIP
•• Kiến Thức Cơ Bản VoIP
•• Phần Cứng VoIP
•• Phần Mềm VoIP
•• Nhà cung cấp VoIP
Server Operating System
Linux Server
Windows Server 200x
Computer Supports and Discussion
Operating System
•• Hệ điều hành Linux
•• Hệ điều hành Windows
•• Hệ điều hành Mac
•• Hệ điều hành Chrome
Laptop, Netbook
Hardware
•• Cpu Intel
•• Cpu AMD
•• PSU, Overclocking & Cooling
•• Mainboard & Memory
•• Đồ họa máy tính
•• Kinh nghiệm
Software
•• Linux Apps
•• Windows Apps
Webmaster Area
Webmaster talk
Programming Language
•• HTML & CSS
•• PHP
•• C++ / C#
•• .NET
•• Java
•• Other
Graphic & Mutimedia
SEO (Search Engine Optimization)
Browsers
•• Mozilla Firefox
•• Chrome
•• Internet Explorer
Thủ Thuật Internet
Thương mại điện tử
•• Hình thức thanh toán
•• Giải pháp
HiTech, Mobile, Movies, Music, eBooks, Relax
Tablet PC
•• iPad
Mobile
•• iPhone
•• BlackBerry
•• Others
Movies
•• Download phim HD
•• Download phim DVD
Music
•• Download nhạc Lossless Album
•• Download nhạc Lossless tuyển chọn
eBooks - Tài liệu
•• Tin học - Lập trình
•• Khoa học - Kỹ thuật
•• Ngoại Ngữ
•• Tutorials - Training
•• Kinh tế
•• Thể Loại Khác
Bài học trong cuộc sống
AdminTalk – Talk to You
Introduce Youself
Off topic/ Chatting
Mua bán - Rao vặt - Tuyển dụng
Quảng cáo
Tuyển dụng

Bầu chọn mới nhất
Bạn nghĩ sao về công nghệ USB 3.0 ?

Rất tuyệt! Sẽ sử dụng ngay nếu được bán trên thị trường: 47.37%

Tốt hơn USB 2.0 , nhưng giá có thể mắc hơn nhiều: 42.11%

Bình thường thôi, công nghệ luôn thay đổi mà: 10.53%

Không quan tâm lắm: 0%
Voters: 38. You may not vote on this poll

Thống kê
Đề tài: 10614
Bài gửi: 12178
Thành viên: 20,206
Thành viên tích cực: 82
Xin cùng nhau chào đón thành viên mới nhất: baophuc0711
Kỷ lục: 624 người đã ghé thăm 17/11/2010 lúc 06:16 AM.
Thành viên mới:
hôm nay
- baophuc0711
Hôm qua
- ddvtien
Hôm qua
- thanhtam1028
Hôm qua
- goodhealthvn1
Hôm qua
- honghobao286
07/02/2012
- condau
07/02/2012
- timlaibautroi7408
07/02/2012
- NguyenLien
07/02/2012
- quydona
06/02/2012
- hhhh11

Số người đang xem
View Who's Online Thành viên: 7
Khách: 97
Tổng: 104
Nhóm: 0
Nhóm:  
Thành viên:  aviomobile, aviovn8, baophuc0711, dongka201, NguyenLien, phimbo, thaithangdk
Mở Sổ Bạn Bè

Trả lời
 
LinkBack Ðiều Chỉnh Kiếm Trong Bài Xếp Bài

  #1 (permalink)
Old 06/04/2010, 11:03 AM
Bảo mật hệ thống *nix với PAM

IrimiNage
Admintalk's SMod
love talking
 
IrimiNage's Avatar
 
Tham gia ngày: Mar 2010
Bài gởi: 219
My Mood:
Thanks: 0
Thanked 25 Times in 24 Posts
VP: 0.00
Donate
Bảo mật hệ thống *nix với PAM

1. Đặt vấn đề

Chắc hẳn bạn đã từng tự hỏi tại sao các chương trình ftp, su, login, passwd, sshd, rlogin … lại có thể hiểu và làm việc với shadow password; hay tại sao các chương trình su, rlogin lại đòi hòi password; tại sao một số hệ thống chỉ cho một nhóm nào đó có quyền su, hay sudo, hay hệ thống chỉ cho phép một số người dùng, nhóm người dùng đến từ các host xác định và các thiết lập giới hạn cho những người dùng đó, …Tất cả đều có thể lý giải với PAM. Ứng dụng của PAM còn nhiều hơn những gì tôi vừa nêu nhiều, và nó bao gồm các module để tiện cho người quản trị lựa chọn.

2. Cấu trúc PAM

- Các ứng dụng PAM được thiết lập trong thư mục /etc/pam.d hay trong file /etc/pam.conf ( login, passwd, sshd, vsftp, …)
- Thư viện các module được lưu trong /lib/security ( pam_chroot.so, pam_access.so, pam_rootok.so, pam_deny.so, … )
- Các file cấu hình được lưu trong /etc/security ( access.conf, chroot.conf, group.conf ,… )
+ access.conf – Điều khiển quyền truy cập, được sử dụng cho thư viện pam_access.so.
+ group.conf – Điểu khiển nhóm người dùng, sử dụng bởi pam_group.so
+ limits.conf – thiết lập các giới hạn tài nguyên hệ thống, được sử dụng bởi pam_limits.so.
+ pam_env – Điểu khiển khả năng thay đổi các biến môi trường, sử dụng cho thư viện pam_env.so .
+ time – Thiết lập hạn chế thời gian cho dịch vụ và quyền người dùng, sử dụng cho thư viện pam_time.so.

3. Cách hoạt động của PAM

Thuật ngữ
- Các chương trình login, pass, su, sudo, … trên được gọi là privilege-granting application ( chương trình trao đặc quyền ).

- PAM-aware application: là chương trình giúp các privile-granting application làm việc với thư viện PAM.

Các bước hoạt động:

1. Người dùng chạy một ứng dụng để truy cập vào dịch vụ mong muốn, vd login.
2. PAM-aware application gọi thư viện PAM để thực hiện nhiệm vụ xác thực.
3. PAM library sẽ dựa vào file cấu hình của chương trình đó trong /etc/pam.d ( vd ở đây là login -> file cấu hình /etc/pam.d/login ) xác định loại xác thực nào được yêu cầu cho chương trình trên. Trong trường hợp không có file cấu hình, thì file /etc/pam.d/other sẽ được sử dụng.
4. PAM library sẽ load các module yêu cầu cho xác thực trên.
5. Các modules này sẽ tạo một liên kết tới các hàm chuyển đổi ( conversation functions ) trên chương trình.
6. Các hàm này dựa vào các modules mà đưa ra các yêu cầu với người dùng, vd chúng yêu cầu người dùng nhập password.
7. Người dùng nhập thông tin vào theo yêu cầu.
8. Sau khi quá trình xác thực kết thúc, chương trình này sẽ dựa vào kết quả mà đáp ứng yêu cầu người dùng ( vd cho phép login vào hệ thống ) hay thông báo thất bại với người dùng.

4. Bây giờ chúng ta sẽ nghiên cứu file config

The /etc/pam.d/rlogin file

Code:
#%PAM-1.0
    auth required /lib/security/pam_securetty.so
    auth sufficient /lib/security/pam_rhosts_auth.so
    auth required /lib/security/pam_stack.so service=system-auth
    auth required /lib/security/pam_nologin.so
    account required /lib/security/pam_stack.so service=system-auth
    password required /lib/security/pam_stack.so service=system-auth
    session required /lib/security/pam_stack.so service=system-auth
Các dòng trong file config có dạng sau:

module-type control-flag module-path module-args

----MODULE TYPE

auth: thực hiện xác thực. Thông thường, một auth module sẽ yêu cầu password để kiểm tra, hay thiết lập các định danh như nhóm người dùng, hay thẻ kerberos.

Account điều khiển sự kiểm tra “bề mặt” với yêu cầu xác thực. Ví dụ, nó có thể kiểm tra người dùng truy cập dịch vụ từ một host và trong thời gian cho phép hay không.

Password: thiết lập password. Thông thường, nó luôn có sự tương ứng giữa một module auth và một module password..

Session: điều khiển các nhiệm vụ quản lý session. Được sử dụng để đảm bảo rằng người dùng sử dụng tài khoản của họ khi đã được xác thực..

----PAM MODULE CONTROL FLAGS

Require: cờ điều khiển này nói với PAM library yêu cầu sự thành công của modules tương ứng, vd “auth required /lib/security/pam_securetty.so” à module pam_securetty.so phải thành công. Nếu module đó không được thực hiện thành công thì quá trình xác thực thất bại. Nhưng lúc đó, PAM vẫn tiếp tục với các module khác, tuy nhiên nó chỉ có tác dụng nhằm tránh khỏi việc người dùng có thể đoán được quá trình này đã bị thất bại ở giai đoạn nào.

Sufficient: cờ này khác với cờ trên ở chỗ, khi có một module thực hiện thành công nó sẽ thông báo hoàn thành ngay quá trình xác thực, mà không duyệt các module khác nữa.

Requisite: cờ này có ý nói PAM library loại bỏ ngay quá trình xác thực khi gặp bất kỳ thông báo thất bại của module nào.

Optional: cờ này ít khi được sử dụng, nó có ý nghĩa là module này được thực hiện thành công hay thất bại cũng không quan trọng, không ảnh hưởng quá trình xác thực.

----MODULE-PATH – Đường dẫn đên thư viện PAM.

----ARGUMENTS – Các biến tùy chọn cho các module.

Các module ( auth, account, password, session ) được thực hiện trong stack và chúng được thực hiện theo thứ tự xuất hiện trong file config.

Các chương trình yêu cầu xác thực đều có thể sử dụng PAM.


5. Sau đây tôi xin giới thiệu chức năng của một số module

* pam_access.so:
- Support module type : account
- Module này sử dụng file thiết lập trong etc/security/access.conf .
File cấu hình này có dạng như sau:

Code:
 < + or - > : : + : grant permission
 - : deny permission
Với username list là người dùng hay nhóm người dùng, tty list là login qua console, host list xác định các host hay domain. Chúng ta có thể sử dụng các từ khóa ALL=tất cả, EXCEPT=trừ,LOCAL=cục bộ.

Ví dụ: sau cho cấm osg login từ tất cả, và cho phép linet login từ xa.

Code:
account required pam_access.so
 -:osg:ALL
 +:linet:ALL EXCEPT LOCAL
* pam_chroot.so:
Support module type :account; session; authentication
Dùng để chroot cho các user thiết lập trong /etc/security/chroot.conf
Ví dụ, tôi thực hiện chroot cho sshd để người dùng linet chỉ có quyền truy cập trong /home/osg mà không có quyền truy cập đến các thư mục home của người dùng khác
Thêm dòng sau trong /etc/pam.d/sshd ( lưu ý trong /etc/sshd/sshd_config phải thiết lập UsePAM = yes )

Code:
 session required pam_chroot.so
* pam_deny.so:

Support module type: account; authentication; password; session
Module này luôn trả về giá trị false. Vd nó được dùng trong /etc/pam.d/other để từ chối mọi truy cập của người dùng khi truy cập vào các PAM-aware program mà không có file cấu hình PAM

- Acount module type: Từ chối người dùng quyền truy cập vào hệ thống

Code:
#add this line to your other login entries to disable all accounts
 login account required pam_deny.so
- Authentication module type: từ chối truy cập, thiết lập giá trị mặc định. vd trong /etc/pam.d/other. Khi người dùng login vào hệ thống, đầu tiên sẽ gọi các module trong /etc/pam.d/login ra và yêu cầu người dùng nhập thông tin tương ứng ( username, password ), nếu các thông tin này không đáp ứng thì PAM sẽ gọi /etc/pam.d/other ra để deny quyền truy cập.

Code:
#/etc/pam.d/other
 auth required /lib/security/$ISA/pam_deny.so
 account required /lib/security/$ISA/pam_deny.so
 password required /lib/security/$ISA/pam_deny.so
 session required /lib/security/$ISA/pam_deny.so
- Password module type: Không cho phép change password

ví dụ không cho phép người dùng đổi passwd
Thêm dòng sau vào /etc/pam.d/passwd

Code:
password required pam_deny.so
* pam_limits.so
- Support module type: session
Thiết lập các giới hạn tài nguyên trong /etc/security/limit

Code:
username|@groupname type resource limit.
A resource can be one of these keywords:
· core - Limits the size of a core file (KB).
· data - Maximum data size (KB).
· fsize - Maximum file size (KB).
· memlock - Maximum locked-in memory address space (KB).
· nofile - Maximum number of open files.
· rss - Maximum resident set size (KB).
· stack - Maximum stack size (KB).
· cpu - Maximum CPU time in minutes.
· nproc - Maximum number of processes.
· as - Address space limit.
· maxlogins - Maximum number of logins allowed for this user.

Thông tin chi tiết ở trong /etc/security/limits.conf

Vd dưới đây, tất cả user giới hạn 10 MB mỗi session và cho phép max là 4 logins đồng thời. ftp được cho phép 10 login đồng thời ( hứu ích cho anonymous ftp ); thành viên của nhóm manager giới hạn 40 process, nhóm developers giới hạn 64MB bộ nhớ, và các user thuộc wwwusers không thể tạo files lớn hơn 50 MB = 500000 KB.

Setting quotas and limits
Code:
* hard rss 10000
 * hard maxlogins 4
 * hard core 0
 bin -
 ftp hard maxlogins 10
 @managers hard nproc 40
 @developers hard memlock 64000
 @wwwusers hard fsize 50000
Để active các limits này, bạn cần thêm dòng sau vào cuối /etc/pam.d/login:

Code:
session required /lib/security/pam_limits.so.
* pam_listfile.so

Module này đọc thông tin trong file và thực hiện hành động được thiết lập ( như cho phép hay không cho phép truy cập ) dựa vào sự tồn tại hay không của các nhân tố như username, host, groups, …

Ví dụ trong vsftpd

Code:
auth required /lib/security/pam_listfile.so item=user \
 sense=deny file=/etc/ftpusers onerr=succeed
Yêu cầu PAM load pam_listfile module và đọc trong /etc/ftpusers, nếu /etc/ftpusers chứa các dòng username, thì PAM sẽ sử dụng sense=deny để quyết định ngăn cản các user này truy cập vào. Vậy các user trong /etc/ftpusers sẽ ko có quyền truy cập vào ftp.

* pam_rootok.so

Sử dụng module này để yêu cầu root không cần nhập password khi thực hiện chương trình, vd nó được gán vào su để chi rằng root không cần gõ passwd khi đánh lệnh su

* pam_wheel.so
Chỉ cho phép quyền truy cập root với group wheel. Ví dụ chỉ cho phép những người thuộc nhóm wheel có quyền su lên root.

Code:
#
 # root gains access by default (rootok), only wheel members can
 # become root (wheel) but Unix authenticate non-root applicants.
 #
 auth sufficient pam_rootok.so
 auth required pam_wheel.so
 auth required pam_unix_auth.so
---------------------- Tham khảo -----------------------------------
Document:
Code:
http://www.kernel.org/pub/linux/libs/pam/pre/doc/
Mã nguồn module:
Code:
http://cvs.sourceforge.net/viewcvs.py/pam/Linux-PAM/modules/
(Nguồn: HVA)


Bài viết cùng chủ đề:
IrimiNage vẫn chưa có mặt trong diễn đàn  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Trả Lời Với Trích Dẫn
Trả lời

Bookmarks

Tags
admin server, admintalk, bao mat, bảo mật, hướng dẫn, kinh nghiệm, kinh nghiem, linux, linux server, may chu, máy chủ, pam, server, server admin, support, unix


Ðang đọc: 1 (0 thành viên và 1 khách)
 
Ðiều Chỉnh Kiếm Trong Bài
Kiếm Trong Bài:

Kiếm Chi Tiết
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Mở
Pingbacks are Mở
Refbacks are Mở

Chuyển đến



Múi giờ GMT. Hiện tại là 09:56 AM.
Powered by: vBulletin - Copyright © 2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.AdminTalk.vn
Powered by vBCMS® 1.2.5 ©2002 - 2012 VinaCIS® Corporation