刚刚发现网上说怎么设置checkpoint可以让Android/iPhone登录VPN。虽然不知道行不行。但也先记录一下。

 

Android / iPhone / Windows – L2TP VPN Setup FAQ (Checkpoint R70)

Checkpoint Configuration

Prerequisites
1. A functional remote access VPN
2. Office Mode (for all users)
3. Remote access user (using a checkpoint password scheme)

In other words, if you currently have a set of remote access workers connecting using secure remote/client with office mode. The following guide should work!

1. Enable “Gateway support IKE over TCP”
Global Properties > Remote Access > VPN Basic

2. Enable “L2TP Support”
Firewall Object > Remote Access

3. Choose “MD5-Challenge” authentication
Firewall Object > Remote Access

4. Shared Secret (The tricky part)

a. Create a empty file called “l2tp.conf”
b. type in plain text a shared secret into the above file. There are no config items or tags, the file should only contain a single line of plain text.
e.g. mysharedsecret1234

c. Copy l2tp.conf to your Firewall “Gateway” (not the management station)

E.g. $FWDIR/conf/
this would resolve to the following if you are using a NOKIA gateway
/var/opt/CPsuite-R70/fw1/conf

5. Add UDP L2TP to your rulebase
You should have an existing “Any VPN” rule for your existing remote access users

Source > any
Destination > Firewall Object
VPN > any traffic
Service > L2TP (UDP)
Action > accept

6. Install the FW policy.

Android Configuration

1. Go to Settings -> Wireless & Networks -> VPN Settings
2. Tap Add VPN
3. Tap L2TP/IPSec PSK VPN
4. Set a VPN name (My Office VPN)
5. Set VPN Server to either DNS or IP of your firewall
6. Set IPSec pre-shared key (used in the l2tp.conf)
7. Tap the Menu Key, Tap Save

iPhone Configuration

1. From your iPhone home screen, go to Settings > General > Network > VPN > Settings
2. Server: Enter your VPN-1 server FQDN (DNS name) or IP address
3. Account: Enter you checkpoint username and password
4. RSA Secure ID: Off
5. Password: Ask Every Time
6. Secret: Enter the IPSec pre-shared key (used in the l2tp.conf)
7. Send all Traffic: On

Windows XP Configuration

1. Select Start > Settings > Control Panel > Network Connections > New Connection Wizard
2. Select “Connect to the network at my workplace”, click next
3. Select “Virtual Private Network Connection”, click next
4. Enter a Company Name “My Company”, click next
5. Select “Do not dial the initial connection”, click next
6. This setting could be used to invoke a 3G connection before the VPN connection
7. Enter the Host name or IP Address “<Gateway IP>”, click next
8. Select “Do not use my smart card”, click next
9. Select “Anyone’s use” if this is to be used by anyone who logs onto the laptop
10. Select the option to “Add a shortcut to this connection to my desktop”, click Finish
11. A Pop-up Window is displayed. “Connect My Company” Select “Properties”
12. Select the “Networking” tab
13. Change “Type of VPN” to “L2TP IPSec VPN”
14. Select the “Security” tab
15. Select “Advanced (custom settings)” Default is set to “Typical (recommended settings)”
16. Click “Settings”
17. Leave “Data Encryption” set as default “Require Encryption (disconnect if server declines)”
18. Select “Use Extensible Authentication Protocol (EAP)” and Change the Dropdown Box to “MD5-Challenge”
19. Select “OK” to save changes
20. Select “IPSec Settings”
21. Tick “Use pre-shared key for authentication” Enter the pre shared key
22. Click “OK” to save settings

Checkpoint Logs
This is what you should see in a working setup.
Depending on the connecting client, the logs will look different. Highlighted in Bold below.

iPhone
1. UDP IKE > Accept
2. UDP IKE_NA_Transversal > Accept
3. Login (authenticated by pre-shared secret)
4. Key Install (IKE: Main Mode completion [NAT-T])
5. Key Install (IKE: Quick Mode Sent Notification: Responder Lifetime)
6. Key Install (IKE: Quick Mode completion IKE IDs: host: <gateway IP> and host: <iPhone IP>)
7. Login (VPN internal Source <IP address> connected to gateway)
8. UDP L2TP > Accept
9. Login (PPP: Connection succeeded auth_method: MD5-Challenge machine: <L2TP> om_method: IP pools assigned_IP: <Office IP Pool>)
10. Key Install (IKE: Informational Exchange Received Delete IPSEC-SA from Peer: <iPhone IP> SPIs: *********)

Windows XP
1. UDP IKE > Accept
2. UDP IKE_NA_Transversal > Accept
3. Login (authenticated by pre-shared secret)
4. Key Install (IKE: Main Mode completion [NAT-T])
5. Key Install (IKE: Quick Mode Sent Notification: Responder Lifetime)
6. Key Install (IKE: Quick Mode completion IKE IDs: host: <gateway IP> and host: <iPhone IP>)
7. Login (VPN internal Source <IP address> connected to gateway)
8. UDP L2TP > Accept
9. Login (PPP: Connection succeeded auth_method: MD5-Challenge machine: <L2TP> om_method: IP pools assigned_IP: <Office IP Pool>)

Android
1. UDP IKE > Accept
2. UDP IKE_NA_Transversal > Accept
3. Login (authenticated by pre-shared secret)
4. Key Install (IKE: Main Mode completion [NAT-T])
5. key Install (IKE: Informational Exchange Received Notification from Peer: Initial Contact (phase1))
6. Key Install (IKE: Quick Mode Sent Notification: Responder Lifetime)
7. Key Install (IKE: Quick Mode completion IKE IDs: host: <gateway IP> and host: <iPhone IP>)
8. Login (VPN internal Source <IP address> connected to gateway)
9. UDP L2TP > Accept
10. Login (Session: <Android IP and session IDs> PPP: Authenticated by FireWall-1 Password auth_method: Password Authentication Protocol (PAP) machine: <L2TP> om_method: IP pools assigned_IP: <Office IP Pool>)

经常使用vi,但里面的功能会用多少呢?先记录下来。以后肯定有用。

进入vi的命令
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑

移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带”/”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行

寄存器操作
“?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n为一个数字
“?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字
“?p:取出寄存器?中的内容并将其放到光标位置处。这里?可以是一个字母,也可以是一个数字
ndd:将当前行及其下共n行文本删除,并将所删内容放到1号删除寄存器中。

之前曾在Blog中写过《让Firefox的密码框永远都可以自动完成》(http://www.jackyhe.com/?p=114),但这个方法到了 4.0 或以上版本时就失效了。

其实Mozilla只是换了一个地方保存那文件(nsLoginManager.js)而已,只要我们找到了新的保存路径,还是可以让“自动完成”继续工作的。

方法是用winzip打开C:\Program Files\Mozilla Firefox\omni.jar,然后在里面找到nsLoginManager.js文件。直接双击打开nsLoginManager.js文件安装之前的方法(http://www.jackyhe.com/?p=114)修改里面的内容后,直接点击保存就可以了。

另外,由于Vista或win7 不让我们直接编辑c:\program file里面的文件,我们可以先把C:\Program Files\Mozilla Firefox\omni.jar复制到其他地方,改好后,再复制回去就好了。

1. 首先写两个简单的shell script

(1) get_asa_cpu.sh

###############################

#!/bin/sh

getcpu=`snmpwalk -v 1 -c $2 $1 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 |awk ‘{print $4}’`
echo $getcpu
echo $getcpu
echo
echo $1

###############################

(2)get_asa_mem.sh

###############################

#!/bin/sh

freemem=`snmpwalk -v 1 -c $2 $1 1.3.6.1.4.1.9.9.48.1.1.1.6.1 |awk ‘{print $4}’`
usedmem=`snmpwalk -v 1 -c $2 $1 1.3.6.1.4.1.9.9.48.1.1.1.5.1 |awk ‘{print $4}’`
echo “scale=4;$freemem/($freemem+$usedmem)*100″|bc |awk -F\. ‘{print $1}’
echo “scale=4;$usedmem/($freemem+$usedmem)*100″|bc |awk -F\. ‘{print $1}’
echo
echo $1

###############################

2. 在cfg文件中添加如下内容。其中“filepath”改为script所在的具体路径,“ASAIP“改为真正的IP地址,“community”改为ASA上设置的SNMP的读取密码。

###############################

Target[ASAIP_cpu]: `/filepath/get_asa_cpu.sh ASAIP community`
MaxBytes[ASAIP_cpu]: 100
Options[ASAIP_cpu]: growright,gauge
YLegend[ASAIP_cpu]: CPU Load
Legend1[ASAIP_cpu]: CPU usage
Legend2[ASAIP_cpu]: CPU usage
LegendI[ASAIP_cpu]: CPU usage
LegendO[ASAIP_cpu]: CPU usage
ShortLegend[ASAIP_cpu]: %
Title[ASAIP_cpu]: CPU usage — ASA5520
PageTop[ASAIP_cpu]: <H1>CPU usage — ASA5520</H1>

Target[ASAIP_mem]: `/filepath/get_asa_mem.sh ASAIP community`
MaxBytes[ASAIP_mem]: 100
Options[ASAIP_mem]: growright,gauge
YLegend[ASAIP_mem]: Memory Load
Legend1[ASAIP_mem]: Free Memory
Legend2[ASAIP_mem]: Used Memory
LegendI[ASAIP_mem]: Free Memory
LegendO[ASAIP_mem]: Used Memory
ShortLegend[ASAIP_mem]: %
Title[ASAIP_mem]: Memory usage — ASA5520
PageTop[ASAIP_mem]: <H1>Memory usage — ASA5520</H1>

###############################

这样就可以了。

最近新入手一台HTC的Desire Z手机,用的是Android 2.2系统。

为了玩这个手机,最近有点不思进取的感觉。

开始几天,手机还是很听话的。但当我向手机装入超过50个软件时(大部分都是游戏,哈哈)。发现再也安装不了新的软件了。

无论是通过电子市场,还是安卓市场,甚至是91手机助手,或者直接上传到SD卡上安装,都无法安装任何软件。

当我以为只能通过重置手机的方法来解决问题时。却通过Google找到了一篇文章。按照文章的方法,真的把文件解决了。

所以马上把方法记录下来,等下次再次遇到这个问题时,可以马上找到解决方法。

解决的方法是: 删除SD 中的android_secure/**dl2tmp1.asec 文件,由于该档案是暂时性,所以删除也不会影响系统运作。

(此方法出自: http://www.93py.com/experience-fenxiang/378.html

为什么要删除?每个人都有自己的理由,我的理由是,要激活windows7。 哈哈。

(以下内容不是原创,觉得好用,就记录下来)

1.启动Windows 7后,用管理员身份启动“命令行窗口(CMD)。

2.键入” bcdboot c:\windows /s c:”    (: 这意味着将启动文件复制从c:\windows到c:\ )
你将得到一个消息 ” 已成功创建启动文件”。

3.在搜索框里输入”diskmgmt.msc”以启动磁盘管理。定位到C:\分区和将该分区设为活动。

4.重新启动,回到磁盘管理 。 你可以删除这个已经没用的100MB的隐藏分区了。

这时候,这讨厌的100M隐藏分区,给你带来的不便就解除了。

一般性资料,仅作笔记之用。

HTTP状态码(HTTP Status Code)

一些常见的状态码为:
200 – 服务器成功返回网页
404 – 请求的网页不存在
503 – 服务不可用

详细分解:

1xx(临时响应)

表示临时响应并需要请求者继续执行操作的状态代码。

代码   说明

100   (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。

101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx (成功)

表示成功处理了请求的状态代码。

代码   说明

200   (成功)  服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

201   (已创建)  请求成功并且服务器创建了新的资源。

202   (已接受)  服务器已接受请求,但尚未处理。

203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。

204   (无内容)  服务器成功处理了请求,但没有返回任何内容。

205   (重置内容) 服务器成功处理了请求,但没有返回任何内容。

206   (部分内容)  服务器成功处理了部分 GET 请求。

3xx (重定向)

表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

代码   说明

300   (多种选择)  针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。

301   (永久移动)  请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302   (临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

303   (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。

304   (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。

305   (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。

307   (临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx(请求错误)

这些状态代码表示请求可能出错,妨碍了服务器的处理。

代码   说明

400   (错误请求) 服务器不理解请求的语法。

401   (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403   (禁止) 服务器拒绝请求。

404   (未找到) 服务器找不到请求的网页。

405   (方法禁用) 禁用请求中指定的方法。

406   (不接受) 无法使用请求的内容特性响应请求的网页。

407   (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。

408   (请求超时)  服务器等候请求时发生超时。

409   (冲突)  服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。

410   (已删除)  如果请求的资源已永久删除,服务器就会返回此响应。

411   (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。

412   (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。

413   (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

414   (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。

415   (不支持的媒体类型) 请求的格式不受请求页面的支持。

416   (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。

417   (未满足期望值) 服务器未满足”期望”请求标头字段的要求。

5xx(服务器错误)

这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

代码   说明

500   (服务器内部错误)  服务器遇到错误,无法完成请求。

501   (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502   (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504   (网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505   (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

家里有两个DD-WRT的无线路由器,通过WDS相连,一个路由器Router1通过ADSL拨号上网,另外一个路由器Router2把一个独立的有线网络通过Wifi连接到Router1的网络。如下图。

有一天突发期限,希望能够通过Router2通过pptp登录到远程VPN服务器上。然后让所有局域网的客户端通过此路由器就可以直接使用VPN,而不用在客户端安装VPN拨号工具了。

经过几天的尝试,终于搞定。下面是安装方法。

首先,必须有一个PPTP服务器(我假设服务器的IP是1.2.3.3,安装的方法我就不说了,下面是CentOS上通过RPM安装的PPTP的配置方法。

# cat /etc/ppp/options.pptpd |grep -v “#” | grep -v “^$”
name pptpd
require-mppe-128
-chap
-mschap
+mschap-v2
ms-dns 8.8.8.8
debug
lock
nobsdcomp
novj
novjccomp
nologfd

# cat /etc/pptpd.conf |grep -v “#” | grep -v “^$”
option /etc/ppp/options.pptpd
debug
connections 5
speed 115200
pidfile /var/run/pptpd.pid
localip 192.168.1.1
remoteip 192.168.1.11-15
(下面是登录用户名和密码的设置,一个用户一行。每一行上分别是用户名,服务器名(通过用*号),密码,分配给用户的IP(如果是随机,就用*号)。

# cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
“username”    *    “abcd1234”    172.31.1.2
“username2”    *    “abcd1234”    *

在Router2的DD-WRT配置中。分别配置如下:

(1)在“设置”的“基本设置”中。由于我这个路由器是通过WDS连接到Router1,所以“WAN连接方式”是禁用的。并设置此路由器(Router2)的IP是与Router1(我的是172.17.2.254)相同的网段上的任何一个IP(我的是172.17.2.1)。网关部分设置为“0.0.0.0”

(2) 在“设置”的“高级路由”上,添加一个静态路由,如下图,“目标LAN IP”填上你的VPN服务器的真正IP(比如我这里的1.2.3.3),子网掩码是255.255.255.255。网关填上Router1的IP(比如我这里的172.17.2.254)。

(3)在“服务”中的“VPN”中启动“PPTP客户端”。服务器的IP填上VPN服务器的真正IP(1.2.3.3)。远程子网和掩码都写为0.0.0.0。“MPPE加密”写上“mppe required,no40,no56,stateless”。其他的如下图。

设置晚后,重启Router2,然后通过SSH登录到Router2后,就发现Router2上多了一个ppp0的网络接口。在Router2上traceroute 网络上任何IP(除了VPN服务器的IP)都发现它是通过VPN去访问了。这时,只要把我们的电脑的网关设置为Router2的地址,用户就是通过VPN访问Internet了。

如果再想复杂些,可以在Router1上设置静态路由,让某些网段通过Router2走VPN,其他的就直接访问。灵活性很高的哦。

我的VPS上有安装openvpn,一直都是工作正常。但最近当系统重启后,发现openvpn启动不起来了。错误的提示如下:

#######################################
Service deferred error: IPTablesServiceBase: failed to run iptables-restore [status=1]: [‘iptables-restore: line 61 failed’]: internet/base:1175,internet/base:752,internet/process:45,internet/process:306,internet/_baseprocess:48,internet/process:775,internet/_baseprocess:60,svc/pp:116,svc/svcnotify:26,internet/defer:238,internet/defer:307,internet/defer:323,sagent/ipts:105,sagent/ipts:39,util/error:52,util/error:32
service failed to start due to unresolved dependencies: set([‘user’, ‘iptables_openvpn’])
service failed to start due to unresolved dependencies: set([‘user’, ‘iptables_openvpn’])
service failed to start due to unresolved dependencies: set([‘iptables_openvpn’])
#######################################

检查发现系统的Kernel“被”升级了,而且新的kernel不支持module的加载。而openvpn在启动时,又自以为是的在iptables的”filter”,”mangle”中添加很多规则。但由于kernel无法加载iptables的”filter”,”mangle”对应模板而导致openvpn启动失败。

问题找到后,我第一时间想把openvpn修改iptables的规则的功能去掉。上网google一下,发现真的可以。方法是

#######################################
/etc/init.d/openvpnas stop
cd /usr/local/openvpn_as/scripts
./confdba –mod –key=iptables.vpn.disable.nat –value=True –prof=Default
./confdba –mod –key=iptables.vpn.disable.filter –value=True –prof=Default
./confdba –mod –key=iptables.vpn.disable.mangle –value=True –prof=Default
/etc/init.d/openvpnas start
#######################################

这时候,openvpn已经启动起来了。但我发现openvpn还是死心不惜,在iptables的INPUT表中添加了两个规则。

一不做,二不休。我干脆自己写一个script来启动openvpn,在每次启动openvpn后,都把openvpn添加的规则删除掉。

#######################################

# cat /cronjob/openvpn_restart.sh
#!/bin/sh

/etc/init.d/openvpnas stop
sleep 2
/etc/init.d/openvpnas start
sleep 5
iptables -D INPUT 1
iptables -D INPUT 1
iptables -F AS0_WEBACCEPT
iptables -X AS0_WEBACCEPT

#######################################

到这里,openvpn启动了。但还是不能用。因为iptables现在需要我们手动更新了。方法很简单,只要在每次启动openvpn后,添加几条iptables规则就好了。

/sbin/iptables -A INPUT -i eth0 -p tcp –dport 943 -j ACCEPT    ## 943是openvpn的web管理界面的端口。改为你自己的端口就好了。

/sbin/iptables -A INPUT -i eth0 -p tcp –dport 443 -j ACCEPT    ## 443是openvpn的给客户端连接服务器的TCP端口,改为你自己的就好了。

/sbin/iptables -A INPUT -i eth0 -p udp –dport 1194 -j ACCEPT    ## 1194是openvpn的给客户端连接服务器的UDP端口,改为你自己的就好了。

/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT  ## 192.168.0.0 是openvpn客户端登陆后的IP端,改为你自己的就好了。

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  ## 启动服务器的NAT功能,这样openvpn客户端login后才可以通过服务器上网。

echo “1” > /proc/sys/net/ipv4/ip_forward   ## 启动服务器的转发功能,这样openvpn客户端login后才可以通过服务器上网。

通过如上设置,我的openvpn又可以在新家中继续为我服务了。