iptables là một công cụ dòng lệnh để cấu hình tường lửa trong Linux, là một phần của dự án netfilter. Nó có thể được cấu hình trực tiếp hoặc thông qua nhiều giao diện và giao diện đồ họa khác nhau.
Từ “iptables” cũng thường được sử dụng để chỉ tường lửa cấp kernel. iptables được sử dụng cho ipv4, trong khi ip6tables được sử dụng cho ipv6.
nftables đã được tích hợp vào Linux kernel 3.13 và sẽ thay thế iptables trở thành công cụ tường lửa chính trên Linux.
Môi trường: CentOS 7
1. Giới thiệu
iptables có thể phát hiện, sửa đổi, chuyển tiếp, chuyển hướng và loại bỏ các gói tin IPv4.
Mã lọc gói tin IPv4 được tích hợp sẵn trong kernel và được tổ chức thành một tập hợp các bảng với mục đích khác nhau. Mỗi bảng bao gồm một tập hợp các chuỗi được sắp xếp theo thứ tự duyệt qua các quy tắc. Mỗi quy tắc bao gồm một điều kiện kiểm tra tiềm năng và một hành động tương ứng (gọi là mục tiêu), nếu điều kiện kiểm tra là đúng, hành động sẽ được thực hiện. Điều này có nghĩa là các điều kiện phải khớp.
2. Cài đặt iptables
(1) Tắt firewalld
CentOS 7 mặc định cài đặt firewalld làm tường lửa, việc sử dụng iptables khuyến nghị tắt và vô hiệu hóa firewalld.
(2) Cài đặt iptables
yum install -y iptables-services
(3) Quản lý dịch vụ
Kiểm tra trạng thái dịch vụ: systemctl status iptables
Kích hoạt dịch vụ: systemctl enable iptables
Vô hiệu hóa dịch vụ: systemctl disable iptables
Khởi động dịch vụ: systemctl start iptables
Khởi động lại dịch vụ: systemctl restart iptables
Dừng dịch vụ: systemctl stop iptables
3. Các lệnh
Cú pháp cơ bản:
iptables(options)(parameters)
Giải thích các tùy chọn cơ bản:
Tham số
Ý nghĩa
-P
Đặt chính sách mặc định: iptables -P INPUT (DROP)
-F
Xóa tất cả các quy tắc trong chuỗi
-L
Xem tất cả các quy tắc trong chuỗi
-A
Thêm một quy tắc mới vào cuối chuỗi
-I
num Thêm một quy tắc mới vào đầu chuỗi
-D
num Xóa một quy tắc trong chuỗi
-s
Khớp với địa chỉ IP/MASK nguồn, dấu thanh ”!” nghĩa là ngoại trừ địa chỉ IP này
-d
Khớp với địa chỉ IP đích
-i
Tên card mạng, khớp với dữ liệu vào từ card mạng này
-o
Tên card mạng, khớp với dữ liệu ra từ card mạng này
-p
Khớp với giao thức, ví dụ: tcp, udp, icmp
—dport
num Khớp với cổng đích
—sport
num Khớp với cổng nguồn
Cú pháp:
4. Ví dụ về iptables
4.1. Xóa tất cả các quy tắc và đếm số lần
4.2. Cấu hình cho phép kết nối cổng ssh
4.3. Cho phép sử dụng địa chỉ loopback
4.4. Đặt quy tắc mặc định
4.5. Cấu hình whitelist
4.6. Mở các cổng dịch vụ tương ứng
4.7. Lưu các quy tắc vào tệp cấu hình
4.8. Liệt kê các quy tắc đã thiết lập
iptables -L [-t tên_bảng][tên_chuỗi]
Bốn tên bảng là raw, nat, filter, mangle
Năm tên chuỗi là INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING
Bảng filter bao gồm ba chuỗi INPUT, OUTPUT, FORWARD
4.9. Xóa các quy tắc hiện có
4.10. Xóa các quy tắc đã thêm
Hiển thị tất cả các quy tắc iptables theo số thứ tự, thực hiện:
Ví dụ, để xóa quy tắc số 8 trong chuỗi INPUT, thực hiện:
4.11. Mở các cổng cụ thể
4.12. Chặn địa chỉ IP
4.13. Xác định giao diện mạng cho gói tin đi ra
Chỉ có tác dụng đối với các chuỗi OUTPUT, FORWARD, POSTROUTING.
4.14. Liệt kê các quy tắc đã thêm
4.15. Kích hoạt quy tắc chuyển mạng
Cho phép mạng công cộng 210.14.67.7 truy cập vào mạng nội bộ 192.168.188.0/24
4.16. Ánh xạ cổng
Ánh xạ cổng 2222 trên máy cục bộ thành cổng 22 của máy ảo trong mạng nội bộ
4.17. Khớp chuỗi
Ví dụ, chúng ta muốn chặn chuỗi “test” trong tất cả các kết nối TCP và kết thúc kết nối khi chuỗi này xuất hiện: