• About
  • Advertise
  • Privacy & Policy
  • Contact
NQ NEWS
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
  • Kiến thức tổng hợp
    • Development
    • Deep Learning
    • Cloud Computing
    • Kiến thức bảo mật
    • Tin học văn phòng
  • Thủ thuật
    • Phần Mềm
    • Sửa lỗi máy tính
    • Bảo mật máy tính
    • Tăng tốc máy tính
    • Thủ thuật Wifi
  • Quản trị hệ thống
    • Giải pháp bảo mật
    • Mail Server
    • Mạng LAN – WAN
    • Máy chủ
    • Windows Server 2012
  • Tin tức
No Result
View All Result
NQ NEWS
No Result
View All Result
Home Kiến thức tổng hợp

Tìm hiểu về Iptables (phần 1)

@admiz by @admiz
11/05/2021
in Kiến thức tổng hợp
0
Tìm Hiểu Về Iptables (phần 1) 609a06956340c.jpeg

Trong các server Linux luôn tích hợp sẵn một hệ thống tường lửa (firewall), đây là công cụ tường lửa rất mạnh, tuy nhiên lại hơi khó dùng với những người mới. Trong bài này, VCCloud sẽ giải thích kỹ về cấu trúc và cách sử dụng iptables, đưa ra một vài ví dụ cụ thể tạo tường lửa trên server.

1.Iptables là gì?

Iptables là một ứng dụng tường lửa dựa trên lọc gói rất mạnh, miễn phí và có sẵn trên Linux.

Iptables/Netfilter gồm 2 phần là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân. Iptables chịu trách nhiệm giao tiếp với người dùng và sau đó đẩy các luật của người dùng vào cho Netfiler xử lí. Netfilter tiến hành lọc các gói dữ liệu ở mức IP. Netfilter làm việc trực tiếp trong nhân, nhanh và không làm giảm tốc độ của hệ thống.

2.Cơ chế – Thành phần của Iptables:

Cơ chế lọc gói tin của Iptable được xây dựng dựa trên 3 thành phần cơ bản đó là table, chain và target. Nói đơn giản, table là một xử lý các gói tin theo những cách cụ thể. Nếu không chỉ định cụ thể thì mặc định là chúng ta sẽ làm việc với filter table, ngoài ra còn có các bảng khác.

Mỗi bảng sẽ được gắn thêm các chain. Việc gắn thêm chain vào table cho phép xử lý gói tin ở những giai đoạn khác nhau, ví dụ chúng ta có thể xử lý gói tin ngay khi gói tin vừa đến interface hay xử lý các gói tin trước khi các gói này được đẩy ra interface. Bạn có thể tạo ra rule rất cụ thể, ví dụ gói tin đó đến từ port nào, đến từ IP nào sau đó chỉ định hành động (TARGET) sẽ áp dụng với gói tin này.

Khi có một gói tin đến hoặc gói tin đi Iptable sẽ so sánh với từng rule trong một chain. Khi một gói tin giống với rule đặt ra Iptable sẽ thực hiện hành động ứng với rule đó. Nhưng nếu gói tin không khớp với bất cứ rule nào thuộc chain, Iptable sẽ áp dụng “default policy” cho gói tin đó. Mặc định “default policy” của các chain là cho phép gói tin.

Bây giờ chúng ta sẽ đi tìm hiểu cụ thể từng thành phần trong Iptable.

  • Table

Iptable sử dụng table để định nghĩa các rules cụ thể cho các gói tin. Các phiên bản Linux hiện nay có 4 loại table khác nhau:

– Đầu tiên phải kể đến filter table: Table này quen thuộc và hay được sử dụng nhất. table này nhằm quyết định liệu gói tin có được chuyển đến địa chỉ đích hay không.

– Tiếp theo là mangle table: Table này liên quan đến việc sửa head của gói tin, ví dụ chỉnh sửa giá trị các trường TTL, MTU, Type of Service.

– Table Nat: Table này cho phép route các gói tin đến các host khác nhau trong mạng NAT table cách thay đổi IP nguồn và IP đích của gói tin. Table này cho phép kết nối đến các dịch vụ không được truy cập trực tiếp được do đang trong mạng NAT.

– Table raw: 1 gói tin có thể thuộc một kết nối mới hoặc cũng có thể là của 1 một kết nối đã tồn tại. Table raw cho phép bạn làm việc với gói tin trước khi kernel kiểm tra trạng thái gói tin.

  • Chains.

Mỗi table được tạo với một số chains nhất định. Chains cho phép lọc gói tin tại các điểm khác nhau. Iptable có thể thiết lập với các chains sau:

– Chain PREROUTING: Các rule thuộc chain này sẽ được áp dụng ngay khi gói tin vừa vào đến Network interface. Chain này chỉ có ở table NAT, raw và mangle.

– Chain INPUT: Các rule thuộc chain này áp dụng cho các gói tin ngay trước khi các gói tin được vào hệ thống. Chain này có trong 2 table mangle và filter.

– Chain OUTPUT: Các rule thuộc chain này áp dụng cho các gói tin ngay khi gói tin đi ra từ hệ thống. Chain này có trong 3 table là raw, mangle và filter.

– Chain FORWARD: Các rule thuộc chain này áp dụng cho các gói tin chuyển tiếp qua hệ thống. Chain này chỉ có trong 2 table mangle và table.

– Chain POSTROUTING: áp dụng cho các gói tin đi network interface. Chain này có trong 2 table mangle và NAT.

Hình sau mô tả chi tiết thứ tự xử lý các table và các chain trong flow xử lý gói tin:

  • Target.

Target hiểu đơn giản là các hành động áp dụng cho các gói tin. Đối với những gói tin đúng theo rule mà chúng ta đặt ra thì các hành động (TARGET) có thể thực hiện được đó là:

– ACCEPT: chấp nhận gói tin, 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 trả lời, giống như là hệ thống không tồn tại.

– REJECT: loại bỏ gói tin nhưng có trả lời table gói tin khác, ví dụ trả lời table 1 gói tin “connection reset” đối với gói TCP hoặc bản tin “destination host unreachable” đối với gói UDP và ICMP.

– LOG: chấp nhận gói tin nhưng có ghi lại log.

Gói tin sẽ đi qua tất cả các rule chứ không dừng lại khi đã đúng với 1 rule đặt ra. Đối với những gói tin không khớp với rule nào cả mặc định sẽ được chấp nhận.

3.Các rule trong Iptable

Để xem các rule đang có trong iptables, dùng lệnh:  

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 như sau:

  • TARGET: Hành động sẽ thực thi.
  • PROT: Là viết tắt của chữ Protocol, nghĩa là giao thức. Tức là các giao thức sẽ được áp dụng để thực thi quy tắc này. Ở đây chúng ta có 3 lựa chọn là all, tcp hoặc udp. Các ứng dụng như SSH, FTP, sFTP,..đều sử dụng giao thức kiểu TCP.
  • IN: chỉ ra rule sẽ áp dụng cho các gói tin đi vào từ interface nào, chẳng hạn như lo, eth0, eth1 hoặc any là áp dụng cho tất cả interface.
  • OUT: Tương tự như IN, chỉ ra rule sẽ áp dụng cho các gói tin đi ra từ interface nào.
  • DESTINATION: Địa chỉ của lượt truy cập được phép áp dụng quy tắc.

Để dễ hiểu hơn, mình giải thích các quy tắc ở table trên cho các bạn:

ACCEPT    all    —   lo   any   anywhere   anywhere

Chấp nhận toàn bộ gói tin từ interface lo, lo ở đây nghĩa là “Loopback Interface“, là interface ảo nội bộ, chẳng hạn như IP 127.0.0.1 là kết nối qua thiết bị này.

ACCEPT    all    —   any  any   anywhere   anywhere    ctstate  RELATED,ESTABLISHED

Chấp nhận toàn bộ gói tin của kết nối hiện tại. Nghĩa là khi bạn đang ở trong SSH và sửa đổi lại Firewall, nó sẽ không đá bạn ra khỏi SSH nếu bạn không thỏa mãn quy tắc.

ACCEPT    tcp    —   any  any   anywhere   anywhere    tcp      dpt:ssh

Chấp nhận toàn bộ gói tin của giao thức SSH ở bất cứ interface nào, với bất kể IP nguồn và đích là bao nhiêu. Mặc định sẽ hiển thị dpt:ssh để biểu diễn cổng 22 của SSH, nếu bạn đổi SSH thành cổng khác thì sẽ hiển thị số cổng.

ACCEPT    tcp    —   any  any   anywhere   anywhere    tcp      dpt:http

Cho phép kết nối vào cổng 80, mặc định sẽ biểu diễn thành chữ http.

ACCEPT    tcp    —   any  any   anywhere   anywhere    tcp      dpt:https

Cho phép kết nối vào cổng 443, mặc định nó sẽ biểu diễn thành chữ https.

DROP      all    —   any  any   anywhere   anywhere

Loại bỏ tất cả các gói tin nếu không khớp với các rule ở trên.

Giờ nếu bạn muốn thêm một rule mới thì làm thế nào? Sau đây là một số tùy chọn khi bạn thực hiện.

4.Các tùy chọn

  • Các tùy chọn để chỉ định thông số

– chỉ định tên table: -t ,

ví dụ -t filter, -t nat, .. nếu không chỉ định table, giá trị mặc định là filter table

– chỉ đinh loại giao thức: -p ,

ví dụ -p tcp, -p udp hoặc -p ! udp để chỉ định các giao thức không phải là udp

– chỉ định card mạng vào: -i ,

ví dụ: -i eth0, -i lo

– chỉ định card mạng ra: -o ,

ví dụ: -o eth0, -o pp0

– chỉ định địa chỉ IP nguồn: -s <địa_chỉ_ip_nguồn>,

ví dụ: -s 192.168.0.0/24 (mạng 192.168.0 với 24 bít mạng), -s 192.168.0.1-192.168.0.3 (các IP 192.168.0.1, 192.168.0.2, 192.168.0.3).

– chỉ định địa chỉ IP đích: -d <địa_chỉ_ip_đích>, tương tự như -s

– chỉ định cổng nguồn: –sport ,

ví dụ: –sport 21 (cổng 21), –sport 22:88 (các cổng 22 .. 88), –sport 0 (các cổng <=80), –sport 22: (các cổng >=22)

– chỉ định cổng đích: –dport , tương tự như –sport

  • Các tùy chọn để thao tác với chain

– tạo chain mới: iptables -N

– xóa hết các rule đã tạo trong chain: iptables -X

– đặt chính sách cho các chain `built-in` (INPUT, OUTPUT & FORWARD): iptables -P , ví dụ: iptables -P INPUT ACCEPT để chấp nhận các packet vào chain INPUT

– liệt kê các rule có trong chain: iptables -L

– xóa các rule có trong chain (flush chain): iptables -F

– reset bộ đếm packet về 0: iptables -Z

  • Các tùy chọn để thao tác với rule

– thêm rule: -A (append)

– xóa rule: -D (delete)

– thay thế rule: -R (replace)

– chèn thêm rule: -I (insert)

5.Một số lệnh cơ bản

  • Tạo một rule mới

iptables -A INPUT -i lo -j ACCEPT

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

-A INPUT: khai báo kiểu kết nối sẽ được áp dụng (A nghĩa là Append).

-i lo: Khai báo thiết bị mạng được áp dụng (i nghĩa là Interface).

-j ACCEPT: khai báo hành động sẽ được áp dụng cho quy tắc này (j nghĩa là Jump).

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 bất cứ gì, hãy gõ lệnh lưu và khởi động lại iptables để áp đặt các thay đổi.

service iptables save

service iptables restart

Tiếp tục bây giờ chúng ta 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 bạn 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

Và 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

Đến đây cơ bản bạn đã có đủ các qui tắt cần thiết để thiết lập các chính sách của bạn cho hệ thống,

  • Bổ sung một rule mới

Nếu bạn muốn chèn 1 rule mới vào 1 vị trí (hàng) nào đó, ví dụ là vị trí thứ 2. Thì bạn hãy thay tham số -A table tham số INSERT -I.

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

  • Xóa 1 rule

Để xóa 1 rule mà bạn đã 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

Nhớ gõ lại lệnh kiểm tra lệnh xóa thành công hay không nhé.

Ở bài sau, VCCloud sẽ đưa ra một số ví dụ cụ thể hơn trong việc dùng iptables tạo tường lửa cho server, đồng thời cũng sẽ giải thích cụ thể từng ví dụ, giúp các bạn hiểu kỹ hơn về các rule của iptables.

>> Xem tiếp: Tìm hiểu về Iptables (phần 2)

Post Views: 182
Previous Post

Mạng máy tính là gì? Lợi ích khi sử dụng mạng máy tính

Next Post

Phân tích hình ảnh bằng AI đang thay đổi các hệ thống giám sát an ninh

Related Posts

Sửa Nhanh Lỗi Laptop Windows 10 Sạc Pin Không Vào 60951215e059b.png
Phần cứng

Sửa nhanh lỗi laptop Windows 10 sạc pin không vào

11/05/2022
Làm Thế Nào để Xóa Một Phân Vùng Trên ổ đĩa Cứng Windows? 60951232be65c.png
Phần cứng

Làm thế nào để xóa một phân vùng trên ổ đĩa cứng Windows?

11/05/2022
Test Pin Laptop, Cách Kiểm Tra Pin Laptop đang ở Mức Nào Mà Không Cần Cài Phần Mềm 6095123831651.png
Phần cứng

Test pin laptop, cách kiểm tra pin laptop đang ở mức nào mà không cần cài phần mềm

11/05/2022
Hướng Dẫn Xử Lý Khi Key Bàn Phím Laptop Bị Hỏng 6095121ca32df.png
Phần cứng

Hướng dẫn xử lý khi key bàn phím laptop bị hỏng

11/05/2022
Nên Dùng Súng Loại Nào Trong Chiến Dịch Huyền Thoại? 6094aaf17f1da.png
Phần Mềm

Nên dùng súng loại nào trong Chiến Dịch Huyền Thoại?

07/05/2022
Hướng Dẫn Cài đặt Wtfast để Giảm Ping Khi Chơi Game Online, Khi đứt Cáp 6094aae16ee4b.png
Phần Mềm

Hướng dẫn cài đặt WTFast để giảm ping khi chơi game online, khi đứt cáp

07/05/2022
Next Post
Phân Tích Hình ảnh Bằng Ai đang Thay đổi Các Hệ Thống Giám Sát An Ninh 606fdc3a8fc0a.jpeg

Phân tích hình ảnh bằng AI đang thay đổi các hệ thống giám sát an ninh

Bài mới nhất

Tổng Hợp 10 Mẫu Email Marketing Giới Thiệu Sản Phẩm Nổi Bật Nhất Hiện Nay 612d0da97658c.png

Tổng hợp 10 mẫu email marketing giới thiệu sản phẩm nổi bật nhất hiện nay

07/05/2025
Dịch Vụ Thiết Kế Website Tại Hải Dương Chuyên Nghiệp, ấn Tượng Và Uy Tín 612d25752b14f.png

Dịch vụ thiết kế website tại Hải Dương chuyên nghiệp, ấn tượng và uy tín

06/05/2025
Top Công Ty Thiết Kế Website Tại Biên Hòa Chuyên Nghiệp, Chuẩn Seo 612d259494e93.jpeg

Top công ty thiết kế website tại Biên Hòa chuyên nghiệp, chuẩn SEO

06/05/2025
Top Công Ty Thiết Kế Website Tại Vinh – Nghệ An Uy Tín 612d259a9cae3.jpeg

Top công ty thiết kế website tại Vinh – Nghệ An uy tín

05/05/2025
Top 10 Công Ty Thiết Kế Website Tại Nha Trang Chuyên Nghiệp 612d0a9ad018b.jpeg

Top 10 công ty thiết kế website tại Nha Trang chuyên nghiệp

05/05/2025

Danh mục

  • Android
  • Bảo mật máy tính
  • Bảo mật, Antivirus
  • Chuyện công nghệ
  • Deep Learning
  • Development
  • Dịch vụ công trực tuyến
  • Dịch vụ nhà mạng
  • Giải pháp bảo mật
  • Hệ thống
  • Hệ thống
  • iPhone
  • Kiến thức bảo mật
  • Kiến thức cơ bản phổ thông
  • Kiến thức Marketing căn bản
  • Kiến thức tổng hợp
  • Lập trình
  • Linux
  • Linux OS
  • macOS
  • Mail Server
  • Mạng LAN – WAN
  • Máy ảo
  • Máy chủ
  • ms excel
  • ms-powerpoint
  • Nền tảng điện toán đám mây
  • Phần cứng
  • Phần Mềm
  • Quản trị hệ thống
  • Raspberry Pi
  • Sửa lỗi máy tính
  • Tăng tốc máy tính
  • Thủ thuật
  • Thủ thuật SEO
  • Thủ thuật Wifi
  • Tiện ích hệ thống
  • Tin học văn phòng
  • Tin tức
  • Uncategorized
  • Ứng dụng
  • Website
  • Windows Server 2012

Thẻ

#app #chatbot #chatbot tự động #CRM #Kiến thức cơ bản #Techblog #Thiết kế website Android apple CPU Email Marketing Google Google Drive hacker HTML hàm python hàm python có sẵn hình nền hình nền máy tính học css học python học SQL ios iphone iphone 12 iPhone X macos Microsoft mssql MS SQL Server ngôn ngữ lập trình python Raspberry Pi Samsung smartphone SQL SQL Server tham số trong C thủ thuật windows 10 tài liệu python windows windows 10 YouTube điện thoại thông minh ứng dụng
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2022 Pha Le Solution

No Result
View All Result
  • Home

© 2022 Pha Le Solution