bell_poupee

New Member

Download miễn phí Cài đặt hệ điều hành linux Redhat 8.0





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êunhiều, và nó bao gồm các module
để tiện cho người quản trị lựa chọn.



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

này, ta cần thực hiện việc kích hoạt telnetd (telnet server) với tham
số -h. (Tham số -h sẽ ngǎn telnet tiết lộ các thông tin và chỉ in ra dấu nhắc
"Login:" cho những người kết nối từ xa).
Do các phiên bản RedHat 7.x khi chạy telnetd không còn sử dụng inetd nữa (mà
sử dụng xinetd - một phiên bản nâng cấp và có nhiều cải tiến so với inetd) nên
cách cấu hình lại telnetd sẽ khác nhau tuỳ theo phiên bản RedHat đang sử dụng.
+ Với các phiên bản RedHat 6.x và trước đó, thực hiện các bước sau:
Trong file /etc/inetd.conf, thay đổi dòng
www.nhipsongcongnghe.net
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
chuyển thành :
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
Tiếp theo, khởi động lại inetd bằng câu lệnh:
# /etc/rc.d/init.d/inetd restart
+ Với các phiên bản RedHat 7.x, thực hiện bước sau:
Trong file /etc/xinetd.d/telnet , thêm chọn lựa:
server_args = -h
File trên sẽ có dạng như sau;
service telnet
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
server_args = -h
}
Tiếp theo, khởi động lại xinetd bằng câu lệnh:
# /etc/rc.d/init.d/xinetd restart
6.6. Tránh sử dụng các dịch vụ không mã hoá thông tin trên đường truyền
Mặc dù ở trên chúng tui đã trình bày cách ngǎn dịch vụ telnet tiết lộ thông tin,
nhưng chúng tui xin có lời khuyên: Tuyệt đối tránh sử dụng những dịch vụ kiểu
như telnet, ftp (ngoại trừ ftp anonymous) vì những dịch vụ này hoàn toàn không
hề mã hoá mật khẩu khi truyền qua mạng. Bất kỳ một kẻ phá hoại nào cũng có
www.nhipsongcongnghe.net
thể dễ dàng "tóm" được mật khẩu của bạn bằng những công cụ nghe lén kiểu như
sniffer.
Ơ' những trường hợp có thể, nên sử dụng dịch vụ ssh thay thế cho cả ftp và
telnet: dịch vụ SSH (Secure Shell) dùng cơ chế mã hoá công khai để bảo mật
thông tin, thực hiện mã hoá cả mật khẩu lẫn thông tin chuyển trên đường truyền.
Hiện đang được sử dụng khá rộng rãi, gói phần mềm của SSH cũng được đóng
kèm trong hầu hết các phiên bản gần đây của Linux. Chẳng hạn, các phiên bản
RedHat từ 7.0 trở lên mặc định đều cài OpenSSH, một sản phẩm mã nguồn mở có
thể sử dụng hoàn toàn miễn phí. (Bạn đọc có thể tham khảo website
www.openssh.org về sản phẩm này).
Ngoài ra, những dịch vụ "r" kiểu như rsh, rcp hay rlogin chúng tui cũng khuyên
nên tuyệt đối tránh sử dụng. Lý do là các dịch vụ này ngoài việc truyền mật khẩu
không mã hoá còn thực hiện việc kiểm tra quyền truy xuất dựa trên địa chỉ máy
kết nối, là một điều cực kỳ nguy hiểm. Các kẻ phá hoại sử dụng kỹ thuật spoofing
đều có thể dễ dàng đánh lừa được cách kiểm tra này khi "làm giả" được địa chỉ
của máy truy xuất dịch vụ hợp lệ.
7. 7. Cấm sử dụng account root từ consoles
Có thể bạn đọc đều nhận thấy, ngay sau khi cài đặt RedHat, account root sẽ
không có quyền kết nối telnet vào dịch vụ telnet trên hệ thống (chỉ những
account thường mới có thể kết nối). Nguyên nhân là do file /etc/securetty quy
định những console được phép truy nhập bởi root chỉ liệt kê những console "vật
lý" (tức là chỉ truy xuất được khi ngồi trực tiếp tại máy chủ) mà bỏ qua những kết
nối qua mạng. Dịch vụ ftp cũng sẽ bị hạn chế này: account root không được phép
truy xuất ftp qua mạng.
Để tǎng tính bảo mật hơn nữa, soạn thảo file /etc/securetty và bỏ đi những
console bạn không muốn root truy nhập từ đó.
8.8. Cấm "su" lên root
Trong Linux, lệnh su (Substitute User) cho phép người dùng chuyển sang một
account khác. Nếu không muốn một người bất kỳ "su" thành root, thêm hai dòng
sau vào nội dung file /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
www.nhipsongcongnghe.net
Như vậy, chỉ có những người có đǎng ký là thành viên của nhóm wheel mới có
quyền "su" thành root. Để cho phép một người dùng có quyền này, người quản trị
chỉ việc gán account của người này vào nhóm wheel (qua file /etc/group)
9.9. Hạn chế các thông tin ghi bởi bash shell
Thông thường, tất cả các lệnh được thực hiện tại dấu nhắc shell của các account
đều được ghi vào file ".bash_history" nằm trong thư mục cá nhân của các
account. Điều này cũng gây nên những nguy hiểm tiềm ẩn, đặc biệt với những
ứng dụng đòi hỏi phải gõ các thông mật như mật khẩu trên dòng lệnh. Người
quản trị nên hạn chế nguy cơ này dựa trên 2 biến môi trường HISTFILESIZE và
HISTSIZE: Biến môi trường HISTFILESIZE xác định số lệnh (gõ tại dấu nhắc shell)
sẽ được lưu lại cho lần truy nhập sau, còn biến môi trường HISTSIZE xác định số
lệnh sẽ được ghi nhớ trong phiên làm việc hiện thời. Ta có thể giảm giá trị của
HISTSIZE và đặt bằng 0 giá trị HISTFILESIZE để giảm tối đa những nguy hiểm đã
nêu trên.
Để thực hiện việc này, chỉ cần đơn giản thay đổi giá trị hai biến này trong file
/etc/profile như sau:
HISTFILESIZE=0
HISTSIZE=20
Như vậy, tại phiên làm việc hiện thời, shell chỉ ghi nhớ 20 lệnh gần nhất, đồng
thời không ghi lại các lệnh người dùng đã gõ khi người dùng thoát ra khỏi shell.
10.10. Cấm nhòm ngó tới những file script khởi động Linux
Khi khởi động Linux, các file script được đặt tại thư mục /etc/rc.d/init.d sẽ được
thực hiện. Để tránh những sự tò mò không cần thiết, người quản trị nên hạn chế
quyền truy xuất tới những file này chỉ cho account root bằng lệnh sau:
# chmod -R 700 /etc/rc.d/init.d/*
11.11. Xoá bỏ những chương trình SUID/SGID không sử dụng
Thông thường, những ứng dụng được thực hiện dưới quyền của account gọi thực
hiện ứng dụng. Tuy nhiên, Unix và Linux sử dụng một kỹ thuật đặc biệt cho phép
một số chương trình thực hiện dưới quyền của người quản lý chương trình (chứ
www.nhipsongcongnghe.net
không phải người thực hiện). Đây chính là lý do tại sao tất cả mọi user trong hệ
thống đều có thể đổi mật khẩu của mình trong khi không hề có quyền truy xuất
lên file /etc/shadow: Nguyên nhân vì lệnh passwd có gán thuộc tính SUID và
được quản lý bởi root, mà chỉ có root mới có quyền truy xuất /etc/shadow.
Tuy nhiên, khả nǎng này có thể gây nên những nguy cơ tiềm tàng: Nếu một
chương trình có tính nǎng thực thi được quản lý bởi root, do thiết kế tồi hay do
được cài đặt cố tình bởi những kẻ phá hoại mà lại có thuộc tính SUID thì mọi điều
tồi tệ đều có thể xảy ra. Thực tế cho thấy, khá nhiều kỹ thuật xâm nhập hệ thống
mà không có quyền root được thực hiện nhờ kỹ thuật này: kẻ phá hoại bằng cách
nào đó tạo được một shell (ví dụ bash) được quản lý bởi root, có thuộc tính SUID.
Sau đó mọi truy xuất phá hoạt sẽ được thực hiện qua shell này vì mọi lệnh thực
hiện trong shell sẽ được thực hiện dưới quyền của root.
Thuộc tính SGID cũng tương tự như thuộc tính SUID: các chương trình được thực
hiện với quyền nhóm là nhóm quản lý chương trình chứ không phải nhóm của
người chạy chương trình.
Như vậy, người quản trị sẽ phải thường xuyên kiểm tra xem trong hệ thống có
những ứng dụng nào có thuộc tính SUID hay SGID mà không được phép không?
Để tìm tất cả các file có thuộc tính SUID/SGID, sử dụng lệnh find như s...
 

Các chủ đề có liên quan khác

Top