Linux下PPTP VPN服务器架设详解

实验环境:

主机:burst.net Xen 512M VPS

系统:CentOS 6.2 32位

1.安装环境

yum install perl ppp iptables

2.安装PPTPD

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm

rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

(如果执行第二个命令时出错,可以使用强制安装命令,如下:

rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm –force –nodeps)

3.修改配置

编辑PPTP配置文件 /etc/ppp/options.pptpd 如内容下:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4

编辑配置文件 /etc/pptpd.conf ,内容如下:

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.254.1
remoteip 192.168.254.100-254

现在对用户认证文件 /etc/ppp/chap-secrets 进行配置,内容如下:

testuser pptpd testpwd *

(testuser和testpwd分别是VPN账号密码,如需新增用户,需要另起一行输入命令)

将 /etc/sysctl.conf 文件中net.ipv4.ip_forward设置为 1 (如果没有,则按照格式新建一行):

net.ipv4.ip_forward = 1

保存退出。执行

/sbin/sysctl -p

使之生效。

4.设置iptables转发

/etc/init.d/iptables start
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.254.0/24 -j MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart

(如iptables保存失败需要下载policycoreutils包,如下:

yum -y install policycoreutils

同时需要是iptables允许PPTP端口,如下:

vi /etc/sysconfig/iptables

-A RH-Firewall-l-INPUT -m state –state NEW -m tcp -p tcp –dport 1723 -j ACCEPT)

5、设置开机启动

chkconfig pptpd on
chkconfig iptables on

重启计算机即可进行连接,并且能够正常上网。(已测试成功)

PHP的高级技术

安全:

addslashes()过滤数据

stripslashes()恢复数据

php.ini中magic_quotes_gpc和magic_quotes_runtime自动添加和过滤数据

传递数据给system()或exec()时使用escapeshellcmd()

使用strip_tags()去掉HTML和PHP标记

使用htmlspecialchars()转换字符

加密电子邮件:PGP(收费版),GPG(免费版)

用户的基本身份认证:可以使用PHP代码或.htaccess

 

文件:

上传表单限制大小,使用“MAX_FILE_SIZE”隐藏域

默认上传文件保存在临时目录

touch创建文件,unlink删除文件

 

网络:

file_get_contents()从URL中读取信息

FTP传输中,ASCII传输文本文件,二进制传输过程不会修改文件

 

图像:

ImageMagick函数库:用于创建GIF

 

会话:

当使用完一个会话后必须将其注销

MySQL编程的注意事项

SQL语句不区分大小写,数据库和表的名称区分大小写

GRANT和REVOKE命令分别用来授予和取消MySQL用户的权限

用SHOW和DESCRIBE来查看数据库

BLOB类型支持任何数据,例如,图像或声音数据

MySQL中的字符串应该包含在一对单引号或双引号中,数字和日期并不需要引号

LIKE模式匹配: “%”匹配任何数量字符;“_”匹配一个字符

左关联用于查找不匹配行,找到添加NULL

SQL语句末尾必须加上分号

加快数据查询的方法:建立主键、添加索引、使用Prepared语句

PHP编程的注意事项

===  恒等  数据类型和值都相等

& 引用  不创建副本赋值

.  字符串连接符

单引号和双引号区别:双引号中的变量显示的是值,单引号显示的是变量名

@ 错误抑制操作符

` 执行操作符 将反向单引号内的命令当作服务器端的命令执行

PHP中没有delete函数,使用unlink()删除一个文件

intval()  将字符串转化为数字

extract()  将数组转换成标量变量

require()和include()的区别:前者调用失败返回致命错误,后者返回一个警告

函数不区分大小写,变量区分大小写

函数直接使用,变量使用前加$

private与protected的区别:前者不可继承,后者可继承

构造函数是在创建函数时初始化,析构函数是在销毁函数时执行一些操作或完成一些功能

重载:为相同的函数提供不同的功能

final:使函数不可重载

PHP不支持多重继承

throw  抛出异常信息

总结下个人博客所用的WORDPRESS插件

wordpress的插件之多,可以毫不夸张的说是任何博客程序所不能比拟的,小到增加一个导航分页,大到进行备份连接,几乎无所不能。

1.Akismet——反垃圾评论插件

能有效防止博客的垃圾评论,垃圾广告,基本上评论里带链接都屏蔽了

2.BackWPup——备份插件

可以定时备份,一键备份,可选择备份的文件和数据库表,也可以分卷压缩备份文件,我一般直接分卷压缩备份到自己的邮箱。

3.Global Translator——翻译插件

支持多种翻译引擎,包括google翻译,多国语言可选

4.JiaThis分享工具——分享插件

可以在每个文章页显示随机的文章推荐,附带缩略图

5.Meteor Slides——幻灯插件

支持多种特效,可以嵌入博客,也可以放置在侧边栏

6.Popular Posts——最热文章插件

方便地在侧边栏显示最热文章

7.Stout Google Calendar——日历插件

可以嵌入google日历并自定义样式

8.weichuncai(WP伪春菜)——网页机器人插件

非常好的网页版伪春菜,最多可以设置50条随机消息,有3个卡通人物可选,支持自定义角色,可惜支持设置的对话条数较少

9.WPtouch——移动化插件

可以方便地生成博客的移动版

10.WP-PageNavi分页导航——分页插件

老牌的分页插件,支持自定义CSS

11.WP-TagCanvas——标签云插件

非常炫的标签云,可以设置为彩色,3D滚动

12.新浪连接——微博连接插件

每次更新文章,自动发布到自己的新浪微博,但有一个BUG,重复编辑的文章也会重复发布

[原创游戏]js网页小游戏——《吕布传》

吕布得知自己受到挑拨误杀董卓后,后悔不已。于是多年来卧薪尝胆,屯集兵力。三国末年,吕布终于积累了足够的实力,决心血洗中原,一雪前耻。
P.S. 受到CS50的GOOGLE MAP游戏的启发,做了这个运用了BAIDU MAP API的小游戏,还试了一下AJAX,效果还不错。

游戏地址:http://www.zhaimax.com/lvbu/lvbuzhuan.html

C语言学习回顾与记录

距离最初接触C语言,已经过去许久许久。还记得一开始是看谭浩强的一本绿皮书,上面号称销量800W本。不过后来听说他都是翻译一些国外的书,然后自己汇总了一些,所以也不是很NB。最近一直在看哈佛的CS50课程,讲师真是激情四射!几度看得兴奋起来,可毕竟有些细节方面没有说得很透彻。这次上技术宅社区一逛,真是收获不小,看到了一篇C语言的总结,总结得真得是细致入微。这里简单记录一下自己之前掌握的不牢固的一些知识点,用自己的语言和理解加以描述。

1.形参和实参的区别?

形参一般是一个函数里面作为例子存在的,本身没有值,有点像商场里的样品,不可以买卖。而实参是在调用这个函数时实际赋给它的值,就像卖出去的商品,是真正可以买卖的。

2.i++和++i的区别?

简单地说,前者是先赋值,后累加;而后者是先累加,后赋值。比如1++这个表达式的值是1,因为先赋值了,而++1是2,因为先累加了。

3.break和continue的区别?

break是中断,然后结束;而continue是中断,然后重新开始。此外,switch语句中不能用continue

4.返回值的作用?

返回值主要有两个作用,一是返回给系统,作为错误标识;二是返回给调用函数,作为一个数值。

5.二维数组的跳行与跳列?

假设二维数组a[3][3],跳一行是a+1,而跳一列是a[0]+1

6.什么是脱衣法则?

a[2] 变成 *(a+2) a[2][3]变成 *(a+2)[3]再可以变成 *(*(a+2)+3)

7.*p++ 和 (*p)++的之间的差别?

p表示地址,*p表示数值;*p++地址会变化,(*p)++数值会变化

8.如何进行四舍五入计算?

默认int类型是去掉小数点后面的数,所以要进行四舍五入可以用将int类型的值后面加上0.5

9.程序的运行顺序是?

一般是从上往下,但碰到函数要先跳到函数体中等待返回值,然后继续执行。

10.转义字符的使用?

\ddd或者\xhh,前者是反斜杠后跟三位8进制数,后者是x后跟两位16进制数

[GN00汉化组]海贼王BL同人漫画(索香)——《恋爱时间》

大功告成,虽然离初翻已经过去了很久,但这部漫画终于还是汉化完成了。刚接到这个活儿时,开始还吓了一跳,BL?这么重口?好像不是我的风格。好吧,既然接了,就要认真完成。话说海贼王有好几百集,其实我只看过60多集,接下来的实在没时间看。用一个词概括这部动画——热血!

翻译:玄月冰灵

校队:楚耶

修图:橘子在飞

原下载地址

下载地址分流

转载自技术宅社区

巧用系统日志,摆脱险境

月初了,公司要统计上月考勤。被主管告知有一天是11点左右上班的,要求解释。左思右想,实在想不出为什么这么晚上班?是上班时没人开门?还是那天网络出问题,没连上网?貌似都不是……最终想到了windows的系统日志,如果查到这天9点左右有登录记录,就能证明我没有迟到。可惜,查了半天,发现这天是11点左右开机的。正当万念俱灰时,突然发现前一天的关机时间是晚上8点左右,这才想起原来前一天,有同事晚班去踢球,我顶了2小时。OK,警报解除~