让我先说我是Centos newby,所以所有的信息,链接和build议都非常欢迎!
我最近使用Centos 6build立了一个托pipe服务器,并将其configuration为一个networking服务器。 运行的网站没什么特别的,只是一些低stream量的项目。 我试图configuration服务器为默认尽可能,但我也喜欢它是安全的(没有FTP,自定义的SSH端口)。
让我的Wordpress按需运行,我遇到了一些连接问题。 2件事不起作用:
我感觉这些都与iptablesconfiguration有关,因为我尝试过所有其他的(我认为)。 我试图打开防火墙接受端口465(gmail smtp)和ssh端口(可以说这个端口是8000)的stream量,但这两个问题依然存在。 从terminal的SSH连接工作正常。 每次更改后,我尝试执行我重新启动iptables服务。
这是我的iptablesconfiguration(使用vim):
# Generated by iptables-save v1.4.7 on Sun Jun 1 13:20:20 2014 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -o lo -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 8000 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 465 -j ACCEPT COMMIT # Completed on Sun Jun 1 13:20:20 2014
考虑到上面提到的问题,我的iptables安装有没有(明显的)问题? 说这个防火墙在这个状态下什么也没做,也是一个答案。
再一次,如果你有任何其他的build议来提高安全性(考虑到我用这个盒子做的基本事情),我很乐意听到它,也是很明显的!
谢谢!
我注意到你的OUTPUT链的默认策略是ACCEPT。 因此,在OUTPUT链的底部不存在任何DROP或REJECT规则的情况下, wordpress iptables规则允许所有stream量在任何端口上出口。
所以澄清..在你的上面的configuration, 所有的stream量都可以通过OUTPUT链。
检查/var/log/audit/audit.log中的selinux AVC拒绝作为权限被拒绝可能表示httpd无法连接到SMTPnetworking端口发送电子邮件。
在任何情况下,你也应该检查/ var / log / maillog,看看你是否被拒绝,当然确保postfix / sendmail实际上在本地运行。
在你无法安装插件的情况下,等等。这几乎肯定是一个WordPress的文件权限问题,你可以在下面的链接看看。
希望这有帮助,虽然我感谢你的问题是有点老,它确实在谷歌高度注册的主题,所以也许这可能会帮助别人。
我个人在我的根文件夹中有一个shell脚本,我可以运行添加我的iptables规则,我只是更新它,当我需要新的规则添加然后运行脚本,我也有一个打开所有的端口,看看是否有一个防火墙的问题,导致我的问题(这是我个人的服务器没有任何业务关键的,我不build议你打开所有的端口,如果有什么值得偷的东西的任何时间长度)。
但是,如果你能够testing,我build议你保存在本地机器上(根文件夹是一个好的地方IMO作为根应该是唯一一个谁可以看到的文件,然后将其权限设置为700(chmod 700文件名。嘘 – 我称我的防火墙.sh和firewallopen.sh)):
#!/bin/bash # # iptables config script # # Flush all current rules from iptables # iptables -F # iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # # Set access for localhost # iptables -A INPUT -i lo -j ACCEPT # # Accept packets belonging to established and related connections # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # Save settings # /sbin/service iptables save # # List rules # iptables -L -v
然后创build一个类似的文件来locking你的服务器(我放弃了脚本开始的所有规则,以确保没有意外的结果 – 注意我接受来自我的服务器的所有传出连接):
#!/bin/bash # # iptables config script # # Flush all current rules from iptables # echo "Clearing old rules" iptables -F # echo "Adding new rules" # Example rules # Allow SSH connections on tcp port 22 iptables -A INPUT -p tcp --dport 22 -j ACCEPT -m comment --comment "SSH" # Set default policies for INPUT, FORWARD and OUTPUT chains # iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # # Set access for localhost # iptables -A INPUT -i lo -j ACCEPT # # Accept packets belonging to established and related connections # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # # Save settings # /sbin/service iptables save # # List rules # iptables -L -v
任何类似的规则,你想build立你可以添加到这个文件,我倾向于评论一切,以确保我没有脑屁稍后回到它。
一旦拥有这两个脚本,就可以轻松快速地打开和closures防火墙,然后在禁用防火墙之后testing问题是否继续。 之后,您可以轻松将其重新打开。
在CentOS上需要考虑的一个非常重要的事情是安全增强(SE)Linux,如果使用正确的话,它是一个强大的工具,但是如果禁用防火墙并不能解决问题,我会尝试禁用selinux以及testing(如果这解决了你的问题,那么你可以离开SE Linux禁用,这将不太安全,或者你可以看着build立自己的SE Linux的政策audit2allow)
禁用SE Linux:
setenforce 0
您可能需要同时重启您的Web主机服务(假设您使用的是httpd / apache):
service httpd restart
然后你可以重新testing,重新开始,简单地说:
setenforce 1
我希望这有帮助 :)