Firewall cần phải được cấu hình một cách trọn vẹn và được quản lý trong một tập tin script. Các giá trị cần được quản lý bằng biến để dể dàng thay đổi.
Luật trong Firewall cần được tổ chức một cách hợp lý. Bằng cách sử dụng chain tự định nghĩa ta có thể giảm bớt việc kiểm luật một cách tuần tự không cần thiết. Luật sẽ được phân cấp nhờ vào các chain do ta tự định nghĩa này. Như vậy ứng với mỗi gói tin, việc xét luật sẽ chỉ áp dụng cho những luật trong những chain mà nó sẽ được chuyển đến. Trong mô hình thử nghiệm này, tôi đã tạo ra một số chain như sau:
Firewall cần phải bảo vệ được mạng bên trong. Ngăn không cho những gói tin không match lệ cũng như những gói tin giả mạo địa chỉ đi qua.
Firewall sử dụng module quản lý trạng thái kết nối để quản lý và cho phép những kết nối và duy trì trạng thái kết nối. Những gói tin không thuộc một kết nối nào sẽ bị loại bỏ.
# All of the bits are cleared
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP $IPT -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
# SYN and FIN are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP $IPT -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP ... ZCHAINS="ext-input ext-output int-ext ext-int local-tcp-ext int-tcp-ext remote-tcp-local remote-tcp-int local-udp-ext int-udp-ext icmp-in icmp-out icmp-forward"
LANIF="eth0" # network interface to the LAN EXTIF="eth1" # network interface to the Internet LOOPIF="lo" # however your system names it
EXT_IPADDR="172.16.16.171" # EXT IP address
EXT_ADDRESSES="172.16.16.0/24" # EXT IP address range ...
Trang 112
Cho phép các dịch vụ cơ bản để truy cập web như dịch vụ phân giải tên miền, dịch vụ truy cập web (HTTP/HTTPS) thông qua proxy trên Firewall. Sử dụng kết nối bảo mật vào đến các server bên trong cũng như bên ngoài. Ngoài ra còn cho phép dịch vụ chứng thực (TCP 113), chia sẽ tập tin FTP.
Mọi truy cập khi từ bên trong khi ra đến interface ngoài của Firewall sẽ đổi địa chỉ nguồn thành địa chỉ ngoài của Firewall. Việc thay đổi này nhằm tiết kiệm địa chỉ IP và đồng thời cũng tạo nên một lớp bảo mật. Mạng bên trong sẽ được che đi và người dùng bên ngoài chỉ thấy được một địa chỉ public là địa chỉ interface ngoài của Firewall.
Trong trường hợp interface ngoài của Firewall sử dụng địa chỉ động, thay đổi theo thời gian, ta có thể thay luật trên bằng luật sau:
Trong mô hình kết match với proxy Squid để tạo một proxy trong suốt, Firewall có nhiệm vụ chuyển hướng các gói tin truy cập dịch vụ web đến dịch
# Source NAT on dynamic link
$IPT -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE #SNAT internal address
$IPT -t nat -A POSTROUTING -o $EXTIF -j SNAT \ --to-source $EXT_IPADDR
# DNS Name Server
$IPT -A local-udp-ext -p udp --dport 53 -m state \ --state NEW -j ACCEPT
$IPT -A int-udp-ext -p udp --dport 53 -m state \ --state NEW -j ACCEPT
# Client rules for SSH, HTTP, HTTPS, AUTH, and FTP control requests
$IPT -A local-tcp-ext -p tcp -m multiport \ --dport 22,80,443,113,21 -m state \ --state NEW -j ACCEPT
$IPT -A int-tcp-ext -p tcp -m multiport \ --dport 22,80,443,113,21 -m state \ --state NEW -j ACCEPT...
$IPT -A INPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED \ -j ACCEPT
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED \ -j ACCEPT
Trang 113
vụ proxy. Như đã biết, việc sử dụng sự trợ giúp của Iptables để tạo một proxy trong suốt sẽ không thể thực hiện được chức năng chức thực người dùng của Squid. Đây là cấu hình mang tính thử nghiệm. Luật sau sẽ có nhiệm vụ trung chuyển các gói tin truy cập web đến proxy.
Trong mô hình trên, để public trang web ra bên ngoài cho người dùng Internet có thể truy cập được ta cần cấu hình thêm một số luật. Trước hết, người dùng trên Internet chỉ được phép truy cập vào interface bên ngoài của Firewall. Khi người dùng truy cập đến interface ngoài của Firewall với số hiệu cổng đích là 80 hoặc 443, mặc định là truy cập vào dịch vụ Web, ta sẽ thay đổi địa chỉ đích từ địa chỉ interface ngoài của Firewall thành địa chỉ của Webserver. Ngoài ra ta cần phải cho phép trung chuyển truy cập dịch vụ Web đến Webserver.
Tương tự như public Website ra ngoài, ta có thể cho phép truy cập, gửi email thông qua một Mail server bên trong như sau: