一、查看端口开启状态
[zhujiang@localhost n2]$ sudo firewall-cmd --query-port=9998/udp
[sudo] password for zhujiang:
no
二、开启端口
[zhujiang@localhost n2]$ sudo firewall-cmd --add-port=9998/udp --permanent
success
--permanent表示永久生效,重启不会丢失配置。
三、关闭端口
[zhujiang@localhost n2]$ sudo firewall-cmd --remove-port=9998/udp --permanent
Warning: NOT_ENABLED: 9998:udp
success
重新加载配置
[zhujiang@localhost n2]$ sudo firewall-cmd --reload
success
[zhujiang@localhost n2]$
1、firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld
开机禁用 : systemctl disable firewalld
开机启用 : systemctl enable firewalld
2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed
3.配置firewalld-cmd
查看版本: 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
那怎么开启一个端口呢
添加
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
iptables的基础知识可以查看 王聪写的《学习使用iptables》http://wangcong.org/articles/learning-iptables.cn.html (写得非常棒)
iptables的一些术语之间的包含关系:表包含链,链包含规则,规则由匹配和目标组成。
匹配当然是指从网络进来的数据包匹配你制定的匹配条件了,目标则是说匹配成功后将会做什么操作(即目标)。
iptables的整个流程会读取四个表,其中的第三个表是 filter, 而本文题目所设定的目标就是通过在 filter 表里的 INPUT 链里添加一些规则来实现的。
这些链里的“规则”的运行规则是这样的:根据规则的先后顺序,从先到后一条一条地执行,若某条规则匹配了,则退出当条链的过滤;若某条规则未匹配,则进行下一条规则的匹配。
所以要只允许某ip(ip1)对端口(port1)的访问,就要在filter表的INPUT链里制定两个规则
1.接受ip1对port1的访问。
2.禁止所有ip对port1的访问。
因为如果1成立,就退出了当前链,即规则2不会执行,所以,设定成功。
以下是只允许ip1对端口25访问具体命令(请把ip1换成真实的ip):
iptables -A INPUT -p tcp -s ip1 --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 25 -j DROP
CentOS7的防火墙换成了firewall了,这里做一些记录,下面是一些命令:
添加例外端口:
# firewall-cmd --add-port=8080/tcp
删除例外端口:
# firewall-cmd --remove-port=8080/tcp
查看例外端口:
# firewall-cmd --query-port=8080/tcp
如果想永久添加,加上permanent参数,如:
# firewall-cmd --permanent --add-port=8080/tcp
另外想设置端口范围的可以这样使用:
# firewall-cmd --add-port=80-8080/tcp
查看防火墙状态
firewall-cmd --state
关闭防火墙
systemctl stop firewalld.service
开启防火墙
systemctl start firewalld.service
禁止开机启动启动防火墙
systemctl disable firewalld.service
重新加载防火墙
sudo firewall-cmd --reload
如果想使用iptables可以参考下面例子:
停用firewall:
systemctl stop firewalld
systemctl mask firewalld
并且安装iptables-services:
yum install iptables-services
设置开机启动:
systemctl enable iptables
systemctl [stop|start|restart] iptables
#or
service iptables [stop|start|restart]
service iptables save
#or
/usr/libexec/iptables/iptables.init save