OPENBSD上的ADSL和防火墙设置配置

下面我用的是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

(0)

相关推荐

  • 新手如何配置ADSL Modem防火墙

    相信有很多新手不知道如何配置ADSL Modem防火墙。下面以一款采用Globespan芯片的ADSL Modem为例,来详细说明怎样配置和管理ADSL Modem内置防火墙。需要的朋友参考一下。 一 ...

  • linux设置iptables防火墙的详细步骤(centos防火墙设置方法)

    我们 来讨论一下如何为你的CentOS 服务器来设置简单的防火墙。 这里我们以DigitalOcean的CentOS 6 VPS为基础来讨论的,同样也适用于 阿里云上其他类型的LINUX系统。 (阿里 ...

  • Win7系统自带防火墙介绍以及如何与多个防火墙政策配置的问题

    自推出Windows XP系统内置的第一个防火墙(Internet Connection防火墙)以来,微软公司一直在稳步改善其后推出的系统的防火墙功能。而在最新客户端操作系统Windows 7中的Wi ...

  • windows xp sp2自带防火墙设置

    目前已经发布的英文版windows xp service pack 2(sp2)包括了全新的windows防火墙,即以前所称的internet连接防火墙(icf)。windows防火墙是一个基于主机的 ...

  • win7防火墙设置,保护你的电脑安全

    在互联网盛行的今天,网络安全问题不容忽视,而防火墙正是阻隔系统和外界网络的一道大门,正确设置防火墙可以保证系统最基本的安全,本文就来为大家介绍一下win7内置防火墙的设置方法。 点击Win7系统桌面 ...

  • Linux防火墙设置

    Linux防火墙设置 【任务描述】 (1)设置网卡IP地址为192.168.1.234,子网掩码为255.255.255.0,网关为192.168.1.1。 (2)设置DNS为61.177.7.1。 ...

  • 通过win7防火墙设置禁止别人访问本机端口

    首先声明一下这个功能,个人感觉用处不是很大,因为很多时候我们都是自己把系统自带的防火墙关闭了。像小编就肯定关闭了,因为小编有时候会在局域网跟别人连网对战,如果不管系统自带防火墙那么我就没办法玩了。所以 ...

  • win7无法更改防火墙设置提示系统报错"0x80074200"怎么办

    防火墙也称防护墙,是一种位于内部网络与外部网络之间的网络安全系统,可以防止病毒入侵.有位Win7系统用户想更改防火墙某些设置,出现无法更改的情况,系统报错"0x80074200", ...

  • 腾达(Tenda)F3无线路由器ADSL拨号上网设置

    本文介绍了腾达(Tenda)F3无线路由器,ADSL拨号上网的设置方法,ADSL拨号上网又叫做宽带连接上网.PPPoE拨号上网.ADSL拨号上网这种宽带类型,宽带运营商(网络管理员)会提供一个宽带账号 ...