| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 
课件制作网.
收藏本站
设为首页
安全365
OPENBSD上的ADSL和防火墙设置
OPENBSD上的ADSL和防火墙设置
作者:佚名 文章来源:不详 点击数: 更新时间:2007-1-25 9:27:18
偶在翻阅了大量网上文档后,实验整理了一下OPENBSD环境中ADSL、PF的配置过程。希望对OPENBSD的初学者有些帮助。下面我用的是OPENBSD 3.6 

配置ADSL: 
# vi /etc/ppp/ppp.conf 
========================ppp.conf======================= 
default: 
set log Phase Chat IPCP CCP tun command 
set redial 15 0 
set reconnect 15 10000 
    
pppoe: 
set device "!/usr/sbin/pppoe -i rl1" 
disable acfcomp protocomp 
deny acfcomp 
set mtu max 1492 
set crtscts off 
set speed sync 
enable lqr 
set lqrperiod 5 
set cd 5 
set dial 
set login 
set timeout 0 
set authname "sjz681a0156@adsl2" 
set authkey 123456 
add! default HISADDR 
enable mssfixup 
========================ppp.conf======================= 

建立防火墙代理配置: 
# vi /etc/pf.conf 
=========================pf.conf======================= 
ext_if = "tun0" 
int_if = "{ dc0, rl0 }" 
int_net = "{ 192.168.0.0/24, 192.168.10.0/24 }" 
loop = "lo0" 
tcp_services = "{ www, ftp }" 
boss_ip = "{ 192.168.10.10, 192.168.10.11, 192.168.10.12, 192.168.10.13, 192.168.10.14, 192.168.10.15 }" 
noroute = "{ 127.0.0.1/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 255.255.255.255/32 }" 
web_server = "{ 192.168.10.5, 192.168.100.16 }" 
set block-policy return 
set loginterface $ext_if 

set optimization aggressive 

scrub in all 

altq on $int_if cbq bandwidth 1200Kb queue { dflt, boss } 
queue dflt bandwidth 300Kb cbq(default) 
queue boss bandwidth 900Kb cbq(borrow) 

nat on $ext_if from $int_net to any -> $ext_if 

block all 

block return 
block in quick on $ext_if os NMAP 
block in quick on $ext_if from $noroute to any 
block out quick on $ext_if from any to $noroute 

pass in quick on $ext_if inet proto tcp from any to any port > 60000 keep state 
#pass in quick on $ext_if inet proto icmp all icmp-type 8 code 0 keep state 
pass in quick on $ext_if inet proto tcp from any to any port $tcp_services flags S/SAFR keep state 

pass quick on $loop all 
pass in  on $int_if from $int_net 
pass out on $int_if from any to $int_net 
pass out on $int_if from any to $boss_ip queue boss 
pass out on $ext_if all keep state 

pass in on $ext_if inet proto tcp from any to $web_server port = 80 flags S/SAFR keep state (max 200, source-track rule, max-src-nodes 200, max-src-states 2) queue boss                                   
=========================pf.conf======================= 

禁用系统自定义的PF规则 

# vi /etc/rc.conf 
pf=NO 

启用IP转发: 
# vi /etc/sysctl.conf 
net.inet.ip.forwarding=1 

设置开机启动ADSL拨号: 

# mkdir /etc/rc.d 
# vi /etc/rc.d/adsl.sh 
--------------+----------------+---------------+------------- 
#!/bin/sh 
# /etc/rc.d/adsl.sh 
# 7-11-2004 
# llzqq@126.com 

pppoe_status () { 

       IP=$(/sbin/ifconfig tun0 | awk ’/netmask/{print $2}’) 

       if [ ! -z "$IP" ]; then 
               echo "pppoe link is up, ip: " $IP 
       else 
               echo "pppoe link is down" 
       fi 


pppoe_start () { 

       echo -n "starting pppoe "; ppp -ddial pppoe > /dev/null 

       for i in 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0; do 
              sleep 2; echo -n "." 
             IP=$(/sbin/ifconfig tun0 | awk ’/netmask/{print $2}’) 
             if [ ! -z "$IP" ]; then 
                     break 
             fi 
       done 
       echo "." 
       pppoe_status 


pppoe_stop () { 

       PID=$(ps aux | awk ’/ppp -ddial/{print $2}’) 
       kill $PID 
       echo "pppoe link is down" 


case "$1" in 
       ’start’) 
               pppoe_start 
               ;; 
       ’stop’) 
               pppoe_stop 
               ;; 
       ’status’) 
               pppoe_status 
               ;; 
       *) 
               echo "Usage: $0 {start|stop|status}" 
               exit 1 
esac 
--------------+----------------+---------------+------------- 
# chmod 555 /etc/rc.d/adsl.sh 

开机时自动进行ADSL拨号 

# vi /etc/rc.local 

if [ -f /etc/ppp/ppp.conf ]; then 
      . /etc/rc.d/adsl.sh start 
fi 

# vi /etc/rc.shutdown 
/etc/rc.d/adsl.sh stop 

启用NAME缓存服务器(不是必须的): 
# vi /var/named/named.boot 
options forward-only 
forwarders 202.99.160.68 202.99.168.8 

根据拨号需要加载和关闭防火墙: 
# vi /etc/ppp/ppp.linkup 
MYADDR: 
! sh -c "/sbin/ifconfig pflog0 up" 
! sh -c "/sbin/pflogd" 
! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf" 

# vi /etc/ppp/ppp.linkdown 
MYADDR: 
! sh -c "/sbin/pfctl -d -F all" 
! sh -c "kill `cat /var/run/pflogd.pid`" 
! sh -c "/sbin/ifconfig pflog0 down" 
! sh -c "/sbin/route delete default" 

配置动态域名更新: 

# tar zxvf ez-ipupdate-3.0.10.tgz 
# cd ez-ipupdate-3.0.10 
# vi conf_file.c 
增加一行: 
#include <errno.h> 

# vi ez-ipupdate.c 
注释掉下面几行(4515行): 
//else 
//  { 
//   fprintf(stderr, "no update needed at this time/n"); 
//  } 

# ./configure 
# make 
# make install 

设置拨号后自动运行: 

# vi /etc/ppp/ppp.linkup 
MYADDR: 
! sh -c "/sbin/ifconfig pflog0 up" 
! sh -c "/sbin/pflogd" 
! sh -c "/sbin/pfctl -e -F all -f /etc/pf.conf" 
!bg /usr/local/bin/ez-ipupdate -i tun0 -h nero.3322.org -S qdns -w wildcard -u user:pwd 

解决通过PF防火墙用主动模式连接外网FTP服务器的问题: 

# vi /etc/pf.conf 
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021 

# vi /etc/inetd.conf 
127.0.0.1:8021 stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy 

# reboot 

设置SQUID的透明代理: 

# vi /etc/squid/squid.conf 
http_port 127.0.0.1:3128 

# vi /etc/pf.conf 
rdr on $int_if proto tcp from $int_net to any port 80 -> 127.0.0.1 port 3128 【转自世纪安全网 http://www.21safe.com】
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    PHP html_entity_decode
    PHP HTMLEntities和HTML
    PHP session.save_path(
    Cisco Secure Desktop多
    PHP Easy Download file
    PHP HTMLEntities和HTML
    Cisco Secure Desktop多
    PHP Easy Download file
    phpBB Archive for Sear
    Kaspersky Labs Anti-Vi

    Copyright © 2006-2008 www.anquan365.com 安全365
    建议使用1024*768分辨率及第三方浏览器对本站进行浏览