当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux下设置ADSL使局域网连接互联网

Unix/Linux
mysql+httpd+gd+php+zend
automake 小回顾
unix黑客精神的最好诠释
www
sun t3存储的设置
RPM简明中文手册
Linux爱好者入门教程 序章 (持续更新)
第一章 Linux基础知识 (飘心)
linux下进程与线程
浅谈如何学习linux
第二章 Linux安装
硬件安装指南
Windows 2000 的桌面不見了的解決方法
部分的ADSL路由器默认帐号密码
如何设定安全log服务器呢?
iptables 规则速查
网友学习 Linux 的七点忠告
sniffer的含义及原理
Linux编程白皮书 第二章 内存管理
Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制

Unix/Linux 中的 Linux下设置ADSL使局域网连接互联网


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-15   浏览: 66 ::
收藏到网摘: n/a

系统准备:一个运转正常的Linux(这个大家都有)

  硬件要求:至少一块网卡,宽带设备已经申请完毕,同时已经开通

  广州电信的ADS(LAN)L使用的是PPPOE拨号方式,因此,要在Linux下使用ADSL,必须安装PPPOE客户端软件。

  下面说明如何进行安装:本人以RedHat Linux 7.3为平台,其它平台Linux的安装办法可以参照下面安装的步骤。

  安装的前提条件1.确保安装了网卡并工作正常使用命令#ifconfig eth0查看网卡状态2.在系统中不要设置默认路由(网关),让ADSL拨号后自动获得如果已经设置了默认路由,使用以下方法删除:在文件 /etc/sysconfig/network 中删除 GATEWAY= 这一行,然后以root执行:#/etc/rc.d/init.d/network restart 3.已经安装了pppd软件包如果存在文件 /usr/sbin/pppd,则说明已经安装了pppd;如未安装,从RedHatLinux 安装光盘上装ppp-2.3.11-4.i386.rpm(版本可能不一样)这个软件包二、安装PPPOE客户端软件Linux下的PPPOE客户端软件比较多,而且大多使用GNU License,推荐使用rp-pppoe这个软件包,

  从http://www.roaringpenguin.com/pppoe/这个网站上,不仅可以下栽RedHat 平台下的rp-pppoe的二进制软件包,而且可以下栽源代码软件包。

  、配置PPPOE客户端软件安装完软件包后,必须配置pppoe的配置文件/etc/ppp/pppoe.conf,从而让ADSL拨号时使用配置文件中的用户名、密码等参数。我们不必手工改动这个文件,可以使用adsl-setup这个工具进行配置:#/usr/sbin/adsl-setup当出现

  >>> Enter your PPPoE user name :

  输入ADSL帐号的用户名当出现

  >>> Enter the Ethernet interface connected to the ADSL modem

  For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethn, where n is a number.(default eth0):输入 eth0 ,这是ADSL相连的网卡的名字当出现

  >>> Enter the demand value (default no):

  输入 no当出现

  >>> Enter the DNS information here:

  输入 “server” ,这表示使用ADSL拨号自动获得的DNS服务IP地址当出现

  >>> Please enter your PPPoE password:

  输入ADSL帐号的密码当出现

  >>> Choose a type of firewall (0-2):

  输入 0 ,不使用防火墙当出现

  >>> Accept these settings and adjust configuration files (y/n)?

  如果输入的信息正ā确,输入 y ,完成配置,否则,输入 n 重新输入。

  、启动PPPOE客户端软件使用命令/usr/sbin/adsl-start 启动PPPOE客户端软件,进行连接,如果成功,将出现Connected;如果不成功,请检查网线、ADSL MODEM等物理设备,并查看 /var/log/messages中的信息/usr/sbin/adsl-stop 关闭和ISP的连接/usr/sbin/adsl-status 查看当前连接的状态如果想在Linux系统启动时自动启动ADSL连接,输入以下命令#chkconfig –add adsl将在当前的运行级下加入ADSL的自启动脚本五、测试当连接成功后,使用命令#ifconfig -a在输出中应含有关于 ppp0 的信息,其中还绑定了IP 地址,说明已经从拨号中获得了IP地址。

  使用命令#netstat -nr查看路由表信息,这时的默认路由应该是上面获得的IP地址。

  如果没有默认路由,我们可以手动增加:#route add default gw 上面获得的IP地址使用命令#nslookup www.sina.com.cn如果解析出新浪的IP,说明已经从拨号中正确获得了DNS服务器最后,使用命令ping某个域名或IP,如果有响应,表示你已经大功告成了。

  注:好像在进行配置的过程中,会提示你是否在启动时加载ADSL,选yes,这样就会省的登录后再start了。

五、使用双网卡带动公司网、家庭网络上网

  硬件要求:同上双网卡

  NAT方式:接内部网络的网卡设置IP为私有地址(192.168.0.0/24、172.16.0.0/16、10.0.0.0/8),

  例如192.168.100.123/24.不要设置默认路由(网关),DNS设置为广州地区(61.144.56.100),其它

  地区的相应改动为本地区的DNS. 在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+x firewall以改变文件属性,编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以确保开机时能自动运行该脚本。

  firewall内容为:#!/bin/sh echo “Enable IP Forwarding…”

  echo “1″>/proc/sys/net/ipv4/ip_forward echo ”Starting iptables rules…“

  /sbin/modprobe iptable_filter /sbin/modprobe ip_tables /sbin/modprobe iptable_nat #Refresh all chains /sbin/iptables -F -t nat iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MMASQUERADE客户端设置(windows98/2000/xp、linux)网关设置为这台linux地址(192.168.100.123),DNS设置为61.144.56.100.

  透明代理配置代理软件squid:

  编辑/usr/local/squid/etc/squid.conf,修改以下内容,确保以下配置:

  http_port 192.168.100.123:8080

  cache_mem 48 MB acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # https, snews acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemakāer acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT acl flag src 192.168.100.0/255.255.255.0

  httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on cache_effective_user nobody cache_effective_group nobody http_access allow flag

  http_access deny all

  (限制只允许局域网用户使用代理,具体可以参考squid手册中关于Access Control Lists的内容来限制访问代理)

  cache_dir ufs /var/spool/squid 100 16 256

  cache_dir type Directory-Name Mbytes Level-1 Level2

  (说明:指定squid用来存储对象的交换空间的大小及其目录结构。可以用多个cache_dir命令来定义多个这样的交换空间,并且这些交换空间可以分布不同的磁盘分区。“directory ”指明了该交换空间的顶 级目录。如果你想用整个磁盘来作为交换空间,那么你可以将该目录作为装载点将整个磁盘mount上去。缺省值为/var/spool/squid.“Mbytes”定义了可用的空间总量。需要注意的是,squid进程必须拥有对该目录的读写权力。“Level-1″是可以在该顶级目录下建立的第一级子目录的数目,缺省值为16.同理,”Level-2″是可以建立的第二级子目录的数目,缺省值为256.为什么要定义这么多子目录呢?这是因为如果子目录太少,则存储在一个子目录下的文件数目将大大增加,这也会导致系统寻找某一个文件的时间大大增加,从而使系统的整体性能急剧降低。所以,为了减少每个目录下的文件数量,我们必须增加所使用的目录的数量。如果仅仅使用一级子目录则顶级目录下的子目录数目太大了,所以我们使用两级子目录结构。那么,怎么来确定你的系统所需要的子目录数目呢?我们可以用下面的公式来估算。

  已知量:

  DS = 可用交换空间总量(单位KB)/ 交换空间数目

  OS = 平均每个对象的大小= 20k

  NO = 平均每个二级子目录所存储的对象数目 = 256

  未知量:

  L1 = 一级子目录的数量

  L2 = 二级子目录的数量

  计算公式:

  L1 x L2 = DS / OS / NO

  (注意这是个不定方程,可以有多个解)

  acl allow_domain dstdomain “/etc/squid/allow_domain”

  创建cache目录

  [root@proxy squid]# squid -z

  修改该目录所有者squid:

  [root@proxy squid]# chown squid:squid /usr/spool/squid

  最后启动squid:

  [root@iptable logs]# /usr/local/squid/bin/RunCache &

  并且系统中应该有如下几个端口被****:

  [root@proxy logs]# netstat -ln tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:3130 0.0.0.0:*

  这些说明squid已经正常启动了。

  然后使用Redhat的serviceconf工具以使得系统启动时自动启动squid服务器。

  5.iptables的设置

  在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+x firewll以更改文件属性,编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以确保开机时能自动执行该脚本。

  firewall文件内容为:

  #!/bin/sh

  echo “Enabling IP Forwarding…”

  echo 1 > /proc/sys/net/ipv4/ip_forward

  echo “Starting iptables rules…ā”

  #Refresh all chains

  /sbin/iptables -F -t nat

  iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp–dport 80 -j REDIRECT –to-ports 8080

  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 — -j MMASQUERADE七、在含有多个vlan的三层交换网络中实现squid+iptables的透明代理在企业中网络常常会有三层交换。它能够有效隔离广播,防止广播风暴。通过三层交换机划分vlan,使得应用和管理都变得相对容易些。但也给代理的设置带来一点小麻烦,传统代理要设置代理

  以下是我的网络说明:网络内网有15个vlan如路由表所示,代理服务器(squid+iptables)在vlan1中服务器有两块网卡,eth0连接外网ip是A.B.C.D,网关为A.B.C.1.eth1连接内网ip是192.168.100.123/24不设网关。给服务器加上一条路由,将192.168.0.0/16,指向vlan1的网关192.168.100.1,route add -net 192.168.0.0 netmask 255.255.0.0 eth1以保证与其他vlan的通信,如此网络部分便配置成功,关于透明代理设置这里就不说了,请参考其他文章。这样所有的vlan的计算机只要网关和dns配置好就可以上网了,如:vlan3中某台计算机ip设置192.168.120.47,网关为192.168.120.1,dns地址为服务商给的(广州地区ADSL:61.144.56.100),这样就OK了。其出网的路由为->192.168.120.47->192.168.120.1->192.168.100.1->192.168.100.123->A.B.C.1->……