Firewall: là một hệ thống được sử dụng nhằm bảo vệ giữa mạng tin tưởng (trusted network) và một mạng không tin tưởng. Nhiệm vụ của nó là kiểm soát gói tin, ngăn chặn xâm nhập.
Firewall có thể được chia làm 2 loại: Personal Firewall.
Network Firewall.
Sự khác biệt giữa 2 loại trên chính là số lượng host mà nó quản lý. Nếu như Presonal Firewall chỉ quản lý một máy riêng lẻ, thì Network Firewall lại quản lý cả một hệ thống mạng. Ngoài ra trong Network Firewall có thể được chia thành các nhóm chính như:
Packet-Filtering Firewalls: hoạt động tại tầng Network trong mô hình OSI. Trong Packet Filtering mỗi khi có một gói tin đi qua tường lửa, nó sẽ được so sánh với một bộ quy tắc đã được định nghĩa trước (các quy tắc này được định nghĩa dựa trên source and destination IP, source and destination port hoặc là dựa trên protocol được sử dụng ). Tùy thuộc vào kết quả so sánh, mà gói tin đó sẽ được chuyển đi, reject, hay là forward.
Circuit-level gateway Firewalls: hoạt động tại tầng Session trong mô hình OSI. Nó giám sát các gói tin handshaking (TCP shaking) đi qua Firewall, gói tin sẽ được chỉnh sửa địa chỉ nguồn thành địa chỉ Circuit Firewall, giúp che giấu thông tin mạng nội bộ.
Application-level gateway Firewalls: hoạt động tại tầng Application trong mô hình OSI. Nó quyêt định drop hay send 1 packet dựa vào các thông tin ứng dụng(tồn tại trong Packet). Application Firewall sẽ thiết lập các Proxy khác nhau cho các Application khác nhau.
Hệ điều hành mã nguồn mở
Trang 49 Stateful multilayer inspection Firewalls: kết hợp của 3 loại tưởng lửa trên. Nó lọc gói tin tại Network layer, Session Layer, Application Layer. Gói tin sẽ được thông qua nếu nó thông qua được cả 3 layer trên.
Firewall IPtables
IPtables là Firewall thuộc dạng Stateful Multilayer Inspection Firewall. Nó hoạt động tại layer 3, 4, 5 trong mô hình OSI. IPtables do Netfilter organization viết ra nhằm tăng tính bảo mật trên Linux. Iptables cung cấp các tính năng như:
Tích hợp tốt với Kernel Linux.
Có khả năng phan tích packet hiệu quả.
Lọc packet dựa vào MAC và một số cờ hiệu trong TCP Header. Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống. Cung cấp kĩ thuật NAT.
Khả năng ngăn chặn một số dạng tính công DOS. (thực chất thì cái này chỉ chặn DOS, tuy nhiên hiện nay có rất nhiều kiểu tấn công từ chối dịch vụ DDOS và các biến thể khác )
10.2.1.1 Cài đặt và sử dụng hệ thống firewall
Cài đặt Iptables
Để kiểm tra xem thử Iptables đã được cài đặt trên máy chưa thì bạn sử dụng lệnh: #rpm -qa | grep iptables
Nếu chưa thì cài đặt bằng lệnh:
#yum install iptables (hoặc rpm – ivh tên gói.rpm)
Các lệnh khởi động, dừng, đặt iptables lúc khởi động hệ thống: #service iptables restart/start/stop/status
#chkconfig iptables on/off
Cơ chế xử lý packet trong Iptables:
Iptables sẽ kiểm tra các packet khi nó đi qua Iptables’s host. Quá trình kiểm tra sẽ được thực hiện từ entries đầu tiên cho tới entry cuối cùng.
Trong Iptables có 3 loại bảng:
Mangle Tables: chịu trách nhiệm biến đổi tường quality of service bits trong TCP Header. Thông thường loại table này được sử dụng trong SOHO(Small Office/Home Office).
Filter queue: chịu trách nhiệm thiết lập bộ lọc packet (packet filtering), có 3 loại buit-in chains được mô tả để thực hiện Firewall rule:
Forward chain: Lọc packet đi qua Firewall. Input chain: Lọc packet đi vào Firewall. Output chain: Lọc packet đi ra Firewall.
NAT queue: thực thi chức năng NAT, cung cấp 2 loại buit-in chain sau:
Pre-routing chain: NATs packet khi destination address của packet cần thay đổi(Nat từ ngoài vào trong nội bộ).
Hệ điều hành mã nguồn mở
Trang 50 Post-routing chain: NATs packet khi source address của packet cần thay đổi(Nat từ trong
nội bộ ra ngoài).
10.2.1.2 Một số thao tác cấu hình firewall căn bản
Ví dụ: cấu hình iptables cho phép nhận các gói dữ liệu có giao tiếp là TCP, đến từ card mạng eth0, có địa chỉ IP nguồn là bất kỳ, đi đến địa chỉ 192.168.1.58 qua card mạng eth1. Số port nguồn là 1024-65535 và port đích là 80
iptables –A FORWARD –s 0/0 –i eth0 –d 192.168.1.58 –o eth1 –p TCP –sport 1024:65535 –dport 80 –j ACCEPT
ptables –A FORWARD –s 0/0 –i eth0 –d 192.168.1.58 –o eth1 –p TCP –sport 1024:65535 –m muliport –dport 80,443 –j ACCPET
iptables –A FORWARD –d 0/0 –o eth0 –s 192.168.1.58 –i eth1 –p TCP –m state –state ESTABLISH –j ACCEPT
Giải thích câu lệnh: iptables được cấu hình cho phép firewall chấp nhận các gói dữ liệu sử dụng TCP, đến từ card mạng eth0 với địa chỉ IP nguồn là bất kỳ, đi tới địa chỉ đích 192.168.1.58 qua card mạng eth1. Số port nguồn là 1024=>65535 và port đích là 80 và 443. Đến khi các gói dữ liệu nhận trở lại, thay vì mở port nguồn và port đích thì ta chỉ cần sử dụng lại kết nối cũ đã thiết lập bằng tham số -m state và –state ESTABLISHED.