Hình 2.5: Sơ đồ kiến trúc Dual–homed Host
Dual–homed Host là hình thức xuất hiện đầu tiên trong cuộc đấu để bảo vệ mạng nội bộ. Dual–homed Host là một máy tính có hai giao tiếp mạng: một nối với mạng cục bộ và một nối với mạng bên ngoài.
Hệ điều hành của Dual–homed Host được sửa đổi để chức năng chuyển các gói tin giữa hai giao tiếp mạng này không hoạt động. Để làm việc được với một máy trên Internet, người dùng ở mạng cục bộ trước hết phải đăng nhập vào Dual–homed Host và từ đó bắt đầu phiên làm việc.
Ưu điểm của Dual–homed Host:
Cài đặt dễ dàng, không yêu cầu phần cứng hoặc phần mềm đặc biệt.
Dual–homed Host chỉ yêu cầu cấm khả năng chuyển các gói tin, do vậy, thông thường trên các hệ Unix, chỉ cần cấu hình và dịch lại nhân của hệ điều hành là đủ.
Không đáp ứng được những yêu cầu bảo mật ngày càng phức tạp, cũng như những hệ phần mềm mới được tung ra thị trường.
Không có khả năng chống đỡ những cuộc tấn công nhằm vào chính bản thân nó và khi Dual–homed Host đó bị đột nhập, nó sẽ trở thành đầu cầu lý tưởng để tấn công vào mạng nội bộ.
Đánh giá về kiến trúc Dual–homed Host:
Để cung cấp dịch vụ cho những người sử dụng mạng nội bộ có một số giải pháp như sau:
Kết hợp với các Proxy Server cung cấp những Proxy Service.
Cấp các tài khoản cho người dùng trên máy dual–homed host này và khi mà người sử dụng muốn sử dụng dịch vụ từ Internet hay dịch vụ từ mạng bên ngoài thì họ phải đăng nhập vào máy này.
Nếu dùng phương pháp cấp tài khoản cho người dùng trên máy dual– homed host thì người dùng không thích sử dụng dịch vụ phiền phức như vậy, vì mỗi lần họ muốn sử dụng dịch vụ thì phải đăng nhập vào máy khác, khác với máy của họ và đây là vấn đề rất không trong suốt với người sử dụng.
Nếu dùng Proxy Server: Khó có thể cung cấp được nhiều dịch vụ cho người sử dụng vì phần mềm Proxy Server và Proxy Client không phải loại dịch vụ nào cũng có sẵn. Hoặc khi số dịch vụ cung cấp nhiều thì khả năng đáp ứng của hệ thống có thể giảm xuống vì tất cả các Proxy Server đều đặt trên cùng một máy.
Một khuyết điểm cơ bản của hai mô hình trên nữa là: khi mà máy dual – homed host nói chung cũng như các Proxy Server bị đột nhập vào. Người tấn công đột nhập vào được qua nó thì lưu thông bên trong mạng nội bộ bị người tấn công này thấy hết và điều này hết sức nguy hiểm. Trong các hệ thống mạng dùng Ethernet hoặc Token Ring thì dữ liệu lưu thông trong hệ thống có thể bị bất kỳ máy nào nối vào mạng đánh cắp dữ liệu cho nên kiến trúc trên chỉ thích hợp với một số mạng nhỏ.
Kiến trúc này kết hợp 2 kỹ thuật đó là Packet Filtering và Proxy Services. Packet Filtering: Lọc một số loại dịch vụ mà hệ thống muốn cung cấp sử dụng Proxy Server, bắt người sử dụng nếu muốn dùng dịch vụ thì phải kết nối đến Proxy Server mà không được bỏ qua Proxy Server để nối trực tiếp với mạng bên trong/bên ngoài, đồng thời có thể cho phép Bastion Host mở một số kết nối với máy bên trong/bên ngoài.
Proxy Service: Bastion Host sẽ chứa các Proxy Server để phục vụ một số dịch vụ hệ thống cung cấp cho người sử dụng qua Proxy Server.
Hình 2.6: Sơ đồ kiến trúc Screened Host
Đánh giá một số ưu, khuyết điểm chính của kiến trúc Screened Host
Kiến trúc screened host hay hơn kiến trúc dual–homed host ở một số điểm cụ thể sau:
Dual–Homed Host: Khó có thể bảo vệ tốt vì máy này cùng lúc cung cấp nhiều dịch vụ, vi phạm qui tắc căn bản là mỗi phần tử hay thành phần nên giữ ít chức năng nếu có thể được (mỗi phần tử nên giữ ít chức năng càng tốt), cũng như tốc độ đáp ứng khó có thể cao vì cùng lúc đảm nhận nhiều chức năng.
Screened Host: Đã tách chức năng lọc các gói IP và các Proxy Server ở hai máy riêng biệt. Packet Filtering chỉ giữ chức năng lọc gói nên có thể kiểm
soát, cũng như khó xảy ra lỗi (tuân thủ quy tắc ít chức năng). Proxy Servers được đặt ở máy khác nên khả năng phục vụ (tốc độ đáp ứng) cũng cao.
Cũng tương tự như kiến trúc Dual–Homed Host khi mà Packet Filtering system cũng như Bastion Host chứa các Proxy Server bị đột nhập vào (người tấn công đột nhập được qua các hàng rào này) thì lưu thông của mạng nội bộ bị người tấn công thấy.
Từ khuyết điểm chính của 2 kiến trúc trên ta có kiến trúc thứ 3 sau đây khắc phục được phần nào khuyết điểm trên.
2.2.3 Kiến trúc Screened Subnet Host
Hình 2.7: Sơ đồ kiến trúc Screened Subnet Host
Với kiến trúc này, hệ thống này bao gồm hai Packet–Filtering Router và một Bastion Host. Kiến trúc này có độ an toàn cao nhất vì nó cung cấp cả mức bảo mật: Network và Application trong khi định nghĩa một mạng perimeter network. Mạng trung gian (DMZ) đóng vai trò như một mạng nhỏ, cô lập đặt giữa Internet và mạng nội bộ. Cơ bản một DMZ được cấu hình sao cho các hệ thống trên Internet và mạng nội bộ chỉ có thể truy nhập được một số giới hạn các hệ thống trên mạng DMZ và sự truyền trực tiếp qua mạng DMZ là không thể được.
Với những thông tin đến, bộ định tuyến ngoài chống lại những sự tấn công chuẩn như giả mạo địa chỉ IP và điều khiển truy nhập tới DMZ. Nó chỉ cho
phép hệ thống bên ngoài truy nhập Bastion Host. Bộ định tuyến trong cung cấp sự bảo vệ thứ hai bằng cách điều khiển DMZ truy nhập mạng nội bộ chỉ với những thông tin được truyền từ Bastion Host.
Với những thông tin đi, bộ định tuyến trong điều khiển mạng nội bộ truy nhập tới DMZ. Nó chỉ cho phép các hệ thống bên trong truy nhập Bastion host. Quy luật Filtering trên bộ định tuyến ngoài yêu cầu sử dụng dịch vụ Proxy bằng cách chỉ cho phép thông tin ra bắt nguồn từ Bastion Host.
Ưu điểm:
Kẻ tấn công cần phá vỡ ba tầng bảo vệ: Bộ định tuyến ngoài, Bastion Host và Bộ định tuyến trong. Bởi vì bộ định tuyến ngoài chỉ quảng bá vùng mạng DMZ tới Internet còn hệ thống mạng nội bộ là không thể nhìn thấy. Chỉ có một số hệ thống đã được chọn ra trên DMZ là được biết đến bởi Internet qua bảng định tuyến và DNS information exchange ( Domain Name Server ). Bởi vì bộ định tuyến trong chỉ quảng cáo DMZ Network tới mạng nội bộ, các hệ thống trong mạng nội bộ không thể truy nhập trực tiếp vào Internet. Điều này đảm bảo rằng những người dùng bên trong bắt buộc phải truy nhập Internet qua dịch vụ Proxy.
Đánh giá về kiến trúc Screened Subnet Host:
Đối với những hệ thống yêu cầu cung cấp dịch vụ nhanh, an toàn cho nhiều người sử dụng đồng thời cũng như khả năng theo dõi lưu thông của mỗi người sử dụng trong hệ thống và dữ liệu trao đổi giữ các người dùng trong hệ thống cần được bảo vệ thì kiến trúc cơ bản trên phù hợp. Để tăng độ an toàn trong mạng nội bộ, kiến trúc screen subnet ở trên sử dụng thêm một mạng DMZ (DMZ hay perimeter network) để che phần nào lưu thông bên trong mạng nội bộ. Tách biệt mạng nội bộ với Internet.
Sử dụng 2 Screening Router: Bộ định tuyến ngoài và Bộ định tuyến trong. Áp dụng quy tắc dư thừa có thể bổ sung thêm nhiều mạng trung gian (DMZ hay perimeter network) càng tăng khả năng bảo vệ càng cao. Ngoài ra, còn có những kiến trúc biến thể khác như sử dụng nhiều Bastion Host, ghép chung
bộ định tuyến trong và bộ định tuyến ngoài, ghép chung Bastion Host và bộ định tuyến ngoài.
Sử dụng nhiều Bastion Host: Do các yêu cầu về tốc độ đáp ứng và dư thừa, cũng như tách biệt các Servers khác nhau. Sử dụng 1 Bastion Host cung cấp những dịch vụ cho người sử dụng bên trong, như dịch vụ SNMP Server, Proxy Servers… Sử dụng một Bastion Host khác cung cấp dịch vụ cho Internet hoặc những người sử dụng bên ngoài sẽ sử dụng. Như là Anonymous FTP Server mà Server này những người sử dụng bên trong không truy xuất đến.
Hình 2.8: Sơ đồ kiến trúc sử dụng 2 Bastion Host
Với cách này thì tốc độ đáp ứng cho những người sử dụng bên trong một phần nào đó không bị chậm đi bởi hoạt động của những người sử dụng bên ngoài.
Cũng có thể sử dụng nhiều Bastion Host mà cung cấp cho 1 dịch vụ nào đó để tăng tốc độ đáp ứng nhưng việc này cũng khó cân bằng tải giữa các Server trừ khi đoán trước được mức độ sử dụng.
Việc sử dụng kỹ thuật dư thừa để đảm bảo tính sẵn sàng cao của hệ thống, để khi mà một Bastion Host hỏng thì có cái khác thay thế. Nhưng chỉ có một số loại dịch vụ trợ giúp dạng này: DNS Server, SMTP Server... có thể dùng nhiều Bastion Host làm DNS Server, SMTP Server. Khi một Bastion Host
hỏng hoặc quá tải thì những yêu cầu về DNS Server và SNMP sẽ được dùng qua Bastion Host khác như là một fallback system.
Sử dụng nhiều Bastion Host trong trường hợp muốn cung cấp dịch vụ cho nhiều mạng khác nhau và loại dữ liệu cung cấp cho mỗi mạng cũng khác nhau. Sử dụng nhiều Bastion Host cho các Server khác nhau để khi mà một Server nào đó bị đột nhập vào hay bị hỏng thì Server khác vẫn hoạt động tốt. Ví dụ : Tách HTTP Server và FTP Server trên 2 máy riêng biệt.
Kiến trúc ghép chung bộ định tuyến trong và bộ định tuyến ngoài. Sử dụng kiến trúc này thì cần tăng tốc độ của máy làm bộ định tuyến.
Hình 2.9: Sơ đồ kiến trúc ghép chung Router trong và Router ngoài
Kiến trúc này gần giống với Screened Host trong trường hợp khi mà bộ định tuyến bên trong và bên ngoài bị đột nhập vào thì lưu thông trong mạng bên trong sẽ bị lộ ra bên ngoài nhưng tốt hơn Screened Host đó là nó cũng sử dụng thêm một mạng bên ngoài. Mạng bên ngoài sẽ chứa các Server có thể nối ra Internet mà nếu các Server này bị đột nhập thì lưu thông của mạng bên trong cũng không bị lộ ra bên ngoài. Kiến trúc này cũng gần giống với Screened Subnet nhưng mà bộ định tuyến bên ngoài và bộ định tuyến bên trong được ghép chung nên nó giảm đi số lớp bảo vệ. Nói chung, kiến trúc ghép chung bộ định tuyến bên trong và bộ định tuyến bên ngoài ở trung gian giữa hai kiến trúc này.
Kiến trúc ghép chung Bastion Host và bộ định tuyến ngoài. Kiến trúc này sử dụng cho mạng chỉ có một đường nối dùng nghi thức SLIP hoặc PPP để ra Internet.
Hình 2.10: Sơ đồ kiến trúc ghép chung Bastion Host và Router ngoài
Kiến ghép chung Bastion Host và bộ định tuyến ngoài này gần giống với Screened Subnet. Nó cho tốc độ đáp ứng thường thấp nhưng mà vẫn có thể chấp nhận được do tốc độ đường truyền thấp, chức năng lọc của bộ định tuyến bên ngoài ít và chức năng lọc gói chủ yếu là bộ định tuyến bên trong.
Chương 3
GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA IPCOP 3.1 Giới thiệu và mục đích của tường lửa IPCop
3.1.1 Giới thiệu về tường lửa IPCop
IPCop là một bản phân phối Linux thuần túy có chức năng 'tường lửa' chuyên nghiệp bảo vệ hệ thống mạng trước các nguy cơ như virus và xâm nhập bất hợp pháp. Tường lửa IPCop không đòi hỏi cấu hình phần cứng cao nên cho phép tận dụng máy tính cũ. Tường lửa IPCop là một sản phẩm mã nguồn mở thay thế và có thể giúp tiết kiệm chi phí. Tường lửa IPCop có nhiều tính năng mạnh mà ngay cả những sản phẩm tường lửa thương mại hàng đầu cũng không có được. Ðể tăng cường bảo mật cho các ứng dụng và tối ưu hóa băng thông, IPCop đã tích hợp những chương trình bảo mật hàng đầu với những tính năng hữu ích như:
Linux Netfilter - Stateful Packet Inspection: một ứng dụng tường lửa nổi tiếng và mạnh.
Snort -Network IDS: hệ thống dò tìm và phát hiện sự xâm nhập trái phép.
Squid – Web Proxy: chương trình kiểm soát và tăng tốc truy cập Internet được nhiều người yêu thích.
Hỗ trợ FreeS/WAN IPSec cho phép xây dựng máy chủ VPN cung cấp truy cập tài nguyên nội bộ cho người dùng từ xa thông qua các phiên truyền được mã hóa và chứng thực chặt chẽ.
Ngoài ra, còn có các dịch vụ mạng phổ biến và quan trọng như DHCP server cung cấp địa chỉ IP động, hỗ trợ chức năng đăng ký tên miền tự động thông qua cơ chế Dynamic DNS...
Giao diện quản lý, cấu hình thân thiện thông qua giao diện web.
Cơ chế tự vá lỗi và cập nhật các chính sách bảo mật tự động.
Cho phép sao lưu và khôi phục nhanh chóng các thông tin cấu hình của IPCop khi có sự cố xảy ra.
3.1.2 Lịch sử của IPCop
IPCop bắt nguồn từ tường lửa SmoothWall nhưng nó được phát triển thành một dự án riêng biệt. Cung cấp tốt hơn và hỗ trợ nhiều dịch vụ hơn. Bởi vì SmoothWall có bản quyền của GPL và các nhà sản xuất cho thương mại. Với phiên bản thương mại SmoothWall được cung cấp nhiều tính năng nổi trội hơn so với bản cho GPL. IPCop là một phiên bản có bản quyền và được cung cấp miễn phí bởi GPL. Đã có nhiều tính năng của phiên bản thương mại SmoothWall được thêm vào phiên bản IPCop hiện nay. Phiên bản đầu tiên IPCop là 0.1.1, được phát triển từ phiên bản 0.9.9 của SmothWall vào tháng 10 - 2001. Phiên bản ổn định đầu tiên được giới thiệu là IPCop 1.0 được giới thiệu vào tháng 6 – 2004. Trải qua nhiều lần nâng cấp, phiên bản ổn định được cung cấp hiện tại là 1.4.20 và bản cập nhật là 1.4.21. Ngày nay, với sự phát triển của công nghệ thông tin IPCop được viết lại hỗ trợ các dòng chip intel i486 với phiên bản mới nhất là 2.04.
Cấu hình phần cứng tối thiểu để cài đặt IPCop:
• PC 386 với 16MB RAM (nên có nhiều hơn nếu sử dụng chức năng IDS của Snort và tăng tốc độ truy cập Internet của Squid).
• Ðĩa cứng ATA dung lượng tối thiểu 125MB + 2x (dung lượng bộ nhớ RAM).
• Ngoài ra, IPCop là một hệ thống tường lửa cho nên cần có ít nhất 2 card mạnh (NIC): một cho môi trường bên ngoài (Red) và một cho hệ thống nội bộ (Green).
3.1.3 Sự khác nhau giữa SmoothWall và IPCop
Mặc dù IPCop được phát triển dựa trên SmoothWall nhưng nhân hệ điều hành của IPCop là một phần của hệ nhân Red Hat 7.2 RPMs. Hiện nay cả hai phiên bản IPCop và SmoothWall đều sử dụng nhân 2.2 và 2.4 của phiên bản Red Hat’s Enterprise. Với phiên bản hỗ trợ dòng chip i486 thì IPCop sử dụng nhân 2.6 mới nhất.
Các dòng mã của nó đã được thay đổi để chạy trên hệ định dạng là ext3, thêm vào độ tin cậy cho sản phẩm. Và sản phẩm này cũng đuợc thêm vào các tính năng tối ưu của phiên bản SmoothWall như hỗ trợ ADSL.
Đúng vậy, hầu hết các ứng dụng trên phiên bản SmoothWall hiện nay đều có trên IPCop. Nếu bạn muốn chạy phiên bản SmoothWall bạn phải có sản phẩm được phân phối từ nhà sản xuất và nó không miễn phí.
3.2 Những thành phần và tính năng của tường lửa IPCop
3.2.1 Các thành phần
3.2.1.1 Giao diện web
Chúng ta có thể quản trị IPCop qua giao diện web từ bất cứ máy tính nào trong hệ thống của mình, ngoại trừ chính nó. Vì là một tường lửa nên bạn có thể tháo bỏ các thiết bị ngoại vi như chuột, bàn phím và cả màn hình khỏi tường lửa IPCop để tiết kiệm chi phí và nâng cao tính bảo mật. Từ máy tính dùng để quản trị, hãy nhập vào địa chỉ sau http://ipcop:81 hoặc http:// <địa chỉ IP>:81 tùy theo địa chỉ mạng trong của tường lửa để đăng nhập vào giao diện quản trị.
Trong giao diện quản trị hệ thống tường lửa IPCop trên thanh công cụ có các menu điểu khiển như: System, Status, Network, Services, Firewall …