Nếu bạn đã từng khám phá hoặc làm việc với hệ điều hành Linux, chắc chắn bạn đã nghe về IPtables. Thuật ngữ này thuộc lĩnh vực công nghệ thông tin và chỉ những người làm việc trong ngành mới có thể hiểu biết sâu sắc về nó. Vậy IPtables là gì? Vai trò của IPtables là gì? Làm sao để sử dụng? Mời bạn cùng tìm hiểu chi tiết hơn trong bài viết dưới đây của VinaHost.
1. IPtables là gì?
IPtables là gì? IPtables là một chương trình Firewall – Tường lửa miễn phí. Chương trình này được phát triển chủ yếu dành cho hệ điều hành Linux, cho phép hệ điều hành thiết lập các quy tắc riêng để kiểm soát truy cập và tăng cường tính bảo mật cho các hệ thống như VPS, Hosting hay Server.
Khi tiến hành sử dụng máy chủ, công cụ này thực hiện tốt nhiệm vụ ngăn chặn các truy cập không hợp lệ thông qua việc sử dụng Netfilter. IPtables/Netfilter bao gồm hai thành phần chính: phần Netfilter được tích hợp trong nhân Linux và phần còn lại là IPtables ở bên ngoài. Vì thế, chương trình này đóng vai trò là hệ thống giao tiếp với người dùng, đồng thời đưa các quy tắc của người dùng vào Netfilter để xử lý.
Netfilter đảm nhận nhiệm vụ lọc các gói dữ liệu ở mức IP, và hoạt động trực tiếp trong nhân Linux, giúp tăng hiệu suất và giảm tải cho hệ thống. IPtables đóng vai trò là giao diện cho Netfilter, và cả hai thành phần này có nhiệm vụ tương tự nhau. Tường lửa quyết định xem các gói tin nào được phép đi vào hoặc ra khỏi hệ thống, và việc quyết định cổng nào có thể kết nối từ bên ngoài là một phần chức năng của tường lửa.
Một số tính năng đáng chú ý mà chương trình này cung cấp bao gồm:
- Tích hợp tốt với kernel của Linux
- Phân tích gói tin hiệu quả
- Lọc gói tin
- Cung cấp các tùy chọn để ghi nhận sự kiện hệ thống
- Kỹ thuật NAT
- Ngăn chặn các cuộc tấn công kiểu DoS
Xem thêm: Kernel là gì? | Phân loại & Vai trò Kernel trong hệ điều hành
2. Các thành phần cơ bản trong IPtables
Chương trình này thực hiện chức năng của mình thông qua các dòng lệnh để tương tác với khung Packet Filtering của Netfilter Framework. Vì vậy, cơ chế lọc gói tin của công cụ này được xây dựng dựa trên ba thành phần cơ bản: Tables – các bảng trong IPtables, Chains và Targets. Dưới đây là mô tả chi tiết về các thành phần cơ bản của IPtables.
2.1. Các bảng trong IPtables
Các bảng trong IPtables, được gọi là Tables, là một trong những thành phần chính để xử lý các gói tin theo các cách cụ thể khác nhau.
Filter Table
Trong số các bảng trong IPtables, bảng Filter là bảng được sử dụng phổ biến nhất trong quá trình hoạt động. Bảng này được thiết kế với nhiệm vụ chính là quyết định xem một gói tin có được chuyển đến đích hay không, hoặc từ chối yêu cầu của gói tin.
NAT Table
Như đã đề cập trước đó, mỗi bảng trong IPtables đảm nhận một nhiệm vụ cụ thể trong hệ thống. Do đó, bảng NAT sử dụng các quy tắc liên quan đến NAT. Nhiệm vụ chính của bảng NAT là điều chỉnh thông tin về nguồn (Source) hoặc đích (Destination) của các gói tin. Với sự hiện diện của bảng NAT, việc điều chỉnh thông tin gói tin sẽ trở nên đơn giản và dễ dàng hơn.
Mangle Table
Bảng Mangle là một trong những bảng quan trọng. Nhiệm vụ của bảng này là chỉnh sửa header của gói tin. Ngoài ra, việc sử dụng bảng Mangle cũng cho phép chỉnh sửa giá trị của các trường như: TTL, MTL, Type of Service.
RAM Table
Theo bản chất của IPtables, nó là một stateful firewall với các gói tin được theo dõi. Các gói tin này được kiểm tra đối với trạng thái State. Bảng RAM là một thành phần giúp người dùng dễ dàng làm việc với các gói tin trước khi kernel bắt đầu kiểm tra trạng thái. Bảng RAM cũng có chức năng loại bỏ một số gói tin khỏi việc theo dõi để tăng hiệu suất của hệ thống. Vì vậy, vai trò quan trọng của bảng RAM trong IPtables không thể phủ nhận.
Security Table
Bảng tiếp theo là Bảng Security. Một số Kernel có thể hỗ trợ thêm bảng Security được sử dụng bởi Selinux để thiết lập các chính sách bảo mật hiệu quả. Vì vậy, bảng Security luôn đóng vai trò quan trọng trong danh sách các bảng của IPtables.
2.2. Chains
Chains là thành phần cơ bản tiếp theo trong công cụ này, được tạo ra với số lượng cố định tương ứng với mỗi bảng trong Iptables. Chức năng chính của chúng là lọc gói tin tại các điểm khác nhau.
Trong Nat Table, Mangle Table và Raw Table tồn tại Chain Prerouting. Các quy tắc trong Chain này được áp dụng ngay khi gói tin đi qua giao diện Network Interface.
- Chain Input chỉ tồn tại trong Mangle Table và Nat Table, thực thi các quy tắc trước khi gói tin nhập vào tiến trình.
- Chain Output xuất hiện trong Raw Table, Mangle Table và Filter, áp dụng các quy tắc sau khi gói tin được tiến trình tạo ra.
- Chain Forward tồn tại trong Mangle Table và Filter Table, áp dụng các quy tắc cho các gói tin được định tuyến qua host.
- Chain Postrouting chỉ tồn tại trong Mangle Table và Nat Table, thực thi các quy tắc khi gói tin rời khỏi giao diện Internet.
2.3. Target
Bộ phận thứ ba trong công cụ này là Target. Target đại diện cho hành động được thực hiện đối với các gói tin khi chúng phù hợp với các quy tắc được đặt ra.
- ACCEPT: Chấp nhận và cho phép gói tin đi vào hệ thống.
- DROP: Loại bỏ gói tin, không có gói tin phản hồi.
- REJECT: Loại bỏ gói tin nhưng vẫn cho phép gói tin phản hồi từ bảng gói tin khác.
- LOG: Chấp nhận gói tin và ghi lại log.
Target là hành động áp dụng cho gói tin khi chúng đi qua tất cả các quy tắc mà không bị dừng lại ở bất kỳ quy tắc nào.
Xem thêm: Linux là gì | Tổng hợp kiến thức [A-Z] hệ điều hành Linux
3. Vì sao nên sử dụng IPtables?
Bạn đã biết về tường lửa và IPtables, hãy xem cách chúng ta có thể áp dụng chúng. Phần lớn người dùng thường tìm kiếm giải pháp đơn giản thông qua việc sử dụng firewalld hoặc ufw. Firewalld và ufw đều rất dễ sử dụng, điều này đã làm cho chúng trở nên phổ biến.
Tuy nhiên, Firewalld và ufw chỉ cho phép bạn chấp nhận hoặc từ chối một gói tin. Với công cụ này, có rất nhiều thứ bạn có thể làm với một gói tin như NAT, ghi log, chuyển tiếp, và nhiều hơn nữa.
Nhìn chung, dưới đây là những lý do bạn nên sử dụng:
- Công cụ này có đầy đủ tính năng mà bạn cần.
- Bạn có thể xử lý các gói tin linh hoạt hơn.
- Bạn sẽ cảm thấy như một người lập trình đặc biệt khi tự mình viết được những quy tắc tuyệt vời để chống lại các cuộc tấn công.
4. Cách cấu hình cơ bản trong IPtables
Dữ liệu trong các gói tin được định dạng qua internet trước khi được gửi đi, và Linux kernel hỗ trợ việc lọc các gói tin này bằng cách cung cấp một giao diện để sử dụng các bộ lọc. Đây là một ứng dụng dòng lệnh và cũng là một bức tường lửa Linux cho phép người dùng quản lý, duy trì và kiểm tra các bảng bộ lọc này.
Người dùng có thể tạo ra nhiều bảng, mỗi bảng chứa nhiều chuỗi, và mỗi chuỗi đại diện cho một quy tắc cụ thể. Mỗi quy tắc sẽ quyết định hành động cần thực hiện với gói tin khi nó khớp với quy tắc đó. Một mục tiêu (target) sẽ được xác định cho mỗi gói tin, có thể là một chuỗi khác, để phù hợp với một trong các giá trị sau:
- ACCEPT: Cho phép gói tin đi qua.
- DROP: Từ chối gói tin.
- RETURN: Bỏ qua chuỗi hiện tại và tiếp tục với quy tắc tiếp theo từ chuỗi mà nó được gọi.
5. Các tùy chọn trong IPtables
Công cụ này cung cấp nhiều tùy chọn đa dạng để người dùng có thể dễ dàng thực hiện các thao tác. Tuy nhiên, để sử dụng linh hoạt, mỗi người cần nhớ các tùy chọn này.
5.1. Tùy chọn để chỉ định thông số IPtables
Các tùy chọn được phân loại rõ ràng theo từng loại khác nhau. Tùy chọn để chỉ định các tham số cho công cụ này là một trong những tùy chọn cực kỳ quan trọng. Chi tiết thực hiện các tùy chọn chỉ định tham số như sau:
- Chỉ định tên Table: -t
- Chỉ định loại giao thức: -p
- Chỉ định card mạng vào: -i
- Chỉ định card mạng ra: -o
- Chỉ định IP nguồn: -s <địa_chỉ _ip_nguồn>
- Chỉ định IP đích: -d <địa_chỉ_ip_dích>
- Chỉ định cổng nguồn: -sport
- Chỉ định cổng đích: -dport
5.2. Tùy chọn để thao tác trên chain
Trong công cụ này, các tùy chọn để thao tác với chain sẽ đi kèm với những quy định cụ thể. Do đó, người dùng cần áp dụng chính xác để đạt được hiệu quả sử dụng như mong đợi. Chi tiết về các tùy chọn để thao tác với chain bao gồm:
- Tạo chain mới: Iptables –N
- Xóa tất cả các quy tắc đã có trong chain: Iptables –X
- Đặt danh sách cho các chain ‘built-in’ (INPUT, OUTPUT & FORWARD): Iptables –p
- Liệt kê các quy tắc trong chain: Iptables –L
- Xóa các quy tắc trong chain: Iptables –F
- Đặt lại bộ đếm Packet về 0: Iptables –Z
5.3. Tùy chọn để thao tác trên rule
Để thao tác với các quy tắc trong Iptables, người dùng phải tuân theo các tùy chọn tương ứng đã được quy định. Trong số đó, các tùy chọn quan trọng mà người dùng nên nhớ để thực hiện thao tác với quy tắc dễ dàng bao gồm:
- Thêm quy tắc: -A
- Xóa quy tắc: -D
- Thay thế quy tắc: -R
- Chèn thêm quy tắc: -I
6. Một số câu lệnh cơ bản trong IPtables
Để làm việc với các quy tắc trong IPtables, mọi thao tác đều phải sử dụng lệnh. Các lệnh trong công cụ này được phân chia thành hai loại: cơ bản và nâng cao. Thường thì, người dùng chỉ cần linh hoạt áp dụng các lệnh cơ bản của IPtables để dễ dàng làm việc với các quy tắc. Dưới đây là danh sách các lệnh cơ bản:
6.1. Câu lệnh tạo 1 rule mới
Lệnh “iptables -A INPUT -i lo -j ACCEPT” có ý nghĩa như sau:
- “A” là viết tắt của Append, nghĩa là thêm quy tắc mới vào chuỗi quy tắc.
- “INPUT” chỉ rõ rằng quy tắc được áp dụng cho gói tin đến máy chủ.
- “-i lo” chỉ rõ rằng quy tắc áp dụng cho giao diện loopback.
- “-j ACCEPT” chỉ rõ hành động sẽ thực hiện với các gói tin phù hợp là chấp nhận chúng.
Nếu bạn nhập lệnh “iptables -L -v”, bạn sẽ thấy một quy tắc mới xuất hiện, có tên là “after-created-iptables-rule”.
Sau khi thêm hoặc sửa đổi quy tắc, bạn cần lưu lại và khởi động lại tường lửa để áp dụng các thay đổi:
service iptables save
service iptables restart
Để tiếp tục thêm quy tắc nhằm cho phép lưu lại quá trình kết nối hiện tại và tránh tự động chặn các kết nối ra khỏi máy chủ, hãy tuân thủ đúng lệnh sau:
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
Để cho phép truy cập vào các cổng từ bên ngoài sử dụng giao thức tcp, thực hiện lệnh sau:
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
Trong đó:
- “-p tcp”: Xác định giao thức được sử dụng.
- “–dport 22”: Xác định cổng áp dụng cho SSH là cổng 22.
Để ngăn chặn mọi kết nối truy cập từ bên ngoài vào không tuân thủ các quy tắc trên, thực hiện lệnh dưới đây:
iptables -A INPUT -j DROP
6.2. Câu lệnh bổ sung 1 rule mới
Để chèn một quy tắc mới vào vị trí cụ thể, việc sử dụng các lệnh để bổ sung quy tắc là điều quan trọng. Trong đó, người dùng chỉ cần thay tham số -A table bằng tham số INSERT –l.
Cấu trúc lệnh bổ sung một quy tắc mới là:
IPtables -I INPUT 2 -p tcp –dport 8080 -j ACCEPT
6.3. Câu lệnh xóa 1 rule
Để xóa một quy tắc đã được tạo, bạn có thể sử dụng lệnh xóa với tham số -D. Cấu trúc chi tiết của lệnh xóa một quy tắc như sau:
IPtables -D INPUT 4
Trong trường hợp bạn muốn xóa toàn bộ các quy tắc chứa hành động DROP trong IPtables, điều này rất đơn giản. Bạn chỉ cần thực hiện lệnh với cấu trúc như sau để loại bỏ tất cả các quy tắc này:
IPtables -D INPUT -j DROP
7. Hướng dẫn sử dụng IPtables để mở Port VPS
Để mở port trong công cụ này, bạn có thể sử dụng chuỗi ACCEPT PORT với cấu trúc lệnh mở port xxx như sau:
IPtables -A INPUT -p tcp -m tcp –dport xxx -j ACCEPT
Ở đây, A đại diện cho Append, tức là chèn vào cuối của chuỗi INPUT.
Ngoài ra, bạn cũng có thể sử dụng lệnh sau để chèn rule vào đầu của chuỗi INPUT để tránh xung đột với rule gốc:
IPtables -I INPUT -p tcp -m tcp –dport xxx -j ACCEPT
Trong đó, I là Insert, và nó cho phép bạn chèn vào dòng chỉ định rulenum.
7.1. Mở Port SSH
Để mở port SSH 22 và cho phép truy cập vào VPS thông qua SSH từ bất kỳ thiết bị hoặc người dùng nào ở bất kỳ đâu, bạn có thể sử dụng các lệnh sau:
Đầu tiên, để mở port 22 để cho phép truy cập SSH từ mọi nơi:
# IPtables -I INPUT -p tcp -m tcp –dport 22 -j ACCEPT
Port SSH thường được thiết lập mặc định ở cổng 22. Nếu bạn thay đổi cổng SSH sang một cổng khác, bạn cần thay đổi cả số cổng trong cấu hình trên.
Tiếp theo, để chỉ cho phép kết nối SSH vào VPS từ một địa chỉ IP cụ thể:
# IPtables -I INPUT -p tcp -s xxx.xxx.xxx.xxx -m tcp –dport 22 -j ACCEPT
Ở đây, IPtables sẽ thêm một rule ACCEPT để chỉ cho phép kết nối SSH từ địa chỉ IP cụ thể (được biểu diễn bởi xxx.xxx.xxx.xxx).
Xem thêm: SSH là gì | Tổng hợp kiến thức [A-Z] về giao thức SSH
7.2. Mở Port Web Server
Để cho phép truy cập vào web server qua các cổng mặc định là 80 và 443, bạn có thể sử dụng các lệnh sau:
# IPtables -I INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# IPtables -I INPUT -p tcp -m tcp –dport 443 -j ACCEPT
Công cụ này mặc định hiển thị các dịch vụ HTTP và HTTPS như sau:
ACCEPT tcp — anywhere anywhere tcp dpt:http
ACCEPT tcp — anywhere anywhere tcp dpt:https
Xem thêm: HTTP, HTTPS là gì? Tại sao Website nên sử dụng HTTPS
7.3. Mở Port Mail
Để cho phép người dùng sử dụng SMTP Server qua các cổng mặc định là 25 và 465, bạn có thể sử dụng các lệnh sau:
# IPtables -I INPUT -p tcp -m tcp –dport 25 -j ACCEPT
# IPtables -I INPUT -p tcp -m tcp –dport 465 -j ACCEPT
Công cụ này mặc định sẽ hiển thị các giao thức SMTP và URD như sau:
ACCEPT tcp — anywhere anywhere tcp dpt:smtp
ACCEPT tcp — anywhere anywhere tcp dpt:urd
Để mở các cổng POP3 (cổng mặc định 110 và 995) để cho phép người dùng đọc mail trên server, bạn có thể sử dụng các lệnh sau:
# IPtables -A INPUT -p tcp -m tcp –dport 110 -j ACCEPT
# IPtables -A INPUT -p tcp -m tcp –dport 995 -j ACCEPT
Công cụ này mặc định sẽ hiển thị các giao thức POP3 và POP3S như sau:
ACCEPT tcp — anywhere anywhere tcp dpt:pop3
ACCEPT tcp — anywhere anywhere tcp dpt:pop3s
Cuối cùng, để cho phép sử dụng giao thức IMAP mail protocol (cổng mặc định là 143 và 993), bạn có thể sử dụng các lệnh sau:
# IPtables -A INPUT -p tcp -m tcp –dport 143 -j ACCEPT
# IPtables -A INPUT -p tcp -m tcp –dport 993 -j ACCEPT
Công cụ này mặc định sẽ hiển thị các giao thức IMAP và IMAPS như sau:
ACCEPT tcp — anywhere anywhere tcp dpt:imap
ACCEPT tcp — anywhere anywhere tcp dpt:imaps
Xem thêm: Mail Server là gì? | Tổng hợp thông tin [A-Z] về Mail Server
7.4. Chặn địa chỉ IP truy cập
IPtables -A INPUT -s IP_ADDRESS -j DROP
Chặn một địa chỉ IP cụ thể truy cập vào một cổng nhất định:
#IPtables -A INPUT -p tcp -s IP_ADDRESS –dport PORT -j DROP
Sau khi đã thiết lập tất cả các quy tắc, bao gồm việc mở các cổng cần thiết hoặc hạn chế kết nối, cần chặn toàn bộ các kết nối còn lại và cho phép toàn bộ các kết nối ra ngoài từ VPS.
IPtables -P OUTPUT ACCEPT
IPtables -P INPUT DROP
Kiểm tra lại các quy tắc sau khi thiết lập
service IPtables status
Hoặc
IPtables -L –n
Tùy chọn -n dùng để chỉ định IP là yếu tố quan trọng, ví dụ nếu chặn kết nối từ một địa chỉ cụ thể, IPtables sẽ hiển thị là xxx.xxx.xxx.xxx với tham số -n.
Kết thúc, lưu lại các cài đặt tường lửa IPtables nếu không chúng sẽ mất khi khởi động lại hệ thống.
Trong CentOS: Cấu hình được lưu tại /etc/sysconfig/IPtables.
IPtables-save | sudo tee /etc/sysconfig/IPtables
Hoặc
service IPtables save
Trong IPtables: Lưu các quy tắc tường lửa vào /etc/sysconfig/IPtables: [OK]
Xem thêm: IP là gì | Hướng dẫn cách xem địa chỉ IP trên điện thoại & PC, Laptop
8. Hướng dẫn thiết lập IPtables với Linux Firewall chi tiết
8.1. Bước 1: Cài đặt IPtables Linux Firewall
Trên hầu hết các bản Linux hiện nay, IPtables đã được tích hợp sẵn. Tuy nhiên, trong trường hợp chưa được cài đặt trên hệ điều hành Ubuntu hoặc Debian, bạn có thể sử dụng các lệnh sau:
sudo apt-get update
sudo apt-get install IPtables
Để kiểm tra trạng thái hiện tại, bạn có thể sử dụng lệnh sau:
sudo iptables -L -v
Trong đó, tùy chọn -L được dùng để liệt kê tất cả các quy tắc (rule), và tùy chọn -v để hiển thị các danh sách bổ trợ. Hãy chú ý rằng ký tự viết hoa và viết thường được phân biệt trong lệnh.
Ví dụ kết quả:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Kết quả này cho thấy rằng 3 Chain đã được thiết lập mặc định là ACCEPT và không có Chain nào chứa các quy tắc (rule).
8.2. Bước 2: Thiết lập các chain rules
Dưới đây là cú pháp của lệnh IPtables với các tùy chọn thông thường:
sudo iptables -A -i <interface> -p <protocol (tcp/udp)> -s <source> –dport <port no.> -j <target>
Trong đó:
- A đại diện cho việc thêm chain rules.
- i<interface> là giao diện mạng cụ thể mà các gói tin sẽ được lọc.
- p<protocol> là giao thức mạng cần lọc (tcp/udp).
- dport<port no.> là số hiệu cổng mà bạn muốn áp dụng bộ lọc đó.
Cho phép lưu lượng truy cập trên localhost
Để cho phép lưu lượng truy cập trên localhost và cho phép giao tiếp giữa ứng dụng và cơ sở dữ liệu của nó trên máy chủ như bình thường, bạn có thể sử dụng các lệnh sau:
sudo iptables -A INPUT -i lo -j ACCEPT
Kết quả:
Chain INPUT (policy ACCEPT 7 packets, 488 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all — lo any anywhere anywhere
Lệnh -A được sử dụng để thêm các quy tắc vào chains INPUT, cho phép tất cả các kết nối trên giao diện lo (localhost).
Các cổng được phép truy cập bao gồm HTTP, SSH, SSL:
sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp –dport 443 -j ACCEPT
Điều này cho phép tất cả các truy cập TCP trên các cổng 22 (SSH), HTTP (80), và HTTPS (443).
Lọc các gói tin dựa trên nguồn
Để lọc các gói tin dựa trên nguồn, bạn có thể thêm tham số -s để cho phép hoặc từ chối các gói tin dựa trên địa chỉ IP nguồn.
sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT
Các gói tin từ địa chỉ IP nguồn 192.168.1.3 sẽ được chấp nhận.
sudo iptables -A INPUT -s 192.168.1.3 -j DROP
Các gói tin từ địa chỉ IP nguồn 192.168.1.3 sẽ bị từ chối.
sudo iptables -A INPUT -m iprange –src-range 192.168.1.100-192.168.1.200 -j DROP
Đây là lệnh để từ chối các gói tin từ một dãy địa chỉ IP, sử dụng tham số iprange –src-range với dãy IP được chỉ định sau-src-range.
Chặn tất cả truy cập
Để chặn tất cả truy cập, bạn có thể sử dụng lệnh sau:
sudo iptables -A INPUT -j DROP
Sau khi thiết lập, bạn có thể kiểm tra lại bằng lệnh:
sudo iptables -L -v
Lưu ý: Việc sử dụng DROP để chặn tất cả các gói tin từ các nguồn khác là cần thiết để ngăn chặn các truy cập trái phép từ các cổng mở trên máy chủ.
Xóa các rules
Để xóa các quy tắc, bạn có thể sử dụng lệnh sau:
sudo iptables -F
Lệnh này xóa tất cả các quy tắc để bạn có thể tạo lại chúng từ đầu.
Để xóa từng quy tắc riêng lẻ, bạn có thể sử dụng tham số -D với số thứ tự tương ứng của quy tắc. Bạn có thể liệt kê các quy tắc bằng lệnh:
sudo iptables -L –line-numbers
Kết quả sẽ hiển thị các số thứ tự của các quy tắc trong mỗi chain.
Ví dụ:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
ACCEPT all — 192.168.0.4 anywhere
ACCEPT tcp — anywhere anywhere tcp dpt:https
ACCEPT tcp — anywhere anywhere tcp dpt:http
ACCEPT tcp — anywhere anywhere tcp dpt:ssh
Sau đó, để xóa một quy tắc, bạn có thể sử dụng lệnh:
sudo iptables -D INPUT 3
Lệnh trên sẽ xóa quy tắc có số thứ tự 3 trong chain INPUT.
8.3. Bước 3: Lưu giữ các thay đổi trên IPtables
Các quy tắc được tạo ra sẽ được lưu trong bộ nhớ và cần phải được tái tạo sau khi máy chủ được khởi động lại. Để lưu các thay đổi vào hệ thống, sử dụng lệnh:
sudo /sbin/iptables-save
Để tắt firewall, bạn có thể sử dụng các lệnh sau:
sudo iptables -F
sudo /sbin/iptables-save
Xem thêm: Arch Linux là gì? | Cách Cài đặt & Cấu hình Arch Linux A-Z
9. Tổng kết
Chúng tôi hy vọng rằng hướng dẫn trên sẽ giúp bạn hiểu IPtables là gì và tự cấu hình IPtables một cách dễ dàng. Sử dụng tường lửa là một trong những phương tiện hiệu quả để kiểm soát truy cập vào máy chủ. Bạn có thể truy cập vào Blog của VinaHost TẠI ĐÂY để xem thêm nhiều bài viết hấp dẫn khác. Hoặc liên hệ ngay cho chúng tôi khi cần hỗ trợ nhé:
- Email: support@vinahost.vn
- Hotline: 1900 6046
- Livechat: https://livechat.vinahost.vn/chat.php
Xem thêm một số bài viết khác:
WAF là gì | Kiến thức [A-Z] về Tường Lửa Ứng Dụng Web
CSF Firewall là gì? | Cài đặt & Cấu hình CSF Firewall A-Z