⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vpn.txt

📁 linux-bible.rar linux-bible.rar
💻 TXT
📖 第 1 页 / 共 2 页
字号:
   drwx------ 2 slave slave 1024 Apr 7 23:49 ./drwx------ 4 slave slave 1024 Apr 24 14:05 ../-rwx------ 1 slave slave 328 Apr 7 03:04 authorized_keys-rw------- 1 slave slave 660 Apr 14 15:23 known_hosts-rw------- 1 slave slave 512 Apr 21 10:03 random_seed   其中,第一行是 ~slave/.ssh,第二行是 ~slave。   4.8 加强 ssh 在 bastion 主机上的安全性。   请按照我在 sshd_conf 上的设定:   PermitRootLogin noIgnoreRhosts yesStrictModes yesQuietMode noFascistLogging yesKeepAlive yesRhostsAuthentication noRhostsRSAAuthentication noRSAAuthentication yesPasswordAuthentication noPermitEmptyPasswords no   密码认证(PasswordAuthentication)被关闭了,所以,你只有使用授权过的 key   ,才能够 完成登入的动作。(当然,你也已经关闭了,telnet 与 'r' 命令)。   4.9 允许 ppp 的执行,和这两个帐户的路由。   当你的 master 帐户是 root 时(以我的例子而言),你不必做任何事情。至於   slave 帐户,则会在你的 /etc/sudoers 的档案中出现一行:   Cmnd_Alias VPN=/usr/sbin/pppd,/usr/local/vpn/routeslave ALL=NOPASSWD: VPN   正如你所看到的,我在次防火墙主机上,使用了一些命令稿(scripts),来设定   ppp 和路由表。   4.10 撰写命令稿程式   在主防火墙主机上,我使用了一个成熟的启始命令稿:#! /bin/sh# 程式架构  这个档案是个建立在 /etc/init.d/ 目录下的命令稿实例。#               你应该在 /etc/init.d 目录下使用这个命令稿。##               作者 Miquel van Smoorenburg <miquels@cistron.nl>.#               Debian GNU/Linux 修订版作者#               Ian Murdock <imurdock@gnu.ai.mit.edu>.## 版本:               @(#)skeleton  1.6  11-Nov-1996  miquels@cistron.nl#PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11/:PPPAPP=/home/slave/pppROUTEAPP=/home/slave/routePPPD=/usr/sbin/pppdNAME=VPNREDIR=/usr/local/bin/pty-redirSSH=/usr/bin/sshMYPPPIP=192.168.0.1TARGETIP=192.168.0.2TARGETNET=193.6.37.0MYNET=193.6.35.0SLAVEWALL=polanski-outSLAVEACC=slavetest -f $PPPD || exit 0set -ecase "$1" in  start)        echo setting up vpn        $REDIR $SSH -o 'Batchmode yes' -t -l $SLAVEACC $SLAVEWALL sudo $PPPAPP>/tmp/device        TTYNAME=`cat /tmp/device`echo tty is $TTYNAME        sleep 10s        if [ ! -z $TTYNAME ]        then        $PPPD $TTYNAME ${MYPPPIP}:${TARGETIP}        else                echo FAILED!                logger "vpn setup failed"        fi        sleep 5s        route add -net $TARGETNET gw $TARGETIP        $SSH -o 'Batchmode yes' -l $SLAVEACC $SLAVEWALL sudo $ROUTEAPP    ;;  stop)        ps -ax | grep "ssh -t -l $SLAVEACC " | grep -v grep | awk '{print $1}'| xargs kill    ;;  *)    # echo "Usage: /etc/init.d/$NAME {start|stop|reload}"    echo "Usage: /etc/init.d/$NAME {start|stop}"    exit 1    ;;esacexit 0   slave 帐户可以使用命令稿来设定路由 (/usr/local/vpn/route):#!/bin/bash/sbin/route add -net 193.6.35.0 gw 192.168.0.1   而其 .ppprc 的内容,如下:passive5. 让我们检视执行的结果:   master 会登入到 slave 帐户里、启动 pppd、以及,将所有的资料重导至本机的   pty( 虚拟终端机)。整个执行流程如下:        * 配置一个新的 pty     * 透过 ssh 登入 slave 帐户     * 在 slave 帐户中执行 pppd     * master 在本机的 pty 执行 pppd     * 并且在用户端设定路由表。          此处我们考虑到了时序的问题(不是太严格的要求),这就是为什麽我们会使用   到 'sleep 10s' 这个叙述的原因。   6. 著手执行。6.1 登入   现在,你应该已经测试过 ssh 是否能够正常地工作。如果,slave 拒绝你登入,   请阅读 记录档。也许是档案使用权限或 sshd ,在设定上的问题。   6.2 启动 ppp   登入到 slave 帐户,并执行:sudo /usr/sbin/pppd passive   此时,如果工作正常你应该会看到一些乱码。假设,没有出现乱码,不是 sudo   就是 pppd 有问题。请参考,记录档、/etc/ppp/options 、和 .ppprc ,等档案   ,以便找出是那个命令出了问题。问题排除後,将 'passive' 这个字写到   .ppprc 里,然 後再试一次。以压下 enter、'~'、和 '^Z'等按键的方式,清除   萤幕上的乱码,继续 工作。现在,你应该会看到 master 的“输入提示符   号(prompt)”,然後执行 kill %1 。如果你想知道更多有关“逸出字元(escape   character)”的说明,请参阅“调整(tuning)” 那一节。   6.3 一次完成两个动作   当然,你也可以这麽做   ssh -l slave polanski sudo /usr/sbin/pppd   如果工作正常,它就会当著你的面,传送一些看似乱码的资料。   6.4 Pty 的重导功能   这次,我们试著重导上面的动作:/usr/local/bin/pty-redir /usr/bin/ssh -l slave polanski sudo /usr/sbin/pppd   好长的句子,不是吗?你应该使用 ssh 执行档的完全路径名称,为了安全的理由   ,pty-redir 程式只允许你使用这种方式。现在,你会透过这个程式取得一个装   置名称。假设,你取得的 是 /dev/ttyp0 。你可以使用 ps 命令来检视目前的状   况。请找寻 'p0' 这个装 置的相关叙述。   6.5 这个装置上面,会有些什麽东西?   试著执行/usr/sbin/pppd /dev/ttyp0 local 192.168.0.1:192.168.0.2   来建立连线。然後,检视 ifconfig 命令的输出结果,看是否已经建立了这个装   置,然後 ,使用 ping 来检查你的虚拟网路。   6.6 设定路由   除了设定主防火墙主机的路由,次防火墙主机也要设定。现在,你应该能够从公   司的一个 内部网路上的主机,ping 到其它内部网路上的主机。接著,设定额外   的防火墙规则。现 在,你已经拥有了 VPN 的环境,你可以设定公司两个内部网   路之间的连接规则。   7. 调整7.1 设定的调整   正如我所说的,这份文件只是我个人设定 VPN 的备忘录而已。设定中有部分的内   容,我还 未测试过。等到我测试过後,会给它们正确的定位,或有任何人告诉我   “它是如何工作的” 。有个最重要的事情大家必须铭记在心,ppp 网路连线尚未   使用 8-bit。我自己也觉得 ssh 或 pty 的设定,一定还有要加强的地方。在   ssh 的设定中,使用了“颚化符号(tilde)” (~) 字元做为逸出字元。它可以停   止或减缓两端之间的通讯,当任何的“新行符号- 颚化符号(newline-tilde)”逸   出顺序的出现,会使得 ssh 跳到输入提示符号的模式。ssh 的文件上说: < 在   大部分的系统上,若设定不使用逸出字元,则就算是你使用了 tty ,也会造成通   讯对话的透通化。> 这个功能相对於 ssh 的选项标记是 '-e' ,你也可以在设定   档中设定它。   7.2 频宽与安全谁重要   不论建置任何的虚拟网路,都会浪费掉实际资源。VPN 会吃掉频宽和计算的资源   。你的目标 应该是如何取得双赢的局面。你可以使用 '-C' 开关或   'CompressionLevel' 选项,来调整 它。你也以尝试使用另一种加密法,但是,   我并不建议这麽做。也请注意,如果你使用越高 的压缩等级,你传送资料的来回   时间就越长。欢迎提供任何相关的测试报告。   8. 分析易受攻击的弱点   我试著在此处说明一下,这个特别的设定和 VPNs 一般有那些易受攻击的弱点。   热诚地欢迎 各位发表任何意见。     * sudo 程式:我承认,我过度地使用了 sudo。我深信目前它仍然比使用       setuid bits 还安全。Linux 上仍然没有好的存取控制机制,是个不争的事       实。只有等到相容 POSIX.6 标准的核心正式发行了<       http://www.xarius.demon.co.uk/software/posix6/>。更 糟糕的是,我居       然透过 sudo 来呼叫执行 shell 的命令稿程式。实在糟糕透了。你有任何       建议麽?     * pppd 程式:它也会使用 suid root (译注) 的执行方式。你可以透过使用者       的 .ppprc 来设定它。留心,它可能会有“缓冲区超限运转(buffer       overrun)”的状况发生。底限是 :尽可能地保护你的 slave 帐户的安全性     * ssh 程式:当心,ssh 在 1.2.20 以前的版本有安全的漏洞。更糟糕的是,       我们的 设定是,当我们对 master 帐户的安全性做出了让步,相对地,也弃       守了 slave 帐户的安 全底限,而且,我们使用了两个透过 sudo 启动的程       式,也大开了攻击之门。那是因为,为 了能够自动设定 VPN,我们选择让       master 使用没有密码的“私人钥匙(secret key)”。     * firewall 程式: bastion 主机上的防火墙,若规则设定的不恰当,就等於       是大开公 司内部网路的方便之门。我建议大家使用 IP“伪       装(Masquerading)”的技术(此时,就算是 路由设定不正确,所造成的影响       也是微不足道的),以及,在 VPN 的界面上做严格的控制 。          译注: suid root 是指任何执行该程式的人,在执行的当时会取得 root 的权限   。其中,suid( 设定使用者识别代码)是指设定档案属性的第 11 个位元,让执   行该档案的人,成为档案的 拥有者。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -