Ubuntu18.04的网络管理netplan和防火墙ufw
Netplan
Ubuntu18.04使用的网络管理是netplan, 配置文件在/etc/netplan/下
刚安装完成的配置是这样的(设置成了静态IP, 添加了DNS)
network:
ethernets:
ens3:
addresses:
- 192.168.13.25/24
dhcp4: false
gateway4: 192.168.13.1
nameservers:
addresses:
- 114.114.114.114
search: []
version: 2
添加静态路由
network:
ethernets:
ens3:
addresses:
- 192.168.13.25/24
dhcp4: false
gateway4: 192.168.13.1
nameservers:
addresses:
- 114.114.114.114
search: []
routes:
- to: 10.8.0.0/24
via: 192.168.13.15
version: 2
测试配置(并应用), 如果回车则应用新配置
sudo netplan try
应用配置
sudo netplan apply
查看配置结果
sudo networkctl status -a
Update 2023-05-15
在Ubuntu22.04中, gateway4 已经deprecated, 需要使用 default route
routes:
- to: default
via: 192.168.10.1
完整的配置例子为
network:
version: 2
renderer: networkd
ethernets:
eno1:
dhcp4: false
dhcp6: false
addresses:
- 192.168.10.10/24
routes:
- to: default
via: 192.168.10.1
nameservers:
addresses: [192.168.10.1]
UFW
Ubuntu18.04自带了一个简单防火墙工具 UFW(Uncomplicated Firewall), 职能与firewalld类似, UFW实际上底层起作用的还是是iptables.
默认情况下UFW 阻止所有传入连接并允许所有传出连接. 任何尝试访问当前机器的请求都无法连接, 但当前机器上运行的应用能对外访问.
# 启动和关闭, 可以运行iptables -L -n查看开启前后的区别
sudo ufw enable
sudo ufw disable
# 查看工作情况和端口打开信息
sudo ufw status verbose
# 查看可用的应用(可用并不代表端口已打开, 以上面的结果为准)
sudo ufw app list
# 查看应用对应的端口
sudo ufw app info OpenSSH
添加开放端口的几种方式
# 允许ssh连接(根据app配置打开22端口)
sudo ufw allow OpenSSH
# 允许 HTTP 连接:
sudo ufw allow http
# 直接指定端口号 80
sudo ufw allow 80
# 只打开80端口的TCP连接
sudo ufw allow 80/tcp
# 也可以使用应用程序配置文件,在本例中为「Nginx HTTP」:
sudo ufw allow 'Nginx HTTP'
# 允许 HTTPS 连接:
sudo ufw allow https
# 也可以直接指定端口号 443:
sudo ufw allow 443/tcp
# 也可以使用应用程序配置文件,在本例中为「Nginx HTTPS」:
sudo ufw allow 'Nginx HTTPS'
# 如果是添加端口区间, 用 : 号分隔
ufw allow 11200:11299/tcp
# 如果要限制访问来源, 用 from, 这里any指代本机的任何IP
ufw allow from 192.168.0.0/16 to any port 5001
# 如果同时还要限制本机IP和协议, 则
ufw allow proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25
# 如果要允许某段IP访问所有端口
sudo ufw allow from 192.168.0.0/16
添加拒绝端口
# both tcp and udp
sudo ufw deny 53
# only tcp
sudo ufw deny 53/tcp
删除存在的规则
sudo ufw delete deny 80/tcp
sudo ufw delete allow 53/udp