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.