Ubuntu18.0.4 ufw iptables 安装防火墙启动、并设置允许策略详细使用

时间:2024-03-08 13:11:49

SELinux、Netfilter、iptables、firewall和UFW五者关系

一、五者是什么?
1、SELinux是美国国家安全局发布的一个强制访问控制系统
2、Netfilter是Linux 2.4.x引入的一个子系统,作为一个通用的、抽象的框架,提供一整套的hook函数的管理机制
3、iptables是Linux下功能强大的应用层防火墙工具。

4、firewall是centos7里面新的防火墙管理命令
5、ufw是Ubuntu下的一个简易的防火墙配置工具。


二、五者关系?
1、Netfilter管网络,selinux管本地。
2、iptables是用于设置防火墙,防范来自网络的入侵和实现网络地址转发、QoS等功能,而SELinux则可以理解为是作为Linux文件权限控制(即我们知道的rwx)的补充存在的
3、ufw是自2.4版本以后的Linux内核中一个简易的防火墙配置工具,底层还是调用iptables来处理的,iptables可以灵活的定义防火墙规则, 功能非常强大。但是产生的副作用便是配置过于复杂。因此产生一个相对iptables简单很多的防火墙配置工具:ufw

4、firewall是centos7里面新的防火墙管理命令,底层还是调用iptables来处理的,主要区别是iptables服务,每次更改都意味着刷新所有旧规则并从/etc/sysconfig/iptables读取所有新规则,firewall可以在运行时更改设置,而不丢失现有连接。
5、iptables是Linux下功能强大的应用层防火墙工具, 说到iptables必然提到Netfilter,iptables是应用层的,其实质是一个定义规则的配置工具,而核心的数据包拦截和转发是Netfiler。Netfilter是Linux操作系统核心层内部的一个数据包处理模块

iptables和Netfilter关系图:

iptables和fillwall关系图:

================================================================

启动iptables

modprobe ip_tables

关闭iptables(关闭命令要比启动复杂)


iptalbes -F

iptables -X

iptables -Z

iptables -P INPUT ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

modprobe -r ip_tables

依次执行以上命令即可关闭iptables,否则在执行modproble -r ip_tables时将会提示FATAL: Module ip_tables is in use.

清除预设表filter中的所有规则链的规则

iptables -F

清除预设表filter中使用者自定链中的规则

 iptables -X

以数字形式查看iptables规则

iptables -L -n

抛弃所有不符合三种链规则的数据包


iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP


设置 本地进程 lo 的 INPUT 和 OUTPUT 链接,eth0 的 INPUT 链


iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -jACCEPT

iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j LOG

iptables -A OUTPUT -o lo -j ACCEPT

开放SSH端口22

iptables -A INPUT -p tcp -i eth0 --dport ssh -j ACCEPT

开放Web端口80

iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT

开放FTP端口21、20


iptables -A INPUT -p tcp --dport 20 -j ACCEPT

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

删除FTP端口21、20


iptables -D INPUT -p tcp --dport 20 -j ACCEPT

iptables -D INPUT -p tcp --dport 21 -j ACCEPT

允许loopback(不然会导致DNS无法正常关闭等问题)


IPTABLES -A INPUT -i lo -p all -j ACCEPT (如果是INPUT DROP)

IPTABLES -A OUTPUT -o lo -p all -j ACCEPT (如果是OUTPUT DROP)

保存iptables规则

iptables-save > /etc/iptables.up.rules

iptables规则自动保存与自动加载

nano /etc/network/interfaces

修改 /etc/network/interfaces ,添加下面末尾2行脚本



auto eth0

iface eth0 inet dhcp

pre-up iptables-restore < /etc/network/iptables.up.rules

post-down iptables-save > /etc/network/iptables.up.rules

===============================

UFW全称为Uncomplicated Firewall,是Ubuntu系统上配置iptables防火墙的工具。

UFW提供一个非常友好的命令用于创建基于IPV4,IPV6的防火墙规则。

但是,UFW是没有界面的,就是用命令的那一种,所以,操作起来就不是那么的方便,有人帮它写了个界面,名字就叫做“Gufw”。

由于Ubuntu下的iptables操作起来比较复杂,依赖关系比较多,所以使用UFW时可以简化很多操作。

当然Debian同样适用。无论是桌面版还是服务器版, UFW的命令行用法是一样的。

1.安装方法:

sudo apt-get install ufw


2.使用方法
    2.1 启动防火墙并设置开机启动:

sudo ufw enable
sudo ufw default deny


注:开启防火墙并关闭外部主机对本机的访问(不影响本机对外部主机访问)

     2.2 关闭

sudo ufw disable


    2.3 查看防火墙状态(开启了为 active, 没开启为 inactive)

sudo ufw status


    2.4 开启、禁用端口及其他服务

sudo ufw allow port_number // 开放 port_number 端口
 
sudo ufw delete allow port_number // 删除 port_number 端口
 
sudo ufw allow from 192.168.1.1 // 允许来自 192.168.1.1 的主机的访问
 
sudo ufw deny smtp // 禁止外部访问smtp服务
 
sudo ufw delete allow smtp // 删除上面建立的某条规则


  2.5 重置所有的规则
 

sudo ufw reset

 

3、设置允许ssh访问:

sudo ufw allow ssh

4、查看防火墙状态:

sudo ufw status


更多详细参照:

Ubuntu的防火墙配置-ufw-iptables
自打2.4版本以后的Linux内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、NAT等功能。
一般来说, 我们会使用名气比较的大iptables等程序对这个防火墙的规则进行管理。iptables可以灵活的定义防火墙规则, 功能非常强大。但是由此产生的副作用便是配置过于复杂。一向以简单易用著称Ubuntu在它的发行版中,附带了一个相对iptables简单很多的防火墙配置工具:ufw。


ufw默认是没有启用的。也就是说, ubuntu中的端口默认都是开放的。使用如下命令启动ufw:
sudo ufw default deny
sudo ufw enable
通过第一命令,我们设置默认的规则为allow, 这样除非指明打开的端口, 否则所有端口默认都是关闭的。第二个命令则启动了ufw。如果下次重新启动机器, ufw也会自动启动。
对于大部分防火墙操作来说, 其实无非就是的打开关闭端口。如果要打开SSH服务器的22端口, 我们可以这样:
sudo ufw allow 22
由于在/etc/services中, 22端口对应的服务名是ssh。所以下面的命令是一样的:
sudo ufw allow ssh
现在可以通过下面命令来查看防火墙的状态了:
sudo ufw status
Firewall loaded

To Action From
– —— —-
22:tcp ALLOW Anywhere
22:udp ALLOW Anywhere
可以看到, 22端口的tcp和udp协议都打开了。
删除已经添加过的规则:
sudo ufw delete allow 22
只打开使用tcp/ip协议的22端口:
sudo ufw allow 22/tcp
打开来自192.168.0.1的tcp请求的80端口:
sudo ufw allow proto tcp from 192.168.0.1 to any port 22
要关系防火墙:
sudu ufw disable

ubuntu下的ufw防火墙配置
UFW防火墙是一个主机端的iptables类防火墙配置工具。这个工具的目的是提供给用户一个可以轻松驾驭的界面,就像包集成和动态检测开放的端口一样。
在Ubuntu中安装UFW:
目前这个包存在于Ubuntu 8.04的库中。
sudo apt-get install ufw
上面这行命令将把软件安装到您系统中。
开启/关闭防火墙 (默认设置是’disable’)
# ufw enable|disable
转换日志状态
# ufw logging on|off
设置默认策略 (比如 “mostly open” vs “mostly closed”)
# ufw default allow|deny
许 可或者屏蔽某些入埠的包 (可以在“status” 中查看到服务列表[见后文])。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
# ufw allow|deny [service]
显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
# ufw status

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


ubuntu 防火墙
ufw是Ubuntu下的一个简易的防火墙配置工具,底层还是调用iptables来处理的,虽然功能较简单,但对桌面型应用来说比较实用,基本常用功能都有,使用也较为容易。


1.安装
sudo apt-get install ufw

2.启用
sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。
关闭所有外部对本机的访问,但本机访问外部正常。

3.开启/禁用
sudo ufw allow|deny [service]
打开或关闭某个端口,例如:
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 删除上面建立的某条规则

4.查看防火墙状态
sudo ufw status

一般用户,只需如下设置:
sudo apt-get install ufw
sudo ufw enable
sudo default deny
以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。

Ubuntu防火墙 UFW 设置简介
2010-03-03 16:27
1.安装
sudo apt-get install ufw
2.启用
sudo ufw enable
sudo ufw default deny
运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。
3.开启/禁用
sudo ufw allow|deny [service]
打开或关闭某个端口,例如:
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 删除上面建立的某条规则
4.查看防火墙状态
sudo ufw status
一般用户,只需如下设置:
sudo apt-get install ufw
sudo ufw enable
sudo ufw default deny
以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。
开启/关闭防火墙 (默认设置是’disable’)
sudo ufw enable|disable
转换日志状态
sudo ufw logging on|off
设置默认策略 (比如 “mostly open” vs “mostly closed”)
sudo ufw default allow|deny
许可或者屏蔽端口 (可以在“status” 中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。 ‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:
sudo ufw allow|deny [service]
显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。
sudo ufw status
UFW 使用范例:
允许 53 端口
 sudo ufw allow 53
禁用 53 端口
 sudo ufw delete allow 53
允许 80 端口
 sudo ufw allow 80/tcp
禁用 80 端口
 sudo ufw delete allow 80/tcp
允许 smtp 端口
 sudo ufw allow smtp
删除 smtp 端口的许可
 sudo ufw delete allow smtp
允许某特定 IP
 sudo ufw allow from 192.168.254.254
删除上面的规则
 sudo ufw delete allow from 192.168.254.254