一、安装ufw服务

ubuntu@VM-0-16-ubuntu:~$ sudo apt-get install ufw

二、开启、关闭、重启ufw服务

1、开启 ufw 防火墙

ubuntu@VM-0-16-ubuntu:~$ sudo ufw enable            # 开启了防火墙,并在系统启动时自动开启。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw default deny # 关闭所有外部对本机的访问,但本机访问外部正常。

2、关闭 ufw 防火墙

ubuntu@VM-0-16-ubuntu:~$ sudo ufw disable

3、重启 ufw 防火墙

ubuntu@VM-0-16-ubuntu:~$ sudo ufw reload                            # 方式一
ubuntu@VM-0-16-ubuntu:~$ sudo ufw disable && sudo ufw enable # 方式二

4、查看 ufw 防火墙状态

ubuntu@VM-0-16-ubuntu:~$ sudo ufw status

5、默认 ufw 防火墙设置

ubuntu@VM-0-16-ubuntu:~$ sudo ufw default deny       # 默认拒绝外部访问主机
ubuntu@VM-0-16-ubuntu:~$ sudo ufw default allow # 默认允许外部访问本机

6、查看 ufw 防火墙版本

ubuntu@VM-0-16-ubuntu:~$ sudo ufw version

三、启用端口、关闭端口

1、开启、禁用、删除相应端口

ubuntu@VM-0-16-ubuntu:~$ sudo ufw deny 3120       # 拒绝外部访问3120端口,3120后可跟/tcp或/udp,表示tcp或udp封包
ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow 3120 # 允许外部访问3120端口,3120后可跟/tcp或/udp,表示tcp或udp封包。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete deny 3120 # 删除以前定义的"拒绝访问3120端口"的规则。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow 3120 # 删除以前定义的"允许访问3120端口"的规则。

2、开启、禁用、删除相应服务

ubuntu@VM-0-16-ubuntu:~$ sudo ufw deny smtp       # 禁止外部访问smtp服务。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow smtp # 允许外部访问smtp服务。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete deny smtp # 删除上面建立的 smtp 服务的拒绝访问规则。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow smtp # 删除上面建立的 smtp 服务的允许访问规则。 ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow/deny servicename # 从/etc/services中找到对应service的端口,进行过滤。

3、指定 IP 访问

ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow from 192.168.3.142             # 允许此IP访问所有的本机端口(允许某特定 IP)
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow from 192.168.3.142 # 删除这条规则
ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow from xx.xx.xx.xx to any port 22

四、屏蔽指定IP、放行指定IP

1、屏蔽指定IP(所有端口都不能访问)

ubuntu@VM-0-16-ubuntu:~$ sudo ufw deny from 28.16.66.45 to any             # 屏蔽IP为28.16.66.45的主机访问。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete deny from 28.16.66.45 to any # 删除上面的规则。

2、放行指定IP(所有端口都可以访问)

ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow from 28.16.66.45                    # 允许IP为28.16.66.45的主机访问本机所有端口。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow from 28.16.66.45 to any # 放行IP为28.16.66.45的主机访问本机所有端口。与上面效果一样。 ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow from 28.16.66.45 # 删除某个IP地址访问本机所有端口。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow from 28.16.66.45 to any # 删除上面的规则。

五、指定IP访问指定端口

1、允许指定ip访问指定端口

ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow proto tcp from 28.16.66.45 to any port 88           # 允许自28.16.66.45的tcp封包访问本机的88端口。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw allow proto tcp from 28.16.66.45 to 172.16.0.5 port 98 # 与上面效果一样,这里本机ip应该为内网IP,外网IP不行。 ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow proto tcp from 28.16.66.45 to any port 88 # 删除上面规则。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete allow proto tcp from 28.16.66.45 to 172.16.0.5 port 98 # 删除上面规则。

2、拒绝指定ip访问指定端口

ubuntu@VM-0-16-ubuntu:~$ sudo ufw deny proto tcp from 28.16.66.45 to any port 88           # 拒绝自28.16.66.45的tcp封包访问本机的88端口。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw deny proto tcp from 28.16.66.45 to 172.16.0.5 port 98 # 与上面效果一样,这里本机ip应该为内网IP,外网IP不行。 ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete deny proto tcp from 28.16.66.45 to any port 88 # 删除上面规则。
ubuntu@VM-0-16-ubuntu:~$ sudo ufw delete deny proto tcp from 28.16.66.45 to 172.16.0.5 port 98 # 删除上面规则。

六、端口转发

1、编辑 /etc/default/ufw 文件,更改参数 DEFAULT_FORWARD_POLICY 的值。

DEFAULT_FORWARD_POLICY="ACCEPT"      # 将 DROP 改为 ACCEPT

2、编辑 /etc/ufw/sysctl.conf 文件,若允许ipv4转发,将里边的转发选项去掉注释(如果你要开启 ipv6转发,那么就把 ipv6的注释也去掉)。启用内核转发(取消注释)。

net/ipv4/ip_forward=1
#net/ipv6/conf/default/forwarding=1
#net/ipv6/conf/all/forwarding=1

3、编辑 /etc/ufw/before.rules 文件,添加NAT到配置文件中。将以下内容添加到过滤器规则(*filter)之前。

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0] -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3120 # 方式一:将请求80端口的数据转发到本机的3120端口。
-A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 172.16.0.12:3120 # 方式二:将请求80端口的数据转发到本机的3120端口。注意:要使用本机ip地址+端口,如果使用127.0.0.1:3120,没效果。 -A PREROUTING -p tcp --dport 90 -j DNAT --to-destination 49.232.56.69:3120 # 将请求90端口的数据转发到IP为49.232.56.69上的3120端口
-A POSTROUTING -d 49.232.56.69 -j MASQUERADE COMMIT

4、重启 ufw 使配置生效。

ubuntu@VM-0-16-ubuntu:~$ sudo ufw reload                       # 方式一
ubuntu@VM-0-16-ubuntu:~$ sudo ufw disable && sudo ufw enable # 方式二

七、通过 ipset 来封禁IP

1、创建一个新的 ipset:test 是 ipset 名称

ubuntu@VM-0-16-ubuntu:~$ sudo ipset create test hash:net                   # 创建一条新的IP集,名为test(名字任意)
ubuntu@VM-0-16-ubuntu:~$ sudo ipset create test hash:net timeout 3600 # timeout 3600 表示封禁3600s

2、加入一个名单 ip 与 去除一个名单 ip

ubuntu@VM-0-16-ubuntu:~$ sudo ipset add test 28.16.66.45      # 加入一个名单 ip
ubuntu@VM-0-16-ubuntu:~$ sudo ipset del test 28.16.66.45 # 去除一个名单 ip

3、创建防火墙规则

ubuntu@VM-0-16-ubuntu:~$ sudo iptables -I INPUT -m set --match-set test src -j DROP         # 拒绝访问
ubuntu@VM-0-16-ubuntu:~$ sudo iptables -D INPUT -m set --match-set test src -j DROP # 删除规则 ubuntu@VM-0-16-ubuntu:~$ sudo iptables -I INPUT -m set --match-set test src -p tcp -j DROP # 拒绝访问(tcp协议)
ubuntu@VM-0-16-ubuntu:~$ sudo iptables -D INPUT -m set --match-set test src -p tcp -j DROP # 删除规则 ubuntu@VM-0-16-ubuntu:~$ sudo iptables -I INPUT -m set --match-set test src -p tcp --destination-port 25 -j DROP # test这个ipset里的ip都无法访问22端口
ubuntu@VM-0-16-ubuntu:~$ sudo iptables -D INPUT -m set --match-set test src -p tcp --destination-port 25 -j DROP # 删除规则

4、查看已创建的 ipset

ubuntu@VM-0-16-ubuntu:~$ sudo ipset list

5、删除已创建的 ipset

ubuntu@VM-0-16-ubuntu:~$ sudo ipset destroy test

6、导入导出 ipset 规则

ubuntu@VM-0-16-ubuntu:~$ sudo ipset save test -f test.txt           # 导出 ipset 规则,保存到文件
ubuntu@VM-0-16-ubuntu:~$ sudo ipset restore -f test.txt # 导入 ipset 规则

ipset 的一个优势是集合可以动态的修改,即使ipset的iptables规则目前已经启动,新加的入ipset的ip也生效。

https://blog.csdn.net/tycoon1988/article/details/46515535

https://blog.csdn.net/firehive/article/details/81260169

Linux—网络通讯管理命令的更多相关文章

  1. Linux网络服务管理命令

    netstat命令 示例:查看指定的服务是否开启netstat | grep ssh | grep -v grep 网络下载器————wget wget是一个Linux环境下用于从WWW上提取文件的工 ...

  2. linux网络通讯相关命令

    ifconfig 1.查看当前使用的网卡 watch cat /proc/net/dev 看下哪张网卡的流量变化大一般就是哪张网卡是在线使用的 2.ifconfig查看所有网卡信息,ifconfig ...

  3. Linux网络属性管理

    Linux网络属性管理 局域网:以太网,令牌环网 Ethernet: CSMA/CD 冲突域 广播域 MAC:Media Access Control 48bits: 24bits: 24bits: ...

  4. Linux 网络属性管理

    Linux网络基础管理-1:IPv4 地址分类:  点分十进制:0.0.0.0-255.255.255.255  A类: 0 0000000 - 0 1111111: 1-127 网络数:126, 1 ...

  5. Linux下磁盘管理命令df与du

    Linux下磁盘管理命令df与du  对磁盘进行查看和控制的两个linux命令,df和du.  一.du命令 首先看一下du的help说明: [root@misdwh opt]# du --help ...

  6. Linux网络属性配置命令和管理详解

    一.Linux网络属性配置 1.Linux主机接入到网络方式 IP/NETMASK:实现本地网络通信 路由(网关):可以进行跨网络通信 DNS服务器地址:基于主机名的通信,Linux可以有三个DNS地 ...

  7. Linux网络技术管理及进程管理(week2_day4)--技术流ken

    OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联 ...

  8. Linux网络技术管理及进程管理

    OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联 ...

  9. Linux——网络配置及命令

    traceroute命令(unix)/tracert命令(windows) tracert命令的格式为:tracert [-d] [-h maximum_hops] [-j host-list] [- ...

随机推荐

  1. CSS学习笔记-2D转换模块

    2D转换模块:    1.旋转        1.1格式:            transform:rotate(45deg);        1.2含义:            表示旋转多少度   ...

  2. Android8.1 源码修改之通过黑名单屏蔽系统短信功能和来电功能

    前言 之前写过一篇Android6.0 的屏蔽系统短信功能和来电功能,具体看这里 同样的最近有个新需求,需要将8.1 设备的来电功能和短信功能都屏蔽掉,特殊产品就是特殊定制,那就开始吧. 屏蔽短信功能 ...

  3. Redis之高可用、集群、云平台搭建(非原创)

    文章大纲 一.基础知识学习二.Redis常见的几种架构及优缺点总结三.Redis之Redis Sentinel(哨兵)实战四.Redis之Redis Cluster(分布式集群)实战五.Java之Je ...

  4. 远程访问阿里云服务器jupyter

    官网链接 一.pip安装jupyter安装Anaconda的话,会自动按照jupyter,就不需要再使用pip安装了 pip3 install jupyter 二.生成jupyter notebook ...

  5. python升级带来的yum异常(解决错误File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:)

    解决错误File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 错误: 原因: 这是因为yum采用python作为命令解 ...

  6. zhy2_rehat6_mysql01 - 二进制5.7.txt

    mysql 5.7版本的二进制安装方法 export LANG=en_US Centos7 X64 注意:安装完centos7 后,linux需要指定新建一个用户,要求密码强度很高,才能通过,安装系统 ...

  7. iozone - a filesystem benchmark tool 主要是用来测试文件系统 性能

    简介:    磁盘设备之上是文件系统,测试磁盘的工具往往就是调用块设备驱动的接口进行读写测试.而文件系统的测试软件就是针对文件系统层提供的功能进行测试,包括文件的打开关闭速度以及顺序读写随机位置读写的 ...

  8. Linux—chattr 命令详解

    chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files…最关键的是[mode]部分,[mode]部分是由+-=和[ASacDdIijsTtu] ...

  9. go语言设计模式之template

    template.go package template import ( "strings" ) type MessageRetriever interface { Messag ...

  10. 【bzoj4945】[Noi2017]游戏(搜索+2-sat)

    bzoj 洛谷 题意: 现在有\(a,b,c\)三种车,每个赛道可能会存在限制:\(a\)表示不能选择\(a\)类型的赛车,\(b,c\)同理:\(x\)表示该赛道不受限制,但\(x\)类型的个数$\ ...