Phân tích lựa chọn công cụ

Một phần của tài liệu Một số kỹ thuật lọc gói tin trong IP (Trang 62 - 67)

Giao diện của chƣơng trình đƣợc xây dựng bằng ngôn ngữ lập trình Quickly, một ngôn ngữ lập trình phổ biến đƣợc phát triển cho hệ điều hành mã nguồn mở nhƣ Linux, Ubuntu… Ngôn ngữ này có nền tảng và các thƣ viện dùng chung của Python. So với các ngôn ngữ trên môi trƣờng Windows thì các ngôn ngữ trên hệ điều hành mã nguồn mở chƣa hỗ trợ nhiều và sâu trong việc thiết kế giao diện, để bắt đầu ta vẫn phải dùng tới một số các lệnh trong giao diện dòng lệnh Terminal. Ngoài ra việc thiết kế giao diện và viết chƣơng trình là hoàn toàn tách biệt.

Để cài đặt Quickly từ môi trƣờng Terminal ta sử dụng lệnh: :~# sudo –i

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ :~# apt –get install Quickly

Sau khi cài đặt để tạo một giao diện mới, thiết kế giao diện, lập trình và thực thi chƣơng trình ta dùng các lệnh lần lƣợt theo thứ tự sau:

:~# Quickly create ubuntu-application Tên chƣơng trình :~# Quickly design

:~# Quickly edit :~# Quickly run

Việc xây dựng chƣơng trình để thƣc hiện các chính sách lọc gói bằng các ngôn ngữ lập trình nhƣ Quickly hay Shell đã tƣơng đối thuận lợi, tuy nhiên vẫn đòi hỏi ngƣời sử dụng có kỹ năng lập trình. Gần đây, các nhà phát triển đã xây dựng các công cụ hƣớng giao diện Window để hỗ trợ cho các nhà quản trị xây dựng chính sách dễ dàng hơn. Ví dụ nhƣ công cụ Firewall Builder

Việc xây dựng bức tƣờng lửa lọc gói tin dựa trên 2 kỹ thuật lọc gói tin tĩnh và động là sử dụng công cụ mã nguồn mở TP Tables

* Giới thiệu về Iptables [8]

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 kernel Linux 2.4.x và 2.6.x. 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.

Hình 3.2. Netfilter và Iptables trong nhân Linux

ểm tra . 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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 2.4x. Netfil

.

:

Xây dựng bức tường lửa dựa trên cơ chế lọc gói tĩnh (stateless) và lọc gói động (stateful)

Dùng bảng NAT và masquerading chia sẻ sự truy cập mạng nếu không có đủ địa chỉ mạng.

Dùng bảng NAT để cài đặt transparent proxy

Có khả năng theo dõi sự kết nối, có khả năng kiểm tra nhiều trạng thái của packet. Nó làm việc này cho UDP và ICMP tốt nhất là kết nối TCP, thí dụ tình trạng đầy đủ của lọc ICMP chỉ cho phép hồi âm khi có yêu cầu phát đi, chứ không chặn các yêu cầu nhƣng vẫn chấp nhận hồi âm với giả sử rằng chúng luôn đáp lại lệnh ping. Sự hồi âm không do yêu cầu có thể là tín hiệu của sự tấn công hoặc cửa sau.

Xử lý các packet đơn giản trong các chains (Một danh sách các nguyên tắc) INPUT, OUTPUT, FORWARD. Trên các host có nhiều giao diện mạng, các packet di chuyển giữa các giao diện chỉ trên chain FORWARD .

Phân biệt rõ ràng giữa lọc packet và NAT (Nework Address Translation)

Có khả năng giới hạn tốc độ kết nối và ghi nhật ký. Bạn có thể giới hạn kết nối và ghi nhật ký ồ ạt để tránh sự tấn công từ chối dịch vụ (Deinal of service).

Có khả năng lọc trên các cờ và địa chỉ vật lý của TCP.

Là một Firewall có nhiều trạng thái, nên nó có thể theo dõi trong suốt quá trình kết nối, do đó nó an toàn hơn Firewall khác có ít trạng thái.

Iptables bao gồm một vài bảng, mỗi bảng với một chính sách (Police) mặc định và các nguyên tắc trong chain xây dựng sẵn.

*Hoạt động xử lý gói tin IP [1], [11]

Jumps 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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ Target là cơ chế hoạt động trong Iptables, dùng để nhận diện và kiểm tra packet. Khi một target đƣợc nhận dạng, gói dữ liệu cần nhảy để thực hiện các xử lý tiếp theo. Các target đƣợc xây dựng sẵn trong Iptables nhƣ:

Target Ý 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ẽ đƣợc đƣa vào syslog để kiểm tra. Iptables tiếp tục xử lý gói với quy luật kế tiếp

--log-prefix “string”

Iptables sẽ thêm vào log message một chuỗi do ngƣời dung định sẵn. Thông thƣờng là để thông báo lý do vì sao gói bị bỏ

REJECT Tƣơng tự nhƣ DROP nhƣng nó sẽ gởi trả lại cho phía ngƣời gởi một thông báo lỗi rằng gói đã bị chặn và loại bỏ

--reject-with qualifier

Tham số 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 icmp-net-prohibited icmp-host-prohibited tcp-reset echo-reply

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ DNAT Dùng để thực hiện Destination

network address translation, địa chỉ đích của gói dữ liệu sẽ đƣợc viết lại

--to-destination ipaddress

Iptables sẽ viết lại địa chỉ paddress vào địa chỉ đích của gói dữ liệu

SNAT Dùng để thực hiện Source Networkaddress

Translation. Mặc định thì địa chỉ IP nguồn sẽ giống nhƣ IP nguồn của firewall

--to-source <address>[- <address>][:<port>-<port>]

Miêu tả IP vả port sẽ đƣợc viết lại bởi iptables

MASQUER ADE

Dùng để thực hiện Source Networkaddress Translation. Mặc định thì địa chỉ IP nguồn sẽ giống nhƣ IP nguồn của firewall

[--to-ports <port>[- <port>]] Ghi rõ tới các port nguồn mà port nguồn gốc có thể ánh xạ đƣợc

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Một phần của tài liệu Một số kỹ thuật lọc gói tin trong IP (Trang 62 - 67)

Tải bản đầy đủ (PDF)

(98 trang)