OpenBSD 之PF 基本防火牆啟動及 /etc/pf.conf 設…

2009-05-13 05:56:42来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

Description:OpenBSD 之PF 基本防火牆啟動及 /etc/pf.conf 設定檔範例研究,我在想 OpenBSD 是不是天生開發出來,就是要擔任防火牆的角色,裝完 OpenBSD 後即可啟用 NAT 及 firewall 的能力,並不需要再去編譯 Kernel 即可使用。Setp 1.開機自動啟動:#vi /etc/rc.confpf=YES#vi /etc/sysctl.conf#net.inet.ip.forwarding=1    #  將最前面的 # 號拿掉
net.inet.ip.forwarding=1手動立即啟動:
#pfctl -e
#sysctl  -w net.inet.ip.forwarding=1
開啟 ftp-proxy 讓內部可以對外使用 FTP 的服務:
#vi /etc/inetd.conf
#127.0.0.1:8021 stream tcp       nowait  root    /usr/libexec/ftp-proxy ftp-proxy  #  將"# "號拿掉開通 127.0.0.1 的 ftp-proxy
127.0.0.1:8021 stream tcp       nowait  root    /usr/libexec/ftp-proxy ftp-proxy
#kill -HUP `cat /var/run/inetd.pid`
Setp 2.
基本 PF 的 /etc/pf.conf 設定範例:
# macrosint_if = "de0"    #  定義對內的網介面ext_if = "fxp0"    #  定義對外的網路介面tcp_services = "{ 22, 113 }"    #  定義 port 22, 113 服務icmp_types = "echoreq"    #  定義 tcmp 回應狀態priv_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"    #  定義符合 RFC 1918 私有IP 部份comp3 = "10.10.10.3"    #  定義內部的一台電腦代號 comp3 對應 10.10.10.3 這個 IP# optionsset block-policy returnset loginterface $ext_if# scrubscrub in all    #  修整進入 NAT 的封包# nat/rdrnat on $ext_if from $int_if:network to any -> ($ext_if)    #  NAT 設定讓內部的 IP 可轉換出去rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021    #  讓內部可使用 ftp client 軟體連出去rdr on $ext_if proto tcp from any to any port 80 -> $comp3    #  內部電腦 comp3 的 80 port 服務對應到外面# filter rulesblock all    #  所有封包都擋掉pass quick on lo0 all    #  允許 localhost 封包通行block drop in  quick on $ext_if from $priv_nets to any    #  拒絕所有 priv_nets 定義的私有 IP 進入 ext_if 介面block drop out quick on $ext_if from any to $priv_nets    #  拒絕所有 priv_nets 定義的私有 IP 出去 ext_if 介面pass in on $ext_if inet proto tcp from any to ($ext_if) port $tcp_services flags S/SA keep state    #  允許 tcp_services 定義之 port 進入 ext_if 介面pass in on $ext_if proto tcp from any to $comp3 port 80 flags S/SA synproxy state    #  讓內部 comp3 的 80 port 服務由 ext_if 介面出去pass in inet proto icmp all icmp-type $icmp_types keep state    #  允許 icmp 封包進入通行pass in  on $int_if from $int_if:network to any keep state    #  允許封包由 de0  進到 10.10.10.0/24 暢通pass out on $int_if from any to $int_if:network keep state    #  允許封包由 de0  出去 10.10.10.0/24 暢通pass out on $ext_if proto tcp all modulate state flags S/SA    #  允許 tcp 封包由 fxp0 出去pass out on $ext_if proto { udp, icmp } all keep state    #  允許 udp , icmp 封包由 fxp0 出去

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:vdump的常用方式

下一篇:FreeBSD NAT 上接兩條 ADSL 若斷線時自動偵測切換路由(留着以后