Rootop 服务器运维与web架构

2011-10-28
发表者 Venus
暂无评论

Foxmail无法连接EMOS邮件服务器(fail2ban)排错实例

       案例摘自网络:

       公司用的是EMOS 邮件服务器(内网IP:192.168.10.5,端口25、110映射到外网) postfix+extmail 公司使用邮件的员工在80人左右,都是用foxmail收发邮件,之前系统一切正常,最近出现一个很奇怪的问题:foxmail会突然连接不上邮件服务器,连接超时,发送邮件正常。

所有foxmail客户端的POP3、SMTP地址用的都是公司外网地址,出现问题后,我把foxmial的POP3地址该为内网地址192.168.10.5,收取正常。之后,我通过telnet命令分别连接邮件服务器的25 110端口,telent+内网IP+端口 一切正常
telnet+外网IP+端口 25端口正常 110端口连接不上。

路由映射正常,邮件服务器出现这个问题后,重启路由解决不了,只能重启邮件服务器,然后一切恢复正常,但是过一段时间(大约6小时不等,时间或短或长),又会重复出现无法接收邮件的情况 。个人设想是邮件服务器POP3端口的问题!

     分析一下:

      在EMOS服务器中,有一个组件为fail2ban,其在服务器中起到了屏蔽ip的作用,当来自于同一个ip经过多次身份验证错误的时候,fail2ban会自动将其加入到iptables,过滤掉,在配置文件中指定的时间之后可以自动解封。经过fail2ban的过滤,那么我们的ssh、pop3 服务会更安全,它防止了一定程度的暴力破解。

参考下:https://www.rootop.org/?p=603

     以上故障可以看出,telnet emos服务器内网IP的25  110 端口没有任何问题,说明端口、服务运行正常。

telnet emos 服务器外网IP的25 端口没问题,110出现无法连接。众所周知110端口用来接收邮件,在此期间还用于传递身份验证信息。到此我们应该想到,传递身份验证信息的时候,如果遇到有密码错误呢?对,fail2ban开始起作用了,当达到fail2ban中定义的错误次数时,此ip就被加入到iptables中直接拒绝掉,记住,fail2ban是对服务进行过滤,所以不会对其它端口造成影响。

     因为案例中公司员工都是通过外网来访问网络边缘设备的外网ip所映射到的服务器,只要公司员工邮箱有身份认证错误,那么公司网络出口设备上的外网ip会被fail2ban封掉,导致全部不能上,重启网络设备无效是正确的,重启服务器,等于重启fail2ban服务,解除封锁的ip,即可恢复正常。

最有效的方法为,在fail2ban中添加公司出口ip,忽略掉此ip即可。

编辑fail2ban的配置文件/etc/fail2ban/jail.conf

在 [DEFAULT] 全局配置中的ignoreip选项中添加被放行的ip地址:
ignoreip = 127.0.0.1 172.17.1.218

参考  fail2ban添加ip地址白名单 :

https://www.rootop.org/?p=880

      还有一种情况需要注意下,如果在服务器前端有其它的网络设备,会转换源ip地址为网络设备的内网ip地址的话,那么需要添加网络设备内网ip到白名单。

比如深信服的AD5500(Ver3.0版本)负载均衡器,就会转换客户端源ip地址为AD设备的内网ip,在服务器中看到的来源ip都是来源于AD的内网ip。或者是配置AD,传送源ip到服务器。

2011-10-28
发表者 Venus
暂无评论

Win7访问共享提示“找不到网络路径”

       解决方法:

启动 TCP/IP NetBIOS Helper  服务
       在windowsXP下访问共享并不需要该服务,但是win7不同,如果禁用了win7的 TCP/IP NetBIOS Helper 服务的情况下,访问共享的时候就会提示“找不到网络路径”。

     (当然,找不到网络路径并不仅仅是这一个原因)

        Provides support for the NetBIOS over TCP/IP (NetBT) service and NetBIOS name resolution for clients on the network, therefore enabling users to share files, print, and log on to the network. If this service is stopped, these functions might be unavailable. If this service is disabled, any services that explicitly depend on it will fail to start.

2011-10-27
发表者 Venus
暂无评论

Linux下把脚本程序添加为服务启动

     在Linux下,执行service命令时,服务的启动、停止以及重启都是通过/etc/init.d目录下的脚本来决定的。

如果我们想添加某个程序随系统启动,那么我们可以将程序放置到/etc/init.d下或者是创建链接到此目录下,然后通过系统自带命令 chkconfig 添加,比如:

chkconfig httpd on  那么httpd服务在运行级别2、3、4、5中都会随机启动。

PS:

级别0:关机

级别1:单用户,不带网络模式(启动httpd也无实际应用)

级别2:单用户,带网络模式

级别3:命令行 CLI

级别4:用户自动以

级别5:图形界面 GUI

级别6:重启

2011-10-24
发表者 Venus
暂无评论

mysqlcheck

原文来自:http://www.cnblogs.com/zsxfbj/archive/2011/08/25/mysqlcheck.html

        mysqlcheck,是mysql自带的可以检查和修复MyISAM表,并且它还可以优化和分析表。
        mysqlcheck的功能类似myisamchk,但其工作不同。主要差别是当mysqld服务器在运行时必须使用mysqlcheck,而myisamchk应用于服务器没有运行时。使用mysqlcheck的好处是不需要停止服务器来检查或修复表。使用myisamchk修复失败是不可逆的。

       (1) 如果需要检查并修复所有的数据库的数据表,那么可以使用:
       # mysqlcheck -A -o -r -p
       # Enter password:
       database1 OK
       database2 OK
      
      (2) 如果需要修复指定的数据库用
      # mysqlcheck -A -o -r Database_NAME -p

      (3) 如果使用其他用户名修复
       # mysqlcheck -A -o -r -p -u admin
       # Enter password:
       database1 OK
       database2 OK
      这里admin是指定的mysql用户帐号
      
 (4) 如果使用指定的mysql.sock进入数据库并修复
       # mysqlcheck -A -o -r -p -S /tmp/mysql.sock
       # Enter password:
       database1 OK
       database2 OK
       这里 /tmp/mysql.sock是指定的mysql.sock存放的路径

2011-10-24
发表者 Venus
暂无评论

fail2ban添加ip地址白名单

      在 [DEFAULT] 全局配置中的ignoreip选项中添加被放行的ip地址:
ignoreip = 127.0.0.1 172.17.1.218

      这样可以防止公司内部员工输入密码错误封锁公司外部ip,导致集体员工都不能登录。