I. FIREWALLD
1. Khái Niệm
Firewalld là một giải pháp tường lửa động trên hệ điều hành Linux, cho phép quản lý các quy tắc tường lửa cho các vùng mạng khác nhau. Nó hỗ trợ cả tường lửa cho IPv4 và IPv6, cũng như cấu hình cho Ethernet bridge và IP set. Firewalld tách biệt giữa cấu hình runtime (thời gian hoạt động) và permanent (vĩnh viễn), tạo điều kiện dễ dàng cho việc quản lý bảo mật.
Lợi ích của Firewalld:
- Bảo vệ mạng và dữ liệu: Giúp ngăn chặn các truy cập không mong muốn vào hệ thống, bảo vệ thông tin và tài nguyên mạng hiệu quả trước các cuộc tấn công.
- Quản lý truy cập mạng dễ dàng: Cho phép người dùng dễ dàng cấu hình và quản lý quy tắc truy cập cho các dịch vụ và ứng dụng khác nhau.
- Kiểm soát cổng kết nối: Cho phép mở hoặc đóng cổng kết nối với nhu cầu cụ thể của hệ thống.
- Giao diện dễ sử dụng: Cung cấp cả giao diện dòng lệnh và giao diện đồ họa cho việc quản lý.
2. Các Zone Trong Firewalld
Các zone trong Firewalld giúp phân chia và quản lý các mức độ tin cậy cho các kết nối mạng khác nhau:
- drop: Từ chối toàn bộ kết nối đến mà không phản hồi.
- block: Từ chối kết nối đến và gửi phản hồi với tin nhắn từ icmp-host-prohibited.
- public: Dành cho mạng công cộng, không đáng tin cậy.
- external: Dành cho hệ thống kết nối bên ngoài, thường dùng làm gateway.
- internal: Dùng cho mạng nội bộ với độ tin cậy cao hơn.
- dmz: Khu vực cách ly, chỉ cho phép một số kết nối nhất định.
- work: Tin cậy phần lớn các máy tính trong môi trường làm việc.
- home: Tin cậy các thiết bị trong môi trường gia đình.
- trusted: Đáng tin cậy nhất, cho phép tất cả thiết bị.
3. Quy Tắc Runtime và Permanent
Trong Firewalld, có hai loại quy tắc:
- Runtime (thời gian hoạt động): Áp dụng ngay lập tức nhưng sẽ mất hiệu lực sau khi khởi động lại hệ thống.
- Permanent (vĩnh viễn): Được lưu lại ngay cả khi khởi động lại, cần reload để áp dụng cho các quy tắc mới.
Việc reload tường lửa cho phép áp dụng các quy tắc mới mà không làm gián đoạn kết nối hiện tại.
4. Cài Đặt Firewalld
Cài đặt Firewalld rất đơn giản:
bash
yum install -y firewalld
Khởi động Firewalld và thiết lập tự động khởi động khi hệ thống khởi động:
bash
systemctl start firewalld
systemctl enable firewalld
Kiểm tra trạng thái của Firewalld:
bash
systemctl status firewalld
Liệt kê các zone đã kích hoạt:
bash
firewall-cmd --list-all
Thiết lập các dịch vụ mà Firewalld cho phép:
bash
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https --permanent
Mở cổng kết nối cho dịch vụ:
bash
firewall-cmd --zone=public --add-port=25/tcp --permanent
firewall-cmd --reload
Mở dải cổng:
bash
firewall-cmd --zone=public --add-port=2000-2500/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
Đóng cổng sử dụng tham số remove-port:
bash
firewall-cmd --zone=public --remove-port=25/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
Chặn một địa chỉ IP:
bash
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='X.X.X.X' reject"
firewall-cmd --reload
Gỡ chặn một địa chỉ IP:
bash
firewall-cmd --permanent --remove-rich-rule="rule family='ipv4' source address='X.X.X.X' reject"
firewall-cmd --reload
II. SELINUX
1. Giới Thiệu
SELinux (Security-Enhanced Linux) là một module bảo mật của Linux, cung cấp cơ chế điều khiển truy cập thông qua các chính sách bảo mật.
SELinux có ba chế độ hoạt động chính:
- Enforcing: Chế độ chính, thực thi chính sách và ghi lại các hành động không hợp lệ.
- Permissive: SELinux vẫn hoạt động nhưng không tự động thực thi chính sách, chỉ cảnh báo.
- Disabled: Vô hiệu hóa hoàn toàn SELinux.
2. Cấu Hình SELinux
Vô Hiệu Hóa Tạm Thời SELinux
bash
echo 0 > /selinux/enforce
hoặc
bash
setenforce 0
Vô Hiệu Hóa Vĩnh Viễn SELinux
bash
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/sysconfig/selinux
Bật Lại SELinux
bash
sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
Cài Đặt semanage
bash
yum install policycoreutils-python
Kiểm Tra Các Cổng SELinux
bash
semanage port -l | grep ssh
Xóa Cổng Trên SELinux
bash
semanage port -d -t ssh_port_t -p tcp 22
Mở Cổng 2220 Cho Dịch Vụ SSH
bash
semanage port -a -t ssh_port_t -p tcp 2220
Kết Luận
Hy vọng rằng thông tin trên sẽ giúp bạn hiểu rõ hơn về Firewalld và SELinux trên hệ điều hành Linux. Nếu bạn có bất kỳ câu hỏi hoặc góp ý nào, đừng ngần ngại liên hệ với chúng tôi. Chúc bạn có một ngày làm việc hiệu quả và học hỏi được nhiều kiến thức bổ ích! 🤩🤩😘😘
source: viblo