问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Ubuntu防火墙设置(UFW、iptables):小白实操记录

创作时间:
作者:
@小白创作中心

Ubuntu防火墙设置(UFW、iptables):小白实操记录

引用
CSDN
1.
https://blog.csdn.net/h4241778/article/details/109954958

本文主要介绍Ubuntu 16/18版本中两种常用的防火墙工具:UFW和iptables。UFW(Uncomplicated Firewall)是Ubuntu系统上配置iptables防火墙的工具,提供了一个非常友好的命令用于创建基于IPV4和IPV6的防火墙规则。

UFW的使用

安装方法

sudo apt-get install ufw

使用方法

启动防火墙并设置开机启动

sudo ufw enable
sudo ufw default deny

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

关闭

sudo ufw disable

查看防火墙状态

开启了为 active, 没开启为 inactive

sudo ufw status

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

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的主机的访问
sudo ufw deny smtp // 禁止外部访问smtp服务
sudo ufw delete allow smtp // 删除上面建立的某条规则

重置所有的规则

sudo ufw reset

查看防火墙状态

sudo ufw status

转换日志状态

sudo ufw logging on|off

使用案例

对于大部分防火墙操作来说, 其实无非就是的打开关闭端口。如果要打开SSH服务器的22端口, 我们可以这样:

sudo ufw allow 22

由于在/etc/services中, 22端口对应的服务名是ssh。所以下面的命令是一样的:

sudo ufw allow ssh

删除已经添加过的规则:

sudo ufw delete allow 22

只打开使用tcp/ip协议的22端口:

sudo ufw allow 22/tcp

iptables的使用

启动iptables

modprobe ip_tables

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

iptables -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

允许IP访问

命令语法:iptables -t 表名 -I 链名 匹配条件 -j 动作(DROP、REJECT、ACCEPT)

示例:

iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT

开放SSH端口22

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --sport 22 -j ACCEPT

删除SSH端口22

iptables -D INPUT -p tcp --dport 22 -j ACCEPT
iptables -D INPUT -p tcp --sport 22 -j ACCEPT

保存iptables规则 文件不存在则新建

iptables-save > /etc/sysconfig/iptables

设置开机启动

ubuntu18 /etc/networkd-dispatcher/routable.d/50-ifup-hooks文件添加 iptables-restore < /etc/sysconfig/iptables

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

auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/sysconfig/iptables
post-down iptables-save > /etc/sysconfig/iptables

防火墙对比

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关系图:

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号