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

Liệt kê và xóa các quy tắc Iptables của Linux – Bảng cheat dành cho người mới bắt đầu

Lily Carnell By Lily Carnell đọc 14 phút Cập nhật ngày 18 tháng 9 năm 2023
Hướng dẫn liệt kê và xóa các quy tắc Iptables

Truy cập trái phép và hack 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 tài sản 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ẽ hướng dẫn bạn làm quen với các khái niệm tường lửa cơ bản như iptables hiển thị các quy tắc và loại bỏ các quy tắc iptables trong Ubuntu, giúp bạn chạy các lệnh đơn giản để đạt được điều này. Trước khi thảo luận về cách liệt kê các quy tắc iptables hoặc xóa chúng, hãy cùng tìm hiểu các quy tắc iptables là gì và tại sao chúng ta sử dụng chúng?

Iptable là gì?

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

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

sudo apt-get install iptables

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

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

Như đã đề cập ở phần trước, iptables đóng 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ả iptables liệt kê tất cả các quy tắc, bao gồm các khái niệm như cách hiển thị iptables và loại bỏ các 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 chuỗi và xóa tất cả chuỗi & chấp nhận tất cả lưu lượng truy cập.

Hướng dẫn đầy đủ về Iptables trong Ubuntu

Trước khi xem qua các quy tắc hiển thị iptables, hãy lưu ý rằng bạn phải đang sử dụng máy chủ Linux có cài đặt lệnh iptables. Ngoài những yêu cầu này, điều cần thiết là phải có đặc quyền sudo. Khi làm việc với tường lửa, hãy chú ý không tự khóa máy chủ của mình 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 do cài đặt tường lửa, bạn có thể cần phải kết nối với nó thông qua bảng điều khiển ngoài băng tần để khắc phục.

Cũng đọc: Cách thay đổi cổng SSH trong Linux | Hướng dẫn từng bước nhanh về cổng SSH của bạn

Quy tắc liệt kê theo đặc điểm kỹ thuật

Bạn có thể xem các quy tắc iptables đang hoạt động của mình trong một cái bàn hoặc như danh sách các đặc tả quy tắc. Hầu như 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ả các quy tắc của iptables đang hoạt động theo thông số kỹ thuật, bạn cần chạy lệnh iptables với Tùy chọn -S:

sudo iptables -S

Sau khi chạy lệnh iptables show quy tắc này, bạn sẽ thấy kết quả như thế này:

đầu ra của quy tắc danh sách chương trình đang chạy
đầu ra của quy tắc danh sách chương trình đang chạy

Liệt kê một chuỗi cụ thể

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

sudo iptables -S TCP

đầu ra của việc liệt kê một chuỗi TCP được chỉ định
đầu ra của việc liệt kê một chuỗi TCP được chỉ định

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

Quy tắc liệt kê dưới dạng bảng

Sử dụng lệnh để hiển thị các quy tắc iptables trong bảng có thể giúp so sánh các quy tắc khác nhau. Bạn cần chạy lệnh show iptables sau đây với -L tùy chọn để xuất tất cả các quy tắc hoạt động này trong một 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. Có một cách để bạn giới hạn đầu ra ở một chuỗi cụ thể như INPUT, OUTPUT, TCP, v.v.; bạn cần chỉ định tên chuỗi ngay sau tùy chọn -L. Dưới đây là một ví dụ về việc giới hạn các quy tắc hiển thị iptables đối với chuỗi INPUT:

sudo iptables -L INPUT

đầu ra của iptables hiển thị các quy tắc giới hạn trong chuỗi INPUT
đầu ra của iptables hiển thị các quy tắc giới hạn trong chuỗi INPUT

Dòng đầu tiên của kết quả đầu ra ở 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 tôi sẽ điểm qua chúng để giúp bạn tìm hiểu tất cả:

  • Mục tiêu: Nếu một gói tương ứng với quy tắc, mục tiêu sẽ xác định những gì nên làm với nó. Bạn có thể yêu cầu một gói được chấp nhận, loại bỏ, ghi lại hoặc gửi đến một chuỗi khác để so sánh với nhiều quy tắc hơn.
  • prot: Giao thức (như TCP, udp, ICMP hoặc tất cả)
  • opt: cho biết tùy chọn IP (Không thường xuyên sử dụng)
  • nguồn: hiển thị địa chỉ IP/mạng con nguồn của lưu lượng 
  • đích: trình bày địa chỉ IP/mạng con đích của lưu lượng truy cập

Cột không có nhãn gợi ý các tùy chọn của quy tắc và đó là 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ỳ thứ gì, từ cổng nguồn và đích đến trạng thái kết nối của gói.

Cũng đọc: Cài đặt OpenVPN trên VPS – Thiết lập máy khách OpenVPN 🔑

Làm cách nào để 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, chúng ta có thể hiển thị số lượng gói và kích thước tổng hợp của các gói tính bằng byte phù hợp với từng quy tắc iptables cụ thể; điều này thường hữu ích trong việc hiểu quy tắc nào phù hợp với các gói. Bạn phải sử dụng -L-v tùy chọn cùng nhau để hoàn thành cái này.

Đây là một ví dụ trong đó chúng ta sẽ sử dụng lại chuỗi INPUT, 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
đầu ra của Hiển thị số lượng gói và kích thước tổng hợp

Lưu ý rằng danh sách của chúng tôi hiện có thêm hai cột có tên gói byte. Chúng tôi đã học được nhiều cách khác nhau để iptables hiển thị tất cả các lệnh quy tắc được thực hiện và bây giờ là lúc biết cách đặt lại số lượng gói và kích thước tổng hợp.

Làm cách nào để đặ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 bạn muốn bộ đếm gói và byte rõ ràng hoặc bằng 0 cho quy tắc của mình. Chúng cũng đặt lại nếu xảy ra khởi động lại, điều này rất hữu ích nếu bạn muốn xem liệu máy chủ có nhận được lưu lượng truy cập mới phù hợp với các quy tắc hiện có 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 tự nó:

sudo iptables -Z

Để xóa bộ đếm cho tất 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 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 đề cập chính xác tên chuỗi và số quy tắc. Ví dụ: bạn có thể thực thi lệnh sau để xóa bộ đếm cho quy tắc đầu tiên trong chuỗi INPUT:

sudo iptables -Z INPUT 1

Ngoài việc biết iptables hiển thị tất cả các lệnh quy tắc và cách đặt lại gói iptables và bộ đếm byte, bạn nên biết cách loại bỏ quy tắc iptables.

Cũng đọc: Cách cài đặt máy chủ PPTP VPN trên VPS của bạn

Làm thế nào để loại bỏ các quy tắc iptables?

Bạn có thể sử dụng nhiều lệnh để loại bỏ 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. Ở đây chúng ta sẽ thảo luận về những phương pháp này,

Xóa quy tắc theo thông số kỹ thuật

Một trong những cách để loại bỏ các quy tắc iptables là thực hiện thông 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 các quy tắc bằng kỹ thuật này, bạn có thể sử dụng đầu ra của danh sách quy tắc, iptables -S, để được trợ giúp.

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

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

Hãy chú ý rằng tùy chọn -A dùng để chỉ ra vị trí quy tắc tại thời điểm tạo và cần được loại trừ ở đây.

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

Phương pháp khác bạn có thể sử dụng để loại bỏ các quy tắc iptables là thông qua số dòng và chuỗi của nó. Nhập lệnh sau để chọn 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 số dòng:

sudo iptables -L --line-numbers

Xóa quy tắc theo chuỗi và số
đầu ra của 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 hiển thị bằng tiêu đề num.

Khi bạn biết quy tắc nào bạn muốn xóa, hãy ghi nhớ chuỗi và số dòng của quy tắc đó. Bạn phải sử dụng lệnh iptables -D với số 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 không hợp lệ, bạn có thể thấy đó là quy tắc 3 của chuỗi INPUT. Vì vậy hãy chạy lệnh này:

sudo iptables -D INPUT 3

Làm thế nào để tuôn ra chuỗi?

Có một cách để bạn loại bỏ tất cả các quy tắc Iptables trong một chuỗi mà chúng tôi gọi là xả một chuỗi. Ở đây chúng tôi sẽ đề cập đến 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ú ý để không bị khóa khỏi máy chủ thông qua SSH khi xóa chuỗi có chính sách mặc định là loại bỏ hoặc từ chối. Bởi vì nếu làm như vậy, bạn có thể cần kết nối với nó thông qua bảng điều khiển để khắc phục quyền truy cập của mình.

Xả một chuỗi đơn

Để xóa 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 tuôn ra và tên của chuỗi đã chọn. Giả sử bạn muốn xóa tất cả quy tắc trong chuỗi INPUT; phải làm gì? Chà, thật dễ dàng, hãy chạy lệnh sau:

sudo iptables -F INPUT

Rửa sạch tất cả các chuỗi

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

sudo iptables -F

Làm cách nào để 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 tất cả các quy tắc, bảng và chuỗi tường lửa cũng như cho phép tất cả lưu lượng truy cập mạng. Hãy chú ý rằng quá trình này sẽ vô hiệu hóa tường lửa một cách hiệu quả. Vì vậy, Bạn chỉ nên làm theo phần này nếu 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 chính sách mặc định cho từng chuỗi tích hợp thành CHẤP NHẬN. Nguyên nhân chính chúng tôi làm điều này là để đảm bảo rằng bạn sẽ không bị khóa khỏi máy chủ bằng SSH:

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

Sau đó, bạn cần xóa các bảng nat và mangle, xóa tất cả các chuỗi (-F)và xóa tất cả các chuỗi không 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 truy cập 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 cả; chỉ còn lại ba chuỗi mặc định như chuỗi INPUT, FORWARD và OUTPUT.

Làm cách nào để thiết lập 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ó thể được đọc theo thứ tự được liệt kê trên mỗi chuỗi, điều đó có nghĩa là bạn sẽ phải đặt các quy tắc theo đúng thứ tự. Khi bạn thêm các quy tắc mới, bạn sẽ thêm chúng 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í danh sách cụ thể bằng cách chèn chúng bằng cách sử dụng iptables -I <chỉ mục> -lệnh. các <chỉ mục> dành cho số thứ tự bạn muốn chèn quy tắc vào 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 hiển thị vị trí trong chuỗi. Để thêm quy tắc mới phía trên quy tắc hiện có cụ thể, bạn phải sử dụng số chỉ mục của quy tắc hiện có đó. Ví dụ: nếu bạn muốn thêm quy tắc mới vào đầu chuỗi, bạn phải sử dụng lệnh sau với chỉ mục số 1:

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

iptables khác với tường lửa như thế nào?

Cả iptables và tường lửa đều là những công cụ thiết thực để quản lý tường lửa trên các hệ thống Linux khác nhau được thiết kế rõ ràng để lọc gói (lọc tĩnh). Lọc gói là một 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ột mạng cụ thể thông qua việc quản lý các gói thông tin đến và đi. Họ cho phép chúng đi qua hoặc từ chối chúng dựa trên các quy tắc tường lửa được cài đặt sẵn về các giao thức nguồn và đích cũng như cổng và địa chỉ IP của chúng. Các quy tắc này cung cấp các cơ chế bảo mật rất hiệu quả, giúp việc lọc gói thông tin trở thành một biện pháp bảo vệ tuyệt vời chống lại các thiết bị được định tuyến bên ngoài mạng LAN hệ thống (Mạng cục bộ).

Lưu ý rằng tường lửa ban đầu được giới thiệu là phần mềm xử lý iptables nhằm giúp người dùng điều hướng nó dễ dàng hơn. Sau phần giới thiệu về tường lửa và iptables, chúng ta hãy so sánh chúng chi tiết hơn.

iptables vs tường lửa: Cấu hình hệ thống

Tường lửa và iptables sử dụng các cấu hình và cài đặt lưu trữ mặc định khác nhau. Với iptables, mọi thay đổi có nghĩa là loại bỏ tất cả các quy tắc cũ và đọc các quy tắc mới, do đó hệ thống phải khởi động lại. Tuy nhiên, khi sử dụng tường lửa, các quy tắc sẽ không được tạo lại; thay vào đó, những khác biệt và sửa đổi được thực hiện sẽ được áp dụng để thay đổi các quy tắc hiện có để bạn có thể thấy chúng có hiệu lực trong thời gian chạy.

iptables vs tường lửa: Giao diện người dùng

Tường lửa sử dụng giao diện Người dùng Đồ họa (GUI). Tuy nhiên, iptables sử dụng Giao diện dòng lệnh (CLI), điều này có thể gây khó khăn cho một số người khi truy cập các quy tắc tường lửa nhân Linux bằng iptables, khiến tường lửa trở thành một tùy chọn đơn giản hơn. Tốt nhất nên lưu ý rằng iptables có thời gian phản hồi ngắn hơn vì bạn chỉ sử dụng các lệnh ngắn. Bỏ tất cả những điều này sang một bên, cả hai đều có trường hợp sử dụng riêng, vì vậy hãy chọn trường hợp bạn cảm thấy thoải mái hơn khi làm việc cùng.

Suy nghĩ cuối cùng: iptables hiển thị quy tắc

Iptables là một tiện ích tường lửa rất linh hoạt được tạo riêng cho hệ điều hành Linux. Sẽ không thành vấn đề nếu bạn là người mới sử dụng Linux hay quản trị viên hệ thống chuyên nghiệp; có một số cách mà các quy tắc iptables có thể hữu ích cho bạn. Bài viết này chủ yếu trình bày các lệnh cơ bản cho tiện ích tường lửa này, bao gồm các quy tắc hiển thị iptables và loại bỏ các quy tắc iptables, nhằm mục đích xem xét ngắn gọn các khả năng của Linux. Ngoài ra, bạn có thể sử dụng của chúng tôi Giải pháp lưu trữ VPS Linux để tận dụng tiềm năng thực sự 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 VPS Linux hỗ trợ KVM khác nhau phù hợp với nhiều trường hợp sử dụng, chẳng hạn như lưu trữ web, triển khai ứng dụng web hoặc thậm chí thiết lập môi trường để phát triển, thử nghiệm và tự động hóa mã.

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

Làm cách nào để liệt kê tất cả các quy tắc iptables của Linux theo thông số kỹ thuật?

Nếu bạn muốn liệt kê tất cả các quy tắc iptables hiện đang hoạt động 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 lệnh iptables, sau đó là lệnh -S cờ. Hãy chú ý sử dụng các sudo từ khóa trong trường hợp này:

sudo iptables -S

Làm thế nào để loại bỏ các quy tắc iptables?

Để xóa một chuỗi cụ thể, thao tác này sẽ xóa tất cả các quy tắc trong chuỗi, bạn phải sử dụng tùy chọn -F hoặc –flush và tên của chuỗi. Giả sử chúng ta muốn xóa toàn bộ các quy tắc trong chuỗi OUTPUT thì phải làm như thế nào? Chà, bạn cần thực hiện lệnh này:

 sudo iptables -F ĐẦU RA

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 chỉ định các đặc điểm của gói phù hợp với quy tắc và hành động nào sẽ được thực hiện nếu các gói phù hợp. Tất nhiên, có nhiều tùy chọn để đặt gói nào phù hợp với một quy tắc cụ thể.

Các 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ì tập lệnh của bạn đang thêm vào chuỗi INPUT và OUTPUT và các quy tắc của bạn đang được thêm vào cuối chuỗi đó.

Chia sẻ

Thêm từ blog

Hãy tiếp tục đọc.

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

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

Trong thiết lập VPN MikroTik L2TP này, L2TP xử lý đường hầm trong khi IPsec xử lý mã hóa và tính toàn vẹn; việc ghép nối chúng mang lại cho bạn khả năng tương thích với máy khách gốc mà không cần đến độ tuổi của bên thứ ba

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

Cảnh báo: Nhận dạng máy chủ từ xa đã thay đổi và cách khắc phục

SSH là một giao thức mạng an toàn tạo ra một đường hầm đượ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 đồ 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 biểu tượng cảnh báo và máy chủ màu xanh trên nền tối đối với lỗi phân giải tên Linux
Bảo mật & Mạng

Lỗi tạm thời trong việc phân giải tên: Ý nghĩa của nó và cách khắc phục?

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

Rexa CyrusRexa Cyrus đọc 12 phút

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

Đám mây độc lập, kể từ năm 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.