Nếu không muốn tốn tiền mua tường lửa phần cứng thì bạn có thể sử dụng tường lửa phần mềm. Về giá cả, tường lửa phần mềm thường không đắt bằng tường lửa phần cứng, thậm chí một số còn miễn phí (phần mềm Comodo Firewall Pro 3.0, PC Tools Firewall Plus 3.0, ZoneAlarm Firewall 7.1 …) và bạn có thể tải về từ mạng Internet.
So với tường lửa phần cứng, tường lửa phần mềm cho phép linh động hơn, nhất là khi cần đặt lại các thiết lập cho phù hợp hơn với nhu cầu riêng của từng công ty. Chúng có thể hoạt động tốt trên nhiều hệ thống khác nhau, khác với tường lửa phần cứng tích hợp với bộ định tuyến chỉ làm việc tốt trong mạng có quy mô nhỏ. Tường lửa phần mềm cũng là một lựa chọn phù hợp đối với máy tính xách tay vì máy tính sẽ vẫn được bảo vệ cho dù mang máy tính đi bất kỳ nơi nào.
Các tường lửa phần mềm làm việc tốt với Windows 98, Windows ME và Windows 2000. Chúng là một lựa chọn tốt cho các máy tính đơn lẻ. Các công
ty phần mềm khác làm các tường lửa này. Chúng không cần thiết cho Windows XP bởi vì XP đã có một tường lửa cài sẵn.
Ưu điểm:
- Không yêu cầu phần cứng bổ sung. - Không yêu cầu chạy thêm dây máy tính. - Một lựa chọn tốt cho các máy tính đơn lẻ.
Nhược điểm:
- Chi phí thêm: hầu hết các tường lửa phần mềm tốn chi phí. - Việc cài đặt và và đặt cấu hình có thể cần để bắt đầu.
- Cần một bản sao riêng cho mỗi máy tính.
Chương 2
TỔNG QUAN VỀ TƯỜNG LỬA 2.1 Khái niệm và chức năng của tường lửa
2.1.1 Khái niệm
Trong ngành mạng máy tính, bức tường lửa (tiếng Anh: firewall) là rào chắn mà một số cá nhân, tổ chức, doanh nghiệp, cơ quan nhà nước lập ra nhằm ngăn chặn người dùng mạng Internet truy cập các thông tin không mong muốn hay ngăn chặn người dùng từ bên ngoài truy nhập các thông tin bảo mật nằm trong mạng nội bộ.
Tường lửa là một thiết bị phần cứng hay một phần mềm hoạt động trong một môi trường máy tính nối mạng để ngăn chặn một số liên lạc bị cấm bởi
chính sách an ninh của cá nhân hay tổ chức, việc này tương tự với hoạt động của các bức tường ngăn lửa trong các tòa nhà. Tường lửa còn được gọi là Thiết bị bảo vệ biên giới (Border Protection Device - BPD), đặc biệt trong các ngữ cảnh của NATO, hay bộ lọc gói tin trong hệ điều hành BSD - một phiên bản Unix của Đại học California, Berkeley.
Nhiệm vụ cơ bản của tường lửa là kiểm soát giao thông dữ liệu giữa hai vùng tin cậy khác nhau. Các vùng tin cậy điển hình bao gồm: mạng Internet (vùng không đáng tin cậy) và mạng nội bộ (một vùng có độ tin cậy cao). Mục đích cuối cùng là cung cấp kết nối có kiểm soát giữa các vùng mạng với độ tin cậy khác nhau thông qua việc áp dụng một chính sách an ninh và mô hình kết nối dựa trên nguyên tắc quyền tối thiểu.
Cấu hình đúng đắn cho các tường lửa đòi hỏi kỹ năng của người quản trị hệ thống. Việc này đòi hỏi hiểu biết đáng kể về các giao thức mạng và về an ninh máy tính. Những lỗi nhỏ có thể biến tường lửa thành một công cụ an ninh vô dụng.
2.1.2 Chức năng tường lửa
Tường lửa quyết định những dịch vụ nào từ bên trong được phép truy cập từ bên ngoài, những người nào từ bên ngoài được phép truy cập đến các dịch vụ bên trong và cả những dịch vụ nào bên ngoài được phép truy cập bởi những người bên trong.
2.1.2.1 Tường lửa bảo vệ những vấn đề gì ?
Bảo vệ dữ liệu: Theo dõi luồng dữ liệu mạng giữa Internet và Intranet. Những thông tin cần được bảo vệ do những yêu cầu sau:
- Bảo mật: Một số chức năng của tường lửa là có thể cất giấu thông tin mạng tin cậy và nội bộ so với mạng không đáng tin cậy và các mạng bên ngoài khác. Tường lửa cũng cung cấp một mũi nhọn trung tâm để đảm bảo sự quản lý, rất có lợi khi nguồn nhân lực và tài chính của một tổ chức có giới hạn.
- Tính toàn vẹn. - Tính kịp thời.
- Tài nguyên hệ thống.
- Danh tiếng của công ty sở hữu các thông tin cần bảo vệ.
2.1.2.2 Tường lửa bảo vệ chống lại những vấn đề gì ?
Tường lửa bảo vệ chống lại những sự tấn công từ bên ngoài.
- Chống lại việc Hacking : Hacker là những người hiểu biết và sự dụng máy tính rất thành thạo và là những người lập trình rất giỏi. Khi phân tích và khám phá ra các lổ hổng hệ thống nào đó, sẽ tìm ra những cách thích hợp để truy cập và tấn công hệ thống. Có thể sử dụng các kỹ năng khác nhau để tấn công vào hệ thống máy tính. Ví dụ có thể truy cập vào hệ thống mà không được phép truy cập và tạo thông tin giả, lấy cắp thông tin. Nhiều công ty đang lo ngại về dữ liệu bảo mật bị đánh cắp bởi các hacker. Vì vậy, để tìm ra các phương pháp để bảo vệ dữ liệu thì tường lửa có thể làm được điều này.
- Chống lại việc sửa đổi mã: Khả năng này xảy ra khi một kẻ tấn công sửa đổi, xóa hoặc thay thế tính xác thực của các đoạn mã bằng cách sử dụng virus, worm và những chương trình có chủ tâm. Khi tải dữ liệu trên Internet có thể dẫn tới tải các đọan mã có dã tâm, thiếu kiến thức về bảo mật máy tính, những tập tin tải về có thể thực thi những quyền theo mục đích của những người dùng trên một số trang website.
- Từ chối các dịch vụ đính kèm: Từ chối dịch vụ là một loại ngắt hoạt động của sự tấn công. Lời đe dọa tới tính liên tục của hệ thống mạng là kết quả từ nhiều phương thức tấn công giống như làm tràn ngập thông tin hay là sự sửa đổi đường đi không được phép. Bởi thuật ngữ làm tràn ngập thông tin, là một người xâm nhập tạo ra môt số thông tin không xác thực để gia tăng lưu lượng trên mạng và làm giảm các dịch vụ tới người dùng thực sự. Hoặc một kẻ tấn công có thể ngắm ngầm phá hoại hệ thống máy tính và thêm vào phần mềm có dã tâm, mà phần mềm này sẽ tấn công hệ thống theo thời gian xác đinh trước.
- Tấn công trực tiếp:Cách thứ nhất là dùng phương pháp dò mật khẩu trực tiếp. Thông qua các chương trình dò tìm mật khẩu với một số thông tin về người sử dụng như ngày sinh, tuổi, địa chỉ … và kết hợp với thư viện do
người dùng tạo ra, kẻ tấn công có thể dò được mật khẩu. Trong một số trường hợp khả năng thành công có thể lên tới 30%. Ví dụ như chương trình dò tìm mật khẩu chạy trên hệ điều hành Unix có tên là Crack. Cách thứ hai là sử dụng lỗi của các chương trình ứng dụng và bản thân hệ điều hành đã được sử dụng từ những vụ tấn công đầu tiên và vẫn được để chiếm quyền truy cập (có được quyền của người quản trị hệ thống).
- Nghe trộm: Có thể biết được tên, mật khẩu, các thông tin truyền qua mạng thông qua các chương trình cho phép đưa giao tiếp mạng vào chế độ nhận toàn bộ các thông tin lưu truyền qua mạng.
- Vô hiệu hoá các chức năng của hệ thống: Đây là kiểu tấn công nhằm làm tê liệt toàn bộ hệ thống không cho thực hiện các chức năng được thiết kế. Kiểu tấn công này không thể ngăn chặn được do những phương tiện tổ chức tấn công cũng chính là các phương tiện để làm việc và truy nhập thông tin trên mạng.
- Lỗi người quản trị hệ thống: Ngày nay, trình độ của các hacker ngày càng giỏi hơn, trong khi đó các hệ thống mạng vẫn còn chậm chạp trong việc xử lý các lỗ hổng của mình. Điều này đòi hỏi người quản trị mạng phải có kiến thức tốt về bảo mật mạng để có thể giữ vững an toàn cho thông tin của hệ thống. Đối với người dùng cá nhân, không thể biết hết các thủ thuật để tự xây dựng cho mình một tường lửa, nhưng cũng nên hiểu rõ tầm quan trọng của bảo mật thông tin cho mỗi cá nhân. Qua đó, tự tìm hiểu để biết một số cách phòng tránh những sự tấn công đơn giản của các hacker. Vấn đề là ý thức, khi đã có ý thức để phòng tránh thì khả năng an toàn sẽ cao hơn.
- Yếu tố con người: Với những tính cách chủ quan và không hiểu rõ tầm quan trọng của việc bảo mật hệ thống nên dễ dàng để lộ các thông tin quan trọng cho hacker. Ngoài ra thì còn dùng tường lửa để chống lại sự “giả mạo địa chỉ IP “.
2.1.3 Cấu trúc, thành phần và cơ chế hoạt động tường lửa
2.1.3.1 Cấu trúc
Tường lửa bao gồm : Một hoặc nhiều hệ thống máy chủ kết nối với các bộ định tuyến hoặc có chức năng định tuyến. Các phần mềm quản lý an ninh chạy trên hệ thống máy chủ. Thông thường là các hệ quản trị xác thực (Authentication), cấp quyền (Authorization) và kế toán (Accounting).
2.1.3.2 Thành phần và cơ chế hoạt động
Một tường lửa bao gồm một hoặc nhiều thành phần sau đây:
Bộ lọc gói tin (Packet Filtering).
Cổng ứng dụng (Application Gateway).
Cổng mạch ( Circuit Level Gateway ).
Bộ lọc gói tin (Packet Filtering):
Nguyên lý:
Khi nói đến việc lưu thông dữ liệu giữa các mạng với nhau thông qua tường lửa thì điều đó có nghĩa rằng tường lửa hoạt động chặt chẽ với giao thức liên mạng TCP/IP. Vì giao thức này làm việc thuật toán chia nhỏ các dữ liệu nhận được trên mạng, hay nói cách chính xác hơn là các dịch vụ chạy trên các giao thức ( Telnet, SMTP, FTP, DNS, NSF ….) chia thành các gói dữ liệu rồi gán cho các gói tin này các địa chỉ có thể nhận dạng, tái lập ở đích cần gửi đến do đó các loại tường lửa cũng liên quan nhiều đến các gói tin và các con số địa chỉ của chúng.
Hình 2.1: Bộ lọc gói tin
Bộ lọc gói tin cho phép hoặc từ chối mỗi gói tin mà nó nhận được. Nó kiểm tra toàn bộ đoạn dữ liệu để quyết định xem đoạn dữ liệu đó có thỏa mãn một số luật lệ của lọc gói tin hay không. Các luật lệ lọc gói tin này dựa trên cácthông tin ở đầu mỗi gói tin dùng để cho phép truyền gói tin trên mạng. Đó là:
Địa chỉ IP nguồn (IP Souce Addresss).
Địa chỉ IP đích (IP Destination Address).
Thông tin về giao thức (tập các luật) điều khiển gói (loại gói tin TCP, UDP, ICMP, IP tunnel).
Cổng TCP/UDP nguồn (TCP/UDP Souce port).
Cổng TCP/UDP đích (TCP/UDP Destination port).
Dạng thông báo ICMP (ICPM messager type).
Giao diện gói tin đến ( incomming interface of packet ).
Giao diện gói tin đi ( outcomming interface of packet ).
Nếu luật lệ được thỏa mãn thì gói tin sẽ được chuyển qua tường lửa nếu không gói tin sẽ bị loại bỏ. Nhờ vậy mà tường lửa có thể ngăn cản các kết nối vào các máy chủ hoặc mạng nào đó xác định hoặc khóa truy cập vào trong trong hệ thống mạng nội bộ từ những địa chỉ không cho phép. Hơn nữa việc
kiểm soát các cổng làm cho tường lửa có khả năng chỉ cho phép một số loại kết nối nhất định vào các loại máy chủ nào đó hoặc chỉ cho phép một số dịch vụ nào đó (FTP, SSH, HTTP … ) mới được chạy trên hệ thống mạng cục bộ (LAN).
Ưu điểm:
Đa phần các tường lửa đều sử dụng bộ lọc gói tin vì:
Tương đối đơn giản và tính dễ thực thi.
Nhanh và dễ sử dụng.
Chi phí thấp và ít ảnh hưởng đến hiệu xuất của mạng.
Rất hiệu quả trong việc đóng khối các kiểu riêng biệt của lưu lượng, và đôi khi nó là một phần của hệ thống tường lửa tổng quan. Ví dụ: telnet có thể dễ dàng được đóng khối bằng cách áp dụng một filter để đóng khối TCP cổng 23 (telnet).
Nhược điểm:
Việc định nghĩa các chế độ lọc gói tin là việc phức tạp, nó đòi hỏi người quản trị mạng hiểu biết chi tiết về các dịch vụ Internet, các dạng packet header và các giá trị cụ thể trên các trường. Khi đòi hỏi về sự lọc càng lớn thì các luật lệ về lọc càng dài và phức tạp vì vậy rất khó quản lý và điều khiển.
Do làm việc dựa trên packet header nên bộ lọc gói tin không kiểm soát được nội dung thông tin của gói tin. Các gói tin chuyển qua vẫn có thể mang theo mã độc.
Thông tin địa chỉ trong một gói có thể bị xuyên tạc hoặc bị đánh lừa bởi người gửi.
Dữ liệu hoặc các yêu cầu chứa trong một gói cho phép có thể có điều không mong muốn xảy ra, một hacker khai thác một chỗ sai sót trong một chương trình Web server hoặc sử dụng một mật mã bất chính để thu được quyền điều khiển hoặc truy cập.
Cổng ứng dụng (Application Gateway) :
Nguyên lý:
Đây là một loại thiết kế nhằm tăng cường chức năng kiểm soát dịch vụ, giao thức được cho phép truy cập vào hệ thống mạng. Cơ chế hoạt động của nó dựa trên cách thức gọi là Proxy service (Dịch vụ đại diện). Proxy service là các bộ chương trình đặc biệt cài đặt trên gateway cho từng ứng dụng. Nếu người quản trị mạng không cài đặt proxy cho ứng dụng nào đó, thì dịch vụ tương ứng sẽ không được cung cấp và do đó không thể chuyển thông tin qua tường lửa. Ngoài ra, Proxy code có thể được định cấu hình để hỗ trợ chỉ một số đặc điểm trong ứng dụng, mà người quản trị mạng cho là chấp nhận được trong khi từ chối các đặc điểm khác.
Hình 2.2: Cổng lọc ứng dụng
Một số cổng ứng dụng được xem như là một pháo đài (bastion host), bởi vì nó được thiết kế đặc biệt để chống lại sự tấn công bên ngoài. Những biện pháp đảm bảo an ninh cho một bastion host là:
Bastion host luôn chạy các phiên bản an toàn của các phần mềm hệ thống. Các phiên bản an toàn này được thiết kế chuyên cho mục đích chống lại sự tấn công vào Operating Systems, cũng như là đảm bảo tích hợp tường lửa.
Chỉ những dịch vụ cho là cần thiết mới được cài trên basion host, đơn giản là chỉ vì nếu một dịch vụ không được cài đặt, dịch vụ đó sẽ không bị tấn công. Thông thường chỉ một số giới hạn cho các dịch vụ Telnet,
DNS, FTP, SMTP và xác thực người dùng là được cài đặt trên basion host.
Basion host có thể yêu cầu nhiều mức xác thực khác nhau. Ví dụ: mật khẩu người dùng hay smart card mỗi proxy được đặt cấu hình để cho phép truy nhập chỉ một số các máy chủ nhất định. Điều này có nghĩa rằng bộ lệnh và đặc điểm thiết lập cho mỗi proxy chỉ đúng với một số máy chủ trên toàn hệ thống.
Mỗi proxy duy trì một quyển nhật ký ghi chép lại toàn bộ các chi tiết lưu thông qua nó, mỗi sự kết nối, khoảng thời gian kết nối. Nhật ký này rất có ích trong việc tìm dấu vết hoặc ngăn chặn kẻ phá hoại.
Mỗi proxy đều độc lập với các proxy khác trên Basion host. Điều này cho phép dễ dàng cài đặt một số proxy mới, hay tháo gỡ một proxy đang có vấn đề. Ví dụ một người khác ngoài mạng muốn sử dụng dịch vụ Telnet để kết nối vào hệ thống mạng qua Basion host có Telnet proxy. Quá trình xảy ra như sau:
o Máy bên ngoài telnet đến Basion host. Basion host kiểm tra mật khẩu, nếu hợp lệ thì máy bên ngoài được phép vào giao diện của Telnet proxy. Telnet proxy cho phép một tập nhỏ những lệnh của telnet và quyết định những máy chủ nội bộ nào máy bên ngoài được phép truy nhập.
o Máy bên ngoài chỉ ra máy đích và Telnet proxy tạo một kết nối riêng tới máy chủ đích và chuyển các lệnh tới máy chủ đích dưới sự ủy quyền của máy bên ngoài. Máy bên ngoài tin rằng Telnet