Quản trị viên hệ thống Linux có nhiều nhiệm vụ khác nhau, một trong những nhiệm vụ quan trọng của họ là cải thiện bảo mật hệ thống Linux, quản lý người dùng và truy cập thông tin đăng nhập của người dùng trong Linux. Vì quản trị viên hệ thống chịu trách nhiệm khắc phục các sự cố của hệ điều hành Linux và bảo vệ hệ thống Linux khỏi sự xâm nhập và truy cập trái phép, nên việc vô hiệu hóa đăng nhập của người dùng trong Linux là một trong những giải pháp an toàn và hiệu quả khi gặp sự cố bảo mật. Theo dõi bài viết dưới đây để biêt cách vô hiệu hóa khả năng đăng nhập của người dùng trong Linux.
Sự cần thiết phải quản lý đăng nhập của người dùng trong Linux
Như bạn đã biết, người dùng Root, tức là siêu người dùng, có đủ đặc quyền để truy cập và thay đổi cơ bản trong hệ thống Linux. Hạn chế quyền truy cập đối với người dùng root và không root là một biện pháp bảo mật. Bằng cách hạn chế quyền truy cập của người dùng Root, bạn sẽ vô hiệu hóa các đặc quyền không giới hạn từ người dùng để thực hiện bất kỳ thay đổi nào. Do đó làm cho hệ thống Linux an toàn hơn trong một số trường hợp nhất định. Ngoài ra, việc tạo các hạn chế cho người dùng không Root giúp ngăn chặn sự xâm nhập và truy cập của người dùng bình thường không có đặc quyền Root, và chỉ những người nhất định và hạn chế mới có quyền truy cập vào hệ thống Linux. Bằng cách này bạn sẽ kiểm soát truy cập trái phép.
Nếu với tư cách là quản trị viên hệ thống Linux, bạn đang tìm kiếm một giải pháp để cải thiện khả năng bảo mật chống lại sự xâm nhập và truy cập trái phép vào hệ thống Linux của mình sau khi mua VPS Linux, thì việc tìm hiểu cách vô hiệu hóa quyền truy cập đăng nhập của người dùng trong Linux là điều cần thiết.
Để vô hiệu hóa quyền truy cập đăng nhập của người dùng trong Linux, có nhiều lệnh khác nhau mà chúng tôi cung cấp trong bài viết này như sau:
- Chỉnh sửa tệp /etc/nologin và nologin shell.
- Chỉnh sửa shell đăng nhập của tài khoản trong tệp /etc/passwd.
- Chỉnh sửa giá trị mật khẩu trong tệp /etc/shadow.
- Lệnh usermod.
- Chỉnh sửa thời gian hết thời hạn của tài khoản người dùng
Trong bài viết này, bạn có thể vô hiệu hóa quyền truy cập đăng nhập của người dùng trong Linux theo nhiều cách khác nhau và tăng cường bảo mật cho hệ thống Linux của bạn. Đây là một trong những vấn đề quan trọng nhất. Trong những hướng dẫn dưới đây, chúng tôi sẽ triển trên Linux Ubuntu. Nhưng trong các bản phân phối Linux hiện đại, hướng dẫn vô hiệu hóa quyền truy cập đăng nhập của người dùng cũng tương tự.
=>> Cách đặt lại MySQL Root Password trong Linux và Windows
Vô hiệu hóa khả năng đăng nhập người dùng trong Linux bằng cách chỉnh sửa tệp /etc/nologin
Đây là cách tốt nhất để kiểm soát quyền truy cập đăng nhập của người dùng là vô hiệu hóa quyền truy cập đăng nhập cho tất cả người dùng ngoại trừ người dùng root. Thông thường, phương pháp này được sử dụng để cải thiện tính bảo mật của hệ thống Linux khi cần bảo vệ mạnh mẽ hệ thống Linux khỏi sự xâm nhập.
Tệp /etc/nologin được sử dụng để hiển thị thông báo cho những người dùng cố gắng truy cập hệ thống. Vì vậy để hạn chế quyền truy cập của tất cả các tài khoản người dùng ngoại trừ tài khoản người dùng root, trước tiên hãy tạo một tệp trong /etc/nologin:
sudo touch /etc/nologin
Bằng cách thực hiện lệnh trước đó, một tệp đã được tạo sẽ cung cấp thông báo cho người dùng. Và khi thông báo kết thúc, người dùng sẽ không truy cập được thông tin đăng nhập Linux. Do đó, chỉ người dùng root mới có quyền truy cập vào hệ thống Linux.
Bạn cũng có thể viết một thông báo trong tệp cho những người dùng không truy cập được vào hệ thống Linux để họ biết lý do không truy cập được thông tin đăng nhập của người dùng vào hệ thống Linux. Có thể sử dụng lệnh sau làm hướng dẫn:
sudo sh -c 'echo " The Server is down for a Planned maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin " > /etc/nologin'
Sau đó thử truy cập máy chủ Linux với tư cách người dùng không phải root để đảm bảo các cài đặt được áp dụng:
ssh ZingServer@host
Output:
ZingServer@host's password:
The Server is down for a Planned maintenance. We apologize for any inconvenience caused, the system will be up and running in 1 hours time. For more information, contact the system admin.
Connection closed by host
Như bạn có thể thấy, người dùng ZingServer bình thường không thể truy cập máy chủ Linux. Mặc dù hạn chế này không được đặt cho người dùng Root. Bạn có thể nhập lệnh sau để xóa hạn chế được áp dụng khi đăng nhập của người dùng bình thường:
sudo rm /etc/nologin
Vô hiệu hóa khả năng đăng nhập người dùng trong Linux thông qua nologin Shell
Có một cách khác để hạn chế khả năng truy cập đăng nhập, hạn chế người dùng truy cập trình shell, trong khi người dùng có thể truy cập hệ thống Linux mà không cần shell bằng các chương trình như FTP. Bạn thậm chí có thể tùy chỉnh quyền truy cập vào trình shell cho một số người dùng cụ thể để những người bị hạn chế có quyền truy cập vào shell.
- Ubuntu/Debian
Trong các hệ điều hành Ubuntu và Debian và các dẫn xuất của chúng, bằng cách sử dụng tệp /bin/false, bạn có thể hạn chế quyền truy cập của người dùng vào Shell.
sudo chsh -s /bin/false ZingServer
- RHEL/CentOS/Fedora
Để ngăn người dùng vào trình shell, bạn phải thay đổi shell người dùng trong tệp /etc/passwd thành /sbin/nologin. Trong các hệ điều hành Fedora, CentOS và RHEL, hãy chạy lệnh sau cho mục đích này:
chsh -s /bin/nologin ZingServer
Vô hiệu hóa khả năng truy cập đăng nhập qua /etc/passwd.
Trong phương pháp này, việc thay đổi giá trị mặc định của shell đăng nhập tài khoản người dùng thành một giá trị cụ thể sẽ giới hạn quyền truy cập đăng nhập của người dùng. Do đó, để ngăn chặn quyền truy cập vào thông tin đăng nhập của người dùng (ví dụ: người dùng ZingServer), hãy nhập lệnh sau vào tệp /etc/passwd:
less /etc/passwd | grep ZingServer
Output:
ZingServer:x:102:105::/nonexistent:/usr/sbin/nologin
Như bạn có thể thấy, giá trị cuối cùng của shell của người dùng mặc định được đặt thành /usr/sbin/nologin để đăng nhập thành công. Do đó, để đảm bảo rằng quyền truy cập đăng nhập của người dùng bị vô hiệu hóa trong Linux, hãy đăng nhập vào hệ thống Linux với tư cách là người dùng ZingServer bằng cách chạy lệnh sudo su:
sudo su
ZingServer
Output:
This account is currently not available.
Vì shell đăng nhập mặc định của người dùng ZingServer được đặt thành /usr/sbin/nologin nên người dùng ZingServer không thể truy cập thông tin đăng nhập máy chủ Linux.
=>> Cách phân vùng và định dạng thiết bị lưu trữ trên Linux
Vô hiệu hóa đăng nhập bằng tệp /etc/shadow
Sử dụng tệp /etc/shadow lưu trữ các giá trị mật khẩu người dùng là một cách hữu ích khác để áp dụng các hạn chế đối với quyền truy cập đăng nhập của người dùng.
Để xem nội dung của tệp /etc/shadow, hãy chạy lệnh sau:
sudo less /etc/shadow
Bằng cách xem đầu ra của lệnh trước đó, một số tài khoản người dùng có dấu hoa thị (*), những tài khoản này không có mật khẩu đã đặt và nếu họ không thay đổi mật khẩu, họ sẽ không thành công trong việc vượt qua xác thực mật khẩu. Do đó, bạn có thể vô hiệu hóa mật khẩu bằng cách tạo tài khoản người dùng với bằng mật khẩu có giá trị bằng dấu hoa thị (*).
Để tắt khả năng truy cập đăng nhập cho một người dùng cụ thể, bạn có thể sử dụng lệnh passwd với -l và /etc/shadow | grep:
sudo passwd -l ZingServer
sudo less /etc/shadow | grep ZingServer
Output:
ZingServer:!$y$j9T$4gyOQ5ieEWdx1ZdggX3Nj1$AbEA9FsG03aTsQhl.ZVMXatwCAvnxFbE/GHUKpjf9u6:19276:0:99999:7::::::
Đầu ra của lệnh trước cung cấp mật khẩu, bạn có thể vô hiệu hóa mật khẩu này bằng cách đặt dấu (!) trước mật khẩu đó.
Lệnh passwd với -l ngăn truy cập vào thông tin đăng nhập của người dùng, nhưng lệnh passwd với -u loại bỏ các hạn chế:
sudo passwd -u ZingServer
Vô hiệu hóa đăng nhập thông qua lệnh usermod
Có thể thay đổi hồ sơ người dùng bằng cách thực hiện lệnh usermod. Tương tự như lệnh passwd, bạn có thể sử dụng lệnh usermod để chặn quyền truy cập đăng nhập của người dùng và bỏ chặn quyền truy cập đăng nhập của người dùng:
sudo usermod -L ZingServer
sudo usermod -U ZingServer
Lệnh usermod vô hiệu hóa mật khẩu trong tệp /etc/passwd và hướng dẫn nhân Linux ngăn người dùng được chỉ định truy cập hệ thống vì người dùng bị chặn đăng nhập.
Ngoài ra, một phương pháp khác là ngăn người dùng kết nối với máy chủ Linux, sử dụng lệnh usermod để thay đổi giao diện đăng nhập mặc định của người dùng thành giao diện không tồn tại (chẳng hạn như nologin):
sudo usermod -s /usr/sbin/nologin username
Vô hiệu hóa khả năng đăng nhập khi hết hạn tài khoản
Tài khoản người dùng bạn tạo trong Linux có thời gian tồn tại, tức là tài khoản có thể hết hạn. Nếu chúng ta có thể thay đổi ngày hết hạn thành một ngày trong quá khứ, thời gian tồn tại của tài khoản người dùng sẽ hết hạn trong nhân Linux. Do đó, nhân Linux ngăn đăng nhập tài khoản người dùng đã hết hạn. Để thay đổi ngày hết hạn của tài khoản người dùng, bạn có thể sử dụng lệnh chage -E:
# date
Thu jan 26 20:38:36 EDT 2023
chage -E 2023-01-25 user5
chage -l user5
Last password change : jan 26, 2023
Password expires : Mar 26, 2024
Password inactive : never
Account expires : jan 25, 2023
Minimum number of days between password change : 0
Maximum number of days between password change : 90
Number of days of warning before password expires : 7
Bằng cách thay đổi ngày hết hạn của tài khoản người dùng thành ngày hôm trước, bạn đã xác định tài khoản người dùng là hết hạn. Và nếu tài khoản người dùng được chỉ định muốn đăng nhập vào hệ thống Linux vào ngày bạn chỉ định, thì tài khoản đó đã hết hạn và quyền truy cập đăng nhập đã bị vô hiệu hóa.
Trong bài viết này, chúng tôi đã trình bày các phương pháp phổ biến nhất để vô hiệu hóa quyền truy cập đăng nhập của người dùng trong Linux. Trong đó phương pháp tốt nhất là chỉnh sửa tệp /etc/nologin vì bạn có thể cung cấp thông báo cho người dùng để giải thích lý do không truy cập được thông tin đăng nhập. Cảm ơn đã theo dõi bài viết và chúc các bạn thành công!