纯手打,转载请附上本文网址!!!
CentOS7.0以上默认firewall为防火墙配置,但CentOS7之前为iptables;有些人喜欢用iptables,有些人喜欢用firewall,各有所好吧;但是个人推荐iptables,因为firewall 是centos7开始才设置默认的,之前centos5 centos6使用iptables ,那么很多防火墙相关规则习惯了iptables,或者有用其他的第三方软件调用iptables的
首先我们来说firewall
1、安装
yum install firewalld
2、使用
a.配置firewall端口
firewall-cmd --zone=public --add-port=80/tcp --permanent #开放端口(--permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload #重新载入规则
firewall-cmd --zone= public --query-port=80/tcp #查看端口是否开放
firewall-cmd --zone= public --remove-port=80/tcp --permanent #取消开放端口
b.firewall的具体命令
systemctl start firewalld.service # 启动
systemctl restart firewalld.service # 重启
systemctl enable firewalld.service # 开机启动
systemctl stop firewalld.service # 关闭
systemctl disable firewalld.service # 取消开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running)
接下来是iptables
1、安装
yum install -y iptables-services
2、使用
a.配置iptables端口
vim /etc/sysconfig/iptables
按下英文的i,加入下面的几行;添加需要开放的端口只需将21替换成你想开放的端口即可
对于使用nginx的小伙伴需要把21端口加进去,没有加入21端口导致nginx服务启动之后访问不了主界面
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
22是默认存在的,供ssh访问;80、8080端口是http服务访问的;以后用到https,也需要打开443端口的访问权限。
按下esc键,输入英文冒号(:)和英文字母wq,接下来回车,保存
b.重启iptables服务
systemctl restart iptables.service #重启iptables服务
systemctl enable iptables.service #设置iptables服务开机启动
systemctl status iptables.service #查询防火墙状态
systemctl stop iptables.service #停止防火墙
systemctl start iptables.service #启动防火墙
systemctl restart iptables.service #重启防火墙
chkconfig iptables off #永久关闭防火墙
chkconfig iptables on #永久关闭后启用