利用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指向。
原文地址:https://www.cnblogs.com/Tty725/p/1934505.html