Linux关闭ufw防火墙,开启ufw防火墙的一些命令

Linux关闭ufw防火墙,开启ufw防火墙的一些命令UFW,即UncomplicatedFirewall,是基于iptables实现的防火墙管理工具,旨在简化配置防火墙的过程,所以实际上UFW修改的是iptables的规则。虽然iptables是一个坚实而灵活的工具,但初学者很难学习如何使用它来正确配置防火墙。如果您希望开始保护您的网络,并且您不确定使用哪种工具,UFW可能是您的正确选择。本文测试环境为Ubuntu16.04,其他系统可做参考。…

大家好,欢迎来到IT知识分享网。Linux关闭ufw防火墙,开启ufw防火墙的一些命令

UFW,即Uncomplicated Firewall,是基于iptables实现的防火墙管理工具,旨在简化配置防火墙的过程,所以实际上UFW修改的是iptables的规则。虽然iptables是一个坚实而灵活的工具,但初学者很难学习如何使用它来正确配置防火墙。如果您希望开始保护您的网络,并且您不确定使用哪种工具,UFW可能是您的正确选择。

本文测试环境为Ubuntu 16.04,其他系统可做参考。

0x01. 温馨提示

如果是远程操作的话,请做好定时防火墙失效,防止自己连接不上。

每10分钟关闭防火墙

$ crontab -e

#*/10 * * * * /data/shell/stop_ufw.sh

非常简单的代码

$ cat /data/shell/stop_ufw.sh

#!/bin/bash

/usr/sbin/ufw disable

0x02. 环境要求

Ubuntu系统默认已经安装了UFW,如果没有ufw,可以手动安装:

$ sudo apt-get update

$ sudo apt-get install ufw

0x03. 基础配置

允许UFW管理IPV6

如果您的Ubuntu服务器网络支持IPv6,请确保UFW配置为支持IPv6,以便除了IPv4之外还将管理IPv6的防火墙规则。

sudo vim /etc/default/ufw

确保你的IPV6选项为yes即可:

IPV6=yes

设置默认规则

UFW默认情况下允许所有的出站连接,拒绝所有的入站连接,所以这里首先将UFW设置为默认规则:

$ sudo ufw default deny incoming

$ sudo ufw default allow outgoing

ufw default也允许使用reject参数

允许SSH连接

一旦启用UFW之后,如果没有允许SSH连接,将无法再通过SSH远程访问主机,所以在开启防火墙之前要确认SSH连接已经设置为允许:

$ sudo ufw allow ssh

这里创建一条规则,允许ssh连接,其实是允许22端口的连接,等价于:

$ sudo ufw allow 22

UFW通过/etc/services知道ssh服务使用的默认端口为22,如果你的SSH服务使用的端口不是22,则应该修改为相应 的端口号。

查看防火墙状态

通过以下命令查看防火墙状态:

$ sudo ufw status verbose

也可以不带verbose,当防火墙处于关闭状态时只会显示inactive

可以查看刚刚添加的防火墙规则:

0x04. 启用/禁用UFW

启用UFW命令:

$ sudo ufw enable

该命令默认会将UFW设置为开机启动,如果发现重启后UFW并没有自动启动,可以手动设置UFW服务开机自动启动:

$ sudo systemctl start ufw

$ sudo systemctl enable ufw

记得查看防火墙当前的状态:

$ sudo ufw status

Status: active

To Action From

— —— —-

80/tcp ALLOW Anywhere

443/tcp ALLOW Anywhere

禁用UFW命令:(该命令会禁用防火墙并关闭其开机自动启动)

$ sudo ufw disable

0x05. 启用/禁用防火墙日志

启用防火墙日志:

$ sudo ufw logging on

禁用防火墙日志:

$ sudo ufw logging off

可以指定日志级别sudo ufw logging low|medium|high

日志文件在/var/log/ufw.log

内容形如:

Oct 11 11:51:31 store42 kernel: [45088.074036] [UFW BLOCK] IN=eno1 OUT= MAC=80:18:44:e1:ae:68:00:0f:e2:b1:01:01:08:00 SRC=60.169.78.143 DST=183.60.192.48 LEN=40 TOS=0x00 PREC=0x00 TTL=244 ID=1991 PROTO=TCP SPT=44007 DPT=8080 WINDOW=1024 RES=0x00 SYN URGP=0

其中前面列出了主机防火墙日志的日期、时间、主机名,后面的内容意思是

[UFW BLOCK]:表示事件描述的开始以及是何种事件。在此例中,它表示阻止了连接。

IN:如果它包含一个值,那么代表该事件是传入事件

OUT:如果它包含一个值,那么代表事件是传出事件

MAC:目的地和源 MAC 地址的组合

SRC:IP数据包的源IP

DST:目的地的IP

LEN:数据包长度

TTL:数据 TTL,或称为time to live。

PROTO:数据包的协议

SPT:数据包的源端口

DPT:目标端口

WINDOW:发送方可以接收的数据包的大小

SYN URGP:指示是否需要三次握手。 0 表示不需要。

0x06. 允许连接

默认情况下ufw的allow不加in允许连接是指允许入站连接,如果要指定允许出站,可以加上out,如:

$ sudo ufw allow in port #允许port入站

$ sudo ufw allow out port #允许port出站

允许指定端口的协议

通过刚才设置ssh的规则,可以知道直接allow就是允许连接

允许HTTP 80端口的所有连接:

$ sudo ufw allow http

等价于:

$ sudo ufw allow 80

允许指定范围内的端口协议

例如,X11的连接端口范围是6000-6007:

$ sudo ufw allow 6000:6007/tcp

$ sudo ufw allow 6000:6007/udp

允许指定IP的连接

$ sudo ufw allow from 192.168.1.100

允许192.168.1.100访问指定端口(22端口):

$ sudo ufw allow from 192.168.1.100 to any port 22

允许子网的连接

允许IP段192.168.1.1到192.168.1.254的所有连接

$ sudo ufw allow from 192.168.1.0/24

允许IP段192.168.1.0/24 访问指定端口(22端口)

$ sudo ufw allow from 192.168.1.0/24 to any port 22

指定允许通过某个网卡的连接

假设这里允许eth0的80端口连接:

$ sudo ufw allow in on eth0 to any port 80

0x07. 拒绝连接

与允许连接一样,只需要将相应的allow换成deny即可,如拒绝http端口的所有连接:

$ sudo ufw deny http

等价于:

$ sudo ufw deny 80

拒绝指定ip的连接:

$ sudo ufw deny from 192.168.1.100

0x08. 删除规则

UFW有两种方式删除防火墙规则,既可以通过规则号删除,也可以通过实际规则删除,通过规则号删除更容易。

通过规则号删除

首先查看所有规则的规则号:

$ sudo ufw status numbered

Status: active

To Action From

— —— —-

[ 1] 80/tcp ALLOW IN Anywhere

[ 2] 443/tcp ALLOW IN Anywhere

[ 3] 22/tcp ALLOW IN Anywhere

[ 4] Anywhere ALLOW IN 192.168.1.0/24

然后直接delete即可,例如删除https(443)的连接规则:

$ sudo ufw delete 2

通过规则删除

删除allow http规则:

$ sudo ufw delete allow 80

0x09. 重置防火墙规则

$ sudo ufw reset

该命令将禁用UFW,并且删除所有已经定义的规则,不过默认该命令会对已经设置的规则进行备份

0x10. 备份/还原规则

UFW的所有规则文件都在路径/etc/ufw/,其中before.rules规则为UFW在运行用户自定义的规则之前运行的规则,相应的before6.rules对应IPV6。after.rules为UFW启用用户自定义规则之后运行的规则。user.rules即为用户自定义的规则。

/etc/default/ufw文件为UFW的配置文件。

所以可以通过直接备份这些配置文件的方式来备份防火墙规则,需要备份的文件有:

/etc/ufw/.rules

/lib/ufw/.rules

/etc/default/ufw # 这个配置文件如果没有修改过,可以不备份

修改配置文件之后通过以下命令重新加载配置文件:

$ sudo ufw reload

0x11. 其他

批量禁止IP

$ while read line; do sudo ufw deny from $line; done < file.txt

file.txt里面是一个需要禁止的IP列表

参考:

1.How To Set Up a Firewall with UFW on Ubuntu

2.How to Configure a Firewall with UFW

http://notes.maxwi.com/2017/01/19/linux-command-tools-ufw/

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12505.html

(0)
上一篇 2024-03-13 12:33
下一篇 2024-03-13 20:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信