作者汇整: 九条凛

C语言接口远程读取MySQL数据实例

  之前在服务器上搭建了VPN之后,顺便写了一个php的注册页面用于注册VPN的用户,使用MySQL保存用户数据。而pptpd和l2tpd服务则在另一台服务器运行,且通过文件进行用户验证。因此需要将用户密码表单远程从MySQL中取出并在VPN服务器保存为文件。我的解决方案是使用C语音调用MySQL接口然后使用文件流保存,这样的方案同样可用于解决架设多节点的VPN服务。

实例代码如下:

Makefile文件内容如下:

然后只需要再写一个shell脚本添加到 crontab 定时运行该程式并将输出的文件移动为 chap-secrets 即可。

简易的VPN用户管理系统就大功告成了~

======
kujou_rin

多网卡配置路由同时访问公司内网和外网

配置路由表可以指定源地址到达目标地址所使用的网关,通俗的说就是多网卡环境中指定到达某个地址的路径。

一、路由的配置方法:
1、添加路由
路由配置命令为

其中x.x.x.x为目标地址网段,与子网掩码y.y.y.y配合确定目标地址的范围。 z.z.z.z为源方出口网关地址。命令需要在(Linux)root权限或(Windows)Administrator权限下运行。
例如

表示当访问地址网段在 10.12.88.* 时,走 192.168.66.1 网关出口。
再例如

表示仅当访问 10.12.88.6 是才走 192.168.66.1 网关出口。
2、查看路由
查看路由命令为(Linux) route 以及(Windows) route PRINT ,该命令将会列出本机所配置的所有路由。
3、删除路由
路由配置的删除命令为

4、路由的生效问题
路由配置命令运行时将会立即生效,重启后动态路由将被清空。使之重启后仍然有效的方法是Windows在命令结尾使用 –p 参数使其永久有效,Linux将此命令加入到/etc/rc.local中(Linux系统启动时将加载运行此文件中的脚本)。

二、实用配置举例:
个人电脑插线连线公司局域网,需要访问公司内部网络某些地址段进行办公,但是该公司网络无法访问互联网(Internet)外网。此时您同时连线了wifi无线用于访问外网。
有线网卡(公司网)的本机IP是 10.12.3.134,掩码 255.255.255.0,网关 10.12.3.254。
无线网卡(用于访问Internet)的本机IP是 192.168.1.102,掩码 255.255.255.0,网关 192.168.1.1
公司内部网络中办公需要访问的地址是 80.10.40.*,以及公司的某台打印机 80.10.8.8
根据以上情况的配置方案:(Windows举例)

以上命令分别为:
删除默认路由
设置所有IP地址走无线网卡(用于访问外网)
设置 80.10.40.* 走有线网卡(用于公司办公)
设置 80.10.8.8 走有线网卡(用于公司打印机)

======
kujou_rin

Ubuntu搭建PPTP/L2TP类型VPN服务器

在Ubuntu下搭建VPN服务器,我们分别搭建PPTP和L2TP两种类型。

首先我们搭建PPTP服务器。
下载安装pptpd:

接下来修改配置脚本,首先在/etc/ppp/options中配置DNS。
将以下两行的注释符号删除并改为你需要的外网DNS:

然后修改pptp配置文件/etc/ppp/pptpd-options,除注释行外的内容如下:

以及另一个用于pptp分配ip的配置文件/etc/pptpd.conf,在该文件结尾加入:

给pptp连接分配的内部ip地址段请根据需要填写。
接下来打开路由转发功能,在/etc/sysctl.conf中找到以下内容将数值改为1:
net.ipv4.ip_forward=1
保存后运行命令生效:
sysctl -p
修改iptable规则NAT转发以及设置MTU

以上两行重启后会失效,很多人的做法是将其保存为iptable rules添加到pre-up中
我的做法比较简单,直接将这两行写入/etc/rc.local结尾(exit之前)。
(注意:eth0是你的公网网卡名称,请通过ifconfig确认)
然后在/etc/ppp/chap-secrets中添加用户和密码。
格式为[用户名\t连接类型\t密码\t用户IP],例如:

使用/etc/init.d/pptpd restart重启pptpd服务。
至此pptp类型VPN搭建完毕。

接下来搭建L2TP类型VPN。
因为L2TP需要通过IPSec加密,同样我们下载安装需要的组建服务:

然后修改配置文件/etc/ipsec.conf,除注释行外的内容如下:

left处请填写您本服务器的IP位址!
接下来修改/etc/xl2tpd/xl2tpd.conf,除注释行外的内容如下:

ip range处请填写您需要给l2tp连接分配的内部ip网段。
再修改/etc/ppp/options.xl2tpd,如果没有可以新建,内容如下:

DNS处可设置您需要分配的DNS地址。
再修改/etc/ipsec.secrets文件设置默认共享密钥:

前面为本服务器IP地址,引号内的为您要设置的密钥
修改网络策略使ipsec能正常运行:

顺便也加入到/etc/rc.local中(exit之前)。
以上配置全部完毕后,可以通过ipsec verify命令检测ipsec运行是否正常。
如果出现Checking for IPsec support in kernel [FAILED],您可能未启动ipsec服务,通过/etc/init.d/ipsec start启动。
如果出现NETKEY: Testing XFRM related proc values [FAILED],您可能未修改网络策略。
如果出现Pluto listening for IKE on udp 500 [FAILED],您可能需要安装apt-get install lsof。
如果没有出现[FAILED]表示运行正常。
Ubuntu使用apt-get安装openswan一定会出现Two or more interfaces found, checking IP forwarding [FAILED]。
而且客户端无法连接,且在/var/log/auth日志中出现
ERROR: netlink XFRM_MSG_DELPOLICY response for flow eroute_connection delete included errno 2: No such file or directory
那么原因应该是apt-get到的openswan版本并不能在该Ubuntu上运行,建议去openswan的官网下载2.6.34版本手动编译安装。
或在此下载源码:ftp://ro:[email protected]/openswan_lilith.pro.tar.gz
(这实在非常恶心,因为源码编译安装不是谁都能完成的,注意必须把源码解压在/usr/src下并apt-get install libgmp3-dev,以及bison,flex等然后再编译安装)
L2TP将和PPTP一样使用/etc/ppp/chap-secrets作为帐户密码文件。
重启所有服务:

大功告成!

======
kujou_rin

[270424]九条凛の部屋を开催

  经历了一周的折腾,终于把以前在QQ空间和网易博客写的所有文章都搬运到了自己的站点上,从05年至今留下的电子格式的博文大约400多篇共36万字的资料,包括其中的配图都全部是一篇篇半手动的搬运过来的。至于为什么没有写一个一键搬家工具,其一是某些文章中带有羞耻信息的需要人工审查并删除,其二是一些失效的链接和图片也要删除或者替换,当然最重要的一点是本人对于web方面一窍不通,这一点从我自己写的简陋的私服注册页面也能看得出来。
  手动搬运的过程很漫长但也很有意义,回首自己十年的过往,有喜悦也有忧伤,曾经那些中二的话语令人忍俊不禁,而那些感情的追忆又令人黯然神伤。搬运和整理日记的过程似乎是在看着自己一天天的生活成长直到今天,过去遇到的人和物又一个个从记忆深处重新走了出来,有太多的感情,难以言表。那些旧日记,有对社会百态的针砭时弊,也有记录平凡日常的点点滴滴。即使有些文章看起来冒着傻气,我也如实的将它搬运过来,因为它们对于我来说是我不想遗失任何一个的珍贵的至宝。
  当然,这些原本存放于QQ空间和网易博客等地方的文章,在经过一遍遍国内网站自我审查的洗礼,也已经遗失了不少。庆幸的是拥有整理资料强迫症的我,会把每一篇文章都做好备份,这使得不少文章在最近搬运过程中又能够重建天日。遗憾的是一些文章的配图并没有备份,在被QQ空间删除后也无法恢复,只好作罢。今天搬家完毕也就意味着从此以后可以愉快的和国内各种博客和QQ空间说再见了,从此不需要再浪费时间在令人作呕的文字游戏上,也不用再做用同音字代替发表的无聊事情。
  再见了,QQ空间和网易博客。

无名の QQ スクリーンショット270424191341
[图]纪念一下网易博客的流量,访问峰值的时间应该是瓮安新闻速报。
======
kujou_rin

大陆安卓用户安装和使用GooglePlay服务

安卓(Android)系统由Google制造,其官方APP市场是Google Play。但大陆因为屏蔽了Google因此很多安卓手机也阉割了Google的服务,不得不使用安智,小米等第三方市场安装APP。不仅无法安装大量APP,也无法及时获取官方软件的更新,APP内也无法通过官方途径进行消费,从第三方市场下载的APP也无法保证没有被恶意修改。

另外Google服务还可以帮你同步通信录,日历和用户数据,您在任意安卓设备登录Google帐户后通信录将会保持同步。一些游戏在保存进度和转移数据时也需要绑定Google帐户。如果您的设备没有Google服务,您可以将它们安装回来,下载下面的压缩档案,解压后放入手机并依次安装其中的项目。(解压密码“lilith.pro”,请使用winrar5或更高版本)

ftp://ro:[email protected]/GoogleApps.rar (此档案包仅适用于Android4.4)
内含文件如下:
GoogleServicesFramework.apk – 谷歌服务框架(*注1
GoogleLoginService.apk – 谷歌帐户管理服务(*注1
GoogleContactsSyncAdapter.apk – 谷歌通信录同步服务(*注1
GoogleCalendarSyncAdapter.apk – 谷歌日历同步服务(*注1
GmsCore.apk – 谷歌Play服务(*注1
Vending.apk – 谷歌Play市场(*注1

以上全部安装后打开GooglePlay登入您的谷歌帐户即可。

注1:此安装包请务必在以下站点下载,下载时请仔细核对您的安卓版本号。
http://www.apkmirror.com/apk/google-inc/google-play-services/

其他说明:大陆用户登入Google需要先连线海外VPN,Google帐户即是您的gmail地址。如果您需要在Google购买付费APP或在游戏内消费,需要绑定信用卡,绑卡时的IP将决定您的市场区域,绑定后不可修改,美国区将无法下载日本区游戏,反之亦然。如无消费需要可暂不绑定。

关于VPN的帮助请参阅此文章:https://lilith.pro/gijyutsu/2315
======
kujou_rin

[270328]四面楚歌的中国网络

  有一段时间没有更新博客和空间了,虽然省下了很多时间用来补番,但是自从我不再继续在空间写文之后,朋友们似乎也没办法知道自己身边每天正发生著什么。周围的同学和朋友似乎有一大半只有在看我空间和博客的时候才能知道身边的事情,为什么外交部会回应西方对中国进行网络攻击的指责,为什么Google和Mozilla会同时宣布吊销中国互联网中心证书,为什么最近一些新闻看的云里雾里。前几天和朋友聊天的时候发觉似乎我应该重新把写博客的习惯捡起来了,而且很多朋友也无法通过推特了解我的近况。
  先说说中国最近的网络状况吧,之前也说道习自从上台以来,外来文化方面一直在收紧,各种外国影视作品也纷纷下架,这其中不乏一些国内企业已经购买过版权的作品。然而在网络方面,除了进行收紧政策以外,由原始的封锁和禁止改为了主动的袭击和破坏。之前说过去年中国曾利用中间人攻击对Outlook,Yahoo,github等进行了攻击。然后今年一月中国调整G*F*W(国家防火墙)策略,将DNS污染投毒改为随机的国外ip地址,这些地址中甚至有很多是正常可以访问的站点。按照过去的方法如果国内用户访问脸书推特谷歌等网站,会被引向一个不存在的地址,而现在这些巨大的流量将会引向某个随机的国外网站,从而造成DDoS攻击。
  受到攻击的网站是随机的,包括一些欧洲的工厂,美国的个人博客,他们的网站在受到这种莫名其妙的待遇之后,大多数都选择了主动屏蔽中国IP。“中国人禁止入内”的方法不仅在现实中解决了不少问题,在网络上也同样有效。当然中国的G*F*W也打出了自己的名号从而臭名远扬,甚至有一位受到攻击的美国站主主动学习了中文并在博客写文对G*F*W进行了指责。
无名の QQ スクリーンショット270426215707
[图]受到攻击的美国个人网站站长主动学习了中文进行回击
  然后是三月份,中国的互联网管理部门又一次给了全世界一个惊喜。CNNIC(中国互联网信息管理中心)伪造了Google域名证书,劫持https通信,进行中间人攻击,获取用户的密码等资料,而带有CNNIC数字签名的假证书则成为了攻击事件的铁证。简单来说就是被授予合法权力的部门利用权力做了非法的事情,就像民警用万能钥匙开了别人家锁盗窃被人逮著正著。这种行为已经严重危害国际互联网安全,侵犯国内用户的隐私。并非西方妖魔化中国,而是自己本身就在做着只有恐怖主义才做得出来的事情。因而在四月份Google(chrome浏览器)和Mozilla(firefox浏览器)宣布不再信任CNNIC颁发的数字证书,CNNIC回应表示难以接受。
  紧接着三月底,G*F*W劫持了百度统计和百度推广的流量对github发起了攻击。G*F*W通过在百度植入恶意代码,使访问者自动攻击目标,也许当时正在访问百度的你,就是数百万攻击者之一。这种恶意攻击的明目张胆和丧心病狂已经到了任何人都能抓到证据的地步。外交部一直声称自己是网络犯罪最大的受害国,而实际上国际互联网上的大多数攻击都是由中国发起。笔者也亲自尝试,墙外访问百度时确实可以在m.js中发现github等字样,有理由相信中国本次针对github的国家级攻击是真实可信的。
CBFSMjeUYAAAvKqCBFSOIoUsAAEMhj
[图]笔者查看m.js脚本时的截图
  中国对于国际互联网的肆意攻击和对国内流量的劫持,就好比不想让自家孩子上网玩游戏而去破坏公共光缆一样,这种危害国际互联网安全与稳定,挑战人类科技文明,践踏人类正义与良知的行为,最终只会让中国遭到全世界的唾弃。虽然中国一直声称这一切种种做法都是为了维护互联网主权,但是在一个透明公开而公共的地方维护私有权,无异于在大海中围起来海水不让其随意流动,不仅违反自然常识,最后的结果也只是发霉发臭罢了。

======
kujou_rin

使用apache伪静态使网页访问自动跳转至https

  前几天给网站申请了ssl证书之后准备实现https访问,但是如果访问者直接输入域名默认访问的是http页面。因为子域名的其他站点并不想使用https,因此每个站点要单独设置。因此要使用apache的伪静态实现URL重写,将访问者的http重写为https。使用方法如下:
1、在apache配置中开启apache的mod_rewrite模块功能(很多时候默认是开启的)
开启方法是httpd.conf中增加如下语句并重启apache:
LoadModule rewrite_module modules/mod_rewrite.so
2、创建一个文件,文件名为 .htaccess 内容如下

以上内容表示当页面访问时如果端口不是443则重写URL跳转到https
3、将该文件放在要使用https的站点的根目录中,这样便可以使访问自动跳转到https了。

利用shell脚本对VPN拨入的PPP连接进行限速

  在Linux下使用xl2tpd或pptpd架设VPN服务后,如果需要对拨入的用户进行限速可以用shell脚本实现。笔者使用tc进行限速,该命令一般默认于Linux中。Linux的VPN在每一个用户拨入后,会建立一个名为ppp+数字编号的连接并加载 /etc/ppp/ip-up 脚本,因此我们可以把限速的脚本写在这个文件里,每次ppp连接建立执行脚本为新连接应用限速规则。
  具体方法是在ip-up的文件末尾加入如下几行:

  其中down为下行速率,upload为上行速率,这里的400就是400k/s,iprange是你为拨入用户分配的ip位址,该位址以外的ip将不受限速规则影响。以上方式笔者在Ubuntu测试通过。

======
kujou_rin

Ubuntu的vi无法使用方向键解决办法

  安装完Ubuntu14.04之后发现vi打开之后在编辑状态下无法使用方向键操作光标,这是由于默认系统默认的vim版本为common版本,只需删除后重新安装即可。
  卸载和安装方法为:

[261221]游记随笔

  其实这次出差还是我第一次越过长江到南方,以前真的一次没来过长江以南的地区。初来长沙让我最大不习惯的就是大家说普通话都不怎么标准,然后出租车总是不喜欢打表。感觉交通和道路都乱糟糟的,市中心太平街的地下通道有很大的尿味和很多垃圾,实在不像个省会城市。
  出差来办事前两天紧紧张张,想着两天跑三个地方最后只办成两个。七天之类的小宾馆的环境不怎么样价钱也不便宜住了两天还是搬到了招待所,其实挺喜欢招待所的感觉,面积挺大独立卫生间有个小过道,实木桌椅一看就有招待所的感觉还有免费早餐。
  虽然每天都住长沙,但待在长沙的时间也就一两天,其他时间都在跑周边城市,最远跑到了张家界但是没去旅游,一天来回也就只剩几小时办事时间。周六休息在长沙市内看了看去了趟太平老街,最著名的小吃是长沙大香肠和臭豆腐。大香肠一根13元如果没人排队我绝对不会去买这么贵一根的烤肠,大概是因为人排队多到路都堵住了,我才想去买…
  时间不早要赶紧睡觉了,昨天早餐因为手机没电没响没吃到免费早餐!

psb
[图]湘江,长沙

psb (1)
[图]太平老街,长沙

psb (2)
[图]太平老街,长沙

psb (3)
[图]长沙大香肠门口

psb (4)
[图]长沙大香肠(13元

[261220]本周行程日记

周一 北京-石家庄
周二 石家庄-北京
周三 北京-长沙
周四 长沙-张家界-长沙
周五 长沙-衡阳-永州-长沙
周六 休息
周日 预计可能顺便去下江西
周一到周五都是出差,有点不习惯,还是不怎么喜欢出门…

psb (2)
[图]雾霾,河北石家庄

psb (3)
[图]澧水,湖南张家界

psb (4)
[图]湘江,湖南衡阳

psb (5)
[图]湘江,湖南永州