|
|
发表于 2019-1-6 21:07:23
|
显示全部楼层
本帖最后由 aRNoLD 于 2019-1-6 21:11 编辑
Virmach的CentOS7不是最小化版本,它自带了SELINUX,另外,它安装完成之后默认会自动替你yum update 一下,因此实际上你开机后能进入SSH时,就已经有firewallD以及SELINUX了。
这种情形下,你用iptables是没用的,即便是安装了iptables-services这个工具,因为在/etc/init.d(我记得是在这个目录下吧,或者是/etc/sysconfig)下面生成不了iptables的服务文件。
解决方案如下:
- # 安装iptables-services用于CentOS7下的iptables管理
- yum install -y iptables-services
- # 立即关闭SELINUX,仅当前会话有效
- setenforce 0
- # 彻底关闭SELINUX,需重启动主机后才生效
- sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
- # 关闭firewallD且禁止其随主机启动
- systemctl disable firewalld && systemctl stop firewalld
- # 启用iptables随机启动且立刻打开iptables
- systemctl start iptables && systemctl enable iptables
- # 以下为iptables的规则(略)
- ……
- # 重新启动主机
- reboot
复制代码
另外,如果你出于安全原因修改过SSH端口(Virmach和BandwagonHost不同,它默认全部使用22的SSH端口),而没有对SELINUX进行修改,或者开机后立即对SSH的登录方式做了修改,如免密码登录,那么SELINUX也会阻止你登录。一般来说,对SELINUX了解的话,可自行修改其中的安全政策以便放行相关的数据进出,但这个相当麻烦,而且大多数人不会设置,所以采用临时的上述第四行命令,或者一劳永逸的采用上述第六行命令,再重新启动后就能解决大多数由SELINUX引发的网络不正常的麻烦了。 |
|