Lệnh iptables - Bật/Tắt và Kích hoạt/Vô hiệu hóa firewall trong Linux

Firewall là một phần mềm hoạt động như một tấm khiên giữa hệ thống của người dùng và mạng bên ngoài, cho phép một số gói tin đi qua trong khi loại bỏ các gói tin khác. Firewall thường hoạt động trên tầng mạng, tức là trên các gói tin IP cả Ipv4 và Ipv6.

Gói tin sẽ đi qua hay bị chặn phụ thuộc vào các quy tắc đối với loại gói tin đó trong firewall. Các quy tắc này có thể là quy tắc tích hợp sẵn hoặc quy tắc tự định nghĩa của người dùng. Mỗi gói tin đi vào mạng phải đi qua tấm khiên này để xác minh nó theo quy tắc được định nghĩa trong đó cho loại gói tin đó.

Mỗi quy tắc có một hành động mục tiêu được áp dụng trong trường hợp gói tin không đáp ứng nó. Trên hệ thống Linux, firewall là một dịch vụ được cung cấp bởi nhiều phần mềm, phổ biến nhất là: firewalldiptables.

Trong Linux có nhiều loại firewall khác nhau được sử dụng, nhưng loại thông thường nhất là IptablesFirewalld, sẽ được thảo luận trong bài viết này.

FirewallD là gì

FirewallD là trình quản lý tường lửa động trên các hệ thống Linux. Dịch vụ này được sử dụng để cấu hình các kết nối mạng, quyết định mạng ngoại vi hoặc các gói tin nội bộ nào được phép đi qua mạng và nào bị chặn.

Nó cho phép hai loại cấu hình, là cấu hình vĩnh viễn và cấu hình thời gian chạy. Cấu hình thời gian chạy sẽ bị mất khi dịch vụ khởi động lại trong khi cấu hình vĩnh viễn được giữ lại qua quá trình khởi động hệ thống để được áp dụng mỗi lần dịch vụ hoạt động.

Tương ứng với các cấu hình này, FirewallD có hai thư mục, một thư mục mặc định /usr/lib/firewall mất đi khi hệ thống được cập nhật và cấu hình hệ thống /etc/firewall có tính vĩnh viễn và ghi đè lên thư mục mặc định nếu được chỉ định. Đây là dịch vụ mặc định trong RHEL/CentOS 7 và Fedora 18.

Iptables là gì

Iptables là một dịch vụ khác quyết định xem có cho phép, loại bỏ hoặc trả lại gói tin IP. Dịch vụ Iptables quản lý các gói tin Ipv4 trong khi dịch vụ Ip6tables quản lý các gói tin Ipv6. Dịch vụ này quản lý một danh sách các bảng, trong đó mỗi bảng được duy trì cho mục đích khác nhau như: bảng "filter" để quản lý các quy tắc tường lửa, bảng "nat" được tham khảo trong trường hợp kết nối mới, bảng "mangle" trong trường hợp biển đổi gói tin, và cùng những bảng khác.

Mỗi bảng còn có các chuỗi có thể được tích hợp sẵn hoặc tự định nghĩa trong đó một chuỗi đại diện cho một tập hợp các quy tắc được áp dụng cho một gói tin, qua đó quyết định hành động mục tiêu cho gói tin đó phải là ĐƯỢC PHÉP, BỊ CHẶN hoặc ĐƯỢC TRẢ LẠI. Dịch vụ này là dịch vụ mặc định trên các hệ thống như: RHEL/CentOS 6/5, Fedora, ArchLinux, Ubuntu, vv.

Trong bài viết này, chúng tôi sẽ giải thích cách bắt đầu, dừng hoặc khởi động lại dịch vụ Iptables và FirewallD trên hệ thống Linux.

Cách bắt đầu/dừng và bật/tắt dịch vụ FirewallD

Nếu bạn đang sử dụng CentOS/RHEL 7 hoặc phiên bản Fedora 18 trở lên, bạn nên tuân theo hướng dẫn sau để quản lý dịch vụ FirewallD.

Bắt đầu dịch vụ FirewallD
# systemctl start firewalld 
Dừng dịch vụ FirewallD
# systemctl stop firewalld
Kiểm tra trạng thái của FirewallD
# systemctl status firewalld
Kiểm tra trạng thái của FirewallD
# firewall-cmd --state

Là phương án thay thế, bạn có thể tắt dịch vụ firewalld để không áp dụng quy tắc cho gói tin và bật lại khi cần thiết.

Tắt dịch vụ FirewallD
# systemctl disable firewalld
Bật dịch vụ FirewallD
# systemctl enable firewalld
Mask dịch vụ FirewallD
# systemctl mask firewalld

Bạn cũng có thể ẩn dịch vụ tường lửa bằng cách tạo liên kết tượng trưng của dịch vụ firewall.service thành /dev/null, từ đó vô hiệu hóa dịch vụ đó.

Unmask dịch vụ FirewallD
# systemctl unmask firewalld

Đây là ngược của việc ẩn dịch vụ. Nó xóa liên kết tượng trưng của dịch vụ được tạo ra trong quá trình ẩn, từ đó bật lại dịch vụ.

Cách bắt đầu/dừng và bật/tắt dịch vụ Iptables

Trên RHEL/CentOS 6/5/4 và Fedora 12-18, tường lửa iptables được cài đặt sẵn, sau đó dịch vụ iptables có thể được cài đặt thông qua:

# yum install iptables-services

Sau đó, dịch vụ có thể được bắt đầu, dừng hoặc khởi động lại qua các lệnh sau:

Bắt đầu dịch vụ Iptables
# systemctl start iptables
OR
# service iptables start
Dừng dịch vụ Iptables
# systemctl stop iptables
OR
# service iptables stop
Vô hiệu hóa dịch vụ Iptables
# systemctl disable iptables
Or
# service iptables save
# service iptables stop
Bật dịch vụ Iptables
# systemctl enable iptables
Or
# service iptables start
Kiểm tra trạng thái của dịch vụ Iptables
# systemctl status iptables
OR
# service iptables status

Trên Ubuntu và một số bản phân phối Linux khác, ufw là lệnh được sử dụng để quản lý dịch vụ tường lửa iptables. Ufw cung cấp một giao diện dễ sử dụng cho người dùng để xử lý dịch vụ tường lửa iptables.

Bật tường lửa iptables Ufw
$ sudo ufw enable
Tắt tường lửa iptables Ufw
$ sudo ufw disable
Hiển thị trạng thái của tường lửa iptables Ufw
# sudo ufw status 

Tuy nhiên, nếu bạn muốn liệt kê các chuỗi trong iptables chứa tất cả các quy tắc, lệnh sau có thể giúp bạn đạt được điều tương tự:

# iptables -L -n -v

Kết luận

Đây là những kỹ thuật có thể giúp bạn bắt đầu, dừng, vô hiệu hóa và bật lại các dịch vụ quản lý gói tin trên các Hệ thống Dựa trên Linux. Các bản phân phối Linux khác nhau có thể có các dịch vụ khác nhau làm mặc định, ví dụ: Ubuntu có thể có iptables là dịch vụ mặc định và được cài sẵn, trong khi CentOS có firewalld là dịch vụ được cấu hình mặc định để quản lý gói tin vào và ra.

Trong bài viết này, chúng tôi giới thiệu những thủ thuật phổ biến nhất để quản lý các dịch vụ này trên hầu hết các bản phân phối Linux, tuy nhiên, nếu bạn tìm thấy điều gì đó và muốn bổ sung vào bài viết này, ý kiến của bạn luôn được chào đón.