- Sản phẩm & Dịch vụSản phẩm & Dịch vụ
- Giải phápGiải pháp
- Bảng giáBảng giá
- Công tyCông ty
- Tài liệuTài liệu
vi
vi
Chuyên mục với các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.
Cyber Intelligence Analyst
I’m a cyber intelligence analyst with 8 years tracking targeted attack campaigns across the globe, weaving detailed tales of hackers’ moves. I guide organizations through the fog of the dark web and insider threats. May my writings shed light and bring useful wisdom to my brothers and sisters in the field. @#@ Chuyên gia phân tích tình báo mạng với 8 năm kinh nghiệm theo dõi các chiến dịch tấn công có chủ đích trên toàn cầu, xây dựng các báo cáo chi tiết về hành vi của tin tặc. Cú mong muốn giúp các tổ chức nhận diện rủi ro từ dark web và các mối đe dọa bên trong tổ chức. Hy vọng các bài viết của Cú Già này sẽ đem đến nhiều kiến thức hữu ích cho anh em trong ngành
Thảo luận (0)
Đăng nhập để thảo luận
Iptables là tường lửa đóng vai trò then chốt trong việc bảo vệ hệ thống mạng trên hầu hết các hệ điều hành Linux. Ngoài các quy tắc bảo mật cơ bản, tôi sẽ chia sẻ cách quản lý, list và delete iptables rule mà tôi thường sử dụng.
Các nội dung chính trong bài hướng dẫn này sẽ bao gồm:
Lưu ý: Hướng dẫn này giả định rằng bạn đang sử dụng một máy chủ Linux đã cài đặt lệnh iptables và có quyền sudo.

Có 2 cách để xem các quy tắc iptables có đang hoạt động hay không: trong một bảng hoặc dưới dạng danh sách các specification. Cả 2 phương pháp đều cung cấp thông tin gần giống nhau ở các định dạng khác nhau.
Để liệt kê tất cả các quy tắc iptables đang hoạt động theo đặc tả, hãy chạy lệnh iptables với tùy chọn -S:
sudo iptables -S
Đầu ra
P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -N ICMP -N TCP -N UDP -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP -A INPUT -p udp -m conntrack --ctstate NEW -j UDP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j TCP -A INPUT -p icmp -m conntrack --ctstate NEW -j ICMP -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -j REJECT --reject-with tcp-reset -A INPUT -j REJECT --reject-with icmp-proto-unreachable -A TCP -p tcp -m tcp --dport 22 -j ACCEPT ...
Bạn có thể thấy, đầu ra trông giống như các lệnh đã được sử dụng để tạo, không có lệnh iptables đứng trước. Tương tự các tệp cấu hình quy tắc iptables, nếu bạn đã từng sử dụng iptables-persistent hoặc iptables save.
Nếu bạn muốn giới hạn đầu ra cho một chuỗi cụ thể (INPUT, OUTPUT, TCP, v.v.), bạn có thể chỉ định tên chuỗi trực tiếp sau tùy chọn -S. Ví dụ: để hiển thị tất cả các đặc tả quy tắc trong chuỗi TCP, bạn dùng lệnh:
sudo iptables -S TCP
Đầu ra
N TCP -A TCP -p tcp -m tcp --dport 22 -j ACCEPT
Tiếp theo, tôi sẽ chia sẻ các quy tắc iptables đang hoạt động: dưới dạng bảng quy tắc.
Liệt kê các quy tắc iptables trong chế độ xem bảng sẽ phù hợp khi bạn muốn so sánh các quy tắc khác nhau với nhau. Để xuất tất cả các quy tắc iptables đang hoạt động trong một bảng, hãy chạy lệnh iptables với tùy chọn -L:
sudo iptables -L
Lệnh này sẽ xuất tất cả các quy tắc hiện tại được sắp xếp theo chuỗi.
Nếu bạn muốn giới hạn đầu ra cho một chuỗi cụ thể (INPUT, OUTPUT, TCP, v.v.), hãy chỉ định tên chuỗi trực tiếp sau tùy chọn -L.
Ví dụ về chuỗi INPUT:
sudo iptables -L INPUT
Đầu ra
Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all -- anywhere anywhere DROP all -- anywhere anywhere ctstate INVALID UDP udp -- anywhere anywhere ctstate NEW TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW ICMP icmp -- anywhere anywhere ctstate NEW REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable REJECT tcp -- anywhere anywhere reject-with tcp-reset REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable
Dòng đầu tiên của đầu ra cho biết tên chuỗi (INPUT, trong trường hợp này), theo sau là chính sách mặc định của nó (DROP). Dòng tiếp theo bao gồm các tiêu đề của mỗi cột trong bảng và theo sau là các quy tắc của chuỗi. Ý nghĩa của mỗi tiêu đề:
tcp, udp, icmp hoặc all.anywhere.anywhere.Cột cuối cùng, không được gắn nhãn, cho biết các tùy chọn của một quy tắc. Đây là bất kỳ phần nào của quy tắc không được chỉ định bởi các cột trước đó. Tức là bất cứ thứ gì từ cổng nguồn và đích đến trạng thái kết nối của gói tin.
Hiển thị Số lượng Gói tin và Tổng Kích thước
Khi liệt kê các quy tắc iptables, cũng có thể hiển thị số lượng gói tin và tổng kích thước của các gói tin tính bằng byte, khớp với mỗi quy tắc cụ thể. Trường hợp này sử dụng khi bạn muốn nắm được sơ bộ về quy tắc nào đang khớp với các gói tin. Để làm như vậy, hãy sử dụng các tùy chọn -L và -v cùng nhau.
Ví dụ: hãy xem lại chuỗi INPUT, với tùy chọn -v:
sudo iptables -L INPUT -v
Đầu ra
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
284K 42M ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 DROP all -- any any anywhere anywhere ctstate INVALID
396 63275 UDP udp -- any any anywhere anywhere ctstate NEW
17067 1005K TCP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW
2410 154K ICMP icmp -- any any anywhere anywhere ctstate NEW
396 63275 REJECT udp -- any any anywhere anywhere reject-with icmp-port-unreachable
2916 179K REJECT all -- any any anywhere anywhere reject-with icmp-proto-unreachable
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED
Lưu ý rằng danh sách hiện có hai cột bổ sung, pkts và bytes.
Có thể bạn quan tâm: Công cụ giám sát log
Nếu bạn muốn xóa hoặc đặt về 0 bộ đếm gói tin và byte cho các quy tắc của mình, hãy sử dụng tùy chọn -Z. Chúng cũng được đặt lại nếu xảy ra khởi động lại. Trường hợp sử dụng là khi bạn muốn xem máy chủ của mình có đang nhận lưu lượng mới khớp với các quy tắc hiện có hay không.
Để xóa bộ đếm cho tất cả các chuỗi và quy tắc, hãy chỉ sử dụng tùy chọn -Z:
sudo iptables -Z
Để xóa bộ đếm cho tất cả các quy tắc trong một chuỗi cụ thể, hãy sử dụng tùy chọn -Z và chỉ định chuỗi. Ví dụ: để xóa bộ đếm chuỗi INPUT, hãy chạy lệnh này:
sudo iptables -Z INPUT
Nếu bạn muốn xóa bộ đếm cho một quy tắc cụ thể, hãy chỉ định tên chuỗi và số quy tắc. Ví dụ: để đặt về không bộ đếm cho quy tắc đầu tiên trong chuỗi INPUT, hãy chạy lệnh này:
sudo iptables -Z INPUT 1
Bây giờ bạn đã biết cách đặt lại bộ đếm gói tin và byte iptables, hãy xem hai phương pháp có thể được sử dụng để xóa chúng.
Đọc thêm: Phishing simulation tools
Một cách để xóa các quy tắc iptables là theo đặc tả quy tắc. Để làm như vậy, bạn có thể chạy lệnh iptables với tùy chọn -D theo sau là đặc tả quy tắc. Nếu bạn muốn xóa quy tắc bằng phương pháp 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ụ: nếu bạn muốn 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 này:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Lưu ý: tùy chọn -A, được sử dụng để chỉ định vị trí quy tắc tại thời điểm tạo, nên được loại trừ ở đây.
Cách khác để elete iptables rule là xóa theo chuỗi và số dòng của nó. Để xác định số dòng của quy tắc, hãy 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
Đầu ra
Chain INPUT (policy DROP) num target prot opt source destination 1 ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED 2 ACCEPT all -- anywhere anywhere 3 DROP all -- anywhere anywhere ctstate INVALID 4 UDP udp -- anywhere anywhere ctstate NEW 5 TCP tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN ctstate NEW 6 ICMP icmp -- anywhere anywhere ctstate NEW 7 REJECT udp -- anywhere anywhere reject-with icmp-port-unreachable 8 REJECT tcp -- anywhere anywhere reject-with tcp-reset 9 REJECT all -- anywhere anywhere reject-with icmp-proto-unreachable 10 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh ctstate NEW,ESTABLISHED ...
Điều này thêm số dòng vào mỗi hàng quy tắc, được chỉ định bởi tiêu đề num.
Khi bạn biết quy tắc nào bạn muốn xóa, hãy ghi lại chuỗi và số dòng của quy tắc. Sau đó chạy lệnh iptables -D theo sau là chuỗi và số quy tắc.
Ví dụ: nếu chúng ta muốn xóa quy tắc đầu vào loại bỏ các gói tin không hợp lệ, chúng ta có thể thấy rằng đó là quy tắc 3 của chuỗi INPUT. Bạn dùng lệnh:
sudo iptables -D INPUT 3
Có 1 cách xóa Iptables rule là xóa tất cả các quy tắc trong một chuỗi, hay xóa một chuỗi.
drop hoặc deny. Nếu lỡ bị lock, bạn có thể cần kết nối thông qua console để khắc phục quyền truy cập của mình.Để 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 có thể sử dụng tùy chọn -F hoặc tùy chọn tương đương --flush và tên của chuỗi cần xóa.
Ví dụ: để xóa tất cả các quy tắc trong chuỗi INPUT, hãy chạy lệnh:
sudo iptables -F INPUT
Để xóa tất cả các chuỗi, thao tác này sẽ xóa tất cả các quy tắc tường lửa, bạn có thể sử dụng tùy chọn -F hoặc tùy chọn tương đương --flush:
sudo iptables -F
Lưu ý: Thao tác này sẽ vô hiệu hóa tường lửa của bạn. Bạn chỉ nên làm theo phần này nếu bạn muốn bắt đầu lại cấu hình tường lửa của mình.
Đầu tiên, đặt chính sách mặc định cho mỗi chuỗi tích hợp thành ACCEPT. Mục đích là để đảm bảo rằng bạn sẽ không bị khóa khỏi máy chủ của mình qua SSH:
sudo iptables -P INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT
Sau đó, 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):
sudo iptables -t nat -F sudo iptables -t mangle -F sudo iptables -F sudo iptables -X
Tường lửa của bạn bây giờ sẽ cho phép tất cả lưu lượng mạng. Nếu bạn liệt kê các quy tắc của mình ngay bây giờ, bạn sẽ thấy không có quy tắc nào và chỉ còn lại ba chuỗi mặc định (INPUT, FORWARD và OUTPUT).
Lời kết:
Tôi hi vọng với các thông tin trong bài viết này, bạn đã nắm được cách list, và delete iptables rule. Tôi sẽ có nhiều nội dụng khác kiên quan đến iptables, ubuntu trong các bài viết tiếp theo của mình. Nếu bạn đọc quan tâm, hãy đăng ký nhận newsletter để không bỏ lỡ các thông tin mới nhất.
Mời bạn tìm hiểu thêm các bài viết cùng chủ đề: