SuSEfirewall2/通过软件包添加的服务定义

跳转到:导航搜索

关于

本文档描述了如何使用和支持 SuSEfirewall2 - 通过特殊的 sysconfig 文件定义服务(例如,Samba 服务器)。

一些复杂的服务需要打开许多不同的 TCP、UDP、RPC 端口,和/或允许不同的 IP 协议,或者允许某些端口上的传入广播。此外,您可能还有更多共享这些端口的服务(例如 portmap)。一旦您在防火墙中打开这些端口,就很难记住哪个端口属于哪个服务。

此功能(SuSEfirewall2 自 openSUSE 10.2 起,YaST 防火墙自 openSUSE 10.3 起)允许您定义简单的配置文件 - 每个服务一个。这些服务随后在 SuSEfirewall2 的特殊配置变量中指定(每个防火墙区域一个变量)。

为什么服务定义包含在更多软件包中?

静态服务列表不适用于大量的服务定义。动态服务集链接到当前安装的软件包。

如果您没有安装 apache2,那么在 YaST 防火墙用户界面中提供允许 HTTP 服务器,并用永远不会使用的配置填充该目录是没有必要的。

如何定义新服务?

所有这些服务定义都存储在:/etc/sysconfig/SuSEfirewall2.d/services 和 /usr/share/SuSEfirewall2/services 中。服务定义文件应属于相应的 RPM 软件包,并且也应反映软件包名称或守护程序名称,以避免与其他软件包发生冲突。

使用文件 /etc/sysconfig/SuSEfirewall2.d/services/TEMPLATE 作为模板。

示例

以下是 Samba 服务器服务定义的一个示例,它可能被写入 /etc/sysconfig/SuSEfirewall2.d/services/samba-server 文件(samba 软件包在一个软件包中具有客户端和服务器功能)

## Name: Samba Server
## Description: Opens ports for Samba Server with broadcast allowed.

# space separated list of allowed TCP ports
TCP="netbios-ssn microsoft-ds"

# space separated list of allowed UDP ports
UDP="netbios-ns netbios-dgm"

# space separated list of allowed RPC services
RPC=""

# space separated list of allowed IP protocols
IP=""

# space separated list of allowed UDP ports that accept broadcasts
BROADCAST="netbios-ns netbios-dgm"

重要行用粗体文本标记。Name 变量(被两个 # 字符隐藏)在 YaST 防火墙中用作在用户界面中显示的名称。

此示例打开 TCP 端口 139、445,UDP 端口 137、138,并允许 UDP 端口 137、138 上的广播。

需要接受广播的 UDP 端口必须同时在 UDP 和 BROADCAST 中列出,因为 SuSEfirewall2 可以配置为接受单播数据包,但丢弃广播。事实上,外部区域默认情况下会丢弃广播。

支持的格式

配置值中允许使用多种格式。

端口名称 - 例如,netbios-ns,允许在 TCP、UDP 和 BROADCAST 中使用。端口号 - 例如,137,允许在 TCP、UDP 和 BROADCAST 中使用。端口范围 - 例如,200:250,允许在 TCP、UDP 和 BROADCAST 中使用。RPC 服务名称 - 例如,ypbind,允许在 RPC 中使用(这些服务动态占用空闲端口,因此需要通过监听该端口的应用程序的名称来定义)。IP 协议名称 - 例如,esp,允许在 IP 中使用。

## Name: Exemplary Service
## Description: Opens several ports and makes your system insecure

TCP="ssh 13:20 http 130:150 32000:38000"
UDP="netbios-ns 150:300"
RPC="portmap nlockmgr mountd nfs nfs_acl"
IP="esp"
BROADCAST="netbios-ns netbios-dgm"

如何在防火墙配置中使用服务?

这很简单。/etc/sysconfig/SuSEfirewall2 配置文件中有三个特殊变量:FW_CONFIGURATIONS_EXT、FW_CONFIGURATIONS_DMZ 和 FW_CONFIGURATIONS_INT。只需使用文件名(定义服务)并将其写入选定的变量即可。

示例

FW_CONFIGURATIONS_DMZ="samba"
FW_CONFIGURATIONS_EXT="bind apache2 lukemftp"

此示例使用四个定义的服务,Samba 服务器允许在隔离区中使用,其他服务在外部区域中使用。