• centos7 firewall 防火墙 命令
        作者:3KIDC技术部    文章来源:3KIDC    发表时间:2019/6/17 9:38:41

    快速添加一个允许的端口
    查看状态

    #firewall-cmd --state    //running 表示运行

    开启某个端口

    #firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp  //永久

    使用命令加载设置

    #firewall-cmd --reload

     

    查看开启的端口和服务

     #firewall-cmd --permanent --zone=public --list-ports //端口空格隔开  例如  8080-8081/tcp 8388/tcp 80/tcp

    下面是详细的说明。

    如果你的系统上没有安装使用命令安装

    #yum install firewalld  //安装firewalld 防火墙

    开启服务 

    # systemctl start firewalld.service

    关闭防火墙

    # systemctl stop firewalld.service

    开机自动启动

    # systemctl enable firewalld.service

    关闭开机制动启动

    # systemctl disable firewalld.service

     

    查看状态

    #systemctl status firewalld

    得到到的结果如果是

    ● firewalld.service - firewalld - dynamic firewall daemon
    Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
    Active: active (running) since Mon 2016-09-05 02:34:07 UTC; 15min ago
    Main PID: 3447 (firewalld)
    CGroup: /system.slice/firewalld.service
    └─3447 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

    Sep 05 02:34:07 vultr.guest systemd[1]: Starting firewalld - dynamic firewall daemon...
    Sep 05 02:34:07 vultr.guest systemd[1]: Started firewalld - dynamic firewall daemon.

    这样的说明没有问题

    设置 firwall 

    使用firewall-cmd 命令

    查看状态

    #firewall-cmd --state    //running 表示运行

    获取活动的区域

    #firewall-cmd --get-active-zones
    这条命令将用以下格式输出每个区域所含接口:
    <zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..

     获取所有支持的服务

    #firewall-cmd --get-service

    每个服务以空格分隔  例如:

    RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-http

    获取永久选项所支持的服务   就是重启后也支出的

    #firewall-cmd --get-service --permanent  //在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic
    开启应急模式阻断所有网络连接
    #firewall-cmd --panic-on  //在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic

    关闭应急模式       

    #firewall-cmd --panic-off

     查看应急模式的状态

    #firewall-cmd --query-panic

     在不改变状态的条件下重新加载防火墙:

    #firewall-cmd --reload

    防火墙预定义的服务配置文件是xml文件 目录在 /usr/lib/firewalld/services/

     

    在 /etc/firewalld/services/ 这个目录中也有配置文件    但是/etc/firewalld/services/目录 优先于 /usr/lib/firewalld/services/  目录

    修改配置文件后 使用命令重新加载

    #firewall-cmd --reload

     

    启用某个服务

    # firewall-cmd --zone=public --add-service=https   //临时
    # firewall-cmd --permanent --zone=public --add-service=https  //永久

    开启某个端口

    #firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp  //永久
    #firewall-cmd  --zone=public --add-port=8080-8081/tcp   //临时

    使用命令加载设置

    #firewall-cmd --reload

     

    查看开启的端口和服务

    #firewall-cmd --permanent --zone=public --list-services    //服务空格隔开  例如 dhcpv6-client https ss   
    #firewall-cmd --permanent --zone=public --list-ports //端口空格隔开  例如  8080-8081/tcp 8388/tcp 80/tcp

    在每次修改 端口和服务后  /etc/firewalld/zones/public.xml  文件就会被修改   所以也可以在文件中之间修改  然后重新加载

     

     

     设置某个ip 访问某个服务

    #firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"  source address="192.168.0.4/24" service name="http" accept"

    ip 192.168.0.4/24 访问 http

    设置后 public.xml 就会出现变化


     

     删除上面设置的规则

    #firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4"  source address="192.168.0.4/24" service name="http" accept"

     

    启动服务


    #systemctl start firewalld.service  //开启服务
    #systemctl enable firewalld.service //开机制动启动

    #systemctl stop firewalld.service //关闭服务
    #systemctl disable firewalld.service //禁止开机启动



     

    端口转发

    先开启允许伪装IP

    1
    2
    3
    firewall-cmd --query-masquerade # 检查是否允许伪装IP
    firewall-cmd --add-masquerade   # 允许防火墙伪装IP
    firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

      

    设置转发

     

    然后转发 tcp 22 端口至 3753

    # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=3753

     

    转发 22 端口数据至另一个 ip 的相同端口上

    # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

     

    转发 22 端口数据至另一 ip 的 2055 端口上

    # firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100
    彩票大乐透