KIẾN THỨC CƠ BẢN VỀ FIREWALLD, SELINUX
I. FIREWALLD
1.Khái niệm.
Firewalld cung cấp một firewall động có thể quản lý được, hỗ trợ cho các vùng mạng/ tường lửa xác định mức độ tin cậy của các kết nối hoặc giao diện. Nó có hỗ trợ cài đặt tường lửa IPv4, IPv6, ethernet bridge và IP set. Các tùy chọn cấu hình giữa runtime và permanent là tách biệt. Nó cũng cung cấp một giao diện cho các dịch vụ hoặc ứng dụng để thêm các rule một cách trực tiếp.
Những lợi ích của Firewalld:
- Bảo vệ mạng và dữ liệu: Firewalld giúp ngăn chặn các truy cập không mong muốn vào máy chủ, bảo vệ mạng và dữ liệu của bạn khỏi các cuộc tấn công mạng.
- Quản lý truy cập mạng: Bạn có thể dễ dàng quản lý các quy tắc truy cập mạng thông qua Firewalld để chỉ định các dịch vụ hoặc ứng dụng nào được phép hoạt động qua mạng và dịch vụ nào bị chặn.
- Kiểm soát cổng kết nối: Firewalld cho phép bạn quản lý cổng kết nối (port) mà máy chủ sử dụng để truy cập các dịch vụ khác nhau. Bạn có thể mở hoặc đóng cổng cụ thể tùy theo nhu cầu.
- Dễ dàng cấu hình: Firewalld có giao diện dòng lệnh và giao diện đồ họa (firewall-config trên GNOME hoặc firewall-cmd) giúp bạn dễ dàng cấu hình và quản lý tường lửa của hệ thống.
2.Các Zone trong Firewalld.
Trong firewall, các "zone" định nghĩa các khu vực mạng với các cấp độ đáng tin cậy khác nhau, giúp quản lý quyền truy cập mạng và bảo vệ hệ thống. Các zone thường được sử dụng để xác định các tùy chọn cấu hình bảo vệ cho các giao diện mạng hoặc kết nối mạng cụ thể. Sau đây là các zone: Các zone được xác định trước theo mức độ tin cậy, theo thứ tự từ “ít-tin-cậy-nhất” đến “đáng-tin-cậy-nhất”: drop: ít tin cậy nhất – toàn bộ các kết nối đến sẽ bị từ chối mà không phản hồi, chỉ cho phép duy nhất kết nối đi ra.
-
block: tương tự như drop nhưng các kết nối đến bị từ chối và phản hồi bằng tin nhắn từ icmp-host-prohibited (hoặc icmp6-adm-prohibited).
-
public: đại diện cho mạng công cộng, không đáng tin cậy. Các máy tính/services khác không được tin tưởng trong hệ thống nhưng vẫn cho phép các kết nối đến trên cơ sở chọn từng trường hợp cụ thể.
-
external: hệ thống mạng bên ngoài trong trường hợp bạn sử dụng tường lửa làm gateway, được cấu hình giả lập NAT để giữ bảo mật mạng nội bộ mà vẫn có thể truy cập.
-
internal: đối lập với external zone, sử dụng cho phần nội bộ của gateway. Các máy tính/services thuộc zone này thì khá đáng tin cậy.
-
dmz: sử dụng cho các máy tính/service trong khu vực DMZ(Demilitarized) – cách ly không cho phép truy cập vào phần còn lại của hệ thống mạng, chỉ cho phép một số kết nối đến nhất định.
-
work: sử dụng trong công việc, tin tưởng hầu hết các máy tính và một vài services được cho phép hoạt động.
-
home: môi trường gia đình – tin tưởng hầu hết các máy tính khác và thêm một vài services được cho phép hoạt động.
-
trusted: đáng tin cậy nhất – tin tưởng toàn bộ thiết bị trong hệ thống.
3. Quy tắc Runtime/ Permanent
Trong FirewallD, các quy tắc được cấu hình thời gian hiệu lực Runtime hoặc Permanent.
-
Runtime(mặc định): có tác dụng ngay lập tức, mất hiệu lực khi reboot hệ thống.
-
Permanent: không áp dụng cho hệ thống đang chạy, cần reload mới có hiệu lực, tác dụng vĩnh viễn cả khi reboot hệ thống.'
Việc Restart/Reload sẽ hủy bộ các thiết lập Runtime đồng thời áp dụng thiết lập Permanent mà không hề phá vỡ các kết nối và session hiện tại. Điều này giúp kiểm tra hoạt động của các quy tắc trên tường lửa và dễ dàng khởi động lại nếu có vấn đề xảy ra.
4.Systemd Firewalld
Cài đặt Firewalld.
yum install -y firewalld
Khởi động firewall, thiết lập cho firewall bật khi hệ thống bật.
systemctl start firewalld
systemctl enable firewalld
Kiểm tra tình trạng hoạt động của firewall
systemctl status firewalld
Liệt kê các zone đã activate:
firewall-cmd --list-all
Thiết lập cho phép services trên firewalld sử dụng.
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --zone=public --add-service=https –permanent
Thiết lập cho phép mở thêm port
firewall-cmd –zone=public –add-port=25/tcp –permanent
firewall-cmd –reload
Mở một dải port.
firewall-cmd --zone=public --add-port=2000-2500/tcp --permanent
firewall-cmd –reload
firewall-cmd –list-ports
Đóng port với tham số remove-port:
firewall-cmd –zone=public –remove-port=25/tcp -permanent
firewall-cmd –reload
firewall-cmd –list-port
Chặn một IP bằng tham số --add-rich-rule
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='X.X.X.X' reject"
firewall-cmd –reload
Gỡ chặn 1 IP hay 1 dải IP bằng tham số --remove-rich-rule
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 modun bảo mật ở nhân của Linux, cung cấp cơ chế hỗ trợ các chính sách bảo mật kiểm soát truy cập (access control).
SELinux có 3 chế độ hoạt động cơ bản:
- Enforcing: Chế độ mặc định sẽ cho phép và thực thi chính sách bảo mật SELinux trên hệ thống, từ chối các hành động truy cập và ghi nhật ký
- Permissive: Trong chế độ Permissive, SELinux được kích hoạt nhưng sẽ không thực thi chính sách bảo mật, chỉ cảnh báo và ghi lại các hành động. Chế độ Permissive hữu ích cho việc khắc phục sự cố
- Disabled: SELinux bị vô hiệu hóa
2.Cấu hình Selinux
Vô hiệu hóa tạm thời selinux
echo 0 > /selinux/enforce
hoặc
setenforce 0
Vô hiệu hóa selinux vĩnh viễn
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
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
yum install policycoreutils-python
Kiểm tra các cổng selinux đang được sử dụng cho chúng ta có thể chạy lệnh tùy chọn: ( có thể thay ssh bằng http, smtp..)
semanage port -l | grep ssh
Để xóa port trên selinux
semanage port -d -t ssh_port_t -p tcp 22
Mở port 2220 cho dịch vụ SSH
semanage port -a -t ssh_port_t -p tcp 2220
Cảm ơn các bạn đã theo dõi, chúc bạn ngày mới tốt lành và học được thật nhiều điều bổ ích! 🤩🤩😘😘
All rights reserved