一、CentOS7版本对防火墙进行加强,不再使用原来的iptables,启用firewalld
1.firewalld的基本使用
1 2 3 4
| 启动: `systemctl start firewalld` 查状态:`systemctl status firewalld ` 停止: `systemctl disable firewalld` 禁用: `systemctl stop firewalld`
|
1 2 3 4 5
| 在开机时启用一个服务:`systemctl enable firewalld.service` 在开机时禁用一个服务:`systemctl disable firewalld.service` 查看服务是否开机启动:`systemctl is-enabled firewalld.service` 查看已启动的服务列表:`systemctl list-unit-files|grep enabled` 查看启动失败的服务列表:`systemctl *--failed`*
|
2.配置firewalld-cmd
1 2 3 4 5 6 7 8 9 10
| 查看版本: `firewall-cmd *--version`* 查看帮助: `firewall-cmd *--help`* 显示状态: `firewall-cmd *--state`* 查看所有打开的端口: `firewall-cmd *--zone=public --list-ports`* 更新防火墙规则: `firewall-cmd *--reload`* 查看区域信息: `firewall-cmd *--get-active-zones`* 查看指定接口所属区域: `firewall-cmd *--get-zone-of-interface=eth0`* 拒绝所有包:`firewall-cmd *--panic-on`* 取消拒绝状态: `firewall-cmd *--panic-off`* 查看是否拒绝: `firewall-cmd *--query-panic`*
|
3.那怎么开启一个端口呢
添加
1 2 3 4 5 6 7 8 9
| firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(永久生效) firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload firewall-cmd --zone= public --query-port=80/tcp firewall-cmd --zone= public --remove-port=80/tcp --permanent firewall-cmd --list-services firewall-cmd --get-services firewall-cmd --add-service= firewall-cmd --delete-service=
|
在每次修改端口和服务后/etc/firewalld/zones/public.xml文件就会被修改,所以也可以在文件中之间修改,然后重新加载
使用命令实际也是在修改文件,需要重新加载才能生效。
1 2 3 4 5 6 7 8 9 10
| firewall-cmd --zone=public --query-port=80/tcp firewall-cmd --zone=public --query-port=8080/tcp firewall-cmd --zone=public --query-port=3306/tcp firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --zone=public --query-port=3306/tcp firewall-cmd --zone=public --query-port=8080/tcp firewall-cmd --reload firewall-cmd --zone=public --query-port=3306/tcp firewall-cmd --zone=public --query-port=8080/tcp
|
4.参数解释
1 2 3 4
| –add-service –zone –add-port=80/tcp –permanent
|
5.详细使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| firewall-cmd --list-all firewall-cmd --zone=public --list-all
firewall-cmd --zone=public --add-port=端口/tcp --permanent
firewall-cmd --zone=public --remove-port=端口/tcp --permanent
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --remove-port=2222/tcp --permanent firewall-cmd --zone=public --remove-port=8080/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.46" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.46" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept" firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
firewall-cmd --query-masquerade
firewall-cmd --add-masquerade
firewall-cmd --remove-masquerade
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080
firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.0.4/24" service name="http" accept'
|
6.使用示例
1 2 3 4 5 6 7
| firewall-cmd --state firewall-cmd --reload firewall-cmd --state firewall-cmd --reload firewall-cmd --list-ports firewall-cmd --list-services firewall-cmd --get-services
|
#区域相关
1 2 3 4 5
| firewall-cmd --list-all-zones firewall-cmd --get-active-zones firewall-cmd --set-default-zone=public firewall-cmd --get-default-zone firewall-cmd --zone=public --add-interface=eth0
|
#接口相关
1 2 3
| firewall-cmd --zone=public --remove-interface=eth0 firewall-cmd --zone=default --change-interface=eth0 firewall-cmd --get-zone-of-interface=eth0
|
#端口控制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --add-port=65001-65010/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=65001-65010/tcp --permanent
firewall-cmd --query-port=8080/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload
|
二、CentOS7以下版本
1.开放80,22,8080 端口
1 2 3
| /sbin/iptables -I INPUT -p tcp *--dport 80 -j ACCEPT* /sbin/iptables -I INPUT -p tcp *--dport 22 -j ACCEPT* /sbin/iptables -I INPUT -p tcp *--dport 8080 -j ACCEPT*
|
2.保存
1
| /etc/rc.d/init.d/iptables save
|
3.查看打开的端口
1
| /etc/init.d/iptables status
|
4.关闭防火墙
1) 永久性生效,重启后不会复原
1 2
| 开启: chkconfig iptables on 关闭: chkconfig iptables off
|
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop