之前在寫 [FreeBSD] 無線網卡架設AP Server DWL-G520 Ralink RT2561 這篇的時候,是利用 pf 當作防火牆,可是我偏好使用 ipfw 來作防火牆的工作,所以今天研究一下 nat 的作法,ipfw Firewall 設定方法。 請先參考設定 IPFW 編譯核心:[FreeBSD] 系統核心支援ipfw 更新kernel
- 系統:FreeBSD 6.2-RELEASE or STABLE 200709
- 網卡:一張有線網卡,另一張無線網卡 目前的架構,一張有線網卡對外,然後無線網卡對內,架設dhcp伺服器,提供ap的功能,會加上 802.1X 認證,這我晚一點會寫教學 目前要先修改 /etc/rc.conf
# 第一片網卡固有的設定: ifconfig_rl0="inet 140.123.107.XX netmask 255.255.255.0" # 只用一片網卡時,將第一片網卡虛擬出另一個IP(如果使用兩片網卡,就不要設這一行,或者註解起來也可)。 ifconfig_rl0_alias0="inet 192.168.1.254 netmask 255.255.255.0" # 如果你有第二片網卡時,將此網卡設定如下(當然啦,這一行的註解就應該取消,第二塊網卡才會有作用)。 # ifconfig_ral0="inet 192.168.1.254 netmask 255.255.255.0" # 宣告本主機可做為gateway(通訊閘) gateway_enable="YES" # 宣告防火牆(IP-FIREWALL) firewall_enable="YES" firewall_type="simple" firewall_quiet="YES" tcp_extensions="YES" # 定義 NATD 的網路卡介面,應定義在設定 public IP 的網卡代號上。 natd_interface="vr0" natd_enable="YES"然後 /etc/netstart 重新啟動網卡 再來是設定防火牆 ipfw 檔案在 /etc/rc.firewall 先備份原來的檔案 cp /etc/rc.firewall /etc/rc.firewall.bak 然後修改 /etc/rc.firewall
此設定是限制192.168.1.~254 整個網域,server DHCP ip 是設192.168.1.254 #!/bin/sh /sbin/ipfw -f flush /sbin/ipfw add pass all from 127.0.0.1 to 127.0.0.1 //設定server本機可以跟server本機通訊 /sbin/ipfw add divert natd all from any to any via rl0 //設定nat可以任何通行 /sbin/ipfw add pass all from 127.0.0.1 to any //讓本機可以通行到任何地方 /sbin/ipfw add pass all from 192.168.1.255 to any //如果有設dhcp一定要設這行 /sbin/ipfw add pass all from 192.168.1.1/24 to 192.168.1.254 //讓內部ip全部可以連上本機 /sbin/ipfw add pass all from 192.168.1.1/24 to 168.95.1.1 //開放hinet dns給使用者 #開放所有通行給該ip /sbin/ipfw add pass all from 192.168.1.1 to any /sbin/ipfw add pass all from 192.168.1.2 to any /sbin/ipfw add pass all from 192.168.1.3 to any /sbin/ipfw add deny all from 192.168.1.1/24 to 140.112.90.74 /sbin/ipfw add deny all from 192.168.1.1/24 to 140.112.90.72 # ================ # 其餘的(all)都放行了,NAT 和 FireWall 都需要設定這一行。 /sbin/ipfw add pass all from any to any這樣大致上就ok了~
See also
- OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778
- 安裝 XCache 加速 PHP 執行速度
- 好用 PHP debug extension Xdebug on FreeBSD 安裝
- [FreeBSD] 利用 fsck 指令修復不正常斷電關機
- ProFTPD UseEncoding 繁體中文亂碼解決 Localization
- [FreeBSD] update apache -> 2.2.15, PHP -> 5.3.2, and MySQL downgrade to 5.1.9
- Apache 取得透過 Reverse Proxy (Varnish) 的 Client 真正 IP (mod_rpaf)
- [Vim] 想套用 *.php syntax 顏色於 *.ros
- [FreeBSD] DenyHosts 設定在 hosts.allow 注意事項
- [FreeBSD] Fanout and Fanterm Tool to run commands on multiple machines