Giảm 50% tất cả các gói, thời gian có hạn. Bắt đầu từ $2.48/mo
14 phút còn lại
Bảo mật & Mạng

Liệt Kê và Xóa Quy Tắc Linux Iptables - Bảng Ghi Cheat cho Người Mới Bắt Đầu

Lily Carnell By Lily Carnell 14 phút đọc Cập nhật 18 tháng 9 năm 2023
Hướng Dẫn Liệt Kê và Xóa Quy Tắc Iptables

Truy cập trái phép và tấn công máy chủ là những mối đe dọa nghiêm trọng. Đó là lý do tại sao bạn nên triển khai tường lửa như một phần của kỹ thuật bảo mật mạng của mình. Biết cách làm việc với các quy tắc Iptables là một trong những kỹ năng chính để giảm những rủi ro này trên hệ thống Linux của bạn. Hướng dẫn này sẽ giúp bạn làm quen với các khái niệm tường lửa cơ bản như hiển thị quy tắc iptables và xóa quy tắc iptables trong Ubuntu, giúp bạn chạy các lệnh đơn giản để đạt được mục đích này. Trước khi thảo luận về cách liệt kê hoặc xóa quy tắc iptables, hãy nói về quy tắc iptables là gì và tại sao chúng ta sử dụng chúng.

Iptables là gì?

iptables là một tiện ích tường lửa dòng lệnh cho phép hoặc chặn lưu lượng thông qua chuỗi chính sách. Khi có kết nối được khởi tạo trên hệ thống của bạn, iptables tìm kiếm một quy tắc trong danh sách phù hợp với kết nối đó, giúp bạn bảo vệ mạng hiệu quả. Nếu không tìm thấy quy tắc nào, nó sẽ áp dụng hành động mặc định.

iptables hầu hết được cài đặt sẵn trên bất kỳ bản phân phối Linux. Bạn có thể sử dụng lệnh sau để cập nhật hoặc cài đặt:

sudo apt-get install iptables

Tại sao chúng ta sử dụng Iptables?

Là một tường lửa dòng lệnh trên Linux, iptables cho phép các quản trị viên hệ thống kiểm soát lưu lượng đến và đi thông qua các quy tắc bảng có thể cấu hình. Iptables sử dụng một tập hợp các bảng với các chuỗi chứa các quy tắc được xây dựng sẵn hoặc do người dùng định nghĩa.

Như đã đề cập trong phần trước, iptables đóng một vai trò thiết yếu trong bảo mật mạng cho hầu hết các hệ thống Linux. Phần còn lại của bài viết này chủ yếu tập trung vào việc mô tả cách liệt kê tất cả quy tắc iptables, bao gồm các khái niệm như cách hiển thị iptables và xóa quy tắc iptables.

Cụ thể hơn, bài viết này sẽ thảo luận về một số tác vụ iptables cần thiết để chỉ cho bạn cách liệt kê quy tắc, xóa bộ đếm gói và byte, xóa quy tắc iptables, xóa các chuỗi và xóa tất cả chuỗi và chấp nhận tất cả lưu lượng.

Hướng dẫn hoàn toàn về Iptables trong Ubuntu

Trước khi tìm hiểu về cách hiển thị quy tắc iptables, lưu ý rằng bạn phải sử dụng máy chủ Linux với lệnh iptables được cài đặt. Ngoài các yêu cầu này, điều cần thiết là phải có quyền sudo. Khi làm việc với tường lửa, hãy chú ý không khóa mình ra khỏi máy chủ bằng cách chặn lưu lượng SSH (cổng: 22, theo mặc định). Nếu mất quyền truy cập vì các cài đặt tường lửa, bạn có thể cần kết nối thông qua bàn điều khiển ngoài dải để sửa lỗi.

Đọc thêm: Cách Thay Đổi Cổng SSH trong Linux | Hướng Dẫn Từng Bước Nhanh Chóng cho Cổng SSH của Bạn

Liệt kê quy tắc theo đặc điểm

Bạn có thể xem quy tắc iptables đang hoạt động ở dạng bảng hoặc như danh sách chi tiết quy tắc. Cả hai phương pháp đều cung cấp thông tin giống nhau ở các định dạng khác nhau. Để liệt kê tất cả quy tắc của iptables đang hoạt động theo chi tiết, bạn cần chạy lệnh iptables với tùy chọn tùy chọn -S:

sudo iptables -S

Sau khi chạy lệnh hiển thị danh sách quy tắc iptables này, bạn sẽ thấy kết quả như sau:

kết quả của lệnh hiển thị liệt kê quy tắc
kết quả của lệnh hiển thị liệt kê quy tắc

Liệt kê một Chuỗi Cụ thể

Nếu bạn muốn giới hạn kết quả của hiển thị iptables cho một chuỗi cụ thể như INPUT, OUTPUT, hoặc TCP, bạn có thể chỉ định tên chuỗi trực tiếp sau tùy chọn -S. Ví dụ, lệnh hiển thị quy tắc iptables sau đây giúp bạn chỉ định trong chuỗi TCP:

sudo iptables -S TCP

kết quả liệt kê chuỗi TCP
kết quả liệt kê chuỗi TCP

Như đã nói trước đây, có một cách khác để xem quy tắc iptables: hiển thị chúng dưới dạng bảng. Chúng ta hãy tìm hiểu kỹ thuật này.

Liệt kê quy tắc dưới dạng bảng

Sử dụng lệnh để hiển thị quy tắc iptables dưới dạng bảng giúp bạn so sánh các quy tắc khác nhau. Bạn cần chạy lệnh iptables sau: tùy chọn -L để hiển thị tất cả các quy tắc hoạt động dưới dạng bảng:

sudo iptables -L

Lệnh này sẽ hiển thị tất cả các quy tắc hiện tại được sắp xếp theo chuỗi. Bạn có thể giới hạn kết quả xuất ra cho một chuỗi cụ thể như INPUT, OUTPUT, TCP, v.v. bằng cách chỉ định tên chuỗi ngay sau tùy chọn -L. Đây là một ví dụ về giới hạn hiển thị quy tắc iptables cho chuỗi INPUT:

sudo iptables -L INPUT

kết quả hiển thị quy tắc iptables giới hạn cho chuỗi INPUT
kết quả hiển thị quy tắc iptables giới hạn cho chuỗi INPUT

Dòng đầu tiên của kết quả trên hiển thị tên chuỗi (INPUT trong trường hợp này) và chính sách mặc định của nó (DROP). Dòng tiếp theo chứa tiêu đề của từng cột trong bảng và các quy tắc của chuỗi. Chúng ta hãy tìm hiểu chi tiết từng tiêu đề:

  • Target: Nếu một gói dữ liệu phù hợp với quy tắc, target sẽ xác định hành động cần thực hiện với nó. Gói dữ liệu có thể được chấp nhận, loại bỏ, ghi nhật ký hoặc chuyển tới chuỗi khác để so sánh với thêm nhiều quy tắc.
  • prot: Giao thức (như TCP, udp, ICMP hoặc all)
  • opt: chỉ ra các tùy chọn IP (hiếm khi được sử dụng)
  • source: hiển thị địa chỉ IP hoặc subnet nguồn của lưu lượng 
  • destination: hiển thị địa chỉ IP hoặc subnet đích của lưu lượng

Cột không có nhãn chỉ ra các tùy chọn của quy tắc, bao gồm bất kỳ phần nào của quy tắc chưa được chỉ định trong các cột trước. Thông tin này có thể là bất kỳ điều gì, từ cổng nguồn và đích cho đến trạng thái kết nối của gói dữ liệu.

Đọc thêm: Cài Đặt OpenVPN trên VPS – Thiết Lập Máy Khách OpenVPN 🔑

Cách hiển thị số lượng gói và kích thước tổng hợp?

Khi liệt kê các quy tắc iptables, bạn có thể hiển thị số lượng gói dữ liệu và kích thước tổng hợp của gói dữ liệu tính bằng byte khớp với từng quy tắc iptables cụ thể. Điều này thường hữu ích để hiểu biết quy tắc nào khớp với gói dữ liệu. Bạn phải sử dụng -Lcác tùy chọn -v cùng nhau để thực hiện cái này

Đây là một ví dụ mà chúng ta sẽ sử dụng chuỗi INPUT một lần nữa, với tùy chọn -v:

sudo iptables -L INPUT -v

Hiển thị số lượng gói và kích thước tổng hợp
kết quả hiển thị số lượng gói và kích thước tổng hợp

Chú ý rằng danh sách của chúng ta bây giờ có thêm hai cột tên là pkts bytes. Chúng ta đã tìm hiểu các cách khác nhau để xem tất cả các quy tắc iptables, bây giờ là lúc tìm hiểu cách đặt lại bộ đếm gói và kích thước tổng hợp.

Cách đặt lại số lượng gói và kích thước tổng hợp?

Bạn phải sử dụng tùy chọn -Z nếu muốn xóa hoặc đặt lại bộ đếm gói và byte cho các quy tắc của bạn. Chúng cũng sẽ được đặt lại nếu máy chủ khởi động lại, điều này hữu ích nếu bạn muốn xem liệu máy chủ có đang nhận lưu lượng mới phù hợp với các quy tắc hiện tại của bạn hay không.

Bạn có thể xóa bộ đếm cho tất cả các chuỗi và quy tắc bằng cách sử dụng tùy chọn -Z một mình:

sudo iptables -Z

Để xóa bộ đếm cho tất cả các quy tắc trong một chuỗi cụ thể, bạn phải sử dụng tùy chọn -Z và chỉ định chuỗi. Ví dụ, lệnh sau được sử dụng để xóa bộ đếm của chuỗi INPUT:

sudo iptables -Z INPUT

Nếu bạn muốn xóa bộ đếm cho một quy tắc cụ thể, bạn phải chỉ định chính xác tên chuỗi và số thứ tự của quy tắc. Ví dụ, bạn có thể thực thi lệnh sau để đặt lại bộ đếm của quy tắc đầu tiên trong chuỗi INPUT:

sudo iptables -Z INPUT 1

Ngoài việc biết các lệnh hiển thị tất cả các quy tắc iptables và cách đặt lại bộ đếm gói và byte của iptables, việc biết cách xóa quy tắc iptables cũng rất hữu ích.

Đọc thêm: Cách cài đặt PPTP VPN Server trên VPS của bạn

Cách xóa quy tắc iptables?

Bạn có thể sử dụng nhiều lệnh để xóa các quy tắc Iptables hoặc thậm chí xóa tất cả các quy tắc trong một chuỗi. Chúng tôi sẽ thảo luận về những phương pháp này.

Xóa quy tắc theo đặc điểm

Một cách để xóa các quy tắc iptables là thực hiện qua đặc tả quy tắc. Nó cho phép bạn chạy lệnh iptables với tùy chọn -D và đặc tả quy tắc. Nếu bạn muốn xóa quy tắc bằng kỹ thuật này, bạn có thể sử dụng kết quả từ danh sách quy tắc, iptables -S, để tham khảo.

Ví dụ, để xóa quy tắc loại bỏ các gói tin đến không hợp lệ (-A INPUT -m conntrack –ctstate INVALID -j DROP), bạn có thể chạy lệnh sau:

sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP

Lưu ý rằng tùy chọn -A dùng để chỉ định vị trí quy tắc khi tạo và cần được loại bỏ ở đây.

Xóa quy tắc theo chuỗi và số

Phương pháp khác để xóa các quy tắc iptables là sử dụng chuỗi và số dòng của nó. Gõ lệnh sau để xác định số dòng của quy tắc, liệt kê các quy tắc ở định dạng bảng và thêm tùy chọn –line-numbers:

sudo iptables -L --line-numbers

Xóa quy tắc theo chuỗi và số
kết quả xóa quy tắc theo chuỗi và số

Sau khi chạy lệnh này, tất cả các quy tắc iptables đều có số dòng của chúng, hiển thị bằng phần đầu num.

Khi bạn biết quy tắc nào bạn muốn xóa và ghi nhớ chuỗi và số dòng của nó. Bạn phải sử dụng lệnh iptables -D cùng với chuỗi và số quy tắc. Ví dụ, nếu bạn muốn xóa quy tắc đầu vào loại bỏ các gói tin không hợp lệ, bạn có thể thấy đó là quy tắc 3 của chuỗi INPUT. Vì vậy, chạy lệnh này:

sudo iptables -D INPUT 3

Cách xóa sạch chuỗi?

Có một cách để bạn xóa tất cả các quy tắc Iptables trong một chuỗi, mà chúng tôi gọi là xả chuỗi. Chúng tôi sẽ trình bày các phương pháp khác nhau để làm điều này. Trước khi tiếp tục, hãy chú ý tránh bị khóa thoát khỏi máy chủ thông qua SSH khi xóa sạch một chuỗi có chính sách mặc định là drop hoặc deny. Vì nếu bạn làm thế, bạn có thể cần kết nối thông qua console để khôi phục quyền truy cập.

Xóa sạch một chuỗi duy nhất

Để xóa sạch một chuỗi cụ thể, hay nói cách khác là xóa tất cả các quy tắc trong chuỗi, bạn có thể sử dụng -F hoặc tương đương –tùy chọn xóa và tên của chuỗi đã chọn. Giả sử bạn muốn xóa tất cả các quy tắc trong chuỗi INPUT, bạn sẽ làm gì? Rất đơn giản, hãy chạy lệnh sau:

sudo iptables -F INPUT

Xóa sạch tất cả các chuỗi

Để xóa tất cả các chuỗi hoặc xóa sạch chúng, bạn có thể sử dụng tùy chọn -F hoặc tương đương –flush một mình:

sudo iptables -F

Cách xóa tất cả quy tắc, xóa tất cả chuỗi và chấp nhận tất cả?

Tại thời điểm này, chúng tôi sẽ mô tả cách xóa sạch tất cả các quy tắc tường lửa, bảng và chuỗi cũng như cho phép tất cả lưu lượng mạng. Hãy chú ý rằng quá trình này sẽ vô hiệu hóa hiệu quả tường lửa. Vì vậy, bạn chỉ nên làm theo phần này nếu bạn muốn bắt đầu lại với cấu hình tường lửa của mình.

Trước tiên, bạn cần đặt các chính sách mặc định cho từng chuỗi dựng sẵn thành ACCEPT. Lý do chính chúng tôi làm điều này là để đảm bảo bạn sẽ không bị khóa thoát khỏi máy chủ thông qua SSH:

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Sau đó, bạn cần xóa sạch các bảng nat và mangle, xóa sạch tất cả các chuỗi (-F)và xóa tất cả các chuỗi không phải mặc định (-X) như thế này:

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

Sau khi chạy các lệnh trước đó, tường lửa sẽ cho phép tất cả lưu lượng mạng. Nếu bạn muốn liệt kê các quy tắc của mình bây giờ, bạn sẽ thấy không có quy tắc nào, chỉ còn ba chuỗi mặc định như INPUT, FORWARD và OUTPUT.

Cách cấu hình iptables trong Ubuntu?

Giống như bất kỳ hành vi tường lửa cơ bản nào, các quy tắc iptables được đọc theo thứ tự liệt kê trên mỗi chuỗi, có nghĩa là bạn phải đặt các quy tắc theo đúng thứ tự. Khi bạn nối thêm quy tắc mới, chúng sẽ được thêm vào cuối danh sách quy tắc. Bạn có thể thêm quy tắc mới vào một vị trí cụ thể trong danh sách bằng cách chèn chúng bằng iptables -I <index> -command. Cái <index> là số thứ tự mà bạn muốn chèn quy tắc trong lệnh này. Bạn có thể sử dụng lệnh sau để hiểu số chỉ mục nào cần nhập:

sudo iptables -L --line-numbers

Số ở đầu mỗi dòng quy tắc cho biết vị trí của nó trong chuỗi. Để thêm quy tắc mới phía trước một quy tắc hiện tại, bạn phải sử dụng số chỉ mục của quy tắc đó. Ví dụ, nếu muốn thêm quy tắc mới vào đầu chuỗi, hãy chạy lệnh sau với chỉ mục 1:

sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

iptables khác với firewalld như thế nào?

Cả iptables và firewalld đều là công cụ thực dụng để quản lý tường lửa trên các hệ thống Linux được thiết kế riêng cho lọc gói (lọc tĩnh). Lọc gói là chiến lược tường lửa cho phép người dùng kiểm soát quyền truy cập vào mạng cụ thể bằng cách quản lý các gói tin đến và đi. Chúng cho phép hoặc chặn các gói dựa trên các quy tắc tường lửa được đặt sẵn về giao thức, cổng và địa chỉ IP nguồn và đích. Những quy tắc này cung cấp cơ chế bảo mật rất hiệu quả, làm cho lọc gói tin trở thành phòng chống tốt chống lại các thiết bị được định tuyến bên ngoài mạng LAN (Local Area Network) của hệ thống.

Lưu ý rằng firewalld được giới thiệu ban đầu như một phần mềm để quản lý iptables và giúp người dùng sử dụng nó dễ dàng hơn. Với sự xuất hiện của firewalld và iptables, hãy so sánh chúng chi tiết hơn.

iptables vs firewalld: Cấu hình hệ thống

Firewalld và iptables sử dụng các cấu hình khác nhau và cài đặt lưu trữ mặc định khác nhau. Với iptables, mỗi thay đổi đều yêu cầu xóa tất cả các quy tắc cũ và tải quy tắc mới, do đó hệ thống phải khởi động lại. Ngược lại, với firewalld, các quy tắc không bị tạo lại. Thay vào đó, sự khác biệt và các thay đổi được áp dụng để chỉnh sửa quy tắc hiện tại, cho phép bạn thấy chúng có hiệu lực ngay lập tức.

iptables vs firewalld: Giao diện người dùng

Firewalld sử dụng giao diện đồ họa (GUI). Còn iptables sử dụng giao diện dòng lệnh (CLI), điều này có thể khó khăn đối với một số người khi truy cập các quy tắc tường lửa kernel Linux bằng iptables, khiến firewalld trở thành tùy chọn đơn giản hơn. Hãy lưu ý rằng iptables có thời gian phản hồi nhanh hơn vì bạn chỉ cần sử dụng các lệnh ngắn. Bên cạnh đó, cả hai đều có các trường hợp sử dụng riêng, vì vậy hãy chọn cái mà bạn cảm thấy thoải mái làm việc.

Nhận xét cuối cùng: Hiển thị quy tắc iptables

Iptables là công cụ tường lửa rất linh hoạt được tạo riêng cho các hệ điều hành Linux. Dù bạn là người mới bắt đầu tìm hiểu Linux hay là quản trị viên hệ thống chuyên nghiệp, luôn có cách mà các quy tắc iptables có thể giúp bạn. Bài viết này chủ yếu trình bày các lệnh cơ bản cho công cụ tường lửa này, bao gồm cách liệt kê quy tắc iptables và xóa quy tắc iptables, nhằm tổng quan về các khả năng Linux. Ngoài ra, bạn có thể sử dụng các giải pháp hosting Linux VPS của chúng tôi để khai thác toàn bộ tiềm năng của hệ điều hành tuyệt vời này. Tại Cloudzy, chúng tôi cung cấp nhiều gói Linux VPS do KVM cung cấp, phù hợp với nhiều trường hợp sử dụng như lưu trữ web, triển khai ứng dụng web hoặc thiết lập môi trường phát triển, kiểm thử và tự động hóa mã.

Câu hỏi thường gặp

Cách liệt kê tất cả quy tắc iptables trên Linux theo chi tiết?

Nếu bạn muốn liệt kê tất cả các quy tắc iptables hiện hoạt theo thông số kỹ thuật hoặc chức năng của chúng, bạn có thể làm như vậy bằng cách sử dụng lệnh iptables theo sau bằng cờ -S. Chú ý sử dụng sudo tham số trong trường hợp này:

sudo iptables -S

Cách xóa quy tắc iptables?

Để xóa một chuỗi cụ thể, điều này sẽ xóa tất cả quy tắc trong chuỗi, bạn phải sử dụng tùy chọn -F hoặc --flush cùng với tên chuỗi. Giả sử chúng ta muốn xóa tất cả quy tắc trong chuỗi OUTPUT, thì phải làm gì? Bạn cần chạy lệnh này:

 sudo iptables -F OUTPUT

iptables hoạt động như thế nào trong Ubuntu?

Tường lửa iptables so sánh lưu lượng mạng với một bộ quy tắc. Các quy tắc iptables xác định các đặc tính của gói để khớp với quy tắc và hành động nào nên thực hiện nếu gói khớp. Tất nhiên, có nhiều tùy chọn để đặt gói nào khớp với quy tắc cụ thể.

Quy tắc iptables có hiệu lực ngay lập tức không? Tại sao?

Có, các quy tắc iptables có hiệu lực ngay lập tức vì script của bạn đang thêm vào các chuỗi INPUT và OUTPUT, và các quy tắc của bạn được thêm vào cuối những chuỗi đó.

Chia sẻ

Bài viết mới từ blog

Tiếp tục đọc.

Hình ảnh tiêu đề Cloudzy cho hướng dẫn MikroTik L2TP VPN, thể hiện một máy tính xách tay kết nối với một giá máy chủ thông qua một đường hầm kỹ thuật số lấp lánh xanh và vàng với các biểu tượng khiên.
Bảo mật & Mạng

Thiết lập MikroTik L2TP VPN (với IPsec): Hướng dẫn RouterOS (2026)

Trong thiết lập MikroTik L2TP VPN này, L2TP xử lý tunneling còn IPsec xử lý mã hóa và toàn vẹn dữ liệu; kết hợp chúng cho phép tính tương thích máy khách gốc mà không cần phần mềm bên thứ ba

Rexa CyrusRexa Cyrus 9 phút đọc
Cửa sổ terminal hiển thị thông báo cảnh báo SSH về thay đổi xác định máy chủ từ xa, với tiêu đề Hướng dẫn Sửa chữa và thương hiệu Cloudzy trên nền xanh lục nhạt.
Bảo mật & Mạng

Cảnh báo: Xác định máy chủ từ xa đã thay đổi & Cách sửa chữa

SSH là một giao thức mạng an toàn tạo ra tunnel được mã hóa giữa các hệ thống. Nó vẫn phổ biến với các nhà phát triển cần truy cập từ xa vào máy tính mà không cần giao diện đồ họa

Rexa CyrusRexa Cyrus Đọc 10 phút
Minh họa hướng dẫn khắc phục sự cố máy chủ DNS với các ký hiệu cảnh báo và máy chủ màu xanh trên nền tối cho lỗi phân giải tên Linux
Bảo mật & Mạng

Lỗi phân giải tên tạm thời: Nó có nghĩa gì & Cách sửa chữa?

Khi sử dụng Linux, bạn có thể gặp lỗi phân giải tên tạm thời khi cố truy cập trang web, cập nhật gói hoặc thực hiện các tác vụ yêu cầu kết nối internet

Rexa CyrusRexa Cyrus 12 phút đọc

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, hoạt động từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.