轻松建立Linux拨号服务

轻松建立Linux拨号服务,第1张

 PPP(Point to Point Protocol)协议 即点对点协议 是标准的Internet协议 我们可以利用ppp拨号连接到Internet 也可通过建立拨号服务器 提供ppp拨入服务 例如 有些机构有多个外地部门 在本地已连通Internet 而外地部门有拨号到中心机房连上Internet的需求 则要求中心机房有一台拨号服务器能提供ppp接入服务 而用目前比较流行的Linux *** 作系统来做 则显得轻松有余 本文以RedHat Linux为基础 详细讨论如何安装配置ppp拨号服务器 一 软件及网络环境 Redhat 内核 pppd 局域网 Linux 服务器IP设为 服务器名称为jsred 分配给拨号用户的固定IP为 主机名为admin 二 服务器端的安装 )安装pppd 在Linux服务器上查看有没有安装pppd 缺省安装是在/usr/ in/子目录下 如果存在 再查看系统内核有没有提供对ppp的模块支持 如没有 可以进到/usr/src/liunx 子目录 用make menuconfig或make config 对内核进行配置 在PPP支持选项上 选上模块标志 然后重新编译内核 用如下命令 make dep; make clean; make zlilo; rdev R /vmlinuz )安装调制解调器 在物理线路正确连接后打开Modem的电源 运行mini来测试Modem是否已经正确安装 输入mini s 命令设置Modem相关参数 首先查看缺省串行口 缺省为 /dev/modem 根据你所用的串行口将之改为/dev/ttyS 或/dev/ttyS 其次设置通信速率 如果mini 与Modem连接成功 进入会话状态 输入ATS = 如果紧接着在下一行出现OK 且Modem 的AA灯亮起 modem进入自动应答状态 表明mini与Modem通讯正常 Modem可以正常工作了 否则修改串口设置 重复上述步骤 也可用当地的ISP的电话号码拨号 看能否正确连接 一般是先有拨号音 然后是嘈杂声 再就是握手 表示接通 出现登录提示画面 可证明Modem已正确安装 如果遇到Modem能接通 网卡不能工作或网卡能工作而Modem接不通 则要查看是否由于Moem与网卡或其它设备中断冲突引起的 一般检测串行口所占用的中断号 输入 # cat /proc/interrupts 命令查看当前串口占用的中断号 例 : timer : keyboard : serial 可以看到当前串口占用的中断是 也可以用setserial 命令来给串口设置地址和中断号(IRQ) 例如 # / in/setserial/dev/ttys irq 赋给串口一( )中断值为 或 #/ in/setserial/dev/ttys auto_irq 赋给串口任意一个空闲中断号 )创建登录终端 在Unix中 将设备看成是一个特殊文件来进行访问控制 通过特殊文件可以访问特定的设备 Linux也不例外 Linux的标准虚拟终端有mingetty agetty等 本文介绍用mgetty 作为ppp客户登录进来的虚终端 你可以通过网上搜索得到该软件 Redhat 自带RPM包 mgetty i rpm 安装命令为 rpm ivh mgetty i rpm 安装完成后在/ in子目录下有二进制文件mgetty 然后进到/etc子目录 在inittab文件之后加上一句 s : :respawn:/ in/mgetty D s ttyS 保存 用init q命令重启进程 用ps aux命令可看到类似于 S : / in/mgetty D s ttyS 表明该终端已准备好 可以接受用户的拨入请求了 )创建或修改PPP相关配置文件 基于对拨号安全性的考虑 pppd默认要求进行主客户机的身份自验证 即对等验证 除非使用root用户帐号拨号或服务器没有连上Internet 因此为了使pppd能正常工作 需要在服务器端设置相应的主客户机验证信息 )编辑/etc/ppp/options文件 在其中加入 detach crtscts netmask asyncmap proxyarp 其中 Asyncmap 表示 在对远程机进行串行联接时 连接可能将ASCII控制码( )用于特殊的用途 所以 这些代码不能作为数据包的一部分进行传送 这就要告诉pppd 不要直接用这些控制码 而用特殊的两字符的转义序列来代替它们 Asyncmap 表示不需要对任何控制码进行转义处理 基于TCP/IP协议的以太网 并不直接利用IP地址 而是利用网卡MAC地址来传送数据包 Proxyarp告诉它在远程主机的Arp表中增加一项 列出本地机的地址和远程机的网卡MAC地址 Netmask可以根据具体子网划分 修改为相应的子网掩码值 )创建/etc/ppp/yS 或/etc/ppp/yS 文件 对相应端口进行设置 在该文件中加入一行 jsred:admin或 : 在/etc/hosts文件中为拨入进来的客户机登记一项 admin )编辑/etc/ppp/pap secrets文件 由于拨号采用PAP验证时 需在该文件中设置相应主客户机信息及PAP验证密码 在该文件中设置如下 admin jsred 第一项为客户机名称或IP 第二项为拨号服务器名称或IP 第三项为PAP密码 由于我们使用标准的password文件来进行身份验证 因而将这里的密码置空 第四项为动态分配给客户机的IP地址 )建立pcguest拨号用户帐号 创建登录Shell 用户通过电话拨号进来 以什么样的身份和权限进入网络呢?这就要为拨入用户建立相应的帐号和登录Shell 如 # adduser pcguest 在选择其Shell时 不要选/bin/bash 而是填入/etc/ppp/ppplogin ppplogin为拨入用户的登录Shell文件 相当于Novell网用户的登录脚本 它为拨号用户初始化登录环境 脚本如下 #! /bin/sh /usr/ in/pppd auth chap +pap login : 第一行表示脚本的其余部分用/bin/sh去解释该脚本 第二行的 +pap login 表示客户端和服务器端采用PAP的验证方式但使用/etc/password文件的内容 用 分隔的两项(IP地址)列出ppp拨号服务器和分配给客户机的IP地址 将该文件置为可执行模式 chmod ppplogin pppd默认只能由root用户执行 为了使普通用户能够执行pppd 需要运行命令 #chmod u+s /usr/ in/pppd 最后别忘了在/etc/shells文件中加进一句话 /etc/ppp/ppplogin 然后存盘退出 )启用Linux的IP转发功能 为客户机通过拨号服务器上Internet铺平道路 Redhat 默认是屏蔽IP转发的功能 为启用IP转发功能 修改文件/etc/nf将 net ipv ip_forward = 改为net ipv ip_forward= 保存退出 重启Linux服务器 服务器端设置工作完成 三 客户端的安装 在Windows 客户机上 安装拨号网络 新建一连接项 选中该连接项 单击鼠标右键d出菜单 单击 属性 打开 服务器 标签的 TCP/IP配置 对话窗口 在 指定IP地址 栏 填入拨号服务器分配给远端客户的IP地址 如 在 主控名称服务器地址 栏中输入Internet上有效的DNS服务器的IP地址 如果该Linux服务器能提供DNS服务 也可填入Linux服务器的IP地址 保存退出 双击连接项 进入拨号状态 当终端窗口中出现登录提示 输入pcguest用户名及相应密码 再点击 继续 按钮 则一个稳定 快速的PPP连接就建立了 四 测试 测试用户有没有拨进服务器 可以在Linux服务器的控制台终端输入 # who root ttyp Apr : pcguest ttyS Apr : 上面的pcguest即为通过ttyS 终端登录的ppp客户 或输入命令 # ifconfig 你会发现除了以太网卡eth 本地环路lo外 还多一个ppp 项 表明客户已成功拨入 打开客户端的浏览器 如Netscape或IE 看能否正常访问Internet站点 lishixinzhi/Article/program/Oracle/201311/18391

首先解释一个问题:在 iPhone 的 设置介面里(Settings >> General >> Network >> ),你可以看到三个标签:L2TP, PPTP, IPSec。但上面我们又讲本次介绍的 方式叫「L2TP / IPSec」,这两者究竟是什么关系?
这三个标签确实令人混淆,准确的写法应该是:L2TP over IPSec, PPTP, Cisco IPSec。PPTP 跟另外两者关系不大,且大家较为熟悉,暂且不提,L2TP 和 IPSec 的区别如下。
L2TP:一个「包装」协议,本身并不提供加密和验证的功能。
IPSec:在 IP 数据包的层级提供加密和验证功能,确保中间人无法解密或者伪造数据包。
本来,只用 IPSec 就可以实现 ,Mac OS X 和 Linux 都支持。但是 Mac OS X 和 iPhone OS 都推荐使用 L2TP over IPSec,在两者的图形介面上也只能设置这个。L2TP / IPSec 是业界标准,微软也支持。而只用 IPSec 的常见于 Linux-to-Linux 的应用,比如将两个位于不同地区的办公室网络安全地连在一起。这多是固定 IP 路由器到固定 IP 路由器级别的连接,只需保证数据包不被中途截获或者伪造就可以,故使用 L2TP 的意义不大。L2TP / IPSec 主要是实现所谓「Road Warrior」的设置,即用变动的客户端连固定的服务器。
Cisco 的 用的也是 IPSec 加密,但那是一套不同于 L2TP 的私有包装协议,用于提供用户管理之类的功能,因此一般都需要用 Cisco 自家的 客户端连接。iPhone / iPad 的 设置介面中的 IPSec 标签里有 Cisco 的标识,就是这个原因。
以下是在 Ubuntu 和 Debian 主机上架设 L2TP / IPSec 的步骤,一共十四步。你需要有服务器的 root 权限(所以 DreamHost, BlueHost, MediaTemple 这些服务供应商帮你把一切打点周到的主机就无缘了),也需要一些基本的 Linux 知识。不然的话,我们还是推荐您找一位比较熟技术的朋友帮忙。
一、安装 IPSec。如上所述,IPSec 会对 IP 数据包进行加密和验证。这意味着你的电脑 / 移动设备与服务器之间传输的数据无法被解密、也不能被伪造。我推荐用 openswan 这个后台软件包来跑 IPSec。
用以下命令安装 openswan:
sudo aptitude install openswan二、用文字编辑器打开 /etc/ipsecconf,改成这样:
version 20
config setup
nat_traversal=yes
virtual_private=%v4:10000/8,%v4:19216800/16,%v4:1721600/12
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=YOURSERVERIPADDRESS
leftprotoport=17/1701
right=%any
rightprotoport=17/%any三、用文字编辑器打开 /etc/ipsecsecrets,改成这样:
YOURSERVERIPADDRESS %any: PSK "YourSharedSecret"(别忘了把「YOURSERVERIPADDRESS」这部分换成你的服务器的 IP 地址,把「YourSharedSecret」部分换成随便一个字串,例如你喜欢的一句话,等等。)
四、运行以下命令:
for each in /proc/sys/net/ipv4/conf/
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done五、检查一下 IPSec 能否正常工作:
sudo ipsec verify如果在结果中看到「Opportunistic Encryption Support」被禁用了,没关系,其他项 OK 即可。
六、重启 openswan:
sudo /etc/initd/ipsec restart七、安装 L2TP。常用的 L2TP 后台软件包是 xl2tpd,它和 openswan 是同一帮人写的。
运行以下命令:
sudo aptitude install xl2tpd八、用文字编辑器打开 /etc/xl2tpd/xl2tpdconf,改成这样:
[global]
ipsec saref = yes
[lns default]
ip range = 10122-1012255
local ip = 10121
;require chap = yes
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/optionsxl2tpd
length bit = yes这里要注意的是 ip range 一项里的 IP 地址不能和你正在用的 IP 地址重合,也不可与网络上的其他 IP 地址冲突。
九、安装 ppp。这是用来管理 用户的。
sudo aptitude install ppp十、检查一下 /etc/ppp 目录里有没有 optionsxl2tpd 这个文件,没有的话就建一个,文件内容如下:
require-mschap-v2
ms-dns 20867222222
ms-dns 20867220220
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4注意 ms-dns 两行我填的是 OpenDNS。如果你想用其他的 DNS 服务器(例如谷歌的公共 DNS),请自行更换。
十一、现在可以添加一个 用户了。用文字编辑器打开 /etc/ppp/chap-secrets:
# user server password ip
test l2tpd testpassword 如果你之前设置过 PPTP ,chap-secrets 文件里可能已经有了其他用户的列表。你只要把 test l2tpd testpassword 这样加到后面即可。
十二、重启 xl2tpd:
sudo /etc/initd/xl2tpd restart十三、设置 iptables 的数据包转发:
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward十四、因为某种原因,openswan 在服务器重启后无法正常自动,所以我们可以在 /etc/rclocal 文件里写入如下语句:
iptables --table nat --append POSTROUTING --jump MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/initd/ipsec restart到这里,设置工作已经基本完成。你可以用 iPhone 或 iPad 试着连一下。记得在「Secret」中填入你在上述第三步里填的 YourSharedSecret。
如果连接成功,上网也没问题的话,恭喜你,大功告成。如果连不上,恐怕还得多做一步。
Ubuntu 910 自带的 openswan 版本是 2622, Debian Lenny 带的版本是 2412。这两个版本的 openswan 都有问题。我们的测试结果表明,2624 版的 openswan 可以在上述两版的 Linux *** 作系统下正常工作。所以如果做完以上十四步还是连不上的话,请考虑从源码编译 openswan 2624

L2TP+IPSec虚拟专用网

特点:跨平台,数据加密传输,安全

1,部署IPSec服务

1)安装软件包

[root@client ~]# yum -y install libreswan

2)新建IPSec密钥验证配置文件

[root@client ~]# cat /etc/ipsecconf //仅查看一下该主配置文件



include /etc/ipsecd/ conf //加载该目录下的所有配置文件

[root@client ~]# vim /etc/ipsecd/myipsecconf 

//新建该文件,参考lnmp_soft//myipsecconf 

conn IDC-PSK-NAT

rightsubnet=vhost:%priv //允许建立的×××虚拟网络

also=IDC-PSK-noNAT

conn IDC-PSK-noNAT

authby=secret //加密认证

ike=3des-sha1;modp1024 //算法

phase2alg=aes256-sha1;modp2048 //算法

pfs=no

auto=add

keyingtries=3

rekey=no

ikelifetime=8h

keylife=3h

type=transport

left=2011210 //重要,服务器本机的外网IP

leftprotoport=17/1701

right=%any //允许任何客户端连接

rightprotoport=17/%any

3)创建IPSec预定义共享密钥

[root@client ~]# cat /etc/ipsecsecrets //仅查看,不要修改该文件

include /etc/ipsecd/

secrets

[root@client ~]# vim /etc/ipsecd/mypasssecrets //新建该文件

2011210 %any: PSK "randpass" //randpass为预共享密钥

//2011210是×××服务器的IP

4)启动IPSec服务

[root@client ~]# systemctl start ipsec 

[root@client ~]# netstat -ntulp |grep pluto

udp 0 0 127001:4500 0000:  3148/pluto 

udp 0 0 192168410:4500 0000:

 3148/pluto 

udp 0 0 2011210:4500 0000:  3148/pluto 

udp 0 0 127001:500 0000:

 3148/pluto 

udp 0 0 192168410:500 0000:  3148/pluto 

udp 0 0 2011210:500 0000:

 3148/pluto 

udp6 0 0 ::1:500 ::: 3148/pluto

32 部署XL2TP服务

1)安装软件包(软件包参考lnmp_soft)

[root@client ~]# yum localinstall xl2tpd-138-2el7x86_64rpm

2) 修改xl2tp配置文件(修改3个配置文件的内容)

[root@client ~]# vim /etc/xl2tpd/xl2tpdconf //修改主配置文件

[global]

 

[lns default]



ip range = 1921683128-1921683254 //分配给客户端的IP池

local ip = 2011210 //×××服务器的IP地址

[root@client ~]# vim /etc/ppp/optionsxl2tpd //认证配置

require-mschap-v2 //添加一行,强制要求认证 物联网开发找 上海捌跃网络科技有限公司

#crtscts //注释或删除该行

#lock //注释或删除该行

root@client ~]# vim /etc/ppp/chap-secrets //修改密码文件

jacob  123456  //账户名称 服务器标记 密码 客户端IP

3)启动服务

[root@client ~]# systemctl start xl2tpd

[root@client ~]# netstat -ntulp |grep xl2tpd 

udp 0 0 0000:1701 0000: 3580/xl2tpd

4)设置路由转发,防火墙

[root@client ~]# echo "1" > /proc/sys/net/ipv4/ip_forward

[root@client ~]# firewall-cmd --set-default-zone=trusted

5)×××设置(非必需 *** 作)

[root@client ~]# iptables -t nat -A POSTROUTING -s 19216830/24 -j SNAT --to-source 2011210

33客户端设置

1)新建网络连接,输入×××服务器账户与密码。

设置×××连接的属性,预共享密钥是IPSec配置文件中填写的randpass,具体 *** 作如图所示。(高版本不用这么麻烦)

2)设置Windows注册表(不修改注册表,连接×××默认会报789错误),具体 *** 作如下:(win7以上不用 *** 作)

单击"开始",单击"运行",键入"regedit",然后单击"确定"

找到下面的注册表子项,然后单击它:

HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\Rasman\Parameters

在"编辑"菜单上,单击"新建"->"DWORD值"

在"名称"框中,键入"ProhibitIpSec"

在"数值数据"框中,键入"1",然后单击"确定"

退出注册表编辑器,然后重新启动计算机

连接×××并测试网络连通性。

转自:>1
安装需要的软件
yum install make gcc gmp-devel bison flex lsof wget libpcap-devel ppp policycoreutils
2
安装Openswan
wget --no-check-certificate >一、用远程接入NT局域网及局域网的互连实现;
二、Linux中实现局域网远程接入。
1 初始化串口设备
在/etc/inittab文件中加入如下两行,用来初始化ttyS0和ttyS1两个串口设备:
S0:345:respawn:/sbin/mgetty -D -X 3 ttyS0
S1:345:respawn:/sbin/mgetty -D -X 3 ttyS1
然后,运行“/sbin/init q”命令使改动生效。
2 指定认证方式
在/etc/PPP目录下创建文件ppplogin,内容如下:
#!/bin/sh
/usr/sbin/pppd auth -chap +pap login
该文件指定用户登录时采用PAP认证。PAP和CHAP是PPP服务的两种身份验证协议。
保存文件后,给文件设置执行的权限:
#chmod a+x /etc/ppp/ppplogin
然后,更改/etc/mgetty+sendfax/loginconfig文件,去掉“/AutoPPP/”一行前面的注释,并改为如下内容:
/AutoPPP/ - - /etc/PPP/ppplogin
3 修改options文件
修改/etc/PPP/Options文件为如下内容;
detach
Modem
Lock
crtscts
asyncmap 0
netmask 2552552550
proxyarp
ms-dns 192168111
“detach”选项非常重要。如果不指定这个选项,拨号程序就会进入后台,使得Shell脚本退出,随之而来的是串行线路被挂断,导致连接中止。“detach”防止了tty设备脱离PPPD的控制。
“Modem”选项使得PPPD监视DTR引线,可以观察到对等点是否已掉线。
“Lock”选项指定在串行设备上使用UUCP风格的锁定。
“crtscts”选项用以打开硬件握手信号。
“asyncmap 0”设置了异步字符映射,这个映射指定控制字符不能直接通过连接发送,需要先进行转义。
“netmask 2552552550”设定PPP网络接口的网络掩码。
“proxyarp”选项打开了ARP代理功能。
“ms-dns”2168111”指定了局域网内的DNS服务器地址,如没有可以不设。
4 给拨入用户分配IP
创建/etc/ppp/OptionsttyS0和/etc/ppp/
optionsttyS1两个文件,内容如下:
# Vi optionsttyS0
192168113:19216811242
# Vi optionsttys1
192168113:19216811243
其中,“192168113”是用作拨号服务器的那台Linux机器的IP地址,“192168
11242”和“19216811243”是分别指定给COM1口和COM2口拨入用户的IP地址。
5 口令验证
编辑文件/etc/PPP/pap-secrets,内容如下:
"secret" 19216811242
"passWord" 19216811243
如上所示,每行代码包含四列,分别代表用户名、服务器地址、口令值和IP地址列表。“”表示可以与任何内容进行匹配。
用户拨入后,如果需要访问局域网内的其它服务器,就必须打开IP转发功能:
echo 1> /proc/sys/net/ipv4/ip_forward
要想在空闲一段时间后自动解除连接,需要在/etc/ppp/options中加入如下一行:
idle 600
上述代码中,“600”表示600秒,即10分钟。
如果在相应目录下找不到/sbin/mgetty文件和/etc/mgetty+sendfax/loginconfig文件,则需要安装mgetty软件包。
“detach”选项非常重要。如果不指定这个选项,拨号程序就会进入后台,使得Shell脚本退出,随之而来的是串行线路被挂断,导致连接中止。“detach”防止了tty设备脱离PPPD的控制。
“Modem”选项使得PPPD监视DTR引线,可以观察到对等点是否已掉线。
“Lock”选项指定在串行设备上使用UUCP风格的锁定。
“crtscts”选项用以打开硬件握手信号。
“asyncmap 0”设置了异步字符映射,这个映射指定控制字符不能直接通过连接发送,需要先进行转义。
“netmask 2552552550”设定PPP网络接口的网络掩码。
“proxyarp”选项打开了ARP代理功能。
“ms-dns”2168111”指定了局域网内的DNS服务器地址,如没有可以不设。
4 给拨入用户分配IP
创建/etc/ppp/OptionsttyS0和/etc/ppp/
optionsttyS1两个文件,内容如下:
# Vi optionsttyS0
192168113:19216811242
# Vi optionsttys1
192168113:19216811243
其中,“192168113”是用作拨号服务器的那台Linux机器的IP地址,“192168
11242”和“19216811243”是分别指定给COM1口和COM2口拨入用户的IP地址。
5 口令验证
编辑文件/etc/PPP/pap-secrets,内容如下:
"secret" 19216811242
"passWord" 19216811243
如上所示,每行代码包含四列,分别代表用户名、服务器地址、口令值和IP地址列表。“”表示可以与任何内容进行匹配。
用户拨入后,如果需要访问局域网内的其它服务器,就必须打开IP转发功能:
echo 1> /proc/sys/net/ipv4/ip_forward
上述代码中,“600”表示600秒,即10分钟。
如果在相应目录下找不到/sbin/mgetty文件和/etc/mgetty+sendfax/loginconfig文件,则需要安装mgetty软件包。

physical footprint
实体足迹;身体足迹;物理足迹
例句筛选
1
Also, because the Linux guests run in the same physical footprint, they canexploit virtual LAN (VLAN) technologies
而且,由于多个Linuxguest在相同的物理足迹中运行,它们可以利用虚拟LAN(VLAN)技术。
2
They are designed to provide longer life than conventional CRTs, along withsignificant energy savings and a smaller physical footprint
他们比传统的CRT显示器有更长的使用寿命,同时它所占的物理空间小了但是存储量大了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/12995168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存