防火墙知识

author:troy

website : https://www.zygd.site

statement : Some source networks

Ubuntu

 1. 安装

1
sudo apt-get install ufw

 2. 启用

1
2
sudo ufw enable
sudo ufw default deny
  • 运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常
  1. 开启/禁用
1
sudo ufw allow|deny [service]
  • 打开或关闭某个端口,例如:
1
2
3
4
5
6
7
sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口
sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 53 允许外部访问53端口(tcp/udp)
sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
sudo ufw deny smtp 禁止外部访问smtp服务
sudo ufw delete allow smtp 删除上面建立的某条规则
  1. 查看防火墙状态
1
sudo ufw status
  • 一般用户,只需如下设置:
1
2
3
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny
  • 以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。

  • 开启/关闭防火墙 (默认设置是’disable’)

1
sudo ufw enable|disable
  • 转换日志状态
1
sudo ufw logging on|off
  • 设置默认策略 (比如 “mostly open” vs “mostly closed”)
1
sudo ufw default allow|deny
  • 许可或者屏蔽端口 (可以在“status” 中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
1
sudo ufw allow|deny [service]
  • 显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
1
sudo ufw status

UFW 使用范例:

  • 允许 53 端口
1
sudo ufw allow 53
  • 禁用 53 端口
1
sudo ufw delete allow 53
  • 允许 80 端口
1
sudo ufw allow 80/tcp
  • 禁用 80 端口
1
sudo ufw delete allow 80/tcp
  • 允许 smtp 端口
1
sudo ufw allow smtp
  • 删除 smtp 端口的许可
1
sudo ufw delete allow smtp
  • 允许某特定 IP
1
sudo ufw allow from 192.168.254.254
  • 删除上面的规则
1
sudo ufw delete allow from 192.168.254.254

Centos

  1. 安装
1
yum install firewalld
  • 如果需要图形界面的话,则再安装
1
yum install firewall-config

使用方法

  1. 开启防火墙

    1
    systemctl start firewalld.service
  2. 防火墙开机启动

    1
    systemctl enable firewalld.service
  3. 关闭防火墙

    1
    systemctl stop firewalld.service
  4. 查看防火墙状态

    1
    firewall-cmd --state
  5. 查看现有的规则

    1
    iptables -nL
  6. 重载防火墙配置

    1
    firewall-cmd --reload
  7. 添加单个单端口

    1
    firewall-cmd --permanent --zone=public --add-port=81/tcp
  8. 添加多个端口

    1
    firewall-cmd --permanent --zone=public --add-port=8080-8083/tcp
  9. 删除某个端口

    1
    firewall-cmd --permanent --zone=public --remove-port=81/tcp
  10. 针对某个 IP开放端口

    1
    2
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.142.166" port protocol="tcp" port="6379" accept"
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"
  11. 删除某个IP

    1
    firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
  12. 针对一个ip段访问

    1
    2
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
    firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
  13. 添加操作后别忘了执行重载

    1
    firewall-cmd --reload
  14. 查看指定级别的所有信息,譬如 public

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    firewall-cmd --zone=public --list-all
    public (default, active)
    interfaces: eth0
    sources:
    services: dhcpv6-client http ssh
    ports:
    masquerade: no
    forward-ports:
    icmp-blocks:
    rich rules:

点击这里给我发消息