CentOS 5/6 快速安装 VPN Server (PPTP)

“VPN”是一种常用于中、大型企业或团体与团体间的私人网络的通讯方法。借由 VPN 所建立的加密通道,可以让你从外部存取公司内部的资源,或透过连线到 VPN 的 Server 当跳板,去存取被限制的外部资源 (俗称“翻墙”)。

在使用 VPN 之前,你得先有一台提供服务的 VPN Server,现在满多人会去租用国外的 VPS 当 Server,要架站兼翻墙,Linode 是不错的选择。

以下把握几个重点即可快速完成 Linux 的 PPTP 的 VPN Server 架设:

  • PPP - 点对点协定 (Point-to-Point Protocol)
  • PPTP - 点对点通道协定 (Point-to-Point Tunneling Protocol)
  • iptables - 设定封包转发规则

安装步骤

1. 判断 ppp 是否可用:

$ cat /dev/ppp
cat: /dev/ppp: No such device or address

如果出现跟上面一样的讯息“No such device or address”,那不用担心,这表示 ppp 是可用的,可以正常架设 pptp。

如果出现的是“Permission denied”,表示 ppp 是关闭的,下面的步骤就可以不用再看了。
继续阅读

如何解决 yum 安装 glibc-headers 失败的问题

最近我用 yum 在安装套件时,突然出现这些错误讯息:

---> Package glibc-headers.x86_64 0:2.12-1.107.el6 will be installed
--> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.12-1.107.el6.x86_64
--> Processing Dependency: kernel-headers for package: glibc-headers-2.12-1.107.el6.x86_64
--> Finished Dependency Resolution
Error: Package: glibc-headers-2.12-1.107.el6.x86_64 (base)
           Requires: kernel-headers >= 2.2.1
Error: Package: glibc-headers-2.12-1.107.el6.x86_64 (base)
           Requires: kernel-headers
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

错误讯息有提到跟 "kernel" 有关!!

原来是我当初为了不让 yum 自动更新 Kernel,所以我在 "/etc/yum.conf" 加了这一行:

exclude=kernel*

把这一行删除就好了。之后如果遇到有关 Kernel 的失败状况,应该都是这个问题。

用 Fail2Ban 防范暴力破解 (SSH、vsftp、dovecot、sendmail)

Fail2Ban 可以用来防护 Linux Server 上的 SSH、vsftp、dovecot...等服务免于遭骇客使用暴力密码入侵。我以前曾写过即时封锁想要入侵 SSH 的程式,不过 Fail2Ban 厉害多了,也完全可以取代我写的程式。

安装 Fail2Ban

安装前可以先用下列指令来查看可安装的版本:

yum info fail2ban

像我的系统 (CentOS 5.x) 查出来有两个版本: 0.8.14 与 0.6.0,来自不同的套件库,但默认却安装 0.6.0,所以我必须要指定安装的版本为 0.8.14,以下的说明也是针对 0.8.*

安装 Fail2Ban:

yum install fail2ban

yum install fail2ban-版本

启动 Fail2Ban:

service fail2ban start
chkconfig fail2ban on

继续阅读

解决无法读取 mcrypt 模组的问题

明明已经用 yum 安装 php-mcrypt 了,在登入 phpMyAdmin 时,却出现了错误讯息:

无法读取 mcrypt 模组, 请检查 PHP 设定

执行 php -v ,也出现:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/module.so' - /usr/lib64/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0
; Enable mcrypt extension module

依照错误讯息,到 /usr/lib64/php/modules/ 查看,确实没有“module.so”,倒是有一个 “mcrypt.so”。
继续阅读