分类 运维技术 下的文章

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可以恢复原来的进程!

- 阅读剩余部分 -

在购买Linux VPS后,一般IDC都会给客户准备2块硬盘,一块用来存放用户数据,一块用来存放系统,这样在后台选择重做系统之后,另外一个磁盘分区的数据就不会丢失了..所以在购买VPS之后,要手动将另外一块硬盘激活,于是乎,就有了这个如何启用分区的教程:
通过fdisk -l我们可以看到/dev/xvdb(此名称因系统而异)容量有23.6G,
而且没有分区,接下来我们对它进行分区和挂载

[root@MyVPS ~]# fdisk -l
Disk /dev/xvda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          13      104391   83  Linux
/dev/xvda2              14        1044     8281507+  8e  Linux LVM

Disk /dev/xvdb: 23.6 GB, 23622320128 bytes
255 heads, 63 sectors/track, 2871 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System

对/dev/xvdb(此名称因系统而异)进行分区:

[root@MyVPS ~]# fdisk /dev/xvdb(开始执行命令)
The number of cylinders for this disk is set to 2871.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

# 输入n新建分区
Command (m for help): n(直接输入n回车)
Command action
   e   extended
   p   primary partition (1-4)
# p(这里输入P 回车)

/dev/xvdb中第1个分区
Partition number (1-4): 1(输入1回车)
First cylinder (1-2871, default 1):(回车)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2871, default 2871):(回车键)
Using default value 2871

# 输入W保存退出
Command (m for help): w(输入W回车保存)
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

将新分区xvdb1(此名称因系统而异)格式化为ext3格式(可使用mount命令查看当前第一盘是什么格式,建议相同)

[root@MyVPS ~]# mkfs -t ext3 /dev/xvdb1(必须执行这个命令将分区格式化)
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2883584 inodes, 5765319 blocks
288265 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
176 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 24 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

我们示范将新分区xvdb1挂载到目录/home
因为home已经存在,所以我们挂载
mount /dev/xvdb1 /home(这个命令必须执行,不然无法挂载成功)
如果你需要挂载在别的目录.可以新建一个目录挂载.如:home1,使用如下命令:
mkdir /home1 mount /dev/xvdb1 /home1(这个是根据你的需求扩展命令)
完成后我们通过df -hal可以看到,新分区已经挂载到目录/home上了

[root@MyVPS ~]# df -hal (执行命令检查是否挂载成功)
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                      5.7G  1.4G  4.1G  25% /
proc                     0     0     0   -  /proc
sysfs                    0     0     0   -  /sys
devpts                   0     0     0   -  /dev/pts
/dev/xvda1             99M   28M   67M  30% /boot
tmpfs                 256M     0  256M   0% /dev/shm
none                     0     0     0   -  /proc/sys/fs/binfmt_misc
sunrpc                   0     0     0   -  /var/lib/nfs/rpc_pipefs
/dev/xvdb1             22G  173M   21G   1% /home

最后添加开机自动挂载: echo "/dev/xvdb1 /home ext3 defaults 1 2" >> /etc/fstab(必执行命令,开机后自动挂载)
这样就完成了!
通过后台控制系统重做系统之后,只需要重新挂载一次即可
mount /dev/xvdb1 /home
最后,重新添加自动挂载即可:
echo "/dev/xvdb1 /home ext3 defaults 1 2" >> /etc/fstab

野草博客

野草博客

要做主题了,一个稳定的测试环境是在所难免的。如果放在网络上,难免会出现各种各样的问题,比如说上传修改麻烦,或者有时候没网络。所以这时候选择在本地搭建一个PHP环境是非常好的!我亲身体验,此软件安装非常简便,而且功能上也不错,本地的PHP环境可以完美安装WP最新版,运行无错~

- 阅读剩余部分 -