服务的访问控制列表
TCP Wrapper 是 RHEL 6/7 系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序做出允许或拒绝的操作。在 RHEL 8 版本中,它已经被 firewalld正式替代。换句话说,Linux 系统中其实有两个层面的防火墙,第一种是前面讲到的基于 TCP/IP协议的流量过滤工具,而 TCP Wrapper 服务则是能允许或禁止 Linux 系统提供服务的防火墙,从而在更高层面保护了 Linux 系统的安全运行。
TCP Wrapper 服务的防火墙策略由两个控制列表文件所控制,用户可以编辑允许控制列表文件来放行对服务的请求流量,也可以编辑拒绝控制列表文件来阻止对服务的请求流量。控制列表文件修改后会立即生效,系统将会先检查允许控制列表文件(/etc/hosts.allow),如果匹配到相应的允许策略则放行流量;如果没有匹配,则会进一步匹配拒绝控制列表文件(/etc/hosts.deny),若找到匹配项则拒绝该流量。如果这两个文件都没有匹配到,则默认放行流量。TCP Wrapper 服务的控制列表文件中常用的参数如下表:
客户端类型 | 示例 | 满足示例的客户端列表 |
---|---|---|
单一主机 | 192.168.10.10 | IP 地址为 192.168.10.10 的主机 |
指定网段 | 192.168.10. | IP 段为 192.168.10.0/24 的主机 |
指定网段 | 192.168.10.0/255.255.255.0 | IP 段为 192.168.10.0/24 的主机 |
指定 DNS 后缀 | .zxbke.cn | 所有 DNS 后缀为.zxbke.cn的主机 |
指定主机名称 | www.zxbke.cn | 主机名称为 www.zxbke.cn 的主机 |
指定所有客户端 | ALL | 所有主机全部包括在内 |
在配置 TCP Wrapper 服务时需要遵循两个原则:
- 编写拒绝策略规则时,填写的是服务名称,而非协议名称;
- 建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果。
下面编写拒绝策略规则文件,禁止访问本机 sshd 服务的所有流量(无须修改/etc/hosts.deny文件中原有的注释信息):
[root@localhost ~]# vim /etc/hosts.deny //修改配置文件
//末行添加以下内容,代表运行所有主机访问ssh服务
sshd:*
在允许策略规则文件中添加一条规则,使其放行源自 192.168.10.0/24 网段,且访问本机 sshd 服务的所有流量。
[root@localhost ~]# vim /etc/hosts.allow //修改配置文件
//末行添加以下内容,代表只允许8.0网段访问ssh服务
sshd:192.168.8.
Cockpit 驾驶舱管理工具
Cockpit 是一个基于 Web 的图形化服务管理工具,对用户相当友好,即便是新手也可以轻松上手。而且它天然具备很好的跨平台性,被广泛应用于服务器、容器、虚拟机等多种管理场景。最后,红帽公司对 Cockpit 也十分看重,直接将它默认安装到了 RHEL 8 系统中,由此衍生的 CentOS 和 Fedora 也都标配有 Cockpit。
Cockpit 在默认情况下就已经被安装到系统中。下面执行 dnf 命令对此进行确认:
Cockpit 服务程序在 RHEL 8 版本中没有自动运行,下面将它开启并加入到开机启动项中:
[root@RS ~]# dnf install cockpit //安装Cockpit
[root@RS ~]# systemctl start cockpit //启动Cockpit
[root@RS ~]# systemctl enable cockpit.socket //加入开机启动项
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
打开系统自带的浏览器,在地址栏中输入“本机地址:9090”即可访问。由于访问 Cockpit 的流量会使用 HTTPS 进行加密,而证书又是在本地签发的,因此还需要进行添加并信任本地证书的操作,如图所示。进入 Cockpit 的登录界面后,输入 root 管理员的账号与系统密码,单击 Log In 按钮后即可进入。
进入 Cockpit 的 Web 界面,发现里面可谓“别有洞天”。Cockpit 总共分为 13 个功能模块:系统状态(System)、日志信息(Logs)、硬盘存储(Storage)、网卡网络(Networking)、账户安全(Accounts)、服务程序(Services)、软件仓库(Applications)、报告分析(Diagnostic Reports)、内核排错(Kernel Dump)、SElinux、更新软件(Software Updates)、订阅服务(Subscriptions)、终端界面(Terminal)。