Site icon Knowledge Base| Kiến thức Dịch vụ P.A Việt Nam

IPtables là gì?

iptables là gì?

iptables là ứng dụng tường lửa miễn phí trong Linux, cho phép thiết lập các quy tắc riêng để kiểm soát truy cập, tăng tính bảo mật. Khi sử dụng máy chủ, tường lửa là một trong những công cụ quan trọng giúp bạn ngăn chặn các truy cập không hợp lệ. Đối với các bản phân phối Linux như Ubuntu, Fedora, CentOS… bạn có thể tìm thấy công cụ tường lửa tích hợp sẵn iptables. Các thành phần tạo nên iptables là gì?

iptables được cài đặt sẵn trong các bản Linux

iptables là một ứng dụng tường lửa có sẵn trên Linux, iptables Linux firewall cho phép người dùng thiết lập các quyền truy cập để kiểm soát lưu lượng một cách chọn lọc trên máy chủ.

Thành phần của iptables là gì?

Về cơ bản, iptables chỉ là giao diện dòng lệnh để tương tác với packet filtering của netfilter framework. Cơ chế packet filtering của iptables hoạt động gồm 3 thành phần là Tables, Chains và Targets.

Các bảng trong iptables là gì?

Table được iptables sử dụng để định nghĩa các rules(quy tắc) dành cho các gói tin. Trong đó, có các Table sau.

Là một trong những tables được iptables sử dụng nhiều nhất, Filter Table sẽ quyết định việc một gói tin có được đi đến đích dự kiến hay từ chối yêu cầu của gói tin.

Để dùng các rules về NAT(Network Address Translation), NAT Table sẽ có trách nhiệm chỉnh sửa source(IP nguồn) hoặc destination(IP đích) của gói tin khi thực hiện cơ chế NAT.

Cho phép chỉnh sửa header của gói tin, giá trị của các trường TTL, MTU, Type of Service.

iptables là một stateful firewall với các gói tin được kiểm tra liên quan đến trạng thái(state). Ví dụ gói có thể là một phần của một kết nối mới hoặc là một phần của kết nối hiện có. Raw Table sẽ giúp bạn 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 và có thể loại một số gói khỏi việc tracking vì vấn đề hiệu năng của hệ thống.

Một vài kernel có thể hỗ trợ thêm Security Table, được dùng bởi SELinux để thiết lập các chính sách bảo mật.

Chains

Chains được tạo ra với một số lượng nhất định ứng với mỗi Table, giúp lọc gói tin tại các điểm khác nhau.

Target

Target có thể được hiểu là hành động dành cho các gói tin khi gói tin thỏa mãn các rules đặt ra.

Gói tin sẽ được đi qua tất cả các rules đặt ra mà không dừng lại ở bất kì rule nào đúng. Trường hợp gói tin không khớp với rules nào mặc định sẽ được chấp nhận

Cấu hình iptables cơ bản là gì?

Tất cả các dữ liệu trong các gói tin gửi đi được định dạng qua internet, Linux kernel sẽ giúp lọc các gói tin này bằng cách mang đến một giao diện sử dụng một bảng các bộ lọc. iptables là ứng dụng dòng lệnh và cũng đồng thời là bức tường lửa Linux cho phép người dùng thiết lập, duy trì và kiểm tra các bảng này.

Người sử dụng có thể tùy ý thiết lập nhiều bảng với mỗi bảng chứa nhiều chuỗi, mỗi chuỗi là một quy tắc. Mỗi quy tắc sẽ định nghĩa việc phải làm với gói tin khi phù hợp với gói đó.

Một target (mục tiêu) sẽ được đưa ra khi có một gói tin được xác định. Target có thể là một chuỗi khác để khớp với một trong các giá trị sau:

Các rules trong iptables là gì?

Người dùng có thể dùng lệnh sau để xem các rules hiện có trong iptables:

iptables -L v

TARGET    PROT OPT  IN OUT SOURCE DESTINATION

ACCEPT    all --   lo any anywhere   anywhere

ACCEPT    all --   any any anywhere   anywhere ctstate  RELATED,ESTABLISHED

ACCEPT    tcp --   any any anywhere   anywhere tcp dpt:ssh

ACCEPT    tcp --   any any anywhere   anywhere tcp dpt:http

ACCEPT    tcp --   any any anywhere   anywhere tcp dpt:https

DROP      all --   any any anywhere   anywhere

Ý nghĩa của từng cột và hàng

Các tùy chọn của iptables là gì?

iptables cung cấp nhiều tùy chọn cho phép người dùng thao tác

Các tùy chọn để chỉ định thông số iptables là gì?

Các tùy chọn để thao tác với chain trong iptables là gì?

Các tùy chọn để thao tác với rule trong iptables là gì?

Một số lệnh cơ bản iptables là gì?

Các lệnh cơ bản trong iptables để làm việc với rule

Tạo một rule mới

iptables -A INPUT -i lo -j ACCEPT

Lệnh này có nghĩa là:

Gõ lại lệnh iptables -L -v bạn sẽ thấy 1 rule mới xuất hiện

after-created-iptables-rule

Sau khi thêm mới hoặc thay đổi gõ lệnh lưu và khởi động lại iptables để áp dụng các thay đổi.

service iptables save 
service iptables restart

Tiếp tục thêm một rule mới để cho phép lưu lại các kết nối hiện tại tránh hiện tượng tự block ra khỏi máy chủ.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Cho phép các cổng được truy cập từ bên ngoài vào qua giao thức tcp: SSH(22), HTTP(80), HTTPS(443)

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

-p tcp : Giao thức được áp dụng (tcp, udp, all)

–dport 22: Cổng cho phép áp dụng. 22 là cho SSH

Cuối cùng, chặn toàn bộ các kết nối truy cập từ bên ngoài vào không thỏa mãn những rule trên. Tương ứng với rule 5 ở trên.

iptables -A INPUT -j DROP

Bổ sung một rule mới

Để chèn 1 rule mới vào 1 vị trí (hàng) nào đó, ví dụ là vị trí thứ 2. Hãy thay tham số -A table bằng tham số INSERT -I.

iptables -I INPUT 2 -p tcp --dport 8080 -j ACCEPT

Xóa 1 rule

Để xóa 1 rule mà đã tạo ra tại vị trí 4, ta sẽ sử dụng tham số -D

iptables -D INPUT 4

Xóa toàn bộ các rule chứa hành động DROP có trong iptables:

iptables -D INPUT -j DROP
4.6 / 5 ( 27 bình chọn )
Exit mobile version