Lệnh iptables trong linux với các ví dụ dễ hiểu

Iptables trong Linux là một tường lửa mạnh mẽ, giúp bạn kiểm soát lưu lượng mạng ra vào hệ thống một cách linh hoạt. Nó hoạt động bằng cách sử dụng các bảng và chuỗi để định nghĩa các quy tắc, từ đó cho phép hoặc chặn các kết nối dựa trên nhiều tiêu chí. Với iptables trong Linux, bạn có thể bảo vệ máy chủ khỏi các tấn công và quản lý lưu lượng mạng hiệu quả.

Lệnh iptables trong linux là gì?

Iptables trong Linux là một tường lửa mạnh mẽ, giúp bạn kiểm soát lưu lượng mạng ra vào hệ thống một cách linh hoạt. Nó hoạt động bằng cách sử dụng các bảng (tables) chứa các quy tắc (rules) để quyết định xử lý các gói tin mạng. Command iptables in linux cho phép bạn thêm, sửa đổi hoặc xóa các quy tắc này, từ đó bảo vệ máy chủ khỏi các truy cập trái phép. Bạn có thể chặn các kết nối từ một địa chỉ IP cụ thể hoặc cho phép lưu lượng truy cập đến một cổng nhất định. Iptables là công cụ không thể thiếu cho bất kỳ ai muốn tăng cường bảo mật cho hệ thống Linux của mình.

Tìm hiểu các kiến thức cơ bản về iptables

Trong bước này, bạn sẽ học các khái niệm cơ bản về tường lửa iptables trên Linux.

Iptables là một công cụ mạnh mẽ cho phép bạn quản lý và kiểm soát lưu lượng mạng trên hệ thống.

Đầu tiên, hãy tìm hiểu cấu trúc cơ bản của iptables, được tổ chức thành các bảng khác nhau.

Mỗi bảng có một tập hợp các chain dựng sẵn riêng, và các bảng thường dùng nhất là:

  • filter: Bảng này chịu trách nhiệm lọc các gói tin mạng, quyết định cho phép hoặc chặn chúng.
  • nat: Bảng này được dùng để chuyển đổi địa chỉ mạng, thường dùng cho port forwarding hoặc masquerading.
  • mangle: Bảng này được dùng để thay đổi các gói tin chuyên biệt, ví dụ như đặt trường ToS trong header IP.

Mỗi bảng chứa một tập hợp các chain dựng sẵn, ví dụ như INPUT, OUTPUT, và FORWARD.

Các chain này tương ứng với các giai đoạn khác nhau của quá trình truyền tải gói tin.

Bây giờ, hãy khám phá một số lệnh iptables cơ bản:

## List all existing rules
sudo iptables -L

## List rules for a specific table (e.g., filter)
sudo iptables -t filter -L

## Add a new rule to the INPUT chain to block traffic on port 80
sudo iptables -A INPUT -p tcp --dport 80 -j DROP

## Delete a rule from the INPUT chain
sudo iptables -D INPUT 1

## Save the current iptables configuration
sudo iptables-save > ~/project/iptables-rules.txt

Ví dụ về đầu ra:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
DROP       tcp  --  anywhere             anywhere             dport 80

Trong ví dụ trên, ta liệt kê tất cả các rule iptables hiện có, sau đó thêm một rule mới.

Rule mới này sẽ chặn lưu lượng truy cập trên cổng 80 vào chain INPUT, và cuối cùng xóa rule vừa thêm.

Chúng ta cũng lưu cấu hình iptables hiện tại vào một file để tham khảo trong tương lai.

```html

Quản lý các Quy tắc Tường lửa với iptables

Trong bước này, bạn sẽ học cách quản lý các quy tắc tường lửa bằng iptables.

Chúng ta sẽ tìm hiểu về thêm, xóa và sửa đổi quy tắc, cũng như lưu cấu hình hiện tại.

Đầu tiên, hãy liệt kê các quy tắc tường lửa hiện tại bằng lệnh sau:

sudo iptables -L

Ví dụ về kết quả trả về:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
ACCEPT     udp  --  anywhere             anywhere             state NEW,RELATED,ESTABLISHED
DROP       tcp  --  anywhere             anywhere             dport 80

Bây giờ, hãy thêm một quy tắc mới để cho phép lưu lượng SSH (cổng 22) trên chain INPUT.

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Để xóa quy tắc chặn cổng 80 mà chúng ta đã thêm trước đó, dùng lệnh sau:

sudo iptables -D INPUT -p tcp --dport 80 -j DROP

Cuối cùng, hãy lưu cấu hình iptables hiện tại vào một file để sử dụng sau này.

sudo iptables-save > ~/project/iptables-rules.txt

Lệnh này sẽ lưu các quy tắc iptables hiện tại vào file iptables-rules.txt trong thư mục ~/project.

```

Triển khai Cấu hình iptables Nâng cao

Trong bước cuối cùng này, bạn sẽ học cách triển khai các cấu hình iptables nâng cao, ví dụ như chuyển tiếp cổng và NAT.

Đầu tiên, hãy thiết lập chuyển tiếp cổng để chuyển hướng lưu lượng từ một cổng sang cổng khác một cách dễ dàng.

Ví dụ, chúng ta sẽ chuyển tiếp lưu lượng từ cổng 8080 đến cổng 80 trên máy cục bộ của bạn.

## Enable IP forwarding
sudo sysctl -w net.ipv4.ip_forward=1

## Add a port forwarding rule
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 127.0.0.1:80

Bây giờ, bất kỳ lưu lượng nào đến hệ thống trên cổng 8080 sẽ được chuyển tiếp đến cổng 80 trên máy cục bộ.

Tiếp theo, hãy cấu hình một quy tắc NAT (Network Address Translation) đơn giản để che giấu lưu lượng đi từ mạng cục bộ.

## Add a masquerade rule for the default interface
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Quy tắc này sẽ che giấu tất cả lưu lượng đi từ mạng cục bộ (giả sử giao diện mặc định là eth0) đến mạng bên ngoài.

Cuối cùng, hãy lưu cấu hình iptables hiện tại vào một tệp để sử dụng sau này khi cần thiết.

sudo iptables-save > ~/project/iptables-advanced-rules.txt

Thao tác này sẽ lưu các quy tắc iptables nâng cao vào tệp iptables-advanced-rules.txt trong thư mục ~/project.

Kết luận cho linux iptables command

Vậy là chúng ta đã cùng nhau khám phá những điều cơ bản về iptables trong Linux. Hy vọng bạn đã có cái nhìn tổng quan và hiểu rõ hơn về cách tường lửa hoạt động. Linux iptables command là một công cụ mạnh mẽ, giúp bạn kiểm soát lưu lượng mạng ra vào hệ thống một cách hiệu quả. Đừng ngại thử nghiệm và tìm hiểu thêm các tùy chọn khác nhau để tối ưu hóa bảo mật cho máy chủ của bạn. Hãy nhớ rằng, việc cấu hình tường lửa đúng cách là một phần quan trọng trong việc bảo vệ hệ thống khỏi các mối đe dọa. Chúc bạn thành công trên con đường làm chủ iptables và bảo vệ hệ thống Linux của mình! Hãy tiếp tục khám phá và học hỏi để trở thành một chuyên gia bảo mật mạng nhé.

Last Updated : 15/10/2025