Monday, April 28, 2008

保持SSH客户端不掉线

不管我是使用linux的的SSH还是windows下的putty、SecureCRT还是AbsoluteTelnet,当我连接到服务器端 后,离开一会或者做点其他的事情,再回到SSH的时候,常常发现客户端自动掉出来了;有的时候甚至跑一个需要时间比较长的JOB的时候,还没跑完就掉出来 了,导致JOB跑了一半,等等。。

所以一直在找解决这个问题的办法,今天在googleReader上找到了一个解决办法,如下:

Do you get annoyed when you have a SSH session open, visit your browser for a while, and then return only to find you were disconnected? Most home NAT routers are the cause of this. If your router doesn't offer an option to not shut off idle connections, you are probably better off by setting a keep-alive setting.

To do this, just open /etc/ssh/ssh_config on your home (client) computer. Add the following line:

 

配置代码
  1. ServerAliveInterval 180  
There you have it! Just remember now, if you leave SSH open accidentally, anyone else can get on it. Remember to close your session when finished.PS:If you're using AbsoluteTelnet (for Windows), you can do this from the Options->Properties->Connection page. There is an option there to enable keepalives and you can specify the duration between them.
 

Monday, April 14, 2008

linux pptp vpn服务器的架设

和上次安装pptp-clinet类似,需要多装一个pptpd-1.3.0-0.i386.rpm
可以在soureforge.net上下载到
 
选择源码还是rpm,就随便了。
 
安装完成后修改配置文件
 
vi /etc/pptpd.conf
需要修改的最后几行的ip
localip 192.168.1.235 (vpn服务器的虚拟ip)
remoteip 192.168.1.234(客户端的虚拟ip,可以定义成一个ip段,如192.168.1.234-240)
 
为了安全虚拟IP段最好和公司局域网的ip段分开。比如公司局域网用192.168.1.0/24
虚拟ip段最好设成其他的,如172.16.1.0/24
 
这点在ISA 的VPN上非常明显。微软不允许手动输入。当然你也可以和内网设成同一网段。这样方便。不用添加路由就可以直接访问内网的机器
 
需要说明的是localip和remoteip要在同一网段,否则客户端拨号的时候可能会出现一些错误。
 
vi /etc/ppp/options.pptpd (注意有2个文件,另一个是options.pptp,
 
增加两行
auth
debug
其他的默认就有,如果注释掉了就取消注释
lock
name pptpd
require-chap(默认是refuse-chap)
ms-dns 192.168.1.253 (改成需要的DNS。比如202.106.0.20
proxyarp
 
然后创建用户名和密码,只需要写在一个文件就可以了
vi /etc/ppp/chap-secrets
aaa pptpd "123456" *
 
启动pptpd服务
service pptpd start
netstat -an | grep 1723
如果有端口监听就ok了。否则的话在/var/log/messages中查找错误日志
 
需要注意的是GRE协议用的47端口也需要开放
/sbin/iptables -A INPUT -p gre -j ACCEPT
 
然后winxp客户端就可以新建一个vpn连接来拨号了。
拨号成功的话在linux vpn server上可以看到一个ppp0连接
 
如果客户端想用vpn server来上网的话,需要打开vpn server上的ip_forward
echo "1" > /proc/sys/net/ipv4/ip_forward
设置ip伪装
iptables -t nat -A POSTROUTING -j SNAT --to XXX.XXX.XXX.XXX
 
如果还想访问vpn server所在的局域网,还需要在vpn server上添加路由