Loại bỏ các account và được tạo sẵn
mặc định khi cài đặt.
Xoá bỏ tất cả các account và nhóm (group) đã
được tạo sẵn trong hệ thống
nhưng không có nhu cầu sử dụng, ví dụ như
lp, sync, shutdown, halt, news, uucp, operator, games, gopher, v.v...
(Bạn cần biết rõ những account và nhóm nào không
cần cho hệ thống của mình rồi hãy xoá)
Thực hiện việc xoá bỏ account với lệnh :
# userdel <account-name>
Ví dụ, nếu không có nhu cầu về in ấn trên
hệ thống, có thể xoá account lp như sau:
# userdel lp
Tương tự như vậy , có thể thực
hiện việc xoá bỏ các nhóm không cần thiết
với lệnh
# groupdel <group-name>
Che giấu file chứa mật khẩu
Mặc định của Unix và cả Linux, mật
khẩu của toàn bộ các account đã được
lưu ngay trong file /etc/password, file có quyền đọc
bởi tất cả các account trong hệ thống!
Đây là một kẽ hở lớn: Mặc dù các
mật khẩu đều được mã hoá, nhưng
việc giải mã ngược là có thể thực
hiện được (và có thể thực hiện khá
dễ dàng, đặc biệt vì cơ chế mã hoã
mật khẩu không phải là khó phá). V ì lí do trên, gần
đây các nhà phát triển Unix và Linux đã phải
đặt riêng mật khẩu mã hoá vào một file mà
chỉ có account root mới đọc được:
file /etc/shadow. (Khi sử dụng phương pháp này,
để đảm bảo tính tương thích, nơi
vốn đặt mật khẩu trong file /etc/password
người ta đánh dấu "x")
Nếu bạn đang sử dụng các phiên bản RedHat
gần đây (ví dụ RedHat 6.x hay 7.x) thì nhớ chọn
lựa Enable the shadow password khi cài đặt RedHat
để sử dụng tính nǎng che giấu mật
khẩu này (chọn lựa này là mặc định trong
hầu hết các phiên bản Linux đang s& #7917; dụng
rộng rãi hiện nay)
Loại bỏ các dịch vụ không sử dụng
Một điều khá nguy hiểm là sau khi cài đặt,
hệ thống tự động bật chạy khá
nhiều dịch vụ (và đa số là các dịch
vụ không mong muốn), dẫn tới tốn tài nguyên và
gây nên nhiều nguy cơ về bảo mật. Loại
bỏ ngay lập tức các dịch vụ không dùng
tới hoặc đơn giản bằng cách xoá bỏ
các gói phần mềm/dịch vụ không sử dụng
(qua công cụ quản lý rpm của RedHat) hoặc sử
dụng công cụ ntsysv để duyệt xem tất
cả các dịch vụ đang cài đặ t rồi vô
hiệu hoá những dịch vụ không cần thiết
(bằng cách bỏ đánh dấu các dịch vụ, không
sử dụng với phím Space). Sau khi thoát ra khỏi
ntsysv thì khởi động lại máy: các dịch vụ
không mong muốn sẽ không chạy nữa.
Fix telnet
Dịch vụ cho phép truy xuất hệ thống từ
xa telnet có khả nǎng tiết lộ thông tin về
hệ thống, dễ tạo điều kiện cho
những kẻ phá hoại tấn công dựa vào những
điểm yếu đã biết. Điều này rất
dễ nhận thấy: Mọi người dùng kết
nối từ xa vào dịch vụ telnet đều
nhận & #273;ược thông tin về tên máy, phiên bản
Linux và phiên bản của nhân (kernel) của máy chủ.
Để tránh điề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ư& #7899;c đó,
thực hiện các bước sau:
Trong file /etc/inetd.conf, thay đổi dòng
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
< BR>}
Tiếp theo, khởi động lại xinetd bằng câu
lệnh:
# /etc/rc.d/init.d/xinetd restart
Cấm sử dụng account root từ consoles
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ừ đó.
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 su bất kỳ 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
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 mN 97;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)
Cấm truy cập 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. 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/*
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 t hự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
sử dụng (chứ 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.
Khả nǎng này có thể gây nên những nguy cơ
tiềm tàng: Nếu một chư&# 417;ng trình có tính
nǎng thực thi được quản lý bởi root,
do thiết kế tồi hoặc do được cài
đặt có thuộc tính SUID thì mọi điều
tồi tệ đều có thể xảy ra. 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&# 7911;a root.
Thuộc tính SGID cũng tương tự như
thuộc tính SUID: Phải kiểm tra xem trong hệ
thống có những ứng dụng nào có thuộc tính SUID
hoặc 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ư sau:
# find / -type f \( -perm -04000 -o -perm -02000 \) \-exec ls ưlg {} \;
Nếu phát hiện được một file có thuộc
tính SUID/SGID không cần thiết, có thể loại bỏ
các thuộc tính này bằng lệnh:
# chmod a-s
Tǎng tính bảo mật cho nhân (kernel) của Linux
Linux không hẳn được thiết kế với
các tính n 62;ng bảo mật thật chặt chẽ: khá
nhiều lỗ hổng có thể bị lợi dụng
bởi những tin tặc thông thạo về hệ
thống. Do đó, việc sử dụng một hệ
điều hành với nhân được củng cố
là rất quan trọng: Một khi nhân - phần cốt lõi
nhất của hệ điều hành - được
thiết kế tốt thì nguy cơ bị phá hoại
sẽ giảm đi rất nhiều.
Bạn có thể update nhân Linux thông qua các miếng vá
(patch) tại website chuyên cung cấp các miếng vá bổ
sung cho nhân Linux về bảo mật tại địa
chỉ
www.grsecurity.net. Tại đây bạn đọc c ó
thể tìm hiểu thông tin hữu ích và tải xuống
các miếng vá bổ sung cho hệ thống Linux của
mình.