So sánh iptables và firewall ipchain năm 2024
Bạn từng tự hỏi "IPtables là gì?" khi bắt đầu khám phá thế giới phức tạp của bảo mật mạng trên hệ điều hành Linux? IPtables không chỉ là một khái niệm, mà là một cánh cửa mở ra những khả năng đáng kinh ngạc trong việc kiểm soát và bảo vệ lưu lượng mạng của bạn. Hãy cùng nhau khám phá sức mạnh và ý nghĩa đằng sau câu hỏi "IPtables là gì?" và tại sao nó là yếu tố không thể thiếu cho bất kỳ hệ thống Linux nào. Show IPtables là gì?Được triển khai dưới dạng các mô-đun Netfilter, iptables là một chương trình tiện ích trong không gian người dùng cho phép một quản trị hệ thống cấu hình các quy tắc lọc gói tin IP của tường lửa hạt nhân Linux. Các bộ lọc được tổ chức thành các bảng chứa chuỗi quy tắc quy định cách xử lý gói tin mạng. Netfilter là khung tường lửa trên Linux, và iptables là tiện ích được sử dụng để quản lý và điều khiển Netfilter. Bạn có thể sử dụng iptables để lọc cả gói tin đến và đi cũng như định tuyến gói tin mạng. BảngMột bảng là một bộ sưu tập các chuỗi phục vụ một chức năng cụ thể. Có 3 bảng chính trong iptables là bảng Filter, NAT và Mangle.
Mỗi trong những bảng này đều có một chuỗi quy tắc. ChuỗiChuỗi là một danh sách các quy tắc được xử lý theo thứ tự. Có 5 chuỗi chính trong iptables:
Ghi chú Bảng filter chịu trách nhiệm chặn hoặc cho phép kết nối và là bộ lọc mặc định được sử dụng trong iptables. Hiểu luồng gói tinGói tin đến được phân tích ở mỗi chuỗi và được kiểm tra so với một bộ quy tắc. Nếu có quy tắc khớp, mục tiêu được đặt. Dưới đây là các mục tiêu có sẵn:
Ví dụ, giả sử bạn muốn chặn tất cả các kết nối đến máy chủ web của bạn trên cổng 80. Bạn nên thêm một quy tắc vào chuỗi đầu vào trong bảng filter và đặt mục tiêu là REJECT. Nếu gói tin đến cuối chuỗi mà không khớp với bất kỳ quy tắc nào, quy tắc mặc định sẽ được sử dụng. Nếu không có quy tắc mặc định, gói tin sẽ được chấp nhận. Cài đặt iptablesTrong hầu hết các bản phân phối Linux, iptables được bao gồm sẵn như một tiện ích theo mặc định. Đề xuất rằng bạn tắt hoặc xóa bất kỳ quy tắc nào bạn có trước khi bắt đầu hoặc tạo một cấu hình mới. Bạn cũng cần gỡ cài đặt bất kỳ tiện ích quản lý tường lửa nào khác như UFW. Bạn có thể cài đặt iptables bằng cách chạy lệnh sau: sudo apt install iptables Tập tin cấu hình mặc định cho iptables có thể được tìm thấy tại vim /etc/sysconfig/iptables 6. Bạn có thể sửa đổi nó bằng vim hoặc trình soạn thảo văn bản mà bạn chọn bằng lệnh sau: vim /etc/sysconfig/iptables Sử dụng iptablesXây dựng các lệnh iptablesDưới đây là một số tùy chọn lệnh phổ biến: Tùy chọn Chức năng vim /etc/sysconfig/iptables 7 hoặc vim /etc/sysconfig/iptables 8 Chỉ định bảng phù hợp gói tin. Bảng mặc định được đặt là "filter" nếu không có bảng nào được chỉ định. vim /etc/sysconfig/iptables 9hoặc sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 0chain [rule-number] rule Chèn một hoặc nhiều quy tắc vào chuỗi được chọn với số quy tắc đã cho. Chỉ mục bắt đầu từ 1. sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 1 hoặc sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 2 chain rule-specification Thêm một hoặc nhiều quy tắc vào danh sách các quy tắc ở cuối chuỗi được chọn. sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 3 hoặc sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 4 [chuỗi] Liệt kê tất cả các quy tắc trong chuỗi được chọn. Nếu không có chuỗi nào được chỉ định, sẽ liệt kê tất cả các chuỗi sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 5 hoặc sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 6 chuỗi quy-định-quy-tắc Xóa một hoặc nhiều quy tắc trong chuỗi được chọn. sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 5 hoặc sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 6 chuỗi số-quy-tắc Xóa quy tắc được chỉ định trong chuỗi được chọn. Chỉ mục bắt đầu từ 1. sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 9 hoặc sudo iptables -L 0 [!] Giao thức cần kiểm tra (TCP, UDP, icmp hoặc all). Sử dụng đối số ! trước giao thức để đảo ngược kiểm tra. sudo iptables -L 1 hoặc sudo iptables -L 2 [!] Mô tả nguồn. Điều này có thể là mạng, tên máy chủ hoặc địa chỉ IP. Sử dụng đối số ! trước nguồn để đảo ngược nghĩa của địa chỉ. sudo iptables -L 3 hoặc sudo iptables -L 4 Khoảng cổng đích. sudo iptables -L 5 hoặc sudo iptables -L 6 mục-tiêu Đây là mục tiêu của quy tắc và chỉ định hành động cần thực hiện khi có sự khớp. sudo iptables -L 7 hoặc sudo iptables -L 8 kiểm-soát Chỉ định một mô-đun mở rộng kiểm tra một thuộc tính cụ thể. sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT 9 hoặc Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 0 chuỗi mục-tiêu Đặt chính sách cho chuỗi đến mục tiêu. Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 1 hoặc Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 2 [chuỗi] Xóa sạch chuỗi được chọn. Nếu không có chuỗi nào được chỉ định, tất cả các chuỗi sẽ bị xóa sạch. Việc xóa sạch tương tự như việc xóa từng quy tắc một. Ví dụ lệnh: sudo iptables -t filter -I INPUT -m tcp -p tcp --dport 80 -j REJECT Lệnh trên chặn mọi lưu lượng đến máy chủ web/HTTP. Liệt kê các chuỗiBạn có thể liệt kê tất cả các chuỗi có sẵn trong bảng filter bằng cách sử dụng lệnh list: sudo iptables -L Điều này hiển thị tất cả các chuỗi trong bảng filter và tất cả các quy tắc trong các chuỗi Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 3, Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 4 và Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 5. Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Xác định chính sách mặc địnhTrong quá trình cấu hình mới, bạn không có bất kỳ quy tắc đã được xác định trước nào, vì vậy bạn phải bắt đầu bằng cách đặt chính sách mặc định cho mục tiêu. Trong trường hợp này, chính sách mặc định được đặt thành Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 6, có nghĩa là tất cả các lưu lượng được chấp nhận mặc định. Bạn có thể xác định chính sách mặc định cho tất cả các chuỗi bằng cách chạy các lệnh sau: sudo iptables --policy INPUT ACCEPT sudo iptables --policy FORWARD ACCEPT sudo iptables --policy OUTPUT ACCEPT Điều này đặt chính sách mặc định cho tất cả các chuỗi là Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 6. Bạn cũng có thể thay đổi điều này thành Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 8 hoặc Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 9 nếu bạn muốn vô hiệu hóa quyền truy cập vào bất kỳ dịch vụ nào trên máy chủ và cho phép thủ công các dịch vụ bạn muốn tiếp cận. Chặn & Cho phép kết nối từ địa chỉ IPBạn có thể chặn tất cả các yêu cầu đến từ một địa chỉ IP bằng cách thêm quy tắc sau: sudo iptables -A INPUT -s 192.168.1.1 -j DROP Bạn cũng có thể chặn tất cả các kết nối đến từ một mạng con bằng cách thêm quy tắc sau: sudo iptables -A INPUT -s 192.168.1.1/24 -j DROP Để chặn tất cả các kết nối ra đến một địa chỉ IP hoặc mạng con cụ thể, bạn có thể thêm quy tắc sau vào chuỗi Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 5: sudo iptables -I OUTPUT -s 192.168.1.1 -j DROP Để cho phép kết nối đến các dịch vụ và cổng này, thay đổi mục tiêu thành Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 6 thay vì Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 8. Chặn & Cho phép kết nối đến cổngĐể chặn kết nối đến các cổng và dịch vụ, chỉ định giao thức và cổng đích. Ví dụ, nếu bạn muốn chặn mọi kết nối SSH đến máy chủ, thêm quy tắc sau: sudo iptables -I INPUT -p tcp --dport 22 -j DROP Bạn cũng có thể chặn mọi kết nối đến máy chủ web của bạn chạy trên cổng 80 bằng cách thêm quy tắc sau: vim /etc/sysconfig/iptables 0 Bạn cũng có thể điều này một bước xa và chặn một địa chỉ IP cụ thể khỏi việc kết nối đến một dịch vụ cụ thể. Ví dụ, bạn có thể chặn một địa chỉ IP khỏi việc truy cập máy chủ web của chúng tôi bằng cách thêm quy tắc sau: vim /etc/sysconfig/iptables 1 Để cho phép kết nối đến các dịch vụ và cổng này, thay đổi mục tiêu thành Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 6 thay vì Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination 8. Lưu thay đổiĐể lưu các thay đổi bạn đã thực hiện vào tập quy tắc của mình để chúng có tính nhất quán, thực hiện các lệnh nhị phân sau: vim /etc/sysconfig/iptables 2 Xóa & Xoá quy tắcNếu bạn muốn xóa một quy tắc cụ thể, bạn cần xác định số dòng quy tắc. Để làm điều này, liệt kê các chuỗi và các quy tắc với các tùy chọn sau: vim /etc/sysconfig/iptables 3 Điều này liệt kê ra các số dòng liên quan cho mỗi quy tắc. Khi quy tắc được xác định và tương ứng với số dòng của nó, bạn có thể xóa nó bằng cách chạy lệnh sau: vim /etc/sysconfig/iptables 4 Nếu bạn muốn xoá tất cả các quy tắc bạn đã thêm để bắt đầu lại, bạn có thể sử dụng tùy chọn flush: vim /etc/sysconfig/iptables 5 Tóm gọn, IPtables không chỉ đơn thuần là một công cụ tường lửa mà còn là một hệ thống quy tắc mạng linh hoạt, giúp điều chỉnh lưu lượng thông tin theo nhu cầu và yêu cầu cụ thể. Khả năng tùy chỉnh cao và sức mạnh linh hoạt của IPtables giúp đáp ứng mọi nhu cầu bảo mật mạng của người quản trị hệ thống. Dù cho việc chặn kết nối từ địa chỉ IP cụ thể hay điều chỉnh quy tắc định tuyến, IPtables đóng vai trò không thể phải bỏ qua trong việc bảo vệ và quản lý hệ thống mạng Linux. KDATA mong bài viết trên đã giúp bạn hiểu "IPtables là gì?", nếu có gì thắc mắc hãy liên hệ với chúng tôi nhé. |