การติดตั้ง Firewall แบบง่าย เอามาจาก http://projectfiles.com/firewall/

ให้เรา download script ชื่อ firewall_install.sh ได้จากเวบดังกล่าว หรือ download ได้จาก ที่นี่ จากนั้นใช้ winscp ส่งเข้าไป
ที่ Server ผู้เขียนเอาไปเก็บไว้ที่ /home/util จากนั้นให้เราเปลี่ยนโหมดเป็น 700 แล้วสั่งให้ทำงาน ตามคำสั่งล่างนัี้

[root@one util]# ls f* -l
-rw-r--r--   1 root     root        94031 Jul 31  2003 firewall_install.sh
[root@one util]#
chmod 700 firewall_install.sh
[root@one util]#
ls f* -l
-rwx------   1 root     root        94031 Jul 31  2003 firewall_install.sh
[root@one util]#
./firewall_install.sh

เมื่อเราได้ตอบคำถามเรียบร้อย เมื่อลองใช้คำสั่ง iptables -L จะได้ผลดังข้างล่างนี้

[root@one util]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all -- anywhere             anywhere          state RELATED,ESTABLISHED
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:ftp
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:ssh
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:smtp
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:domain
ACCEPT     udp -- anywhere             anywhere          state NEW udp dpt:domain
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:http
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:pop3
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:auth
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:imap
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:https
ACCEPT     udp -- anywhere             anywhere          state NEW udp dpt:syslog
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:imaps
ACCEPT     tcp -- anywhere             anywhere          state NEW tcp dpt:pop3s
ACCEPT     all -- 192.168.1.0/24       anywhere          state NEW
ACCEPT     udp -- anywhere             anywhere          state NEW udp dpt:bootps
ACCEPT     all -- anywhere             anywhere          state NEW
TRUSTED    all -- anywhere             anywhere          state NEW

Chain FORWARD (policy DROP)
target     prot opt source               destination
ACCEPT     all -- anywhere             anywhere          state RELATED,ESTABLISHED
ACCEPT     all -- 192.168.1.0/24       anywhere          state NEW
TRUSTED    all -- anywhere             anywhere          state NEW

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     icmp -- anywhere             192.168.1.0/24
DROP       icmp -- anywhere             anywhere          state INVALID

Chain TRUSTED (2 references)
target     prot opt source               destination
ACCEPT     icmp -- anywhere             one.muphrtrc.ac.thicmp echo-request
DROP       icmp -- anywhere             anywhere
REJECT     all -- anywhere             anywhere          reject-with icmp-port-unreachable
[root@one util]#
 

ถ้าเราลองดู iptables เดิมก่อนการติดตั้ง rc.firewall จะได้ผลดังข้างล่างนี้

[root@one util]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.2.5 on Fri Jul 25 15:30:39 2003
*mangle
:PREROUTING ACCEPT [7:1740]
:INPUT ACCEPT [4494502:705850969]
:FORWARD ACCEPT [99278:17969823]
:OUTPUT ACCEPT [2:192]
:POSTROUTING ACCEPT [5972683:6668479189]
COMMIT
# Completed on Fri Jul 25 15:30:39 2003
# Generated by iptables-save v1.2.5 on Fri Jul 25 15:30:39 2003
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
[0:0] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
[0:0] -A POSTROUTING -d ! 192.168.1.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Fri Jul 25 15:30:39 2003
# Generated by iptables-save v1.2.5 on Fri Jul 25 15:30:39 2003
*filter
:INPUT ACCEPT [8:1835]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [12:12908]
[0:0] -A FORWARD -s 192.168.1.0/255.255.255.0 -j ACCEPT
[0:0] -A FORWARD -d 192.168.1.0/255.255.255.0 -j ACCEPT
[0:0] -A FORWARD -j DROP
COMMIT
# Completed on Fri Jul 25 15:30:39 2003
[root@one util]#

เมื่อเราได้ติดตั้ง rc.firewall ตอบคำถามเรียบร้อย ให้เรา save เก็บเอาไว้ จากนั้นลองเรียกมาดูจะได้ผลดังข้างล่างนี้


[root@one util]#
/etc/init.d/iptables save

[root@one util]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.2.5 on Wed Jul 30 01:50:28 2003
*mangle
:PREROUTING ACCEPT [674:89383]
:INPUT ACCEPT [317:22981]
:FORWARD ACCEPT [357:66402]
:OUTPUT ACCEPT [250:27739]
:POSTROUTING ACCEPT [607:94141]
COMMIT
# Completed on Wed Jul 30 01:50:28 2003
# Generated by iptables-save v1.2.5 on Wed Jul 30 01:50:28 2003
*nat
:PREROUTING ACCEPT [33:2079]
:POSTROUTING ACCEPT [9:587]
:OUTPUT ACCEPT [9:587]
[19:912] -A POSTROUTING -s 192.168.1.0/255.255.255.0 -o ppp0 -j MASQUERADE
COMMIT
# Completed on Wed Jul 30 01:50:28 2003
# Generated by iptables-save v1.2.5 on Wed Jul 30 01:50:28 2003
*filter
:INPUT DROP [1:40]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [250:27739]
:TRUSTED - [0:0]
[299:21574] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
[9:580] -A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 113 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
[0:0] -A INPUT -p udp -m state --state NEW -m udp --dport 514 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
[0:0] -A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
[7:723] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -m state --state NEW -j ACCEPT
[0:0] -A INPUT -i eth0 -p udp -m state --state NEW -m udp --dport 67 -j ACCEPT
[0:0] -A INPUT -i lo -m state --state NEW -j ACCEPT
[1:64] -A INPUT -m state --state NEW -j TRUSTED
[338:65490] -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
[19:912] -A FORWARD -s 192.168.1.0/255.255.255.0 -i eth0 -m state --state NEW -j ACCEPT
[0:0] -A FORWARD -m state --state NEW -j TRUSTED
[0:0] -A OUTPUT -d 192.168.1.0/255.255.255.0 -o eth0 -p icmp -j ACCEPT
[0:0] -A OUTPUT -p icmp -m state --state INVALID -j DROP
[0:0] -A TRUSTED -d 192.168.1.1 -p icmp -m icmp --icmp-type 8 -j ACCEPT
[0:0] -A TRUSTED -p icmp -j DROP
[1:64] -A TRUSTED -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Wed Jul 30 01:50:28 2003
[root@one util]#

มีสิ่งที่เกิดการเปลี่ยนแปลงเมื่อเราทำเรียบร้อยแล้วก็คือ จะมีการเพิ่มคำสั่งลงไปในแฟ้ม rc.local ซึ่งเป็นแฟ้มที่เมื่อเครื่องเปิดขึ้นมาก็จะถูกทำงานคล้ายๆ กับ autoexec.bat ใน DOS นั่นเอง


[root@one util]#
cat /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
/usr/sbin/tftp &
/usr/bin/wvdial &


if [ -x /etc/rc.d/rc.firewall ]; then
  /etc/rc.d/rc.firewall start
fi
[root@one util]#

มีภาพมาให้ดูขั้นตอนการติดตั้งด้วยแต่ง่วงแล้วครับ ขอเป็นคราวหน้าจะเอาภาพมาให้ชม