CentOS 7 64bit如何安装php soap模块

错误提示:
Your server does not have the SOAP Client class enabled – some gateway plugins which use SOAP may not work as expected.
查看soap模块是否安装的办法:在php的安装目录下运行php -m来查看
/usr/bin/php -m |grep 'sosap'

如果没有安装,则进入php的安装源文件夹

cd /tmp && tar zxvf php-5.4.16.tar.gz && cd php-5.4.16/ext/soap

此处自己去php官方下载相应的版本。

进入后运行phpize命令
/usr/bin/phpize

碰到错误提示,安装两个依赖包解决

# /usr/bin/phpize
Can’t find PHP headers in /usr/include/php
The php-devel package is required for use of this command.
yum install php-pear
yum install php-devel

查看信息是否有还有错误,没有出错的话运行如下命令:

./configure –-with-php-config=/usr/local/php/bin/php-config –enable-soap
./configure --with-php-config=/usr/bin/php-config --enable-soap

然后是安装编译

make
最后是安装
make install
安装好之后会提示soap.so文件的保存路径
# make install
Installing shared extensions:     /usr/lib64/php/modules/
接着修改php.ini文件
vi /etc/php.ini
查找/etc/php.ini中的extension_dir = “./”,默认是注释掉的
修改为

extension_dir = "/usr/lib64/php/modules/"

并在此行后增加如下,然后保存:

extension = "soap.so"

执行php-fpm看看有没有错误

没有php-fpm,安装一个吧
yum install -y php-fpm
重新启动apache:
systemctl restart php-fpm
再运行php -m就已经能看到扩展的soap模块了。

我为什么从Andriod转投iOS 手机云服务的奇客观点(原创)

选择iOS的原因,主要是iCloud和苹果系统对CalDav&CardDav的原生支持。这里和大家分享一下目前各种手机云服务的差别和使用问题。

主要对比的服务有:

  • iCloud
  • Gmail + Google Calendar + G+ Photo + Google Drive
  • OneDrive + Outlook.com + OneNote
  • 腾讯邮箱+微云+QQ同步助手
  • 百度云

对比的服务包括:

  • 通讯录(包括CardCav)
  • 日历及共享(包括CalDav)
  • 提醒事项(包括IMAP Task列表支持)
  • 邮件
  • 文件存储
  • 照片云同步和分享
  • 在线Office 文档编辑
  • 文件同步
  • 备忘录(记事本)同步

iPhone-ITGeeker

MWC 2015该发布的新手机也差不多了,三星的S6改变了很多,但几乎所有的报道都是谈它的硬件如何如何。但硬件再怎么变,似乎也就那样。从2009年用G1开始,到现在已经6个年头的android了,终于决定要投奔iOS了,终究原因还是因为Google在中国访问不顺畅。

iCloud – 简便的一体化手机云服务

另外,在android系统,至今还没有那个手机云服务能够提供像iCloud这样简便的一体化云服务:通讯录(包括CardCav),日历及共享(包括CalDav),提醒事项(包括IMAP Task列表支持),邮件,文件存储,照片云同步和分享,在线Office 文档编辑,文件同步,备忘录(记事本)同步。

iCloud是iOS内置的,只需一个账号登录就可以完全享受这些服务,而其它的服务都要安装2-3个应用才能实现这些功能,甚至还无法满足这些服务。

Google谷歌 – 强大的云组合Gmail + GPlus Photo + Google Drive

Android的谷歌可以通过:Gmail + G+ Photo + Google Drive来实现,但是在国内很难顺畅使用,如果和我一样使用的是移不动的官方版3G/4G手机,那是阉割的没有半点Google服务。入手行货之后,首先就是Root,然后就是刷入GAPPS(谷歌应用包),然后基站定位功能等等,那是一个折腾啊……而且2014年底开始,翻墙越来越不容易,翻过去了还是不再稳定,家里的路由器刷了DD-WRT,公司的服务器用了dnsmasq,虽然翻墙问题不大,但还是时常不稳定,那是一个无奈……年龄渐长,不愿折腾了……

Google一直号称是开发的平台,本身Gmail也支持CalDav和CardDav,但偏偏android手机应用没有能很好支持这两个服务的。维基百科有一篇专门列出了很多支持这两个协议的软件Comparison of CalDAV and CardDAV implementations  但几乎所有这些对android都不能很好的支持,包括一些收费的应用,实在匪夷所思。难道谷歌认为,android上的就只用Gmail吗?如果我也要使用其它CalDav或者CardDav呢?

现在公司的平台多支持使用CalDav和CardDav,使用android让我大费周折。Caldav需使用sol日历同步才行,有时候不行还得先同步到iCloud,然后再用iCloud同步软件同步到android手机,那是一个曲折……在iPad上试过CalDav和CardDav,原生支持,非常好用。

Microsoft微软 – 蜗牛的速度和外包开发的应 OneDrive + Outlook.com+OneNote

OneDrive(之前称SkyDrive)结合Outlook.com(之前称Hotmail)基本也能满足这一要求,当然Task同步还是没有的。备忘录(记事本)可以使用更强大的OneNote。但是速度奇慢,每次应用的登录其实都是web页面的登录,不人性化不说,使用体验很差。另外Outlook一直外包给一家叫Seven的手机应用开发商开发,始终用起来不太顺手,或者功能欠缺,更新升级很慢。2014年开始,Onedrive也被封的差不多,需要翻墙才能使用正常速度访问。加之和win8.1的同步协助几乎没有,体验感就更加若有若无了。OneDrive在android端上传同步图片还是稳定的,但在Win8.1桌面打开的速度是很慢的,而且Morden界面很不友好。

Tencent腾讯 – 功能限制多,弱爆了!邮箱+微云+QQ同步助手

QQ邮箱做的越来越好了,但和Gmail差距那还是一个大,对于里面的标签和邮件规则的操作竟然每天还是有次数限制,而且如果删除一些规则和标签,很容易就会出现会混乱。让人迷惑的是,腾讯竟然还急不可耐的推出收费服务。

去年底Gmail被封之后,QQ邮箱推出可以收发Gmail邮箱的服务,但是速度奇慢,不好的服务,不要推出来了吧!

QQ日历可以和微信的好友分享还不错,适合国情。但是邮箱里建立的日历竟然没法在QQ邮箱内共享给好友,奇葩!Task列表还是不支持,记事本功能还是有简单的,Office文档在线编辑还是不支持的,倒是可以用WPS来代替。

照片和文件同步需要使用微云,神奇的是微云竟然现在手机端只能同步2000张左右照片,就不让同步了,无语……再有就是微云同步速度很慢,很多文件无法同步成功,但也不告诉你为啥?微云很大方,像ITGeeker总共有11282.84G空间,不过不让同步,你也用不着。

QQ邮箱的通讯录编辑功能弱爆了,谷歌通讯录导过来要丢掉好多信息的,不过支持exchange同步,让android手机方便了不少,当然也支持caldav和carddav,但支持同步的及时性比较差,容易出错,搞不清楚有没有同步好,用着还是不放心。

好在后来更新的QQ同步助手速度有了质的提升,但又不支持即时同步,每次要手动同步,那是一个上传,又要下传,出错概率奇高,合并重复候选人功能又似乎是另一个鸡肋,不过倒是觉得在提升,希望继续加油!

百度云

和QQ同步一样除了收集你的通讯录,通话记录,短信息,照片之外,没有什么能帮你提高手机使用效率的。百度云没有日历功能,国人似乎对日历的使用要求比较低,很多人可能都还不习惯使用,所以也没有好的应用软件来引导我们来使用,和日历有些类似的GTD类的应用好的也是国外的为主,比如andy.do。

百度还没有邮箱服务,这个问题不是很大,可以用别的,Task就更不用提了,百度没有想帮你提升效率,是在备份(收集)你的信息。

记事本是有的,也可以收集网上的感兴趣页面,管理方面还是有欠缺,还是用印象笔记比较好。虽然印象笔记也有收费版,但免费版还是非常够用的,同步速度快,几乎不会漏掉收藏的内容。

百度云的照片备份速度是非常值得一提的,快!!!还有空间大,容易分享给朋友。但应用在android手机上的启动速度非常期待提升,每次在android手机打开百度云,那是一个等待啊。

Office同样可以用wps代替,wps功能还不错,而且永久免费。百度云有云管家和同步盘,云管家用来下载网上别人分享的大文件,速度快,很好用,还能备份一些特定目录和文件。但同步盘就没好好同步过,不知是否我的文件太多,几乎同步不动。题外话:

微云至少还能稍微同步一些,世界最好最强的Dropbox不能用,Google Drive不能用,OneDrive抽风越来越严重,国产的都同步不了,只能用自己的Owncloud和BTSync去中心化同步了。

怀念Android的好

虽然使用了iOS可能会失去一些非常喜欢的应用,比如gReaderPro,结合feedly使用,是一个比谷歌残忍杀害的Google Reader还好用的Feed阅读器,ITGeeker一直使用这个阅读器,加星标后同步到Pocaket二次处理,非常方便又稳定,国外的feed都能打开。使用iOS后只能凑合使用feedly不怎么友好界面的原生应用了。

展望将来的Android

如果谷歌服务能回到中国,我觉得还是会用回android的,毕竟谷歌的服务还是很完整,体验相当到位的,如果拆分了各项服务,谷歌的应用还是比苹果强的。

为表示期待,在更换到iOS之前,用钛备份完整备份了Android的资料,等G回来啊!

CentOS 7 x86_64适用的EPEL安装源 国内镜像列表

EPEL 是 Extra Packages for Enterprise Linux 的缩写(EPEL),是用于 Fedora-based Red Hat Enterprise Linux (RHEL) 的一个高质量软件源EPEL(http://fedoraproject.org/wiki/EPEL) 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。

epel468x120

安装EPEL源

官方源直接安装

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

国内的往往速度会更快

#中科大镜像源 高质量源
rpm -Uvh http://mirrors.ustc.edu.cn/centos/7.0.1406/extras/x86_64/Packages/epel-release-7-5.noarch.rpm
 
#浙大源 也非常不错
rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
 
#上海交大源,更新比较快
rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

#还有东北的活雷锋东软的源,最近有些抽风,经常打不开
http://mirrors.neusoft.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

#sohu镜像源,更新比较慢 
rpm -Uvh http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-2.noarch.rpm

这是来自官方公布的数据(2015-01-28)

http://mirrors.fedoraproject.org/publiclist/EPEL/7/x86_64/#CN

配置EPEL源

vi /etc/yum.repos.d/epel.repo

[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
baseurl=http://ftp.sjtu.edu.cn/fedora/epel/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
baseurl=http://ftp.sjtu.edu.cn/fedora/epel/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
baseurl=http://ftp.sjtu.edu.cn/fedora/epel/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

vi /etc/yum.repos.d/epel-testing.repo

[epel-testing]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch
baseurl=http://ftp.sjtu.edu.cn/fedora/epel/testing/7/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

[epel-testing-debuginfo]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Debug
baseurl=http://ftp.sjtu.edu.cn/fedora/epel/testing/7/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-testing-source]
name=Extra Packages for Enterprise Linux 7 - Testing - $basearch - Source
baseurl=http://ftp.sjtu.edu.cn/fedora/epel/testing/7/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

这是已经替换好上海交大源的文件,如果想使用中科大的,请用http://mirrors.ustc.edu.cn/来替换http://ftp.sjtu.edu.cn/fedora/就可。其它以此来推。

检查源是否已添加

yum repolist

运行命令生成缓存

yum clean all && yum makecache

选择速度最快的yum源

yum安装插件yum-plugin-fastestmirror

yum install yum-plugin-fastestmirror

 

Zimbra 8.5GA升级到8.6GA之后 Zimbra Desktop “SSL peer shut down incorrectly 异常”的解决方法

当你顺利升级到Zimbra8.6GA之后,你会发现桌面客户端ZD 7.2.5版本无法收取邮件,进入设置,编辑我的账户,选择认证后保存,出现错误提示:

“SSL peer shut down incorrectly 异常”

zimbra-divestiture-tn

更多错误信息:

zclient.IO_ERROR: Remote host closed connection during handshake

Display error details
com.zimbra.common.soap.SoapFaultException: Remote host closed connection during handshake ExceptionId:com.zimbra.common.zclient.ZClientException: Remote host closed connection during handshake ExceptionId:btpool0-50:1418841437568:ef1b4de35db6766a Code:zclient.IO_ERROR at com.zimbra.common.zclient.ZClientException.IO_ERROR(ZClientException.java:45) at com.zimbra.cs.zclient.ZMailbox.invoke(ZMailbox.java:570) at ......

官方论坛已有人贴出了解决方案,有说更新Java版本的,有说不用更新JRE的,ITGeeker技术奇客采用了下面的方法,并已解决问题:

以'zimbra'运行以下命令:

su zimbra

zmprov mcf +zimbraMailboxdSSLProtocols SSLv2Hello

然后重启mailbox服务:

zmmailboxdctl restart

官方相关帖子: https://community.zimbra.com/collaboration/f/1886/t/1136983

CentOS 7 64bit Minimal安装后的初步10项优化和配置(更新epel和remi源安装)

CentOS官方于2014年7月7日发布64位CentOS 7.0.1406开始,不知不觉已快半年了。也已经有越来越多的软件开始支持CentOS7了。ITGeeker也尝试将越来越多的服务架构于其之上。

CentOS 7是一个大版本更新,应该有不少提升。连服务的启动停止命令也有了很大的变化。

CentOS 6及之前:

service httpd restart

CentOS 7:

systemctl start httpd.service

centos7

1. 更新系统并安装必备的组件

yum upgrade or yum update
yum install wget telnet perl perl-devel net-tools kernel-devel 
yum groupinstall "Development tools" -y

安装这些之后会大大方便今后安装其他应用是碰到的依赖包问题。其中net-tools是为了提供dig, nslookup, ipconfig等命令,方便配置CentOS 7初始化网络环境。如果不安装这个,在CentOS 7中,可以使用ip addr命令来代替ipconfig进行当前ip地址查询。

2. 添加源(repository)REMI & EPEL

yum安装时,要想安装比较新的版本软件,可以试试这两个源。都有一些国内镜像,我添加的EPEL是阿里云镜像的。

这是适合CentOS 6的源

cd /tmp && wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm && wget http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm -Uvh remi-release-6.rpm epel-release-6-8.noarch.rpm

真正适合CentOS 7的epel和remi源

rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

如果国外没法用,那用国内的镜像源

#中科大镜像源
rpm -Uvh http://mirrors.ustc.edu.cn/centos/7.0.1406/extras/x86_64/Packages/epel-release-7-5.noarch.rpm

#浙大源
rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

#上海交大源
rpm -Uvh http://ftp.sjtu.edu.cn/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

#sohu镜像源,更新比较慢 
rpm -Uvh http://mirrors.sohu.com/fedora-epel/7/x86_64/e/epel-release-7-2.noarch.rpm

使用方法:

yum --enablerepo=remi install php mysql php-mysql mysql-server phpmyadmin 

或者

yum --enablerepo=epel install php mysql php-mysql mysql-server phpmyadmin

3. FQDN配置,全称Fully Qualified Domain Name

有些软件,特别是邮件系统对这个要求比较高。

vi /etc/hosts

127.0.0.1 localhost.localdomain localhost geeker
::1 localhost.localdomain localhost geeker

vi /etc/sysconfig/network
HOSTNAME=geeker

设置好之后,查询是否完整

hostname -f

4. 关闭Selinux

这是Centos系统的安装机制,单单往往导致很多软件无法正常安装,让我们关掉它吧!

/etc/selinux/config
在 SELINUX=enforcing 前面加个#号注释掉它
#SELINUX=enforcing
然后新加一行
SELINUX=disabled
#SELINUXTYPE=targeted #注释掉这行

保存,退出,重启系统,搞定。

不想重启,可以使用

setenforce 0 #使配置立即生效

5. CentOS 7的防火墙关闭和iptables安装

CentOS 7.0默认使用的是firewall作为防火墙,但可能一下子很难适应,让我们先改回原先的iptables防火墙吧!

关闭CentOS 7的firewall:

systemctl stop firewalld.servic #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

安装iptables防火墙

yum install iptables-services #安装
vi /etc/sysconfig/iptables #编辑防火墙配置文件

启动iptables防火墙

systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动

6. 本地SMTP邮件发送功能(Postfix)

很多软件和服务可以用到这个功能给用户发送通知邮件,需要配置一下。

最好加上一个认证,使用Postfix + Saslauthd

yum remove sendmail   #如果有原先的sendmail,先移除
yum install postfix   
vi /etc/postfix/main.cf   #编辑postfix主配置文件
useradd itgeeker   #增加用户
passwd itgeeker   #设置用户密码
yum install cyrus-sasl*

/bin/systemctl restart saslauthd.service && /bin/systemctl restart postfix.service   #启动postfix和saslauth服务

最好用telnet测试一下,前面安装的telnet就发挥作用了。

telnet localhost smtp
ehlo localhost
mail from:
rcpt to:<alanljj@qq.com>
data
Welcome to itgeeker mail server
.
quit
#查看邮件内容
less /var/log/maillog
cd /root/Maildir/new #注意M要大写
ll
cat ***** #*代表列出的文件名,可以查看新的邮件内容
vi /var/log/maillog
Tips小技巧:
有时候telnet登陆后就退不出来了ctrl+c也不管用此时可以使用ctl+] 切换,然后quit退出。

7.  CentOS 7时间同步及更改

和之前基本一样:

date

yum install ntpdate -y
ntpdate time.windows.com && hwclock -w

#连网更新时间,如果成功,将系统时间,写入BOIS

hwclock -w 或 hwclock --systohc

date -s 20150119
date -s 17:28:00

8. Shell登陆操作显示中文乱码问题(和CentOS 6一样,问题还是存在)

方法一:

vi /etc/sysconfig/i18n 文件中修改LANG的设置为:
#LANG="en_US.UTF-8"
#SYSFONT="latarcyrheb-sun16"
LANG="zh_CN.GBK"
LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

然后在/etc/profile文件中增加export LC_ALL=zh_CN.GBK内容。使得全部的LC*都统一了。

重启主机

方法二: 更改shell的显示语言

ITGeeker技术奇客使用的是xshell,直接在当前链接的属性-终端-选择UTF-8为编码即可。如果你经常使用变换使用shell,那就用第一种方法吧。

9. FTP服务安装(vsftpd安装)

 

为主机开通FTP服务还是非常有必要的,我们为主机快速安装vsftpd吧。

可以参考详细教程 CentOS6.5 64bit如何安装配置FTP服务(vsftpd)

yum install vsftpd -y
vi /etc/vsftpd/vsftpd.conf

#记得CentOS 7启动命令有所不同

systemctl restart vsftpd
systemctl enable vsftpd

10.  Vmware Tools安装

如果你使用的是虚拟机,那最好装一下Vmware Tools

 

先点击Vmwar虚拟机管理界面菜单,虚拟机–安装Vmware Tools安装。

mkdir /mnt/cdrom && mount -t iso9660 /dev/cdrom /mnt/cdrom && cd /mnt/cdrom && cp VMwareTools-9.6.2-1688356.tar.gz /root

mount -t iso9660 /dev/cdrom /mnt/cdrom && cd /mnt/cdrom && cp VMwareTools-9.6.2-1688356.tar.gz /root

cd /root && tar zxvf VMwareTools-9.6.2-1688356.tar.gz && cd vmware-tools-distrib

安装vmware tools
./vmware-install.pl

中间的问题全部选择默认,可能会有错误提示,基本没啥问题。

依赖包,如果有需要 yum -y install perl perl-devel

请使用你的版本代替VMwareTools-9.6.2-1688356.tar.gz

Zimbra 8.5GA垃圾邮件过滤设置的5种方法 201/09/26更新

邮件系统里,和垃圾邮件的斗争是最激烈,最残酷的。这是一场没有硝烟的持久战。道高一尺,魔高一丈!

spam

 

1.提高特定域名权值

zimbra垃圾邮件过滤的第一步,可以通过提高特定域名权值,避免正规的域名被错误过滤。
修改配置文件:/opt/zimbra/conf/amavisd.conf.in (大约在348行找到{ # a hash-type lookup table (associative array)
首先把自己公司的域名加入,这样就不会把自己公司的邮件认为垃圾邮件了。

例如:’itgeeker.net’    => -10.0,

-10就是无条件信任了,相反+10就是无条件阻挡了。

其次,可把和公司相关的客户之类的域也加入。比如下头这些都是一些招聘网站投递简历的邮箱。省得hr收不到简历。

‘linkedin.com’                    => -9.0,
‘welink.com’                      => -9.0,
‘quickmail.51job.com’             => -9.0,
‘zhaopinmail.com’                 => -9.0,
‘zhaopin.com.cn’                  => -9.0,
’email.cjol.com’                  => -9.0,
’01job.cn’                        => -9.0,
‘job168.com’                      => -9.0,
’01hr.com’                        => -9.0,
‘chinahr.com’                     => -9.0,
‘web.job168.com’                  => -9.0,
切换到Zimbra用户,重新加载对应服务 
su zimbra 
zmamavisdctl reload

2. 白名单,黑名单


如果在amavisd.conf.in中,对某个域名加分后,所有该域名的邮箱权限的分也很高,导致无法很好的过滤垃圾邮件。所以对于特殊邮件采用黑白名单机制。这种方式完全跳过了过滤。可以针对单个邮箱设置即可。

增加黑白名单读取机制

配置文件:/opt/zimbra/conf/amavisd.conf.in
增加以下两行
read_hash(\%whitelist_sender, '/opt/zimbra/conf/whitelist'),
read_hash(\%blacklist_sender, '/opt/zimbra/conf/blacklist'),

然后建立黑白名单文件

touch /opt/zimbra/conf/blacklist
touch /opt/zimbra/conf/whitelist

输入黑白列表邮件。格式是一行一个邮箱名,例如:

abc@itgeeker.net

给两个文件赋予权限给zimbra账户

su root
chown zimbra /opt/zimbra/conf/blacklist
chown zimbra /opt/zimbra/conf/whitelist

最后以 zimbra 身份,执行以下指令重新启动 antispam 模组

su zimbra
zmamavisdctl reload
或
zmamavisdctl stop && zmamavisdctl start && zmamavisdctl status

 

3.关键字过滤


因zimbra对于某些中文关键词的支持并不是很高。所以可以自定义一些权值。
配置目录:/opt/zimbra/data/spamassassin/localrules (ZCS8.5的目录,之前8.0的目录为/opt/zimbra/conf/spamassassin)
创建自定义的邮件过滤规则集,可以直接下载(可能已经失效,需要的话请联系ITGeeker):
wget -N -P /opt/zimbra/conf/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
Chinese_rules.cf是用于业界广泛使用的免费垃圾邮件过滤系统SpamAssassin的中文垃圾邮件过滤规则集。由于以前没有中文的过滤规则集,SpamAssassin对中文邮件过滤的准确性不高。CCERT反垃圾邮件研究小组利用CCERT所掌握的最新和丰富的样本数据,推出了第一个基于SpamAssassin的中文垃圾邮件过滤规则集Chinese_rules.cf。该规则集每周更新一次,时效性非常好。
 
不过ITGeeker发现官网已经很久没有更新了。大家可以去官方关注一下动态。http://www.ccert.edu.cn
ITGeeker目前下载到的Chinese_rules.cf是updated 2005 Aug 14
垃圾邮件过滤规则的格式如下,可以网上找,建议去一些大学的系统来找,或者设定自己痛恨的词。
header CN_SUBJECT_1 Subject =~ /优惠/
describe CN_SUBJECT_1 Subject contains "优惠"
score CN_SUBJECT_1 1.254
header CN_SUBJECT_5 Subject =~ /合作/
describe CN_SUBJECT_5 Subject contains "合作"
score CN_SUBJECT_5 0.233

header CN_SUBJECT_6 Subject =~ /发票/
describe CN_SUBJECT_6 Subject contains "发票"
score CN_SUBJECT_6 0.055

设定好了,重启服务

zmamavisdctl reload

4.使用RBL列表配置


垃圾邮件过滤比较好的方式是用公开的垃圾邮件过滤列表来实现
国内用一下这个比较好
http://anti-spam.org.cn/
其中有4种列表
CBL,CDL,CBL+,CBL-
zimbra具体设置是在,管理全局设定–MTA设定–RBL列表中添加适合自己的即可。
cblless.anti-spam.org.cn
一些国外的RBL列表,也能抵挡很多英文垃圾邮件,但有时候会连接不上,引起Zimbra报错,大家可以都试试。

RBL列表-Zimbra官方推荐的

* zen.spamhaus.org
* psbl.surriel.com
* b.barracudacentral.org
* bl.spamcop.net
非官方推荐的:
* cbl.abuseat.org
* new.spam.dnsbl.sorbs.net
* all.s5h.net
* bl.blocklist.de
* dnsbl.inps.de
* ubl.unsubscore.com (note: Rejects mail from places such as Yahoo!, Facebook, etc.)
* virbl.dnsbl.bit.nl
* mail-abuse.blacklist.jippg.org
* dnsbl.njabl.org

The Client RHSBLs客户端RHSBL列表官方推荐 (updated June 2, 2014)

* dbl.spamhaus.org
* multi.uribl.com
* multi.surbl.org
* rhsbl.sorbs.net

Sender RHSBLs发件人RHSBL列表官方推荐

* multi.uribl.com
* multi.surbl.org
* rhsbl.sorbs.net
* dbl.spamhaus.org

Reverse Client RHSBLs反向客户端RHSBL列表官方推荐

* dbl.spamhaus.org

命令行添加RBL and RHSBLs

For RBLs:

zmprov mcf +zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"

For RHSBL clients:

zmprov mcf +zimbraMtaRestriction "reject_rhsbl_client dbl.spamhaus.org"

如何检查RBL列表是否添加成功?

查看/opt/zimbra/postfix(版本号)/conf/main.cf文件中的smtpd_recipient_restrictions项有没有 reject_rbl_client cblless.anti-spam.org.cn 这个内容?

如果没有的话说明还没生效,在root用户下执行

/opt/zimbra/postfix/sbin/postfix reload

据说,结合对本域的白名单设定,可以去除90%以上的垃圾邮件。

使用RBL需要注意的是会有部分错误过滤,可以根据情况调整。


5.使用SpamAssassin的local.cf配置黑白名单


SpamAssassin是一种安装在邮件伺服主机上的邮件过滤器,它是使用大量的预设规则检查垃圾信,这些规则会检查寄到网域内所有邮件的标头,内文,以及送信者。就像大多数Linux应用程序一样,SpamAssassin需要对配置文件的编辑。
这个配置文件的路径是:/opt/zimbra/data/spamassassin/localrules/local.cf(和之前的ZCS8.0目录不同,请参看底部说明)
whitelist_from关键字可指定不应该被视为垃圾邮件的地址blacklist_from用于指定应始终标记为垃圾邮件的地址
#Whitelist by ITGeeker
whitelist_from *@itgeeker.net
whitelist_from *@freegeeker.com.cn
#Blacklist by ITGeeker
blacklist_from *@001web.uk
 
可以在whitelist_from和blacklist_from行上指定多个地址,并用空格隔开。每个地址可以包含通配符。可以使用多个whitelist_from和blacklist_from行。

参考Customizing SpamAssassin on Zimbra

 
ZCS 8.5 and later
For ZCS 8.5, Spamassassin layout has been corrected as per the SpamAssassin developers. sauser.cf is migrated to the /opt/zimbra/data/spamassassin/localrules directory. This is the supported location for doing customizations of SpamAssassin for ZCS 8.5 and later.
 
ZCS 8
For ZCS 8.0, SpamAssassin scans for all *.cf files in /opt/zimbra/conf/sa and loads them in alphabetical order. If you create a sauser.cf file, it will be loaded after salocal.cf is loaded. This is the supported method for doing customizations of SpamAssassin for ZCS8.0

如何使用logrotate分割管理dnsmasq的日志 CentOS6.5 64bit

logrotate 程序是一个日志文件管理工具,Centos系统基本都默认已安装。它可以用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。也可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。

logrotate

目前logrotate的版本是logrotate-3.7.8,它的默认配置文件及中文说明:
cat /etc/logrotate.conf

 

# see "man logrotate" for details
# 所有的日志文件每周转储一次
weekly

# 转储的文件保留4份,也就是4周的文件
rotate 4

# 转储日志后,logrotate自动创建新的日志文件
create

# 给转储的日志文件加上日期后缀
dateext

# 压缩日志文件。默认是注释掉的
#compress

# 读入/etc/logrotate.d目录下的日志转储参数,当系统中安装了RPM软件包时,RPM包的日志转储参数一般会自动建立在/etc/logrotate.d目录下
include /etc/logrotate.d

# 对/var/log/wtmp日志转储的配置
/var/log/wtmp {
    monthly
    create 0664 root utmp
     minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

 

dnsmasq日志分割案例

1. 首先需要开启dnsmasq的日志记录

vi /etc/dnsmasq.conf

log-queries
log-facility=/var/log/dnsmasq/dnsmasq.log

2. 建立logrotate的配置文件

vi /etc/logrotate.d/dnsmasq
输入:
/var/log/dnsmasq/dnsmasq.log {
notifempty
weekly
dateext
rotate 58
sharedscripts
postrotate
[ ! -f /var/run/dnsmasq.pid ] || kill -USR2 `cat /var/run/dnsmasq.pid`
endscript
}

参数说明:

notifempty :如果是空文件的话,不转储。
weekly :日志文件每天转储一次。
rotate 5 ;转储文件分为5份。
postrotate/endscript :日志转储后执行的脚本。

完整参数参考

compress            通过gzip 压缩转储以后的日志
nocompress        不需要压缩时,用这个参数
copytruncate       用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate   备份日志文件但是不截断
create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
nocreate              不建立新的日志文件
delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
errors address     专储时的错误信息发送到指定的Email 地址
ifempty                 即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty            如果是空文件的话,不转储
mail address         把转储的日志文件发送到指定的E-mail 地址
nomail                  转储时不发送日志文件
olddir directory     转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir                转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript     在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript   在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily                     指定转储周期为每天
weekly                 指定转储周期为每周
monthly                指定转储周期为每月
rotate count          指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
size size               当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB(sizek)或者MB (sizem).

3. 执行logrotate

/usr/sbin/logrotate -vf /etc/logrotate.conf

logrotate命令格式解释:
logrotate [OPTION...] <configfile>
-d, --debug :debug模式,测试配置文件是否有错误。
-f, --force :强制转储文件。
-m, --mail=command :发送日志到指定邮箱。
-s, --state=statefile :使用指定的状态文件。
-v, --verbose :显示转储过程。

如果没有报错,生成了转储文件,dnsmasq正常运行,就OK了。

4. cron定时自动执行logrotate

在/etc/cron.daily目录下有logrotate执行的脚本。你可以通过crontab程序每天执行一次。也可以自己设定特定的计划来执行自己的日志切割脚本。
测试一下脚本先:
sh /etc/cron.daily/logrotate
vi /etc/crontab
33 3 * * * root run-parts /etc/cron.daily

CentOS6.5 64bit如何安装配置FTP服务(vsftpd)

FTP看似一个简单的服务,但在Linux上配置起来往往并没那么容易。ITGeeker技术奇客分享简单而使用的CentOS FTP配置服务,让你不在为架设FTP服务而困扰。
vsftpd-install-by-itgeeker2014

一、 vsftpd安装


一般在CentOS上都自动安装了vsftd,若没有安装则可以使用以下步骤进行安装
yum -y install vsftpd
service vsftpd start
chkconfig vsftpd on
touch /var/log/vsftpd.log # 创建vsftp的日志文件

在CentOS中,这样就可以完成了一个简单的匿名FTP的搭建。你可以通过文件资源管理器访问 ftp://YOURIPADDRESS 来进行访问,这个时候你可以看到里面有一个目录“pub”,其它什么都不能干。

二、 vsftpd虚拟用户配置

1. 编辑配置文件vi /etc/vsftpd/vsftpd.conf

anonymous_enable=NO                #设定不允许匿名访问
local_enable=YES                   #设定本地用户可以访问
chroot_list_enable=YES             #使用户不能离开主目录
xferlog_file=/var/log/vsftpd.log   #设定vsftpd的服务日志
ascii_upload_enable=YES
ascii_download_enable=YES          #设定支持ASCII
pam_service_name=vsftpd            #PAM认证文件名,PAM将根据/etc/pam.d/vsftpd进行认证

以下这些是关于Vsftpd虚拟用户支持的重要CentOS FTP服务配置项目。

默认vsftpd.conf中不包含这些设定项目,需要自己手动添加CentOS FTP服务配置。
guest_enable=YES         #设定启用虚拟用户功能。
guest_username=ftp       #指定虚拟用户的宿主用户。-CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser_conf  #设定虚拟用户个人vsftp的配置文件存放路径。存放虚拟用户个性化的配置文件名,和虚拟用户名相同

2. 创建chroot list,将用户ftp加入其中

touch /etc/vsftpd/chroot_list
echo ftp >> /etc/vsftpd/chroot_list

3. 进行虚拟用户认证配置

安装Berkeley DB工具,后面找不到db_load的问题就是没有安装这个软件包的原因。
yum install db4 db4-utils

然后,创建用户密码文本vuser_passwd.txt

vi /etc/vsftpd/vuser_passwd.txt

ftpuser1
ftppass1
ftpuser2
ftppass2

#注意奇数行是用户名,偶行是密码

生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,并增加以下两行

vi /etc/pam.d/vsftpd

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd

现在可以创建虚拟用户个性化FTP服务配置文件

mkdir /etc/vsftpd/vuser_conf/
vi /etc/vsftpd/vuser_conf/ftpuser1

local_root=/opt/var/ftp1 #虚拟用户的根目录(根据实际修改)
write_enable=YES 可写
anon_umask=022 #掩码
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

4.建立目录和设定权限

mkdir /opt/var/ftp/ftpuser1        #给刚建立的用户创建目录
chmod 777 /opt/var/ftp/ftpuser1    #设定目录权限

5. 启动vsftp服务

service vsftpd restart
CentOS上的FTP服务假设完毕!!!

CentOS6.5如何修改和设定FQDN

FQDN是Fully Qualified Domain Name的缩写, 含义是完整的域名. 例如, 一台机器主机名(hostname)是www, 域后缀(domain)是itgeeker.net, 那么该主机的FQDN应该是www.itgeeker.net.

FQDN-itgeekr

1. FQDN查询命令

hostname -f
#显示全域名(FQDN,Fully Qualified Domain Name)

2. 设置Linux的FQDN方法(永久修改)

/etc/sysconfig/network + /etc/hosts文件组合修改

a. vi /etc/sysconfig/network 配置文件

NETWORKING=yes
HOSTNAME=localcentos6.itgeeker.net #此处输入你想显示的主机名

 b. 在/etc/hosts文件中增加一行主机记录

第一个字段是该主机的IP地址, 第二个字段是你希望设置的FQDN, 最后是刚刚设置的主机名。

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#原始的可以保留不变

192.168.188.200 localcentos6.itgeeker.net localcentos6

#如果ip地址使用环回地址127.0.0.1,结果还是不对,在重启httpd会告诉你无法确定你的FQDN

[root@localcentos6 ~]# service httpd restart
Stopping httpd:        [FAILED]

Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                      [  OK  ]

#注意顺序,网上有把hostname主机名localcentos6放在fqdn前面的就是192.168.188.200 localcentos6 localcentos6.itgeeker.net 结果用hostname -f查出来是不是fqdn.正确顺序应该是:

ip fqdn hostname

设置好之后, 重启主机就可以看到新的主机名了。

通过hostname -f看到的FQDN就应该是:

localcentos6.itgeeker.net

CentOS6.5 64bit如何关闭Selinux

SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。

selinux

但是SElinux是php的天敌,经常由于CentOS系统默认系统的安全性配置导致些莫名其妙的问题,比如SElinux本来是用于安全子系统的权限控制,可是搞不好就发现限制多多。所以很多软件安装之前要求关闭SElinux.

如何查看SELinux状态?

1. SELinux status参数为enabled即为开启状态

/usr/sbin/sestatus -v
SELinux status: enabled

2、getenforce命令检查

如何关闭SElinux

1. 临时快速关闭SElinux,不用重启机器

/usr/sbin/setenforce 0 立刻关闭 SELINUX
/usr/sbin/setenforce 1 立刻启用 SELINUX

2. 在启动时加载Selinux禁用命令行

echo "/usr/sbin/setenforce 0" >> /etc/rc.local

3. 编辑配置文件达到一劳永逸,当然会对安全有所影响

vi /etc/selinux/config

#SELINUX=enforcing #注释此行
#SELINUXTYPE=targeted #注释此行

SELINUX=disabled #增加此行

:wq 保存并关闭

shutdown -r now #重启系统