分类 运维技术 下的文章

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

不知道你有没遇到过有时候不能访问国外网站的情况,有时候也许是国际宽带出口有问题,有时候可能是电信刻意隐蔽,某些时候是因为这些网站有问题,但也有些时候是电信为了跳转到自己的404得到广告利益。怎么解决呢?只要更改DNS就可以了。前些天我连自己的博客都不能访问,用IE的话就会弹出电信的404。当时以为是服务器出问题了,后来听朋友说最近某些地方国际宽带出口有些问题,叫我改下DNS试试,结果就可以了。看了看探针,服务器并没有除问题。

- 阅读剩余部分 -

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代码,然后替换掉原来的就可以了。

前些天因为搬到朋友VPS上后,感觉少了点儿什么,但没在意。久了就发现了,怎么QQ邮箱里都没留言提醒!而后台一看却有人留言。其实原因是LNMP 0.9禁用了部分危险函数:

passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

应该是因为禁用了pfsockopen、fsockopen 才造成SMTP无法发送邮件。只要从禁用列表中删除这两个函数就可以了,代码如下:

sed -i 's/disable_functions =.*/disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket/g' /usr/local/php/etc/php.ini

需要注意的是,这是一段代码,需要全部复制后执行。

然后重启让他生效:/etc/init.d/php-fpm restart

大功告成,测试用HGK SMTP发信没问题~

对于新手来说这个安装包是非常不错的,安装非常简单,而且功能强大,占用内存小。
以下是转载来的的图文安装教程,原文链接在文章底部。

系统需求:

需要2 GB硬盘剩余空间

128M以上内存,OpenVZ的建议192MB以上(小内存请勿使用64位系统)

Linux下区分大小写,输入命令时请注意!

安装步骤:

1、使用putty或类似的SSH工具登陆;
登陆后运行:screen -S lnmp
如果提示screen命令不存在可以执行:yum install screenapt-get install screen安装,详细的screen教程点击这里

为了以防万一建议设置,如果万一网络突然断线或者不小心关掉了putty可以恢复原来的进程!

- 阅读剩余部分 -