目录

防火墙命令

防火墙设置

临时

持久化

firewall-cmd

iptables


防火墙命令

1、centos中firewalld与iptablescentos7以前的版本默认使用iptables服务进行管理防火墙规则。centos7以及其以上版本默认使用firewalld服务管理防火墙。所以在centos8中,就使用其默认的firewalld配置防火墙。

firewalld和iptables的官方说明可以参照
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls#sec-Comparison_of_Firewalld_to_system-config-firewall_and_iptables

centos7

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

1、firewalld的基本使用

命令解析

firwall-cmd:是Linux提供的操作firewall的一个工具(服务)命令
–zone #作用域
–add-port=8080/tcp #添加端口,格式为:端口/通讯协议 ;add表示添加,remove则对应移除
–permanent #永久生效,没有此参数重启后失效

#进程与状态相关
启动: systemctl start firewalld
关闭: systemctl stop firewalld
 systemctl status firewalld                   #查看防火墙状态
 systemctl enable firewalld                #设置防火墙随系统启动
 systemctl disable firewalld                #禁止防火墙随系统启动
 firewall-cmd --state                         #查看防火墙状态  
 firewall-cmd --reload                        #更新防火墙规则   重新载入
 firewall-cmd --list-ports                    #查看所有打开的端口  
 firewall-cmd --list-services                 #查看所有允许的服务  
 firewall-cmd --get-services                  #获取所有支持的服务  #区域相关
firewall-cmd --list-all-zones                    #查看所有区域信息  
 firewall-cmd --get-active-zones                  #查看活动区域信息  
 firewall-cmd --set-default-zone=public           #设置public为默认区域  
 firewall-cmd --get-default-zone                  #查看默认区域信息  
 #接口相关firewall-cmd --zone=public --add-interface=eth0  #将接口eth0加入区域public
 firewall-cmd --zone=public --remove-interface=eth0       #从区域public中删除接口eth0  
 firewall-cmd --zone=default --change-interface=eth0      #修改接口eth0所属区域为default  
 firewall-cmd --get-zone-of-interface=eth0                #查看接口eth0所属区域  #端口控制
firewall-cmd --query-port=8080/tcp             # 查询端口是否开放
 firewall-cmd --add-port=8080/tcp --permanent               #永久添加8080端口例外(全局)
 firewall-cmd --remove-port=8800/tcp --permanent            #永久删除8080端口例外(全局)
 firewall-cmd --add-port=65001-65010/tcp --permanent      #永久增加65001-65010例外(全局)  
 firewall-cmd  --zone=public --add-port=8080/tcp --permanent            #永久添加8080端口例外(区域public)
 firewall-cmd  --zone=public --remove-port=8080/tcp --permanent         #永久删除8080端口例外(区域public)
 firewall-cmd  --zone=public --add-port=65001-65010/tcp --permanent   #永久增加65001-65010例外(区域public) 
 最常用命令firewalld-cmd --zone=public --add-ports=8080/tcp --permanent


 

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

持久化

firewall-cmd

如果是新的centos 使用firewall-cmd管理的

firewall-cmd 命令加–permanent

iptables

如果是旧版本用iptables的

修改/etc/sysconfig/iptables

#!/bin/bash

echo "----------config firewall:open port."

IPTABLES_PATH=/etc/sysconfig/iptables

sed -i '/#hwBegin/,/#hwEnd/d' ${IPTABLES_PATH} #delete the hopewind old config

#add hopewind new config
sed -i '/OUTPUT ACCEPT/a\
#hwBegin\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 8806 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 3306 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60504 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60505 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60507 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60508 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60509 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60510 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60511 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60512 -j ACCEPT\
-A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 60513 -j ACCEPT\
#hwEnd' ${IPTABLES_PATH}

service iptables restart

echo " "

参考或摘自:CentOS7打开关闭防火墙与端口的基本命令-

打开防火墙的某几个端口-


网上的教程:

设定防火墙规则


iptables -A INPUT -s 1.1.1.1/32 -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -s 2.2.2.2/32 -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -s 3.3.3.3/32 -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -s 4.4.4.4/32 -p tcp -m tcp --dport 22 -j DROP


保存防火墙规则

iptables-save > /etc/sysconfig/iptables


设定开机自动恢复iptables规则


vim /etc/rc.d/rc.local
iptables-restore < /etc/sysconfig/iptables