为了给云服务器配置防火墙,笔者在整个流程中接触到了以下概念和技巧:
1 服务与进程
进程是可以在前台或后台运行的应用程序或脚本;
服务是特别的进程,此类进程一般是在后台运行的客户端/服务器应用程序,一般而言,服务会持续监听传入的请求,并根据给定的请求发送响应。
因此,服务的本质也是进程,同时一个服务可以对应到多个进程,例如httpd(网络服务)服务或数据库服务是由多个进程组成。
2 查询ubuntu下的服务
为了便于管理,需要了解当前系统运行着哪些服务,特别是对于用户比较关心的服务,它们到底是处于什么状态(运行着还是停止了)。
2.1 service --status-all
使用该命令可以查看当前系统的服务状态,如下图所示:
其中[+] 代表服务是在启动运行的状态,[-] 代表服务是在关闭停止的状态;
对于关注的服务,可以进一步使用相关命令查看(service 服务名 status),其中status处可以替换为stop start等选项:
诚然,不是所有的服务都经由service类似的命令管理,例如ubuntu下还有systemctl命令等可以管理服务。
3 防火墙服务“ufw”
Ubuntu上有一个称为UFW的防火墙配置工具,它是用于管理iptables防火墙规则的用户友好型前端,其主要目标是使防火墙的管理变得更容易便捷。
UFW防火墙的默认行为是阻止所有传入和转发流量,并允许所有出站流量。 这意味着默认情况下任何尝试访问该服务器的连接都将失败。
以下操作默认在root用户下进行:
3.1 启动 / 关闭防火墙服务
ufw enable / ufw disable
3.2 查看防火墙状态(通过规则)
ufw status
3.3 开启 / 禁用端口
- ufw allow 25/tcp 允许所有的外部IP访问本机的25/tcp端口
- ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp端口
- ufw allow 53 允许外部访问53端口(tcp/udp)
- ufw delete allow 25/tcp 删除上面建立的第1条规则