因为 oneinstack 默认不带邮件服务器,而我需要一个自己的 SMTP 服务器来发送网站的系统通知邮件等,所以,这几天在自学 postfix 相关的教程。
我注意到 oneinstack 安装时开启了防火墙,不知道是否阻断了 SMTP 要用到的相关端口?如果已经封禁,如何开放?
谢谢!
我注意到 oneinstack 安装时开启了防火墙,不知道是否阻断了 SMTP 要用到的相关端口?如果已经封禁,如何开放?
谢谢!
13 Answers
# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
# service iptables save #保存iptables规则
直接复制粘贴你给的命令执行了,第一条执行后没什么返回信息,第二条执行后返回 “OK”:
[root@i oneinstack]# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
[root@i oneinstack]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
[root@i oneinstack]#
不知道这样对不对?
我是按照这篇教程来配置 postfix 邮件服务器的:
http://www.krizna.com/centos/setup-mail-server-centos-7/
在教程里面,作者使用 firewall 命令来开放端口,由于 oneinstack 使用的是 iptables 防火墙,所以我就按照博主上面给的方案开放了端口。不过,在教程里面,还有让防火墙批准“服务”的指令,没有端口号,例如:
http://www.krizna.com/centos/setup-mail-server-centos-7/
在教程里面,作者使用 firewall 命令来开放端口,由于 oneinstack 使用的是 iptables 防火墙,所以我就按照博主上面给的方案开放了端口。不过,在教程里面,还有让防火墙批准“服务”的指令,没有端口号,例如:
[root@mail ~]# firewall-cmd --permanent --add-service=smtp
[root@mail ~]# firewall-cmd --permanent --add-port=587/tcp
[root@mail ~]# firewall-cmd --permanent --add-port=465/tcp
[root@mail ~]# firewall-cmd --permanent --add-port=110/tcp
[root@mail ~]# firewall-cmd --permanent --add-service=pop3s
[root@mail ~]# firewall-cmd --permanent --add-port=143/tcp
[root@mail ~]# firewall-cmd --permanent --add-service=imaps
上述代码里面,第1行、第6行、第8行,这些都是服务。请教一下在 iptables 里面该用什么样的对应指令?
谢谢!
昨晚我重置了服务器,用一个全新的 centos 7 来从头做。首先我配置了 postfix + dovecot 邮件服务器,已经成功开启了 SMTP 及 POP3 服务,通过 PC 端的 outlook 都可以顺利收发邮件了。
然后我再安装了 oneinstack 。安装结束,配置了虚拟主机及 FTP 。
接下来测试 outlook 收发邮件就出错了,提示 10060 及 10061 等错误代码。估计是端口被封。
按照您给的方法,我开通了 25 和 110 端口,使用的命令如下:
然后我再安装了 oneinstack 。安装结束,配置了虚拟主机及 FTP 。
接下来测试 outlook 收发邮件就出错了,提示 10060 及 10061 等错误代码。估计是端口被封。
按照您给的方法,我开通了 25 和 110 端口,使用的命令如下:
# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
# iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
#service iptables save
但是,发现还是无法用 Outlook 收发邮件,返回错误代码 10061 。上网查了一下,说 10061 就代表“connection refused”。请教一下:我的操作是不是哪里有问题?
顺便附上当前我的 iptables 里面的所有规则:
[root@oneinstack]#iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:20000:30000
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 limit: avg 100/sec burst 100
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 limit: avg 1/sec burst 10
syn-flood tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain syn-flood (1 references)
target prot opt source destination
RETURN tcp -- 0.0.0.0/0 0.0.0.0/0 limit: avg 3/sec burst 6
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
[root@oneinstack]#
我自己测试了一下,我发现即使用 #service iptables stop 这个命令完全停止 iptables 服务,也仍然无法通过 outlook 连接到邮件服务器,甚至我在 SSH 客户端上执行 #telnet localhost 25 也不能成功。
还望您能抽时间研究一下这个问题,让 Oneinstack 能顺利兼容 postfix + dovecot 邮件服务器。既然 oneinstack 不自带邮件服务器,起码不要阻止邮件服务器(给需要邮件服务器的用户留一个开关吧)。
实际上,我发现由于 centos 7 已经自带了 postfix 邮局,而 dovecot 又很容易安装,oneinstack 完全可以考虑把“邮件服务器”作为一个“选项”,需要的人选 yes, 不需要的人选 no 就行了。
谢谢!
还望您能抽时间研究一下这个问题,让 Oneinstack 能顺利兼容 postfix + dovecot 邮件服务器。既然 oneinstack 不自带邮件服务器,起码不要阻止邮件服务器(给需要邮件服务器的用户留一个开关吧)。
实际上,我发现由于 centos 7 已经自带了 postfix 邮局,而 dovecot 又很容易安装,oneinstack 完全可以考虑把“邮件服务器”作为一个“选项”,需要的人选 yes, 不需要的人选 no 就行了。
谢谢!
为了解决这个问题,我刚刚查看了一下 postfix 邮局的状态,发现 postfix 实际上根本没启动,准确说是“没法启动”:
[root@ etc]# service postfix status
Redirecting to /bin/systemctl status postfix.service
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Sun 2015-12-20 08:45:16 CST; 3h 0min ago
Dec 20 08:45:16 iZ239i3uk4bZ systemd[1]: Starting Postfix Mail Transport Agent...
Dec 20 08:45:16 iZ239i3uk4bZ aliasesdb[803]: /usr/sbin/postconf: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Dec 20 08:45:16 iZ239i3uk4bZ aliasesdb[803]: /usr/bin/newaliases: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Dec 20 08:45:16 iZ239i3uk4bZ postfix[829]: /usr/sbin/postfix: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
Dec 20 08:45:16 iZ239i3uk4bZ systemd[1]: postfix.service: control process exited, code=exited status=127
Dec 20 08:45:16 iZ239i3uk4bZ systemd[1]: Failed to start Postfix Mail Transport Agent.
Dec 20 08:45:16 iZ239i3uk4bZ systemd[1]: Unit postfix.service entered failed state.
Dec 20 08:45:16 iZ239i3uk4bZ systemd[1]: postfix.service failed.
[root@ etc]#
从上面的截屏可以看出,似乎找不到文件,或者无法加载文件了。但是在安装 oneinstack 之前,postfix 工作是正常的。是不是 oneinstack 在安装过程中某个操作影响到了 postfix ?还请您费心检查一下。谢谢!
postfix依赖mysql库,如果你安装了mysql,执行如下操作:
echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/myql.conf
ldconfig
Please login or Register to submit your answer