B𝗮̉𝗼 𝗺𝗮̣̂𝘁 trong 𝗟𝗶𝗻𝘂𝘅

Mặc dù Linux là một nền tảng có độ an toàn cao, nhưng không có nghĩa nó hoàn toàn miễn nhiễm với các rủi ro bảo mật. Do đó, bài viết sau đây sẽ hướng dẫn chi tiết các cách hiệu quả nhất để bảo mật Linux.
Việc nắm được quyền kiểm soát của server Linux sẽ giúp ta dễ dàng thử nghiệm, tận dụng sức mạnh và tính linh hoạt của nền tảng này. Tuy nhiên, quyền kiểm soát lớn đồng nghĩa với trách nhiệm lớn. Admin của server Linux phải theo dõi và đảm bảo hoạt động của các máy được kết nối qua mạng. Từ đó giữ hệ thống luôn được bảo mật và an toàn.
Do đó, bài viết sau đây sẽ định hướng một số giải pháp bảo mật Linux phổ biến nhất.

𝗡𝗵𝘂̛̃𝗻𝗴 𝗰𝗮́𝗰𝗵 𝘀𝗮𝘂 đ𝗮̂𝘆 𝘀𝗲̃ 𝗴𝗶𝘂́𝗽 𝗯𝗮̣𝗻 𝗯𝗮̉𝗼 𝗟𝗶𝗻𝘂𝘅 𝘁𝗼̂́𝘁 𝗵𝗼̛𝗻:

– Chặn truy cập bằng firewall
– Đăng nhập từ xa an toàn tuyệt đối với SSH
– Sử dụng Intrusion Detection System để phát hiện entry trái phép
– Chú ý cập nhật thường xuyên
– Cẩn thận khi tải các phần mềm bên ngoài
– Giới hạn các dịch vụ
– Hãy sử dụng SFTP thay cho FTP
– Triển khai các Chính sách Bảo mật Người dùng hợp lý
– Chú ý đến các thiết lập quyền truy cập
– Kiểm tra malware trên server thường xuyên

𝗖𝗵𝗮̣̆𝗻 𝘁𝗿𝘂𝘆 𝗰𝗮̣̂𝗽 𝗯𝗮̆̀𝗻𝗴 𝗳𝗶𝗿𝗲𝘄𝗮𝗹𝗹

Một trong những cách bảo mật Linux đơn giản nhất chính là kích hoạt và cấu hình firewall. Firewall hoạt động như một hàng rào giữa lưu lượng truy cập chung của internet và máy tính của mình.
Cụ thể, các firewall này sẽ xem xét cẩn thận các lưu lượng vào và ra. Từ đó quyết định có nên cho phép gửi thông tin hay không.
Firewall sẽ kiểm tra các lưu lượng dựa trên một bộ quy tắc (rule) được cấu hình sẵn bởi người dùng. Thông thường, một server sẽ chỉ sử dụng một vài port mạng cho các dịch vụ hợp pháp. Các cổng còn lại không được sử dụng, và sẽ được bảo vệ an toàn ở sau firewall. Và firewall sẽ chặn mọi lưu lượng đi đến các cổng này.
Do đó, ta có thể dễ dàng loại bỏ dữ liệu không mong muốn. Thậm chí là cấu hình các điều kiện cho việc sử dụng các dịch vụ.
𝗨𝗙𝗪
UFW là viết tắt của Uncomplicated Firewall, được thiết kế để cung cấp khả năng bảo vệ tốt mà không cần các cú pháp phức tạp.
Giống với hầu hết các loại firewall Linux, UFW có bản chất là một front-end. Các UFW có nhiệm vụ kiểm soát Netfilter Firewall có trong Linux kernel. Đây thường là một firewall đơn giản, chủ yếu dành cho những người dùng chưa quen với các giải pháp firewall Linux.
𝗜𝗣𝗧𝗮𝗯𝗹𝗲𝘀
Đây chính là giải pháp firewall Linux phổ biến nhất hiện nay. IPTables là một thành phần khác để quản lý Netfilter Firewall có trong Linux kernel. IPTables đã xuất hiện từ hơn 20 năm trước, đồng thời đã trải qua rất nhiều lần kiểm tra bảo mật để được đảm bảo an toàn. Ngoài ra, còn có một phiên bản khác có tên IP6Tables, chuyên dùng để hạn chế IPv6. Các cấu hình IPTables cũng rất phổ biến trong việc quản lý các máy và bảo mật Linux. Cú pháp của IPTables tương đối phức tạp, tuy nhiên đây là một công cụ vô cùng mạnh mẽ, sở hữu rất nhiều rule linh hoạt.
𝗜𝗣𝟲𝗧𝗮𝗯𝗹𝗲𝘀
Như đã đề cập ở trên, bên cạnh IPTables thì còn có IP6Tables, dùng để hạn chế các địa chỉ IPv6.
Firewall netfilter ở trong Linux kernel lưu giữ IPv4 và IPv6 ở các table khác nhau. Do đó, chúng được tách biệt hoàn toàn với nhau. Các rule quyết định bước cuối cùng của packet được xác định bởi phiên bản giao thức đang được sử dụng.
Vì vậy, sẽ cần có một bộ rule riêng biệt khi IPv6 được enable. Lệnh IP6Tables có cú pháp tương tự như lệnh IPTables. Vì vậy việc hạn chế các địa chỉ với IP6Tables cũng tương đối đơn giản.
𝗡𝗙𝗧𝗮𝗯𝗹𝗲𝘀
Gần đây, có một firewall mới đã được thêm vào Linux kernel, được gọi là NFTables Firewall. Phiên bản này cũng được phát triển bởi chính nhóm tạo ra IPTables. Ngoài ra, nó cũng được kỳ vọng là sẽ thay thế firewall IPTables cũ.
Firewall NFTables triển khai các cú pháp dễ đọc hơn, đồng thời kết hợp khả năng hỗ trợ IPv6 lẫn IPv4 chỉ trong một công cụ duy nhất. Mặc dù kernel của hầu hết các phiên bản Linux đều không đủ mới để có thể triển khai NFTables, nhưng nó sẽ sớm trở nên phổ biến để có thể thay thế người đàn anh của mình.

Đ𝗮̆𝗻𝗴 𝗻𝗵𝗮̣̂𝗽 𝘁𝘂̛̀ 𝘅𝗮 𝗮𝗻 𝘁𝗼𝗮̀𝗻 𝘁𝘂𝘆𝗲̣̂𝘁 đ𝗼̂́𝗶 𝘃𝗼̛́𝗶 𝗦𝗦𝗛

Một cách khác để bảo mật Linux chính là sử dụng SSH (Secure Shell) khi không có quyền truy cập vào một server cục bộ.
Cụ thể, SSH cung cấp khả năng mã hóa end-to-end, cùng với đó là tunnel các lưu lượng không an toàn qua một kết nối bảo mật, X-fowarding (GUI qua một kết nối mạng), và còn rất cnhiều tiện ích khác. Về cơ bản, khi ta không có quyền truy cập vào kết nối cục bộ hay quản lý out-of-band, thì SSH chính là cách tốt nhất để có thể tương tác với máy.
Mặc dù bản thân giao thức này đã rất bảo mật, và cũng trải qua nhiều quá trình nghiên cứu, code review khác nhau,… Nhưng các lựa chọn cấu hình có thể tác động tích cực hoặc tiêu cực đến tính bảo mật của dịch vụ. Do đó, ta cần tìm hiểu rõ về cách cấu hình của SSH để bảo mật Linux. Cụ thể như ở dưới đây:
𝗣𝗮𝘀𝘀𝘄𝗼𝗿𝗱 𝘃𝗮̀ 𝗦𝗦𝗛-𝗞𝗲𝘆 𝗟𝗼𝗴𝗶𝗻
SSH có một mô hình xác thực linh hoạt, cho phép đăng nhập bằng nhiều phương pháp khác nhau. Trong đó, hai phương pháp phổ biến nhất là xác thực bằng password và SSH-key.
Xác thực bằng password chắc hẳn là mô hình “tự nhiên” nhất cho phần lớn người dùng. Nhưng thật ra nó lại không bảo mật bằng SSH-Key. Sở dĩ vì đăng nhập bằng password cho phép kẻ xâm nhập liên tục đoán mật khẩu, cho đến khi tìm ra được tổ hợp chính xác. Đây còn được gọi là brute-forcing. Và nó có thể dễ dàng được tự động hóa bằng các công cụ hiện đại ngày nay.
Mặt khác, SSH-key lại hoạt động bằng cách khởi tạo các key pair có tính bảo mật Linux rất cao. Các key pair này được tạo ra dưới dạng một test để xác định danh tính của người dùng. Nó cũng có thể được chia sẻ công khai dễ dàng. Và mục đích sử dụng của nó chỉ là xác thực người dùng và cho phép người dùng truy cập với private key phù hợp. Private key nên được giữ bí mật và chỉ được dùng để thực hiện các test của public key liên quan.
Về cơ bản, ta có thể thêm SSH public key trên server, và nó sẽ cho phép ta đăng nhập với một private key hợp lệ. Các key này cực kỳ phức tạp, nên brute-forcing sẽ không thể làm được gì cả. Hơn nữa, ta có thể thêm các passphrase vào trong key để tăng tính bảo mật.

𝗦𝘂̛̉ 𝗱𝘂̣𝗻𝗴 𝗳𝗮𝗶𝗹𝟮𝗯𝗮𝗻 đ𝗲̂̉ 𝗯𝗮𝗻 𝗰𝗮́𝗰 đ𝗶̣𝗮 𝗰𝗵𝗶̉ 𝗜𝗣 đ𝗼̣̂𝗰 𝗵𝗮̣𝗶

Có thêm một cách để tăng tính bảo mật của cấu hình SSH là sử dụng các giải pháp như fail2ban. Cụ thể, fail2ban là một dịch vụ giám sát các log file để xem xét các hệ thống ở xa. Nếu các hệ thống này là người dùng không hợp pháp, fail2ban sẽ tạm thời chặn các lưu lượng truy cập trong tương lai từ các địa chỉ IP được liên kết.
Sử dụng Intrusion Detection System để phát hiện entry trái phép
Một cách quan trọng nữa để bảo mật Linux là triển khai các chiến lược phát hiện những usage trái phép.
Hệ thống IDS (Intrusion Detection System) sẽ lập danh mục các cấu hình và chi tiết của file khi nó đang ở trạng thái bình thường. Sau đó, IDS sẽ so sánh với các trạng thái khác. Từ đó kiểm tra xem file đã bị chỉnh sửa hay cài đặt có bị thay đổi không.

𝙎𝙖𝙪 đ𝙖̂𝙮 𝙡𝙖̀ 𝙢𝙤̣̂𝙩 𝙨𝙤̂́ 𝙝𝙚̣̂ 𝙩𝙝𝙤̂́𝙣𝙜 𝙄𝘿𝙎 𝙥𝙝𝙤̂̉ 𝙗𝙞𝙚̂́𝙣 𝙣𝙝𝙖̂́𝙩:

𝗧𝗿𝗶𝗽𝘄𝗶𝗿𝗲
Một trong những giải pháp IDS phổ biến nhất chính là Tripwire. Nó có nhiệm vụ biên dịch một cơ sở dữ liệu (CSDL) gồm các file hệ thống. Đồng thời bảo vệ các config file và binary bằng một bộ key. Sau khi cấu hình chi tiết được xác định, các lần chạy tiếp theo sẽ thông báo về bất kỳ thay đổi nào đối với các file được Tripwire giám sát.
Mô hình của chính sách có tính linh hoạt rất cao. Nó cho phép định hình các thuộc tính đặc trưng để có thể phù hợp với môi trường của mình. Sau đó, ta có thể cấu hình Tripwire chạy thông qua một cron job. Hoặc thậm chí nó có thể thông báo qua email về các hoạt động bất thường.
𝗔𝗶𝗱𝗲
Có một tùy chọn khác để bảo mật Linux là Aide. Nó cũng tương tự như Tripwire – hoạt động bằng cách xây dựng một CSDL. Sau đó so sánh các trạng thái với nhau và thông báo cho admin khi có lỗi phát sinh.
Để chọn ra giải pháp phù hợp với nhu cầu cá nhân, hãy tìm đọc các tài liệu liên quan đến Tripwire và Aide ở trên Google hoặc trang web chính thức để có được các bản so sánh cụ thể nhất.
𝗣𝘀𝗮𝗱
Đối với công cụ Psad, thay vì giám sát các file hệ thống thì nó sẽ theo dõi các file log của firewall. Từ đó nhanh chóng tìm ra các hoạt động độc hại.
Lấy ví dụ, nếu một người dùng cố gắng thăm dò các lỗ hổng tấn công bằng port scan, Psad có thể phát hiện ra hoạt động này. Sau đó tự động thay đổi các rule của firewall để chặn người dùng đó. Ngoài ra, công cụ này cũng cho phép thiết lập nhiều mức độ nguy hiểm khác nhau để giải quyết vấn đề. Psad cũng hỗ trợ chức năng gửi thông báo qua email.
𝗕𝗿𝗼
Bro thật ra là một framework giám sát mạng, có thể được dùng như một IDS. Ngoài ra, Bro còn có thể thu thập số liệu thống kê, kiểm tra sự cố, phát hiện các mẫu,…
Hệ thống của Bro bao gồm hai lớp. Lớp đầu tiên giám sát hoạt động và tạo ra các event. Lớp thứ hai sẽ chạy các event này, được tạo thông qua một framework policy. Framework này sẽ quyết định cách xử lý các traffic. Sau đó, nó có thể tạo ra các cảnh báo, thực hiện các lệnh hệ thống, hoặc chỉ ghi lại các hoạt động,…
𝗥𝗞𝗛𝘂𝗻𝘁𝗲𝗿
Mặc dù về mặt kỹ thuật, RKHunter không phải là một hệ thống IDS. Nhưng nó lại hoạt động trên các rule tương tự như những hệ thống IDS thực thụ. Từ đó cũng có thể phát hiện các rootkit hay malware nhanh chóng.
Mặc dù Linux có rất ít virus, nhưng malware và rootkit lại tương đối phổ biến. Chúng có thể xâm nhập vào các box hoặc cho phép truy cập để khai thác dữ liệu. RKHunter sẽ tải xuống danh sách các khai thác đã biết, sau đó kiểm tra hệ thống dựa trên CSDL. Ngoài ra, RKHunter cũng có thể cảnh báo cho admin nếu phát hiện các cài đặt không an toàn trong ứng dụng.

𝗖𝗵𝘂́ 𝘆́ 𝗰𝗮̣̂𝗽 𝗻𝗵𝗮̣̂𝘁 𝘁𝗵𝘂̛𝗼̛̀𝗻𝗴 𝘅𝘂𝘆𝗲̂𝗻

Các nhà bảo trì phân phối luôn cố gắng cập nhật các bản vá mới nhất để khắc phục sớm mọi lỗ hổng phần mềm trên hệ thống. Do đó, hãy luôn chú ý đến các bản cập nhật và thường xuyên cài đặt chúng để bảo vệ hệ thống Linux của mình.

𝗖𝗮̂̉𝗻 𝘁𝗵𝗮̣̂𝗻 𝗸𝗵𝗶 𝘁𝗮̉𝗶 𝗰𝗮́𝗰 𝗽𝗵𝗮̂̀𝗻 𝗺𝗲̂̀𝗺 𝗯𝗲̂𝗻 𝗻𝗴𝗼𝗮̀𝗶

Người dùng thường lựa chọn sử dụng các phần mềm từ những repository chính thức và có uy tín. Tuy nhiên, các phần mềm từ những repository ngẫu nhiên và PPA lại thường được duy trì bởi những người hay tổ chức lạ. Do đó sẽ có rủi ro bảo mật rất cao.
Những phần mềm này thường không có rule được thiết lập, chủ yếu là không từ những nguồn không chính thức. Do đó, hãy luôn cân nhắc cẩn thận khi sử dụng các phần mềm bên ngoài.

𝗚𝗶𝗼̛́𝗶 𝗵𝗮̣𝗻 𝗰𝗮́𝗰 𝗱𝗶̣𝗰𝗵 𝘃𝘂̣

Mục đích chính của server là cung cấp các dịch vụ để mọi người có thể truy cập. Tuy nhiên, ta nên giới hạn các dịch vụ mà ta đang cần và sử dụng trên máy riêng của mình. Bởi vì mỗi dịch vụ được enable chính là một vector rủi ro cho mình. Vì vậy hãy loại bỏ nhiều vector như vậy nhất có thể. Tất nhiên là việc này không được ảnh hưởng đến chức năng cốt lõi.
Nếu đang sử dụng một server headless (không kết nối với monitor) hay không chạy bất kỳ chương trình đồ họa (non-web) nào, hãy disable chúng. Thậm chí, hãy uninstall cả server X-display của mình.
Giải pháp này cũng có thể được áp dụng trong nhiều trường hợp khác. Không có máy in? Hãy disable dịch vụ “Ip”. Không chia sẻ mạng Windows? Vậy thì hãy disable dịch vụ “samba”! Khi đó ta có thể loại trừ được phần lớn rủi ro về bảo mật Linux.

𝗛𝗮̃𝘆 𝘀𝘂̛̉ 𝗱𝘂̣𝗻𝗴 𝗦𝗙𝗧𝗣 𝘁𝗵𝗮𝘆 𝗰𝗵𝗼 𝗙𝗧𝗣

Chúng tôi hiểu việc này không hề dễ dàng cho nhiều người. Nhưng ta cần phải biết, FTP vốn dĩ là một giao thức không an toàn. Tất cả xác thực đều được gửi dưới dạng text thuần túy. Do đó, bất kỳ ai theo dõi kết nối giữa server và máy cục bộ để có được thông tin đăng nhập của ta.
Thực tế, có rất ít trường hợp mà ta cần triển khai FTP. Cụ thể, giả sử ta chỉ sử dụng một mirror ẩn danh, public, read-only download. Thì chỉ cần sử dụng FTP là đủ. Ngoài ra, FTP cũng có thể được dùng khi cần chuyển các file giữa hai máy tính. Và hai máy này được đặt sau một firewall có NAT. Lúc đó kết nối hoàn toàn được bảo mật.Còn lại, chúng ta nên sử dụng một giải pháp thay thế an toàn hơn như vậy để bảo mật Linux. Bộ SSH có một giao thức thay thế gọi là SFTP, hoạt động tương tự như FTP. Nhưng nó lại có được tính bảo mật tuyệt vời của giao thức SSH.
Khi đó, ta có thể an tâm chuyển các thông tin đến và đi từ server của mình. Bên cạnh đó, hầu hết các FTP client cũng có thể giao tiếp với server SFTP.

𝗧𝗿𝗶𝗲̂̉𝗻 𝗸𝗵𝗮𝗶 𝗰𝗮́𝗰 𝗖𝗵𝗶́𝗻𝗵 𝘀𝗮́𝗰𝗵 𝗕𝗮̉𝗼 𝗺𝗮̣̂𝘁 𝗡𝗴𝘂̛𝗼̛̀𝗶 𝗱𝘂̀𝗻𝗴 𝗵𝗼̛̣𝗽 𝗹𝘆́

Sau đây là một số giải pháp bảo mật Linux giúp ta quản lý người dùng tốt hơn:
𝗗𝗶𝘀𝗮𝗯𝗹𝗲 𝗿𝗼𝗼𝘁 𝗹𝗼𝗴𝗶𝗻
Các root user có thể xuất hiện ở bất cứ đâu trên các hệ thống tương tự như POSIX. Ngoài ra, nó cũng là một tài khoản toàn năng đúng nghĩa. Vì vậy đây cũng là một mục tiêu lý tưởng cho các cuộc tấn công. Do đó, ta nên disable root login nếu đã cấu hình quyền truy cập sudo, hoặc nếu thích sử dụng su command hơn.
Ta có thể disable root login ở xa trong SSH daemon, hoặc disable các login cục bộ. Cụ thể, chỉ cần tạo các hạn chế ở trong file /etc/securety.
𝗧𝗮̣𝗼 𝗰𝗮́𝗰 𝘁𝗮̀𝗶 𝗸𝗵𝗼𝗮̉𝗻 đ𝗮̣̆𝗰 𝘁𝗵𝘂̀
Một cách khác để bảo mật Linux chính là tạo các tài khoản đặc thù cho từng người dùng và dịch vụ. Đồng thời chỉ cấp cho các tài khoản này những quyền tối thiểu để thực hiện các tác vụ. Hãy khóa mọi thứ mà các tài khoản này không cần truy cập.
Đây là một chính sách bảo mật rất quan trọng. Nếu được thiết lập hợp lý, thì khi người dùng hay dịch vụ bị xâm phạm, nó sẽ không dẫn đến hiệu ứng domino cho phép các kẻ tấn công có quyền truy cập vào lượng lớn các hệ thống. Do đó, nó sẽ cách ly được các vấn đề, hạn chế tối đa rủi ro bảo mật.
Bên cạnh đó, ta cũng nên chú ý disable các tài khoản không cần thiết sau khi gỡ các phần mềm, hoặc các user không còn quyền truy cập vào hệ thống nữa.

𝗖𝗵𝘂́ 𝘆́ đ𝗲̂́𝗻 𝗰𝗮́𝗰 𝘁𝗵𝗶𝗲̂́𝘁 𝗹𝗮̣̂𝗽 𝗾𝘂𝘆𝗲̂̀𝗻 𝘁𝗿𝘂𝘆 𝗰𝗮̣̂𝗽

Việc cân bằng đến các thiết lập truy cập sao cho không ảnh hưởng đến tiến độ công việc, mà cũng không gây rủi ro bảo mật không phải là một việc dễ dàng. Do đó, ta cần phải cẩn thận xem xét trong nhiều tình huống khác nhau.
Vì vậy, luôn suy nghĩ kỹ trước khi đặt quyền truy cập cho bất kỳ thứ gì, đặc biệt là trên internet. Ngoài ra, cần tránh đặt bit SGID hay SUID trong quyền truy cập, trừ khi biết rõ mình đang làm gì.
Cài đặt quyền truy cập với các file sẽ phụ thuộc rất nhiều vào mục đích sử dụng cụ thể. Tuy nhiên, hãy cố gắng thiết lập quyền truy cập càng ít càng tốt. Đây cũng chính là một trong những lĩnh vực khó nhất và dễ hiểu sai nhất.

𝗞𝗶𝗲̂̉𝗺 𝘁𝗿𝗮 𝗺𝗮𝗹𝘄𝗮𝗿𝗲 𝘁𝗿𝗲̂𝗻 𝘀𝗲𝗿𝘃𝗲𝗿 𝘁𝗵𝘂̛𝗼̛̀𝗻𝗴 𝘅𝘂𝘆𝗲̂𝗻

Đúng là Linux thường ít bị tấn công bởi malware hơn Windows. Nhưng điều này không có nghĩa là nó hoàn toàn miễn nhiễm với các phần mềm độc hại. Bên cạnh việc triển khai IDS để bảo mật Linux, thì việc scan malware cũng giúp xác định các hoạt động xấu trên máy.
Sau bài viết này, chắc hẳn bạn đã hiểu rõ về các phương pháp bảo mật chung có thể dễ dàng triển khai trên Linux. Tất nhiên, quyết định sau cùng vẫn thuộc về các bạn. Hãy cố gắng chọn ra giải pháp tối ưu nhất cho mục đích sử dụng của mình. Từ đó có thể tiến hành bảo mật Linux một cách toàn diện, hiệu quả nhất. Chúc các bạn thành công!
Nguồn: sưu tầm
Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *