Firewall :
由于centOS 7采用了新的firewall防火墙,也是未来的一种趋势,所以咱们在7上面既可以使用6也可以使用7。
由于iptables和firewall并存会存在一系列的问题,所以我们配置firewall的时候尽量关闭iptables!
小插曲:
安装了最小化redhat7,在bash环境下,不能用tab键补全命令 例如,我在设置防火墙的时候,输出firewall-cmd ,按两下tab键,没有显示选项命令。 经过一番搜索,这是由于系统缺少了bash-completion;用yum安装,reboot之后,补全命令可用。
# systemctl disable iptables //禁用iptables
# systemctl stop iptables //关闭iptables
# systemctl enable firewalld //启用firewall
# systemctl start firewalld //启动firewall
# firewall-cmd --get-zones //查看所有zone
# firewall-cmd --get-default-zone //查看默认zone
一张图认识具体的参数:
Firewalld关于zone的操作:
# firewall-cmd --set-default-zone=work //设定默认zone
# firewall-cmd --get-zone-of-interface=ens33 //查指定网卡
# firewall-cmd --zone=public --add-interface=lo //给指定网卡设置zone
# firewall-cmd --zone=dmz --change-interface=lo //针对网卡更改zone
# firewall-cmd --zone=dmz --remove-interface=lo //针对网卡删除zone
# firewall-cmd --get-active-zones //查看系统所有网卡所在的zone
Firewalld关于service的操作:
# firewall-cmd --get-services 查看所有的servies
# firewall-cmd --list-services //查看当前zone下有哪些service
# firewall-cmd --zone=public --add-service=http //把http增加到public zone下面
# firewall-cmd --zone=public --remove-service=http
//把http从public zone下面移出
# ls /etc/firewalld/zones/
//查看zone的配置文件,当配置了新的策略,系统就会自动的生成一个.old的备份文件
# ls /usr/lib/firewalld/zones/
//9个默认的配置文件模板
# ls /usr/lib/firewalld/services/
//很多个默认的services配置模板
# firewall-cmd --zone=public --add-service=http --permanent
//把配置写入配置文件,之后会在/etc/firewalld/zones目录下面生成配置文件; permanent:永久的
案例分析:
需求:ftp服务自定义端口1121,需要在work zone下面放行ftp。
# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services
# vi /etc/firewalld/services/ftp.xml //把21改为1121
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
# vi /etc/firewalld/zones/work.xml //增加一行
# firewall-cmd --reload //重新加载
# firewall-cmd --zone=work --list-services
//检查一下是否成功