Posts Tagged ‘Linode’

Ubuntu 9 安装 PPTP VPN 服务

// October 22nd, 2009 // 6 Comments » // Funny, Life, Ubuntu, domain

IPHONE 支持VPN 是件非常不错的事情, 错的是不支持openvpn. 之前的文已经讲述了怎么在Linode 的Ubuntu上设置openvpn. 今天心血来潮准备按个PPTP 来支持IPHONE, 另外PPTP虽然速度比OPENVPN 慢但是加载方便, 弄一个也算是防万一. pptp 的安装设置其实一点都不难, 花了大时间的却是在配置对应的iptables上面.

sudo apt-get install pptpd -y

在ubuntu就是那么的方便,自动解决好包依赖关系. 安装完成后备份一下/etc/pptpd.conf 就是修改配置了. 好吧 这里要说一下浪费了很长时间的问题.

option /etc/ppp/pptpd-options
#logwtmp
localip 192.168.100.254
remoteip 192.168.100.130-199

其实这个配置文件灰常的简单option就不说了, 默认. localip 和 remoteip请使用样本配置文件最后的两段, 打开注释#就可以了.这里需要说的是在Ubuntu 9上 一定要把 logwtmp 这个选项注释掉, 原因俺也不知道, 要感谢一下twitter 朋友上的帮忙了, 之前的配置在连接用户的这步总是出错, 修改了这个就好用了..
第二步需要修改的是 配置文件 /etc/ppp/chap-secrets这个文件保存了PPTP 用户信息, 按照配置文件上的说明以下面的格式输入就ok了. 中间pptpd 这个服务如果默认的话不需要修改.

yourname pptpd yourpassword *

最后用星号表示任何地方都可以通过这个用户访问VPN, VPN 本来就是提供方便访问的不是么? 最后要修改的是 /etc/ppp/pptpd-options我只修改了一个地方就是 ms-dns xx.xx.xx.xx 这里XXOO表示服务器的路由器地址, 跟openvpn 的push DNS 有点异曲同工, 就是让客户端通过这个DNS来访问网络,
完成配置后 重启一下pptp 服务 在ubuntu 下面我是这样重启的

$sudo /etc/init.d/pptpd stop
$sudo /etc/init.d/pptpd start

如果你的服务器没配置iptables防火墙的 现在应该就可以通过在XP上建立简单的PPTP连接访问服务器资源了, 接下来就是配置iptables的过程切记备份现在的配置 小心噢.先来添加一条让1723端口通过的规则,然后就是允许gre协议通过防火墙, 其中xx.xx.xx.xx 就是服务器网卡绑定的地址, 一般是eth0 就是链接互联网的那个地址.

$sudo iptables -A INPUT -p tcp -m state --state NEW --dport 1723 -j ACCEPT
$sudo iptables -A INPUT -p gre -j ACCEPT
$sudo iptables -A OUTPUT -p gre -j ACCEPT
$sudo iptables -A INPUT -p tcp --sport 1723 -s xx.xx.xx.xx -j ACCEPT
$sudo iptables -A OUTPUT -p tcp --dport 1723 -d xx.xx.xx.xx -j ACCEPT

万事具备 链接成功, 不过现在还有一件事情要做,就是目前的PPTP链接能顺利链接服务器组成内部网络,但是却只能访问服务器的资源, 离我们通过VPN访问互联网那个还差那么一小步,

$sudo iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j MASQUERADE

这步使得通过192.168,100段的数据包路由到主网卡来实现于外部的链接, 好了 所有的东西都搞定了. Bingo !再多说一步, 如果能够通过测试的话就可以吧iptables 的配置保存起来, 具体看每个人的需要, 我自己是保存到一个文件的 每次重启自动导入, 有些人可能倾向手工再录入一次阿 哈哈.

Linode 上养驴

// July 26th, 2009 // No Comments » // Funny, Life, Stuff, Ubuntu, domain

电驴的好处几乎没人不知道的, 特别是国内最著名的verycd , 几乎可以找到最新最精的各式专辑, 唯一的遗憾就是电驴的速度实在是不敢恭维, 舍不得让自己的MACBOOK PRO 长时间的开着就为了用驴驮专辑, 本着榨干VPS最后一滴鲜血的原则, 今天把驴养在了VPS上面,用的就是Linode.com , 考察了一下基本确定了 Mldonkey 这个电驴鼻祖了, 因为服务器并没有安装GUI, 所以只选择了命令行模式, 前端也省略了. Mldonkey 提供了命令行和页面管理的方式, 相对来说页面管理方式比命令行管理方式更直观, 所以在安装了Mldonkey 以后在防火墙上并没有把telnet的端口对外网络开放,只开放了网页管理模式,

$sudo apt-get install mldonkey-server

按照官网的文档, 这里包含了大部分的设置文档  驴子的设置不需要修改太多的设置, 一般来说安装目录放在了.mldonkey 目录, downloads.ini 就是配置文件了, 因为默认闲置了访问IP 只有本机127.0.0.1才可以访问, 不过VPS 都没有图形界面, 几乎没办法访问到这个地址, 更不要说设置了, 还好之前装好了VPN, 连上VPN 让VPS 变成自己的网上邻居. 在配置文件修改这个参数加上VPN的内网IP段. 这样就可以从VPN网络访问管理界面了, 默认admin用户密码是空的,赶紧加上密码,更安全. 相对来说就比较安全了.

$sudo mlnet &

的方式来运行MLDonkey ,然后访问管理界面 主机IP:4080 的方式来进行.这个端口也是可变的在配置文件中自己设置, 当然取决于想要MlDonky 来驮Verycd的东西呢还是BT等等 配置文件中都有对应的端口号, 这个在后台log中可以知道, 在防火墙打开这些端口的访问就可以看到网络流量在上升了. 默认MLDonkey的连接服务器只有4个好像, 可以修改配置文件中server.met 配置来获取www.emule.org.cn/server.met 来增加verycd的服务器列表. 这样驮的更轻松了.

Picture 1.png

在管理界面可以修改大部分的参数, 比如链接数等等, 回到传输界面就可以通过添加电驴链接的方式增加新的内容, 感觉这个界面还是做的比较强大的, 刚开始的搞不清怎么设置, 熟悉了界面就没问题了. 下载完的文件基本都是放在.mldonkey/incomeing/files 下面, 本着共享的精神当然是要放一段时间再移除拉, 毕竟VPS超流量可不是好玩的事情, 在情况允许范围内还是可以继续放着的, 注意监控流量数据就好了. 驮好的文件可以直接自己用FTP或者其他方式下载到本地, 个速度可不是一个数量级的…

Linode vpn 设置

// June 25th, 2009 // 1 Comment » // Funny, Linode, Stuff, Uncategorized, domain

VPN 的好处就不用多说了, 老实说真的花了好多时间来设置VPN, 终于可以利用VPN来看hulu.com 了, Linode.com 200G的流量不能浪费了。

配置参考了 openvpn的官方文档 点击这里查看

VPN设置第一步就是安装。 默认安装的openvpn 已经有样例 这里用证书的方式来进行登录VPN, 所以拷贝了一份examples/easy-rsa 到openvpn 目录。 同时建立一个keys目录来保存私钥已经对应的证书。 用root 用户来见以保证私钥不会被其他人获取。

$sudo apt-get install openvpn openssl ca-certificates bridge-utils;
$cd /etc/openvpn; 
$sudo mv /usr/share/doc/openvpn/examples/easy-rsa ./;
$cd easy-rsa/2.0;
$sudo mkdir keys;

接下来就是创建必要的私钥和证书了,第一次做的时候运行一下下面的命令吧

$sudo source ./vars;
$sudo ./clean-all;
$sudo ./build-ca;

然后创建必要的服务端密钥和证书

$sudo ./build-key-server vpn.demo.com

接下来创建客户端的密钥和证书,

$sudo ./build-key demouser
$sudo ./build-dh

修改/etc/openvpn 目录下面的server.conf 没有的话自己建吧, openvpn 默认是读取这个配置文件来与运行openvpn的。

port 1194
#这个是openvpn的监听端口
proto udp
#我们用udp的协议
dev tun
#这里用了 tun 模式
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/vpn.demo.com.crt
key /etc/openvpn/easy-rsa/2.0/keys/vpn.demo.com.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
#上面是证书及相关私钥。
server 10.8.0.0 255.255.255.0
#设置VPN 服务器私有网络的IP段, 默认会给Linode 服务器建立一个10.8.0.1 的IP。
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
#这里设置了客户端所有网络请求都会被转发到Linode 的VPN 服务器。 这个才是VPN数据包路由的关键。
push "dhcp-option DNS your_Linode_DNS_IP"
#因为数据被被转发到VPN 服务器,所以有必要给客户端指定DNS ,这边的DNS应该是Linode服务器用到的
#DNS, 可以通过Linode 的console 看到。
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3

这样服务端的配置就完成鸟, 因为所有的数据请求都转发到了服务端VPN, 在iptables 里面需要加入转发规则。

客户端的配置就更简单了, 安装openvpn 自带的客户端,修改自己对应的ca 证书 和客户端证书就OK了,配置内容如下:

client
dev tun
proto udp
remote yourVpnServerIP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\username.crt"
key "C:\\Program Files\\OpenVPN\\keys\\username.key"
ns-cert-type server
comp-lzo
verb 3

BinGo, 连接到VPN后就客户端就可以看到多了一个本地连接,IP就是 10.8.0.6 Ping 一下 10.8.0.1 正常情况下都没有问题。这个IP用VPN Server的DNS 来作为自己的DNS, 所以还有一个必须要做的就是利用Iptables 来做一下数据包转发。

$sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

如果还不行就要检查一下IPTABLES 转发规则,$sudo iptables -A FORWARD -j ACCEPT 我比较懒 就全部FORWARD了。
MAC下面我使用的是 tunnelblick 这个工具 配置大同小异,记得Set as Nameserver 打钩就可以了。
Enjoy 。。。。

PS: 补充一下 这个配置完全用证书进行VPN连接, 保管好自己客户端的KEY和证书, 经常换服务端客户端证书以提高安全性。

Linode 设置Web Dav 目录

// June 19th, 2009 // No Comments » // Funny, Linode, Stuff, Ubuntu, domain

Web Dav 用来在服务器上设置一个可以远程挂载的目录, 在服务器网速够快的时候相当的方便, 最重要的是挂载到本地后可以当作本地的一个目来来进行管理, 拷贝文件,删除文件都易如反掌, 在配合另外设置的安全验证以后 对个人来说使用将非常的方便, 最棒的是也可以通过浏览器直接访问,利用用户验证达到加密们网络目录的目的, 而且Mac , Linux, Windows都兼容.废话少说现在来设置如何在ubuntu 9,04 服务器上搭建Web Dav 用到的服务器在Linode.com的VPS

如果安装的是Apache2的话 dav_fs dav 模块应该默认都安装了 激活一下就可以用了

$sudo a2enmod dav_fs
$sudo a2enmod dav

然后就是设置DAVLock 和验证模块, 比较懒直接用这个方法 不过安全性已经很高了.

$cd /usr/share/apache2/ 
$sudo mkdir var
$sudo touch ./var/DAVLock
$sudo chown -R www-data:www-data ./var

这里可以利用 htpasswd 来设置用户名, 当然这里的目录都可以改在其他地方,只要能访问到就OK

 sudo htpasswd -m -c /etc/apache2/.htpasswd yourusername
 sudo cat /etc/apache2/.htpasswd

然后就是最重要的虚拟目录配置了, 最好是给一个子域名, 这样容易管理文件 安全性也好.
下面就是样例配置信息 可以在 sites-available 目录里面建立想要的子域名然后修改.

# domain: your sub domain
<VirtualHost *:80>
#这里试用了80 端口, 以后的设置会用SSL来加强安全性 那个时候443端口会被调用
  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin webmas...@yourdomean
  ServerName  yourdomain
  ServerAlias www.yourdomain
 
  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.php
  DocumentRoot /home/demo/public_html/yourdomian/public
 
  # Custom log file locations
  LogLevel warn
  ErrorLog  /home/demo/public_html/yourdomain/log/error.log
  CustomLog /home/demo/public_html/yourdomain/log/access.log combined
 
  ErrorDocument 404 /errors/404.html
  ErrorDocument 403 /errors/403.html
 
## Location of the DavLock file
DavLockDB /usr/share/apache2/var/DAVLock
        <Directory /home/demo/public_html/yourdomain/public/>
        DAV On
        AuthName "WebDAV Login"
        AuthType Basic
        AuthUserFile /etc/apache2/.htpasswd
        ## Limit access for enhanced security
        Require valid-user
        Order allow,deny
        Allow from all
        </Directory>
</VirtualHost>

这样设置就完成拉
enable 这个新建的site就可以reload apache2 来访问了. 提示要求输入刚才创建的用户名密码, 进入就可以看到目录里面的文件了.
Mac 和 Linux 自然不用说, XP 客户端需要安装一个注册表 这里下载 重启以后才能在 my network places 进行添加. 按部就班就行了.

Linode apache2 设置虚拟目录 支持多域名

// June 18th, 2009 // 1 Comment » // Funny, Linode, Ubuntu

VPS 如果不弄个虚拟目录来支持多域名那么真的是浪费,可怜的Linode.com 相对VPS 现在大部分的Share Hosting 都是支持多域名的, 其实想要自己的VPS支持多域名是非常简单的。 在架设了Apache2后 做一些虚拟目录设置就可以了。

最初呢最好是建立自己的一个用户名,用来管理大部分的文件,也方便以后设置FTP ,等等。

mkdir -p /home/demo/public_html/demo.com/{public,private,log,backup}

用来在demo用户目录中创建一个叫demo.com 域名的目录,直接用域名名字来作为目录名方便管理。

sudo vim /etc/apache2/sites-available/demo.com

创建一个以域名名字为文件名的子网站配置文件, 也是为了方便管理。 可选用自己喜欢的编辑器,这里用了vim。

配置文件的大概内容是:

# domain: demo.com
# public: /home/demo/public_html/demo.com/
 
<VirtualHost *:80>
 
  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin webmas...@demo.com
  ServerName  demo.com
  ServerAlias www.demo.com
 
  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.php
  DocumentRoot /home/demo/public_html/demo.com/public
 
  # Custom log file locations
  LogLevel warn
  ErrorLog  /home/demo/public_html/demo.com/log/error.log
  CustomLog /home/demo/public_html/demo.com/log/access.log combined
 
  ErrorDocument 404 /errors/404.html
  ErrorDocument 403 /errors/403.html
 
        <Directory /home/demo/public_html/demo.com/public/>
                Options Indexes FollowSymLinks
                AllowOverride All
        </Directory>
</VirtualHost>

这个是最基本的配置, 可以根据自己的需要修改, 如果以后需要配置其他服务 同样需要在这边修改。

sudo a2ensite demo.com

demo.com 其实就是配置文件的名字。 在安装了apache2 后就可以直接用 a2ensite 命令。

sudo /etc/init.d/apache2 reload

如果显示无错误的话就可以执行apache reload了。
在demo.com 域名指定了 A 记录到 Linode VPS的 公网IP以后就可以直接访问域名来访问虚拟目录了。 DNS继续可能需要一段时间, 所以在修改A 记录以后可以在本地的host 先指定IP来测试页面。 AllowOverride 这个设置可以让虚拟目录支持.htaccess 的URL重写记录。

Linode 配置 Apache2 和 PHP5

// June 18th, 2009 // 10 Comments » // Funny, Linode, PHP, Stuff, Ubuntu, Uncategorized, domain

配置Linode上的ubuntu 服务器已经有几天了, 抽空整理了一下配置文档,
ubuntu 服务器的配置非常简单, 默认Linode 给的VPS 已经安装了一个裸系统, 需要什么自己apt就可以了。 在修改了源之后进行一次系统更新 然后就开始这是apache2 服务器。

$sudo aptitude install apache2 apache2.2-common apache2-mpm-prefork
apache2-utils libexpat1 ssl-cert

这边安装了最基本的apache2 服务, 我添加了ssl-cert . 从文档上看 最新的apache2 已经内建了SSL 模块,这点在后来设置 Web Dav的时候才发现的, 很棒。

接下来就是安装PHP5, 数据库的支持肯定是需要的,所以安装php5的时候肯定要添加上相关的模块:

$sudo aptitude install libapache2-mod-php5 php5 php5-common php5-curl php5-dev
 php5-gd php5-imagick php5-mcrypt php5-memcache php5-mhash php5-mysql
php5-pspell php5-snmp php5-xmlrpc php5-xsl

比较懒,干脆把大部分的模块都装了进去。

$sudo aptitude install mysql

数据库安装就不需要说明了, 第一次安装运行需要填写对应的root密码,照做就Ok了, 之后可以安装phpmyadmin来管理数据库, 这个管理软件比较完善。

这样apache2 和php5就安装完成了,暂时按照默认的配置文件运行apache2

$sudo /etc/init.d/apache2 reload

在Linode上 因为VPS分配了一个独立的公网IP, 如果域名指向暂时没弄好的话可以直接在浏览器上打IP查看apache2的运行情况。