首页 > 其他分享 >firewalld防火墙设置

firewalld防火墙设置

时间:2023-07-19 16:25:31浏览次数:30  
标签:-% hostname firewalld 防火墙 newport 设置 date

#!/bin/bash
#基础信息
hostname=`hostname`
date=`date "+%Y-%m-%d %H:%M:%S"`
#输入处理-判断端口
check_newport(){
  while [[ true ]]; do
    read -p "请输入开放端口(1-65535):" newport ;
    if [[ -n $newport ]]; then
      if grep '^[[:digit:]]*$' <<< "$newport"; then
          if [[ $newport -ge 1 && $newport -le 65535 ]]; then
            break 
          else
            echo "输入端口有误!  端口范围(1-65535)"
          fi
      else
          echo "输入参数有误!"
      fi
    else
      echo "输入为空,请重新输入"
    fi
  done
}
#输入处理-判断协议
check_newprotocol(){
  while [[ true ]]; do
    read -p "请输入开放协议(tcp 或 udp):" newprotocol ;
    if [[ -n $newprotocol ]]; then
      if [[ $newprotocol == "tcp" ]] || [[ $newprotocol == "udp" ]]; then
          break
      else
          echo "输入有误,请重新输入!   开放协议(tcp 或 udp)"
      fi
    else
      echo "输入为空,请重新输入"
    fi
  done
}

# 检查防火墙状态及开放端口
check_firewall(){
    # 获取防火墙状态
    filewalld=`systemctl status firewalld | grep Active | awk '{print $2}'`
    if [ $filewalld = "active" ]
    then 
        fwport=`firewall-cmd --zone=public --list-ports`
        fwstr="防火墙已启动,已开放端口:$fwport"
    else 
        fwstr="\033[5m \033[41;37m 防火墙未启动,建议启用防火墙保障系统安全! \033[0m"
        fwnum=0
    fi 
    echo -e "\n\n"$fwstr
}
set_firewall(){
    # 检查防火墙状态及开放端口
    check_firewall
    # 输入处理
    check_newport
    check_newprotocol
    # 设置防火墙
  if [ -n "$fwnum" ]
    then 
        echo "-----正在启动防火墙-----"
        systemctl start firewalld
    filewalld=`systemctl status firewalld | grep Active | awk '{print $2}'`
    if [ $filewalld = "active" ]
    then
      echo "防火墙启动完成"
    else 
      echo "\033[5m \033[41;37m 防火墙启动报错,请执行命令(systemctl status firewalld)查看异常! \033[0m"
      exit
    fi
    else
        echo -e "\n\n" $fwstr
    fi
  echo "-----开始配置防火墙-----"
  if [ $filewalld = "active" ]
  then 
    echo "防火墙已启动,正在开放端口权限。。。"
    #防火墙增加端口
    firewall-cmd --zone=public --add-port=$newport/$newprotocol  --permanent
    firewall-cmd --reload
    fwport=`firewall-cmd --zone=public --list-ports`
    echo "防火墙已启动,已开放端口:$fwport"
    echo "-----配置完成-----"
  fi
}

stop_firewalld(){
  # 检查防火墙状态及开放端口
  check_firewall
  # 输入处理
  check_newport
  check_newprotocol
  if [ $filewalld = "active" ]
  then 
    echo "-----开始配置防火墙-----"
    firewall-cmd --remove-port=$newport/$newprotocol --permanent
    firewall-cmd --reload
    fwport=`firewall-cmd --zone=public --list-ports`
    echo "已关闭端口$newport/$newprotocol,防火墙已启动,已开放端口:$fwport"
    echo "-----配置完成-----"
  else
    echo -e "\033[5m \033[41;37m 防火墙未启动,建议启用防火墙保障系统安全! \033[0m"
  fi
}

home(){
  echo "

  防火墙端口开启脚本
  请输入对应数字进行操作:
  1.检查防火墙状态及开放端口

  2.新增开放端口(永久开放)

  3.关闭端口

  4.退出
  "
  read -p " 请输入您的操作:" h
  case "$h" in
  "1") check_firewall
  ;;
  "2") set_firewall
  ;;
  "3") stop_firewalld
  ;;
  "4") exit
  ;;
  *)
    echo "输入错误,请重新输入。"
    sleep 1
    num=$[$num+1]
    if [[ $num -eq 3 ]]; then
      echo "多次输入有误,已退出"
      exit
    fi
    home
  ;;
  esac
}

while [[ true ]]; do
  home
done

 

   

标签:-%,hostname,firewalld,防火墙,newport,设置,date
From: https://www.cnblogs.com/Gaimo/p/17565925.html

相关文章

  • Mysql设置字段从1开始自增
    Mysql设置字段从1开始自增MySQL是一个开源的关系型数据库管理系统,被广泛应用于各种Web应用程序。在MySQL中,我们经常需要设置自增字段,以便在插入新记录时自动生成唯一的标识符。默认情况下,自增字段从1开始自动递增,但有时我们可能需要将自增字段的起始值设置为其他值。本文将介绍如......
  • ArcMap+ArcPy 图层样式批量设置
    originLayerName=""mxd=arcpy.mapping.MapDocument(r"CURRENT")originLayer=arcpy.mapping.ListLayers(mxd,originLayerName)[0]layers=arcpy.mapping.ListLayers(mxd)forlyrinlayers:iflyr.name==originLayer.name:co......
  • android设置弹框高为屏幕宽得2/3
    Android设置弹框高为屏幕宽的2/3Android开发中,经常需要在应用中使用弹框来展示一些重要的信息或者进行用户交互。设置弹框的高度为屏幕宽的2/3是一个常见的需求。本文将介绍如何通过代码实现这一功能。获取屏幕宽度在Android中,我们可以通过以下代码来获取屏幕的宽度:DisplayMetr......
  • access 批量设置条件格式
    PrivateSubForm_Load()ForEachtempInMe.ControlsIfNotTypeOftempIsLabelThentemp.OnClick="=GetVal()"NextAddConditionalFormattingToFieldsEndSubFunctionGetVal()Me.Tag=Nz(Me.单据编号,"")'设......
  • ant design vue描述列表设置列宽
    这是默认的样子,没有数据时会显得label特别宽设置列宽为200px后如图所示方式如下自定义style.label.ant-descriptions-item-label{width:200px;}给descriptions应用样式<a-descriptionsid="jbxx"class="label"title="基本信息"bordered><a-descripti......
  • vue3,ts,vite4,uniapp设置路径别名
    安装依赖npminstall--save-dev@types/node配置vite.config.ts文件//vite.config.tsimport{defineConfig}from'vite';import{resolve}from'path';exportdefaultdefineConfig({resolve:{alias:{'/@/':resolve(......
  • elasticsearch 设置自定义分词
    要在Elasticsearch中使用MySQL数据库中定义的分词,你需要执行以下步骤:将MySQL数据库中的分词数据导入到Elasticsearch中:从MySQL数据库中提取分词数据,包括分词规则、停用词等。将这些数据转换为适合Elasticsearch使用的格式,例如JSON。使用Elasticsearch的API(如BulkAPI)将分词......
  • Go安装的设置问题:GOROOT,GOPATH
    Mac下使用Google官方的Go语言安装包:https://code.google.com/p/go/downloads/list 安装的Go,会自动把/usr/local/go/bin目录加入PATH中。这样我们直接在控制台就可以执行go语言的一些命令。http://golang.org/cmd/go/#hdr-GOPATH_environment_variable 下面使用export命令看到......
  • mysql 设置主键自增的步长
    MySQL设置主键自增的步长在MySQL数据库中,主键是用于唯一标识表中每一行数据的字段。主键自增是一种常见的设置,它可以自动为主键字段生成递增的值,简化了开发过程和数据维护的复杂性。本文将介绍如何在MySQL中设置主键自增的步长。什么是主键自增主键自增是一种机制,它使用一个特殊......
  • 防火墙基本操作
    启动防火墙systemctlstartfirewalld关闭防火墙systemctlstopfirewalld重启防火墙,一般修改端口后都要重启生效systemctlrestartfirewalld查看状态systemctlstatusfirewalld开机禁用systemctldisablefirewalld开机启用systemctlenablefirewalld防火墙开放......