centos7防火墙

一、默认防火墙firewall

由于centos7默认是使用firewall作为防火墙

  1. 安装firewalld 防火墙
    yum install firewalld
  2. 开启服务
    systemctl start firewalld.service
    关闭防火墙
    systemctl stop firewalld.service
  3. 开机自动启动
    systemctl enable firewalld.service
    关闭开机制动启动
    systemctl disable firewalld.service
  • 启动报错
    Failed to start firewalld.service: Unit is masked.
    image.png
  • 执行命令,即可实现取消服务的锁定
    systemctl unmask firewalld
  1. 使用firewall-cmd 命令
    查看状态:running 表示运行
    firewall-cmd --state
  • 获取活动的区域firewall-cmd --get-active-zones
    这条命令将用以下格式输出每个区域所含接口:
    <zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..

  • 获取所有支持的服务firewall-cmd --get-service
    在不改变状态的条件下重新加载防火墙:firewall-cmd --reload

  1. 开启https或者某个端口
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 --permanent --zone=public --remove-port=8080-8081/tcp //永久
  1. 使用命令加载设置(生效)
    firewall-cmd --reload
    例如:
systemctl start firewalld.service
systemctl enable firewalld.service
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=4000-20000/tcp
firewall-cmd --permanent --zone=public --list-ports
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --reload
  1. 查看开启的端口和服务
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

效果如下:


image.png
  1. 设置某个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
  1. 删除上面设置的规则
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"
  1. 检查设定是否生效
 iptables -L -n | grep 21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21 ctstate NEW

执行命令firewall-cmd --list-all
显示:

public (default)
  interfaces:
  sources:
  services: dhcpv6-client ftp ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

查询服务的启动状态

firewall-cmd --query-service ftp
yes
firewall-cmd --query-service ssh
yes
firewall-cmd --query-service samba
no
firewall-cmd --query-service http
no

自行加入要开放的 Port

firewall-cmd --add-port=3128/tcp
firewall-cmd --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ftp ssh
  ports: 3128/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

二、防火墙iptables

  • 停止firewall
    systemctl stop firewalld.service
  • 禁止firewall开机启动
    systemctl disable firewalld.service
  1. 安装iptables
    yum install iptables-services
  2. 设置开机启动、不启动
    systemctl enable iptables
    systemctl disable iptables
  3. 编辑防火墙文件 (建议都在配置文件配置,不要命令配置)
    vi /etc/sysconfig/iptables
    添加80和3306端口 等等(自己配置)
    -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT    #80端口开放
  4. 重启防火墙使配置文件生效
    systemctl restart iptables.service
    设置iptables防火墙为开机启动项
    systemctl enable iptables.service
    service iptables start #启动服务
    service iptables stop   #停止服务
    service iptables restart  #重启服务
  5. 关闭SELINUX
    vi /etc/selinux/config #注释以下配置 
    SELINUX=enforcing 
    SELINUXTYPE=targeted #增加以下配置 
    SELINUX=disabled #使配置立即生效 
    setenforce 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容