linux防火墙快速实践

linux防火墙介绍

iptables

Ubuntu的Linux内核提供一个数据包过滤框架:netfilter,传统的操作的命令行工具是iptables。它提供一套完整的可灵活配置的防火墙解决方案。但是它的使用相对复杂

精通iptables需要耗费很多时间,开始使用iptables来管理网络过滤器是个复杂的工作。所以近年来,出现了许多iptables的前端/上游软件,它们都是为了达到不同的目的和满足不同目标用户的需求而生的。

ufw

The Uncomplicated Firewall (ufw)是对iptables的封装,非常适合作为基于主机的防火墙。ufw提供了一套管理netfilter的框架以及一套配置防火墙的命令行接口。ufw的目标是提供一套容易使用的接口给不熟悉防火墙概念的人使用,同时帮助知道自己要干嘛的系统管理员简化复杂的iptables命令的使用。

使用ufw

安装方法

一般ubuntu自带ufw,如果需要也可以自行安装

1
sudo apt-get install ufw

使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#启用
sudo ufw enable
#系统启动时关闭所有外部对本机的访问(本机访问外部正常)。
sudo ufw default deny
#关闭
sudo ufw disable
#查看防火墙状态
sudo ufw status
#允许外部访问80端口
sudo ufw allow 80
#禁止外部访问80端口
sudo ufw delete allow 80
#允许IP访问所有的本机端口
sudo ufw allow from 192.168.1.1
#禁止外部访问smtp服务
sudo ufw deny smtp
#删除上面建立的某条规则
sudo ufw delete deny smtp
#拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址的22端口
sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22
#允许所有RFC1918网络(局域网/无线局域网的)访问这个主机
sudo ufw allow from 10.0.0.0/8
sudo ufw allow from 172.16.0.0/12
sudo ufw allow from 192.168.0.0/16

惯例配置

服务器通常只暴露用于管理的22端口及一个服务端(入)口80,内部再通过反向代理进行端口(服务)分发

1
2
3
4
5
6
7
#启用
sudo ufw enable
#系统启动时关闭所有外部对本机的访问(本机访问外部正常)。
sudo ufw default deny
#允许外部访问80端口及22端口
sudo ufw allow 22
sudo ufw allow 80

使用指南

ufw中文使用指南