zoukankan      html  css  js  c++  java
  • 利用ipsec来保护telnet server的连接。

    记得前一阵子出了个“黑客如何找回被偷走的电脑”新闻吗?一台笔记本被盗了,但利用笔记本上动态域名与SSHd程序找回了这个笔记本。

    这个故事告诉了我们二件事:

    a.盗窃过来的笔记本记得要格系统盘并重装系统,要有职业素养与道德的!:-)

    b.给自己的笔记本装个远程管理服务端!

    在Windows平台下装SSHd很多的选择(点击查看),有开源的/免费的/商业的等。其中我比较喜欢opensshd for windowsfreeSSHd这二个款软件,但openssh官方已经没有更新windows平台了,最新版本也是2004年的3.8.1p1-1,而freeSSHd目前中文是乱码的。其实,我们并不需要舍近求远!Windows系统中一直自带有telnet系统服务和Ipsec策略,利用它们也可以组建一个安全的服务端。再结合自带的ftp.exe工具传个文件也不是问题了,你说呢?

    以下所有命令,均需要以管理员权限运行;所有斜体字符需要你自己来定义。

    1、自启动telnet系统服务

    此服务在所有Windows版本中,默认就是禁止启动,需要我们手动设置为启动:

    sc config tlntsvr start= auto

    注:Windows 7 需要先在控制面板程序中打开此功能,安装后会自动允许自带防火墙中相关端口。而Windows XP需要手动在防火墙中添加允许规则:%SystemRoot%\system32\tlntsvr.exe。

    tlntadmn.exe工具是telnet server配置工具,默认不需要调整,同时支持NTLM与Password登录验证方式。

    如果需要更高的安全性,请调整验证方式为NTLM:

    tlntadmn config sec = -passwd

    注:NTLM方式是将你使用的Windows系统中当前用户名与密码直接发送到telnet服务端验证,不需要手工输入。

    2、创建telnet专用帐户:tlusr

    net user tlusr password /add /fullname:"Telnet User" /comment:"Telnet Login ID" /active:yes /passwordchg:no /passwordreq:yes

    netuser.exe tlusr /pwnexp:y

    net localgroup administrator tlusr /add

    net localgroup TelnetClient tlusr /add

    reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList" /v tlusr /t REG_DWORD /d 0 /f

    3、创建IPSec保护策略

    我使用的是Windows 7 家庭高级版,虽然没有secpol.msc工具,但系统自身有netsh工具。Windows XP 家庭版,请使用ipseccmd.exe工具来创建ipsec策略(安装XP安装光盘中的support tools,如果还是没有请到官网下载);未测试,但应该可用ipseccmd.exe。

    Windows 7

    netsh ipsec static add policy name="My Policy"
    netsh ipsec static add filter filterlist="TTY" description="telnet 23/tcp" srcaddr=any dstaddr=me protocol=tcp dstport=23
    netsh ipsec static add filteraction name="Complete encryption" action=negotiate qmsec="AH[SHA1]+ESP[3DES,SHA1]"
    netsh ipsec static add rule name="TTY S" policy="My Policy" filterlist="TTY" filteraction="Complete encryption" psk="psk password" activate=yes
    netsh ipsec static set policy name="My Policy" assign=y
    Windows XP

    ipseccmd.exe -w reg -p "My Policy" -r "TTY S" -x -f *+0:23:tcp -n AH[SHA1]+ESP[3DES,SHA1] -a pershare:"psk password"

    4、动态域名

    推荐使用国内的花生壳,可以以系统服务在后台运行。

    PS:有几年没有用了,前一阵子重新使用,发现服务比2005年及以前缩水了不少。不过也够用了,废话归废话,但也是不容易,还是支持它!

    网站:http://www.oray.com/PeanutHull/

    5、控制端的IPSec策略

    好了,服务端做了,但要想在其他Windows主机连接上来,还得设置下。

    Windows 7

    netsh ipsec static add policy name="My TTY"
    netsh ipsec static add filter filterlist="TTY" description="telnet 23/tcp" srcaddr=me dstaddr=xxxx.gicp.net protocol=tcp dstport=23
    netsh ipsec static add filteraction name="Complete encryption" action=negotiate qmsec="AH[SHA1]+ESP[3DES,SHA1]"
    netsh ipsec static add rule name="TTY C" policy="My TTY" filterlist="TTY" filteraction="Complete encryption" psk="psk password" activate=yes
    netsh ipsec static set policy name="My TTY" assign=y

    Windows XP

    ipseccmd.exe -w reg -p "My TTY" -r "TTY C" -x -f *+xxxx.gicp.net:23:tcp -n AH[SHA1]+ESP[3DES,SHA1] -a pershare:"psk password"

    现在可以运行:telnet xxxx.gicp.net

    注:Windows 7 默认没有打开telnet客户端功能。

    删除控制端IPSec策略:

    Windows 7

    netsh ipsec static set policy name="My connect" assign=n
    netsh ipsec static delete filtre
    netsh ipsec static delete filtreaction name="telnet client"
    netsh ipsec static delete filtrelist name="Complete encryption"
    netsh ipsec static delete rule name="Remote CUI management"
    netsh ipsec static delete policy name="My connect"

    Windows XP

    ipseccmd.exe -w reg -p "My Policy" -y
    ipseccmd.exe -w reg -p "My Policy" -r "TTY S" -o

    使用到的 ipseccmd.exe 与 netuser.exe 下载:点击下载

    ipseccmd.exe 语法:
    ipseccmd \\machinename -f FilterList -n NegotiationMethodList -t TunnelAddr
             -a AuthMethodList -1s SecurityMethodList -1k MMRekeyTime
             -1e SoftSAExpirationTime -soft -confirm [-dialup OR -lan]
             {-w Location -p PolicyName:PollInterval -r RuleName [-x OR -y] -o}
         Creates or modifies IPSec policy.

    -f 筛选器列表
    -n 筛选器操作
    -t 隧道设置:隧道终结点 IP 地址
    -a 身份验证:kerberos/证书/预共享密钥
    -1s
    -1k
    -1e
    -soft
    -confirm
    -dialup or -lan 连接类型:拔号 or 局域网
    -w 保存位置
    -p 策略名称与轮询时间
    -r 规则名称
    -x or -y  指派 or 取消指派
    -o 删除策略或规则

    注意:1s/1k/1e 中是123的1,不是JKL的L小写。

    Tty725 说:
    欢迎转载,但请注明内容的来源或URL;
    [转]”篇章,必须保留原始来源且勿添加本blog指向。
  • 相关阅读:
    声明对象指针,调用构造、析构函数的多种情况
    [C++ STL] 常用算法总结
    [C++ STL] map使用详解
    [C++ STL] set使用详解
    [C++ STL] list使用详解
    [C++ STL] deque使用详解
    Servlet课程0424(一) 通过实现Servlet接口来开发Servlet
    CSS盒子模型
    Spring学习之第一个hello world程序
    Java基础面试题
  • 原文地址:https://www.cnblogs.com/Tty725/p/1934505.html
Copyright © 2011-2022 走看看