zoukankan      html  css  js  c++  java
  • centos7防火墙设置

    前言

    CentOS7 与之前版本在防火墙配置上不同,防火墙从iptables变成了firewalld

    Centos7默认安装了firewalld,如果没有安装的话,可以使用yum命令进行安装

    yum install firewalld firewalld-config

    Centos7以上的发行版都试自带了firewalld防火墙的,firewalld去带了iptables防火墙。其原因是iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。 相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

    区域对于 firewalld 来说是一大特色,但是对于我们使用Centos7一般是在服务器上,需要切换zone的需求比较少,所以本文不做介绍了,网上资料也比较多,大家可以去百度找找资料。

    配置文件说明

    firewalld 存放配置文件有两个目录,/usr/lib/firewalld/etc/firewalld,前者存放了一些默认的文件,后者主要是存放用户自定义的数据,所以我们添加的service或者rule都在后者下面进行。

    server 文件夹存储服务数据,就是一组定义好的规则。

    zones 存储区域规则

    firewalld.conf 默认配置文件,可以设置默认使用的区域,默认区域为 public,对应 zones目录下的 public.xml

    命令

    这里需要首先说明的是,在执行命令时,如果没有带 --permanent 参数表示配置立即生效,但是不会对该配置进行存储,相当于重启服务器就会丢失。如果带上则会将配置存储到配置文件,,但是这种仅仅是将配置存储到文件,却并不会实时生效,需要执行 firewall-cmd --reload 命令重载配置才会生效。

    以下是常用的 firewalld 防火墙命令

    1.启动防火墙

    systemctl start firewalld.service

    2.关闭用防火墙

    systemctl stop firewalld.service

    3.设置开机启动

    systemctl enable firewalld.service

    4.停止并禁用开机启动

    sytemctl disable firewalld.service

    5.重启防火墙

    sudo firewall-cmd --reload

    6.查看已开放的端口(默认不开放任何端口)

    sudo firewall-cmd --list-ports

    7.开启80端口

    firewall-cmd --zone=public(作用域) --add-port=80/tcp(端口和访问类型) --permanent(permanent永久生效,没有此参数重启后失效)

    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent 

    8.删除 端口

    firewall-cmd --zone= public --remove-port=80/tcp --permanent

    firewall-cmd --list-all          查看默认区域设置

    9.查看防火墙状态

    sudo firewall-cmd --state                           ##查看防火墙状态,是否是running

    sudo iptables -L -n                                     ##查看规则,这个命令是和iptables的相同的

    man firewall-cmd                                       ##查看帮助

    firewall-cmd --query-service ftp                   ##查看ftp服务是否支持,返回yes或者no

    firewall-cmd --add-service=ftp                     ##临时开放ftp服务

    firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务

    firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务

    应急命令
    firewall-cmd --panic-on  # 拒绝所有流量,远程连接会立即断开,只有本地能登陆
    firewall-cmd --panic-off  # 取消应急模式,但需要重启firewalld后才可以远程ssh
    firewall-cmd --query-panic  # 查看是否为应急模式

    参考资料: https://www.jianshu.com/p/86ef5439a9a3

    以下是centOS7以前版本 iptables 防火墙命令

    1.打开/关闭/重启防火墙

    开启防火墙(重启后永久生效):chkconfig iptables on

    关闭防火墙(重启后永久生效):chkconfig iptables off

    开启防火墙(即时生效,重启后失效):service iptables start

    关闭防火墙(即时生效,重启后失效):service iptables stop

    重启防火墙:service iptables restartd

    2.查看打开的端口

    /etc/init.d/iptables status

    3.打开某个端口(以8080为例)

    (1)开启端口

    iptables-A INPUT-p tcp--dport8080-j ACCEPT

    (2)保存并重启防火墙

    /etc/rc.d/init.d/iptables save/etc/init.d/iptables restart

    4.打开49152~65534之间的端口

    iptables-A INPUT-p tcp--dport49152:65534-j ACCEPT 

    同样,这里需要对设置进行保存,并重启防火墙。

    5.其他打开方式

    我们还可以通过修改/etc/sysconfig/iptables文件的方式开启端口,如下

    vi/etc/sysconfig/iptables

    然后在文件中增加一行

    -A RH -Firewall-1 -INPUT  -m state -state NEW -m tcp -p tcp -dport 80 -j ACCEPT

    参数说明:

    –A 参数就看成是添加一条规则

    –p 指定是什么协议,我们常用的tcp 协议,当然也有udp,例如53端口的DNS

    –dport 就是目标端口,当数据从外部进入服务器为目标端口

    –sport 数据从服务器出去,则为数据源端口使用

    –j 就是指定是 ACCEPT -接收 或者 DROP 不接收

  • 相关阅读:
    开发体系规范建议
    centos安装samba
    【OF框架】在部署中使用 Windows身份认证
    【OF框架】使用OF.WinService项目,添加定时服务,进行创建启动停止删除服务操作
    【OF框架】定义框架标准WebApi,按照规范返回状态信息及数据信息
    【OF框架】使用IDbContextTransaction在框架中对多个实体进行事务操作
    【OF框架】新建库表及对应实体,并实现简单的增删改查操作,封装操作标准WebApi
    【OF框架】框架Cache/Session在负载均衡部署时,切换Memory/Redis测试
    【OF框架】在Visual Studio中启用Docker支持,编译生成,并在容器运行项目
    【OF框架】在Visual Studio中发布Docker镜像,推送镜像到Azure容器注册表
  • 原文地址:https://www.cnblogs.com/lmg-jie/p/10031113.html
Copyright © 2011-2022 走看看