分类 Linux 下的文章

2015年1月13日更新!

本教程适用于XEN结构VPS或者独立服务器。

下面的安装适用于CentOS 5 32bits/64bits:

wget http://www.diahosting.com/dload/pptpd.sh
sh pptpd.sh

安装完成后会在ssh终端显示vpn用户名和密码。

管理vpn用户时,直接编辑/etc/ppp/chap-secrets文件,按照相同格式添加用户名和密码即可。

centos 6安装:

wget http://www.rockia.com/dl/pptpd6.sh
chmod +x pptpd6.sh
./pptpd6.sh

如果连接出现PPP 734错误,请参考:

在/etc/ppp/pptpd-options里,找到require-mppe-128一行,加井号注释掉
/etc/init.d/pptpd restart重新启动pptp服务

回到你的windows客户端(如果你的客户端用的是windows的话)
编辑你的pptp连接的属性,找到安全页,在数据加密项中选择“可选加密(没有加密也可以连接)”

转自:http://www.cnblogs.com/moher/archive/2013/02/02/2890464.html
https://www.centos.bz/2011/05/linux-centos-xen-pptp-vpn-install/

apf

如果启动apf防火墙出现如下错误:

unable to load iptables module (ip_tables), aborting
# apf 无法载入iptables 模块(ip_tables),意外终止

即你的内核编译iptables是静态的,而不是作为一个模块,修改:/etc/apf/conf.apf

MONOKERN=”0″ 改为 “1″

保存退出,apf -r 重启apf就可以解决此错误。

LNMP0.9默认的环境关闭了scandir,所以无法显示主题列表,开启操作如下:

打开PHP配置文件:/usr/local/php/etc/php.ini

找到 disable_functions ,删除 scandir

重启Php使修改配置生效: /etc/init.d/php-fpm restart

1、在 /etc/nginx 下创建 vhosts 目录

2、在 /etc/nginx/vhosts/ 里创建一个名字为 www.cnweed.com.conf 的文件,内容如下

    server {
        listen       80;
        server_name  www.cnweed.com; #绑定的域名

	index index.php;      #默认首页
	error_log  logs/www.cnweed.com.log;# 关闭日志直接注释即可

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
        proxy_cache_key "$scheme://$host$request_uri";
        #缓存key规则,用于自动清除缓存。
        
        proxy_cache cache_one; 
        #缓存区名称,与前面定义的相同

        proxy_cache_valid 200 304 3h;
        proxy_cache_valid 301 3d;
        proxy_cache_valid any 10s;
        #200 304状态缓存3小时
        #301状态缓存3天
        #其他状态缓存(如502 404)10秒
        
        proxy_set_header   X-Real-IP  $remote_addr;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        #向后端传递访客ip
        
        proxy_set_header   Referer http://www.cnweed.com;    #强制定义Referer,程序验证判断会用到
        proxy_set_header   Host www.cnweed.com;          #定义主机头,如果目标站点绑定的域名个server_name项的吻合则使用$host
        proxy_pass http://100.100.100.100;            #指定目标,建议使用IP或者nginx自定义池
        proxy_set_header Accept-Encoding "";            #清除编码
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

- 阅读剩余部分 -

Apf是一款Linux常用的免费防火墙,可以配合DDoS-Defate抵挡一定流量的攻击,经过测试感觉还是不错的,挺好用的。

APF安装



下载APF源码

# wget http://www.rfxn.com/downloads/apf-current.tar.gz

解压缩

# tar -xvzf apf-current.tar.gz

进入 APF目录

# cd apf-0.9.7-1/ or whatever the latest version is.

运行安装文件

# ./install.sh

APF配置



修改配置文件

# vi /etc/apf/conf.apf

端口设置 (INGRES)
cPanel的设置

     # Common ingress (inbound) TCP ports
     IG_TCP_CPORTS=" 20,21,22,25,26,53,80,110,143,443,465,993,995,2082,
     2083,2086,2087,2095,2096,3306,6666"\
     # Common ingress (inbound) UDP ports
     IG_UDP_CPORTS="21,53,465,873"

DirectAdmin 面板的设置

     # Common ingress (inbound) TCP ports
     IG_TCP_CPORTS=" 21,22,25,53,80,110,111,143,443,587953,2222,3306,32769"
     # Common ingress (inbound) UDP ports
     IG_UDP_CPORTS="53,111,631,724,5353,32768,32809"

让APF监控外出流量
修改: EGF="0" 为 EGF="1"

Tell APF what ports to monitor
Common egress (outbound) TCP ports (for Cpanel servers)
EG_TCP_CPORTS="21,22,25,26,37,43,53,80,110,113,443,465,873,2089,3306"

Common egress (outbound) UDP ports
EG_UDP_CPORTS="20,21,53,465,873"

Common ICMP (outbound) types
'internals/icmp.types' for type definition; 'all' is wildcard for any
EG_ICMP_TYPES="all"

Save your changes! Ctrl+X then press Y
Start APF
/usr/local/sbin/apf -s
If all works edit the config file and change the developer mode to 0
pico /etc/apf/conf.apf
修改 DEVM="1" 为 DEVM="0"

重启 APF

# /usr/local/sbin/apf -r

查看APF日志
查看日志 tail -f /var/log/apf_log

输出类似下面的内容:

   Aug 23 01:25:55 ocean apf(31448): (insert) deny all to/from 185.14.157.123
   Aug 23 01:39:43 ocean apf(32172): (insert) allow all to/from 185.14.157.123

让APF随服务器自动启动
让APF随服务器自动启动,运行下面的命令:

chkconfig --level 2345 apf on

禁止APF自动启动,运行下面的命令:

chkconfig --del apf

通过APF禁止IP
可通过下面两种方法禁止IP

通过命令:
/etc/apf/apf -d IPHERE COMMENTHERENOSPACES

>-d 表示禁止IP

> IPHERE 要禁止的IP地址

> COMMENTSHERENOSPACES 注释该IP被封的原因

该命令是立即生效的

例子:

./apf -d 185.14.157.123 TESTING

vi /etc/apf/deny_hosts.rules

文件中多出来:

   # added 185.14.157.123 on 08/23/05 01:25:55
   # TESTING
   185.14.157.123

通过编辑文件 deny_hosts.rules
vi /etc/apf/deny_hosts.rules

然后在该文件中添加要过滤的IP. 需要重新APF设置才会生效:

/etc/apf/apf -r

解禁IP
从deny_hosts.rules文件中移除IP就可以解禁该IP.

直接编辑文件
vi /etc/apf/deny_hosts.rules

找到IP并删除掉,然后重启APF:

/etc/apf/apf -r

使用命令
如果IP不在deny_hosts.rules, 使用该命令可以将IP添加到APF的白名单中allow_hosts.rules

/etc/apf/apf -a IPHERE COMMENTHERENOSPACES

> -a 表示允许IP

> IPHERE 要允许的IP地址

>COMMENTHERENOSPACES 注释

例子:

./apf -a 185.14.157.123 UNBLOCKING

vi /etc/apf/allow_hosts.rules

   # added 185.14.157.123 on 08/23/05 01:39:43
   # UNBLOCKING
   185.14.157.123

APF自定义Iptables命令
/etc/apf下有2个配置文件postroute.rules和preroute.rules。把Iptables的POSTROUTE和 PREROUTE命令放入对应的配置文件,APF在启动时就会自动调用实现NAT转发。 其他Iptables自定义命令可以直接写入/etc/apf/firewall里面。

APF常用操作命令

apf -s # 启动APF防火墙

apf -r # 重启APF防火墙

apf -f # 刷新APF防火墙配置文件

apf -l # 列出APF的配置信息,与iptables -nL类似

apf -st # APF信息统计。主要包括白名单,黑名单信息。

apf -a IP地址/IP段(FQDN) "注释" # 将IP/IP段添加到白名单

apf -d IP地址/IP段(FQDN) "注释" # 将IP/IP段添加到黑名单

apf -u # 将IP/IP段从白/黑名单中删除

DoS-Deflate是一款免费的用来防御和减轻DDoS攻击的软件。它通过netstat监测跟踪创建大量网络连接的IP地址,在检测到某个结点超过预设的限制时,该程序会通过APF或iptables禁止或阻挡这些IP。默认配置是单IP连接数超过150就封IP,可以有效的防御小流量攻击,如果是大流量的持续攻击,也能减轻服务器压力。VPS或者服务器用都不错。

- 阅读剩余部分 -

清理系统:yum remove httpd #移除Hpptd,根据自己需求移除

1、安装Nginx

yum install gcc g++ vim libncurses5-dev make libxml2-dev
yum install subversion
yum install libpcre3 libpcre3-dev libcurl4-openssl-dev
yum install pcre* zlib* openssl*
wget -c  http://nginx.org/download/nginx-1.0.5.tar.gz
tar -zxf nginx-1.0.5.tar.gz
wget -c http://wiki.nginx.org/images/5/51/Nginx-accesskey-2.0.3.tar.gz
tar -zxf Nginx-accesskey-2.0.3.tar.gz
svn checkout http://substitutions4nginx.googlecode.com/svn/trunk/ substitutions4nginx-read-only
curdir=$(pwd)
cd nginx-1.0.5
./configure --user=nobody --group=nobody  --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --pid-path=/var/run/nginx.pid  --conf-path=/etc/nginx/nginx.conf   --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-pcre --with-http_sub_module --add-module=$curdir/substitutions4nginx-read-only --add-module=$curdir/nginx-accesskey-2.0.3
make
make install

2、配置nginx.conf 编辑/etc/nginx/nginx.conf

server
{
listen 80;
server_name gu.cnweed.com; #你要绑定的域名
location / {
proxy_pass http://www.google.com/; #你要反代的域名或IP
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

这是个简单的无缓存配置文件,proxy_pass处可填写要反代的域名。如果想用Nginx加速网站的话,就把网址改成虚拟主机的IP,Nginx绑定的域名和虚拟主机绑定的一致就可以了。这样当访客请求你网站数据的时候,域名解析到VPS,然后Nginx接到命令访问你网站,获取数据返回给访客;而访客输入数据给你虚拟主机的时候,也是这样,先是VPS获得访客的数据,然后VPS再提交给虚拟主机。这样Nginx就充当了中介和DNS的作用,如果VPS访问虚拟主机速度快,你访问VPS速度快,就能起到一个加速的作用。配置好以后,别忘了让Nginx生效,重启一下就可以了,命令如下:

3、重启NGINX

pkill nginx #关闭进程
nginx #启动Nginx

参考自:http://jybb.me/nginx-proxy-pass-and-substitutions4nginx

Error: MySql server not found.

MySql error : Access denied for user 'ftp'@'localhost' (using password: YES)

安装pureftp,一切顺利并完成了安装,不过登录ip/ftp,就提示上面错误。怎么解决呢?提示说使用了账号和密码但遭到 MySql 拒绝。所以我们登入到 MySql 添加相关账号或权限即可。

①登入 MySql  ,进入 “权限”  ;

②查看是否有ftp这个账户,也就是提示上写的那个账户,要根据提示查找相应账户!

(一)如果有,则选定账户点击旁边的   “编辑权限”   ,全选所有权限即可访问;

(二)如果无,则新建账户,添加所有权限,并更改config.php文件里的账户密码即可;config.php文件在ftp文件夹的根目录,一般在/home/wwwroot/ftp。

(三)如果有相应账户并且拥有全部权限,这种情况可能是config.php里的密码和数据库不一致造成的,如果忘记了密码,我们需要在数据库修改ftp账户的密码,账户信息一般在mysql数据库中的 user 表中,点击编辑查看“Password”中值,一般为32位MD5加密代码,我们到xmd5.com将我们需要的密码加密成32位MD5代码,然后替换掉原来的就可以了。