目录
概述
1 防火墙工具(ufw)
1.1 安装防火墙工具:
1.2 操作防火墙相关命令
2 ufw操作命令的范例
2.1 打开/关闭防火墙
2.1.1 打开防火墙
2.1.2 关闭防火墙
2.1.3 查询当前防火墙状态
2.1.4 允许选择的端口访问
2.1.5 允许选择固定IP访问
3 iptables工具使用
3.1 安装iptables
3.2 iptables使用范例
概述
本文介绍两款防火墙工具(ufw 和iptables )的相关知识,并在ubuntu linux 环境中安装安装这两款软件,还使用具体的案例来介绍其命令的使用方法。
1 防火墙工具(ufw)
ufw(Uncomplicated Firewall)是一个简单易用的防火墙配置工具,它是一个基于命令行的工具,用于管理Linux操作系统上的防火墙规则。ufw是一个前端应用程序,用于配置iptables规则,并且提供了一些简化的语法和命令,使它更容易使用和理解。
使用ufw,您可以轻松地配置和管理防火墙规则,包括允许或拒绝特定端口、IP地址或一组IP地址的访问。它还可以设置默认策略,指定默认允许或拒绝所有入站和出站连接。ufw还支持应用程序规则,可以根据应用程序名称允许或拒绝特定应用程序的网络连接。
ufw的语法简单且易于记忆,使得即使对于没有网络安全经验的用户也可以轻松地配置和管理防火墙规则。它还可以与其他防火墙管理工具和服务一起使用,如FirewallD、Fail2ban等。
ufw是一个简单易用的防火墙配置工具,可以帮助用户保护其系统免受未经授权访问和网络攻击。
1.1 安装防火墙工具:
sudo apt update
sudo apt install ufw
1.2 操作防火墙相关命令
和ufw相关的命令功能介绍如下:
命令 | 功能介绍 |
---|---|
sudo ufw enable/disable | 打开/关闭防火墙 |
sudo ufw reload | 重启防火墙 |
sudo ufw reset | 重置所有规则 (先前有配置则不能进行改操作 |
sudo ufw status | 查看已经定义的ufw规则 |
sudo ufw default allow/deny | 外来访问默认允许/拒绝 |
sudo ufw allow/deny 22 | 允许/拒绝访问22端口,22后可跟/tcp或/udp,表示tcp或udp封包。 |
sudo ufw allow from 192.168.1.100 | 允许此IP访问所有的本机端口 |
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22 | 允许自192.168.1.0/24的tcp封包访问本机的22端口。 |
sudo ufw deny smtp | 禁止外部访问smtp服务 |
sudo ufw delete allow/deny 22 | 删除以前定义的"允许/拒绝访问22端口"的规则 |
sudo ufw delete allow smtp | smtp 删除上面建立的某条规则 |
sudo ufw deny proto tcp to any port 80 | 阻止本机用tcp协议在80端口发数据 |
sudo ufw allow proto tcp from any to any port 80,443,8080:8090 | ufw可以连续例举端口号。端口号间必须使用逗号或分号,不能使用空格。“输入端口号”字符数最多不能超过15过(8080:8090算两个字符)。比如允许80,443,8080~8090这几个端口接受tcp传入连接 |
sudo ufw allow 7100:7200/tcp | 端口范围 |
2 ufw操作命令的范例
2.1 打开/关闭防火墙
2.1.1 打开防火墙
使用ufw enable/disable实现打开或者关闭防火墙
sudo ufw enable
打开防火墙后,导致ssh 端口也会被屏蔽
2.1.2 关闭防火墙
使用命令:
sudo ufw disable
执行命令后,防火墙已经被关闭:
2.1.3 查询当前防火墙状态
使用命令:
sudo ufw status
执行命令后,防火墙已经被关闭:
2.1.4 允许选择的端口访问
使用命令:
sudo ufw allow 1883
执行命令后,看见如下信息,说明该端口已经被使能:
2.1.5 允许选择固定IP访问
使用命令:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 22
执行命令后,看见如下信息,说明该这些IP已经被使能:
3 iptables工具使用
iptables是一个用于Linux操作系统的防火墙工具。它可以配置、管理和操作Linux内核中的网络数据包过滤规则。iptables允许用户定义规则来过滤、转发、修改和丢弃网络数据包,以实现网络安全和数据包管理。
iptables具有强大的功能和灵活的规则配置选项,可以根据IP地址、端口号、协议、连接状态等多个因素来过滤和处理网络数据包。它可以用于阻止未经授权的访问、保护网络服务免受攻击、网络流量控制、NAT转换等。
iptables规则由一系列的规则链组成,每个规则链包含一组规则。数据包在通过防火墙时会按照规则链的顺序逐个匹配规则,并根据规则的动作来处理数据包(接受、拒绝、转发或修改)。iptables还支持网络地址转换(NAT)功能,可以将内部IP地址转换为外部IP地址。
iptables是Linux中最常用的防火墙工具之一,几乎所有的Linux发行版都默认安装了它。它的灵活性和可定制性使其成为网络管理员和系统管理员的首选工具之一,用来保护和管理网络安全。
3.1 安装iptables
使用命令:
sudo apt-get install iptables
执行命令后:
3.2 iptables使用范例
范例 | 注释 |
---|---|
whereis iptables | 检查是否安装了iptables |
iptables -L -n | 查看iptables现有规则 |
iptables -P INPUT ACCEPT | 先允许所有IP访问 |
iptables -F | 清空所有默认规则 |
iptables -X | 清空所有自定义规则 |
iptables -Z | 所有计数器归0 |
iptables -A INPUT -i lo -j ACCEPT | 允许来自于lo接口的数据包(本地访问) |
iptables -A INPUT -p tcp --dport 22 -j ACCEPT | 开放22(SSH)端口 |
iptables -A INPUT -p tcp --dport 21 -j ACCEPT | 开放21端口(FTP) |
iptables -A INPUT -p tcp --dport 80 -j ACCEPT | 开放80端口(HTTP) |
iptables -A INPUT -p tcp --dport 443 -j ACCEPT | 开放443端口(HTTPS) |
iptables -A INPUT -p tcp --dport 1883 -j ACCEPT | 开放1883端口(mqtt) |
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT | 允许ping |
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT | 允许接受本机请求之后的返回数据 RELATED,是为FTP设置的 |
iptables -P INPUT DROP | 其他入站一律丢弃 |
iptables -P OUTPUT ACCEPT | 所有出站一律允许 |
iptables -P FORWARD DROP | 所有转发一律丢弃 |
iptables -A INPUT -p tcp -s 192.111.178.111 -j ACCEPT | 添加内网ip信任(接受其所有TCP请求) |
iptables -P INPUT DROP | 过滤所有非以上规则的请求 |
iptables -I INPUT -s { ip} -j DROP | 要封停一个IP |
iptables -D INPUT -s { ip} -j DROP | 要解封一个IP |
service iptables save | 保存规则 |