Tìm hiểu cách cài đặt và cấu hình tường lửa iptables trên Linux

Tài liệu nghiên cứu Tìm hiểu và triển khai tường lửa iptables trên linux, tổng hợp lý thuyết và thực hành, cung cấp kiến thức chuyên sâu về .

Trường đại học

Trung Tâm Đào Tạo Bách Khoa Npower

Chuyên ngành

Quản Trị Mạng

Người đăng

Ẩn danh

Thể loại

Đồ Án Môn Học
66
4
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI MỞ ĐẦU

1. CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES

1.1. Tải về và cài đặt trọn gói Iptables

1.2. Làm thế nào để bắt đầu iptables ?

1.3. Xác định Các trạng thái của iptables

1.4. Cơ chế xử lý package trong iptables

1.5. Target và Jumps

1.6. Phân biệt giữa ACCEPT, DROP và REJECT packet

1.7. Phân biệt giữa NEW, ESTABLISHED và RELATED

1.8. Tùy chọn --limit, --limit-burst

1.9. Cách đổi địa chỉ IP động (dynamic NAT)

1.10. Cách đóng giả địa chỉ IP (masquerade)

2. CHƯƠNG II: VÍ DỤ VỀ CẤU HÌNH IPTABLES CHO MÁY CHỦ PHỤC VỤ WEB

2.1. Thiết lập các tham số cho nhân

2.2. Nạp các môđun cần thiết cho Iptables

2.3. Nguyên tắc đặt luật là "drop trước, accept sau"

2.4. Lọc ICMP vào và chặn ngập lụt PING

2.5. Reject quét cổng TCP và UDP

2.6. Phát hiện quét cổng bằng Nmap

2.7. Chặn ngập lụt SYN

2.8. Giới hạn truy cập SSH cho admin

2.9. Giới hạn FTP cho web-master

2.10. Lọc TCP vào

2.11. Lọc UDP vào và chặn ngập lụt UDP

KẾT LUẬN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới thiệu về iptables

iptables là một công cụ mạnh mẽ để quản lý tường lửa Linux. Nó cho phép người dùng thiết lập các quy tắc để lọc và kiểm soát lưu lượng mạng. iptables hoạt động dựa trên các bảng và chuỗi, nơi mỗi chuỗi có thể chứa nhiều quy tắc khác nhau. Điều này giúp cho việc quản lý bảo mật hệ thống trở nên linh hoạt và hiệu quả hơn. Một trong những điểm nổi bật của iptables là khả năng kiểm tra trạng thái của các gói tin, cho phép nó theo dõi các kết nối và thực hiện các hành động dựa trên trạng thái của chúng. Điều này rất quan trọng trong việc hỗ trợ các giao thức như FTP và DNS. Hệ thống bảo mật mạng này không chỉ giúp ngăn chặn các cuộc tấn công mà còn cải thiện hiệu suất của hệ thống.

1.1. Cài đặt iptables

Để bắt đầu sử dụng iptables, trước tiên cần cài đặt phần mềm này trên hệ thống. Việc cài đặt có thể thực hiện thông qua các gói RPM có sẵn. Sau khi cài đặt, người dùng cần đảm bảo rằng iptables được khởi động cùng với hệ thống. Sử dụng lệnh chkconfig iptables on để thiết lập iptables tự động khởi động. Các lệnh như service iptables start, service iptables stop, và service iptables restart cho phép người dùng quản lý trạng thái của iptables một cách dễ dàng. Việc xác định trạng thái của iptables cũng rất quan trọng, có thể thực hiện bằng lệnh service iptables status.

II. Cấu hình tường lửa

Cấu hình tường lửa là một phần quan trọng trong việc bảo vệ hệ thống. iptables cho phép người dùng thiết lập các quy tắc để kiểm soát lưu lượng mạng. Các quy tắc này có thể được phân loại thành ba loại chính: ACCEPT, DROP và REJECT. Quy tắc ACCEPT cho phép gói tin đi qua, DROP sẽ chặn gói tin mà không thông báo cho người gửi, trong khi REJECT sẽ chặn gói tin và gửi thông báo lỗi về cho người gửi. Việc phân biệt giữa các loại quy tắc này giúp người dùng có thể quản lý lưu lượng một cách hiệu quả hơn. Ngoài ra, việc sử dụng các tùy chọn như --limit--limit-burst giúp giới hạn số lượng gói tin trong một khoảng thời gian nhất định, từ đó ngăn chặn các cuộc tấn công từ chối dịch vụ (DoS).

2.1. Thiết lập các quy tắc

Để thiết lập các quy tắc trong iptables, người dùng cần hiểu rõ về các chuỗi và bảng. Có ba bảng chính trong iptables: filter, nat và mangle. Bảng filter là bảng mặc định, nơi chứa các quy tắc lọc gói tin. Các chuỗi trong bảng filter bao gồm INPUT, OUTPUT và FORWARD. Mỗi chuỗi có chức năng riêng, ví dụ, chuỗi INPUT dùng để lọc các gói tin đến tường lửa, trong khi chuỗi OUTPUT dùng để lọc các gói tin đi ra. Việc thiết lập quy tắc trong các chuỗi này giúp người dùng kiểm soát lưu lượng mạng một cách chi tiết và hiệu quả.

III. Ứng dụng của iptables

iptables không chỉ là một công cụ bảo mật mà còn có nhiều ứng dụng thực tiễn trong quản lý mạng. Một trong những ứng dụng phổ biến là NAT (Network Address Translation), cho phép chuyển đổi địa chỉ IP nội bộ thành địa chỉ IP công cộng. Điều này rất hữu ích trong việc tiết kiệm địa chỉ IP và bảo vệ các máy chủ nội bộ khỏi các cuộc tấn công từ bên ngoài. Ngoài ra, iptables cũng hỗ trợ các tính năng như port forwarding và masquerading, giúp quản lý lưu lượng mạng một cách linh hoạt. Việc sử dụng iptables trong các môi trường sản xuất giúp tăng cường bảo mật hệ thống và cải thiện hiệu suất mạng.

3.1. Quản lý NAT

NAT là một trong những tính năng quan trọng của iptables. Nó cho phép chuyển đổi địa chỉ IP của các gói tin, giúp bảo vệ các máy chủ nội bộ khỏi các cuộc tấn công từ bên ngoài. NAT có hai loại chính: SNAT (Source NAT) và DNAT (Destination NAT). SNAT được sử dụng để thay đổi địa chỉ IP nguồn của gói tin, trong khi DNAT thay đổi địa chỉ IP đích. Việc sử dụng NAT không chỉ giúp tiết kiệm địa chỉ IP mà còn tạo ra một lớp bảo mật bổ sung cho hệ thống. Điều này rất quan trọng trong các môi trường mạng lớn, nơi có nhiều máy chủ và thiết bị cần được bảo vệ.

01/02/2025

Trích đoạn nội dung tài liệu

CHƯƠNG I: GIỚI THIỆU VỀ IPTABLES Iptables là gì? Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, miễn phí và có sẵn trên Linux. Netfilter/Iptables 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 giữa người dùng vàNetfilter để đẩ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. Hình 1: Sơ đồ Netfilter/Iptables Tải về và cài đặt trọn gói Iptables Trước khi bạn bắt đầu, bạn cần phải chắc chắn rằng các RPM iptables phần mềm được cài đặt. Khi tìm kiếm các RPM, hãy nhớ rằng tên tập tin thường bắt Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX đầu với tên gói phần mềm của một số phiên bản, như trong iptables-1. Làm thế nào để bắt đầu iptables ? Để có được cấu hình iptables để bắt đầu lúc khởi động, sử dụng lệnh chkconfig:.

[Root @ bigboy tmp] # chkconfig iptables on Bạn có thể bắt đầu, dừng lại, và khởi động lại iptables sau khi khởi động bằng cách sử dụng các lệnh: [Root @ bigboy tmp] # service iptables start [Root @ bigboy tmp] # service iptables stop [Root @ bigboy tmp] # service iptables restart Xác định Các trạng thái của iptables Bạn có thể xác định xem iptables đang chạy hay không thông qua lệnh iptables trạng thái dịch vụ. Fedora Core sẽ cung cấp cho một thông báo trạng thái đơn giản. Ví dụ: [Root @ bigboy tmp] # service iptables status [Root @ bigboy tmp] # Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX Cơ chế xử lý package trong iptables Tất cả gói kiểm tra iptables đi qua một chuỗi các được xây dựng trong các bảng (hàng đợi) để xử lý. Mỗi hàng đợi là dành riêng cho một loại hình cụ thể của hoạt động gói và được điều khiển bởi một chuyển đổi gói tin liên quan / dây chuyền lọc.

Có ba bàn trong tổng số. Đầu tiên là bảng mangle có trách nhiệm cho những thay đổi về chất lượng dịch vụ của các bit trong phần đầu TCP. Đây là hầu như không được sử dụng trong một môi trường nhà hoặc SOHO. Bảng xếp hàng thứ hai là bộ lọc này có trách nhiệm lọc gói.

Nó có ba được xây dựng trong các chuỗi trong đó bạn có thể đặt các quy tắc chính sách tường lửa của bạn. Đây là những:  Chuyển tiếp chuỗi: Bộ lọc các gói dữ liệu đến các máy chủ được bảo vệ bởi tường lửa.  Nhập chuỗi: Bộ lọc gói tin cho tường lửa.  Đầu ra chuỗi: Bộ lọc gói có nguồn gốc từ các bức tường lửa.

Bảng xếp hàng thứ ba là nat có trách nhiệm cho dịch địa chỉ mạng. Nó có hai được xây dựng trong các dây chuyền, đó là:  Dự bị định tuyến chuỗi: NAT gói tin khi địa chỉ đích của gói tin cần phải được thay đổi.  Post-routing chain: NAT gói tin khi địa chỉ được nguồn của gói tin cần phải thay đổi Bảng 1 : Các loại queues và chain cùng chức năng của nó. Loại Chức năng Gói chuyển đổi Chức năng chuỗi Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX hàng chuỗi trong Queue đợi Queue Filter Lọc gói Bộ lọc các gói dữ liệu đến các máy chủ có thể truy FORWARD cập bởi một NIC trên tường lửa.

Bộ lọc gói đến tường lửa. INPUT Bộ lọc gói đi ra khỏi tường lửa (gói dữ liệu có OUTPUT nguồn gốc từ các bức tường lửa). Nat Network Thay đổi địa chỉ đích xảy ra trước khi định PREROUT Address tuyến. Tạo điều kiện cho việc chuyển đổi địa chỉ I NG Translation IP đích tương thích với bảng định tuyến của ( Biên dịch tường lửa.

Được sử dụng với NAT của địa chỉ IP địa chỉ mạng) đích, còn được gọi là destination NAT hoặc DNAT. Thay đổi địa chỉ đích xảy ra sau khi định POSTROU tuyến. Điều này có nghĩa rằng không có cần phải T ING thay đổi địa chỉ IP đích của gói tin như trong định tuyến trước. Được sử dụng với NAT của địa chỉ IP nguồn bằng cách sử dụng một-một hoặc NAT- một nhiều.

Điều này được gọi là source NAT, hoặc SNAT. NAT sử dụng cho các gói dữ liệu xuất phát từ OUTPUT tường lửa.Rất hiếm khi được sử dụng trong môi trường SOHO) Mangle Chỉnh sửa Điêù chỉnh các bit quy định chất lượng dịch vụ PREROUTI TCP header trước khi dẫn đường. Rất hiếm khi được sử dụng NG trong môi trường SOHO (small office – home POSTROUTI office). NG KẾT QUẢ Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX INPUT FORWARD Bạn cần xác định các bảng và chuỗi cho mỗi nguyên tắc tường lửa bạn tạo ra.

Có một ngoại lệ: Hầu hết các quy tắc có liên quan đến lọc, do đó, giả định rằng bất kỳ iptables chuỗi đó là quy định mà không có một bảng có liên quan sẽ là một phần của bảng lọc. Bảng lọc vì thế là mặc định. Để giúp thực hiện điều này rõ ràng hơn, hãy xem cách các gói dữ liệu được xử lý bởi iptables. Trong Hình 2 một gói tin TCP từ Internet về đến giao diện của tường lửa trên mạng A để tạo ra một kết nối dữ liệu.

Gói tin này được kiểm tra bởi các quy tắc đầu tiên trong chuỗi mangle Table PREROUTING Chain (nếu có). Sau đó nó được kiểm tra bởi các quy tắc trong chuỗi nat Table PREROUTING Chain để xem liệu gói tin yêu cầu DNAT không .DNAT sẽ thay đổi địa đích của gói dữ liêụ .Sau đó nó được định tuyến – Routing. chỉ Nếu gói dữ liệu được đưa vào một mạng lưới bảo vệ, sau đó nó được lọc theo các quy tắc trong chuỗi FORWARD của bảng lọc và, nếu cần thiết, gói trải qua SNAT trong chuỗi POSTROUTING để thay đổi IP nguôn trước khi đến mạng B. Khi máy chủ đích quyết định trả lời, gói trải qua cùng một trình tự các bước.

Cả hai FORWARD và POSTROUTING chuỗi có thể được cấu hình để thực hiện chất lượng dịch vụ (QoS) các tính năng trong bảng mangle của họ, nhưng điều này không thường được thực hiện trong môi trường SOHO. Nếu gói dữ liệu được định hướng đi vào bên trong bức tường lửa chính nó, nó đươc kiêtra qua các bảng mangle của chuỗi INPUT. Nếu gói dữ đó Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX thành công vượt qua các thử nghiệm này sau đó nó được xử lý bởi các ứng dụng định trên tường lửa. Tại một số điểm, tường lửa cần phải trả lời.

trả lời này được định tuyến và kiểm tra bởi các quy tắc trong chuỗi OUTPUT của bảng mangle, nếu có. Tiếp theo, các quy tắc trong chuỗi OUTPUT của bảng nat xác định xem DNAT là cần thiết và các quy tắc trong chuỗi OUTPUT của bảng này sau đó được kiểm tra bộ lọc để giới hạn các gói dữ liệu trái phép. Cuối cùng, trước khi gói tin được gửi trở lại vào Internet, hỏng SNAT và QoS được thực hiện bằng các chuỗi POSTROUTING Hình 2. Iptables gói lưu lượng Sơ đồ Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX 6 Target và Jumps Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX  Jump là cơ chế chuyển một packet đến một target nào đó để xử lý thêm một số thao tác khác.

 Target là cơ chế hoạt động trong iptables, dùng để nhận diện và kiểm tra packet. Các target được xây dựng sẵn trong iptables như bảng sau: Bảng 2 : Miêu tả các target mà iptables thường dùng nhất. Targets Ý nghĩa Tùy chọn ACCEPT iptables ngừng xử lý gói dữ liệu đó và chuyển tiếp nó vào một ứng dụng cuối hoặc hệ điều hành để xử lý. DROP iptables ngừng xử lý gói dữ liệu đó và gói dữ liệu bị chặn, loại bỏ.

LOG Thông tin của gói sẽ --log-prefix "string" được iptables sẽ thêm vào log đưa vào syslog để kiểm tra message một chuỗi. Iptables tiếp tục xử lý do người dùng định sẵn. gói với quy luật kế tiếp. Thông thường là để thông báo lý do vì sao gói bị bỏ.

Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX REJECT Tương tự như DROP , --reject-with qualifier nhưng nó sẽ gởi trả lại cho phía người gởi một Tham số qualifier sẽ cho thông báo lỗi rằng gói đã biết loại thông báo gửi trả bị chặn và loại bỏ. lại phía gửi. Qualifier gồm các loại sau: qualifier sẽ cho biết loại thông báo gởi trả lại phía gởi. Qualifier gồm các loại sau : icmp-port-unreachable (default) icmp-net-unreachable icmp-host-unreachable icmp-proto-unreachable DNAT Dùng để thực hiện --to-destination ipaddress Destination network address translation , địa Iptables sẽ viết lại địa chỉ chỉ đích của gói dữ liệu ipaddress vào địa chỉ sẽ được viết lại.

đích của gói dữ liệu. SNAT Dùng để thực hiện --to-source <address>[- Source <address>][:<port>- network address translation <port>] , viết lại địa chỉ nguồn Miêu tả IP và port sẽ được của gói dữ liệu. viết lại bởi iptables. MASQUERADE Dùng để thực hiện Source [--to-ports <port>[- Networkaddress <port>]] Translation.

Mặc định Ghi rõ tầm các port nguồn thì địa chỉ IP nguồn sẽ mà port nguồn gốc có giống như IP nguồn của thể ánh xạ được. Chanhminki TIEU LUAN MOI download : skknchat123@gmail.com moi nhat Tìm hiểu và triển khai tường lửa IPTABLES trên LINUX Phân biệt giữa ACCEPT, DROP và REJECT packet - ACCEPT: chấp nhận packet - DROP: thả packet (không hồi âm cho client) - REJECT: loại bỏ packet (hồi âm cho client bằng một packet khác) Ví dụ: # iptables -A INPUT -i eth0 --dport 80 -j ACCEPT chấp nhận các packet vào cổng 80 trên card mạng eth0 # iptables -A INPUT -i eth0 -p tcp --dport 23 -j DROP thả các packet đến cổng 23 dùng giao thức TCP trên card mạng eth0 # iptables -A INPUT -i eth1 -s ! 10.5 --dport 22 -j REJECT --reject- with tcp-reset gởi gói TCP với cờ RST=1 cho các kết nối không đến từ dãy địa chỉ IP 10.5 trên cổng 22, card mạng eth1 # iptables -A INPUT -p udp --dport 139 -j REJECT --reject-with icmp-port- unreachable gởi gói ICMP `port-unreachable` cho các kết nối đến cổng 139, dùng giao thức UDP Phân biệt giữa NEW, ESTABLISHED và RELATED - NEW: mở kết nối mới - ESTABLISHED: đã thiết lập kết nối - RELATED: mở một kết nối mới trong kết nối hiện tại Ví dụ: Chanhminki TIEU LUAN MOI download : skknchat123@gmail.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Hướng dẫn cài đặt và cấu hình tường lửa iptables trên Linux" cung cấp cho người đọc những kiến thức cơ bản và chi tiết về cách thiết lập và quản lý tường lửa iptables, một công cụ quan trọng trong việc bảo mật hệ thống Linux. Bài viết không chỉ hướng dẫn từng bước cài đặt mà còn giải thích các quy tắc và chính sách cần thiết để bảo vệ mạng khỏi các mối đe dọa. Độc giả sẽ hiểu rõ hơn về cách thức hoạt động của iptables, từ đó có thể áp dụng vào thực tiễn để tăng cường an ninh cho hệ thống của mình.

Nếu bạn muốn mở rộng kiến thức về các phương pháp bảo mật và phân tích dữ liệu, hãy tham khảo bài viết Tài liệu tham khảo hướng dẫn sử dụng phương pháp bayes trên stata, nơi bạn có thể tìm hiểu về các phương pháp thống kê hữu ích trong phân tích dữ liệu. Ngoài ra, bài viết Luận văn thạc sĩ nghiên cứu giải pháp phát hiện xâm nhập tích hợp cho mạng lan sẽ cung cấp cho bạn cái nhìn sâu sắc về các giải pháp phát hiện xâm nhập, giúp bạn hiểu rõ hơn về cách bảo vệ mạng lưới của mình. Những tài liệu này sẽ giúp bạn nâng cao kiến thức và kỹ năng trong lĩnh vực bảo mật mạng.