Bài viết này sẽ hướng dẫn các bạn cách thực hiện cấu hình firewall trên máy chủ sử dụng hệ điều hành CentOS với firewall mặc định là iptables hoặc firewalld.

Lưu ý nếu máy chủ CentOS 6, firewall mặc định sẽ là iptables nên ta có thể bỏ qua bước kiểm tra.

Kiểm tra firewall đang sử dụng

Đầu tiên để có thao tác chính xác, các bạn cần thực hiện kiểm tra firewall đang được sử dụng cho máy chủ của mình là gì bằng cách thử thực hiện các lệnh sau:

systemctl status firewalld
systemctl status iptables

Nếu lệnh nào trả kết quả về dịch vụ có tồn tại thì tức là firewall đó đang được cài đặt trên máy chủ. Tiếp tục thực hiện các lệnh tương ứng như dưới đây.

iptables

 

  • Block IP: Để block một IP kết nối đến máy chủ, ta có thể dùng REJECT để từ chối tất cả traffic từ IP gốc đến máy chủ. Khi dùng REJECT thì người bị chặn sẽ nhận được kết quả là "Connection Refused". Ngoài ra ta cũng có thể thay REJECT bằng DROP để người bị chặn sẽ hoàn toàn không nhận được thông báo gì.
 
iptables -A INPUT -s 7.7.7.7 -j REJECT
or
iptables -A INPUT -s 7.7.7.7 -j DROP
  • Mở port: Mặc định iptables sẽ đóng toàn bộ các cổng kết nối không được sử dụng kể cả các port như web services (80 & 443), smtp (25 & 465), pop3, imap.... Vì thế khi cài đặt máy chủ cho các mục đích sử dụng khác nhau, các bạn cần thực hiện mở port trên máy chủ tương ứng để sử dụng.
    iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
    iptables -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
    

    Các câu lệnh trên sẽ thực hiện mở ra các port tương ứng gồm 80, 443, 25, 465, 110, 995, 143 và 993. Tùy theo nhu cầu sử dụng các bạn có thể mở các port cần thiết.

Sau khi cấu hình hoàn tất cần thực hiện save lại iptables và restart để đảm bảo các config này sẽ giữ nguyên mỗi khi reboot lại máy chủ.

 
iptables-save
systemctl restart iptables (CentOS 7)
/etc/init.d/iptables restart (CentOS 6)

firewalld

  • Block IP:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='7.7.7.7' reject"

Lệnh trên dùng để block toàn bộ traffic từ IP 7.7.7.7 đến máy chủ. Ngoài ra các bạn có thể thực hiện chặn luôn một IP range với subnet cụ thể. Như dưới đây là ví dụ chặn IP range 7.7.7.x

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='7.7.7.0/24' reject"

 Mở port:

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp

Các lệnh trên đây dùng để mở các port chỉ định với giao thức tcp, trường hợp cần mở một range port cho các mục đích như FTP hoặc các services có range port cao ta có thể sử dụng lệnh:

firewall-cmd --permanent --add-port=35000-35999/tcp

Trên đây là lệnh dùng mở giao thức TCP cho các port từ 35000 => 35999.

Sau khi hoàn tất cấu hình cần thực hiện:

firewall-cmd --reload

Như vậy là đã hoàn tất các thao tác cơ bản với firewalld và iptables trên máy chủ sử dụng hệ điều hành CentOS. Ngoài ra nếu trong quá trinh cấu hình gặp lỗi hoặc có vấn đề thắc mắc, các bạn có thể liên hệ trực tiếp hỗ trợ của 7Host tại support@7host.vn hoặc website https://7host.vn