pfSense book之用户管理和认证

pfSense中的用户管理器提供了创建和管理多个用户帐户的功能。这些帐户可用于访问GUI,使用VPN服务(如OpenVPN和IPsec),或使用强制门户。

用户管理器也可以使用外部认证来源,例如RADIUS和LDAP。

使用范围

在撰写本文时,并非pfSense的所有区域都会支持用户管理器中的用户。

  • pfSense GUI:  支持用户管理器中和RADIUS或LDAP中的用户。来自RADIUS或LDAP的组或用户需要本地用户管理器来定义和管理其访问权限。
  • OpenVPN:  支持用户管理器中和RADIUS或LDAP中的用户。
  • IPsec:  Xauth支持用户管理器和RADIUS或LDAP中的用户,并使用EAP-RADIUS的IKEv2的RADIUS。
  • 强制门户l:  支持用户管理器中的本地用户,以及通过强制门户页面中的设置支持RADIUS用户。
  • L2TP:  支持在L2TP设置中的用户,并在L2TP设置支持RADIUS用户。
  • PPPoE 服务:  支持在PPPoE设置的用户,并在PPPoE设置中支持RADIUS用户。

pfSense默认帐号

  • 用户名admin
  • 密码pfsense

权限

管理用户和组权限类似,无论是管理用户还是组,都必须首先创建和保存条目,然后才能将权限添加到帐户或组中。 要添加权限,请在编辑现有用户或组时,在分配权限有效权限部分单击“+”添加。

列出所有可用权限。 通过选择单个条目或通过使用Ctrl单击进行多选,可一次添加或多个特权。 如果其他权限已经存在于用户或组中,则它们会在该列表中隐藏,不会被添加两次。 要按名称搜索特定的权限,在“过滤器”栏中输入搜索词并单击“过滤器”。

选择的权限将在权限列表和操作按钮下的信息区域中显示其用途的简短说明。大多数权限通过他们的名称就可以看的出来,一些明显的权限包括:

  • WebCfg – All Pages:让用户访问GUI中的所有页面
  • WebCfg – Dashboard (all):让用户访问仪表板页面及所有相关部件(小部件、图形等)
  • WebCfg – System:用户密码管理器页面,如果用户只能访问此页面,他们可以登录到GUI来设置自己的密码。
  • User – VPN – IPsec xauth Dialin:允许用户连接并验证IPsec xauth
  • User – Config – Deny Config Write: 不允许用户更改防火墙配置文件。但这并不妨碍用户采取其他不涉及写入配置的操作。
  • User – System – Shell account access:使用户能够通过ssh登录,但用户不具有root级别访问权限,因此功能受到限制。 sudo插件可用于增强此功能。

登录后,防火墙将会显示仪表板。 如果用户无权访问仪表板,则会将其转发到他们有权访问的权限列表中的第一页。防火墙上的菜单项也只会显示包含用户帐户存在权限的菜单。 例如,如果用户有权访问的唯一页面是系统诊断> Ping,则“系统诊断”菜单中不会显示其他的任何项目。

添加/编辑用户

系统>用户管理下的用户选项卡是管理个人用户的地方。要添加新用户, 单击 ,要编辑已有用户,单击

注意:管理员用户不能删除,用户名也不能更改。

在将权限添加到用户之前,必须首先创建权限,因此第一步必须添加用户并保存。如果多个用户需要相同的权限,则添加一个组然后将用户添加到该组中会更方便管理。

添加用户,单击 添加,会出现新用户编辑页面:

  • 禁用: 该复选框控制此用户是否处于活动状态。如果要停用此帐户,请选中此框。
  • 用户名: 用户的登录名称。该字段是必填字段,不超过16个字符,只能包含字母、数字和句点、连字符或下划线。
  • 密码:密码作为散列存储在pfSense®配置中,确保两个字段匹配。
  • 全名: 可选字段,可用于输入用户帐户的更长名称或说明。
  • 截止日期: 如果需要,这里可以定义当到期时自动停用该用户。以MM/DD/YYYY格式输入。
  • 组成员:如果组已被定义,则这里可以将用户添加为成员。要将此用户添加到一个组,请在“”非成员“”列中找到它,选择它,单击  将其移动到”成员“列。要从组中删除用户,单击 将其从“成员“移动到“非成员”列。
  • 有效权限: 编辑现有用户时出现。如果用户是组的一部分,则组的权限将显示在该列表中,但这些权限不能编辑,但可以添加其他权限。
  • 用户证书:根据是否添加或编辑用户而改变。添加用户时, 在该部分单击添加将显示证书表单, 可以手动填写证书相关信息。如果是编辑用户,则页面的这一部分会变成用户证书列表。
  • 密钥:可以为shell或其他SSH访问输入SSH公用密钥。要添加密钥,请粘贴或输入密钥数据。
  • IPsec预共享密钥:用于非xauth预共享密钥移动IPsec设置。如果在此处输入IPsec预共享密钥,则将用户名用作标识符。PSK也显示在VPN> IPsec共享密钥选项卡上。如果移动IPsec仅与xauth一起使用,则此字段可以保留为空白。

保存用户后, 在用户列表右侧单击 可以编辑该用户信息。

用户GUI选项和仪表板布局

不同的用户可以为各种GUI选项及其仪表板布局进行个性化的设置。要启用此功能,请在添加或编辑用户时选中“自定义设置”选项,选择所需的其他GUI选项,例如主题、顶部导航、菜单中的主机名、仪表板列、显示/隐藏关联的面板、左列标签和浏览器选项卡文本等。

想要调整自己的GUI选项的用户需要在“系统>用户管理下设置权限。

admin组中的用户已经具有此权限。

启用了自定义设置用户将具有菜单选项系统>用户设置。用户可以选择此项来更改其用户名所需的GUI选项。

当启用了“自定义设置”的用户添加、移动或删除仪表板小部件时,自定义仪表板布局仅保存在该用户的首选项中。

添加/编辑组

组是管理众多权限的简易方法,可以不必在每个用户帐户上单独设置权限。组可以划分用户不同场景的应用权限。

要使用组功能,只要创建一个组并添加权限。 保存该组后,编辑该组来添加权限。

可以在系统>用户管理,选项卡上对组进行管理。要添加新组,单击进行添加。要编辑一个已有的组,请在列表的右侧单击  。

注意:在使用LDAP和RADIUS时,本地组必须与服务器上的组相匹配。 例如,如果存在名为“firewall_admins”的LDAP组,则pfSense也必须包含一个名称相同的组,“firewall_admins”,并具有所需的权限。 必须为远程范围配置具有长名称或名称包含空格或其他特殊字符的远程组。

单击添加一个组,该页面包含以下内容:

  • 组名:不能超过16个字符,只能包含字母、数字和句点、连字符或下划线。
  • 范围:可以将防火墙本身上的组(例如用于shell程序中的组)设置为“本地”,或将“远程”设置为放宽组名限制并防止组名暴露给基本操作系统。 例如,远程作用域组名称可以更长,还可以包含空格。
  • 描述:可选的自由格式文本,以便在组名不充分时更好地确定组的用途。
  • 组成员:防火墙用户默认情况下在“非成员”列中,要将此用户添加到一个组,请在“非成员”列中找到它,选择它,单击 将其移动到“成员”列。要从组中删除用户,单击将其从“成员“移动到“非成员”列。
  • 分配权限:仅在编辑现有组时出现。本部分允许为该组添加权限。

用户设置

用户管理中的“设置”选项卡控制两件事情:登录会话多久有效,以及认证服务器的选项。

会话超时:该字段指定GUI登录会话在空闲时将持续多久。 以分钟为单位,默认为四小时(240分钟)。 可以输入0来禁用会话过期,从而使登录会话永久有效。 缩短时间会更好,但要使其长度足够长,以便在进行更改时不会无意中注销。允许会话长时间保持有效是不安全的,如果管理员离开浏览器窗口而无人看管,则某人或其他人可以利用该打开的会话进行操作。

认证服务器:选择登录GUI的用户的认证来源。 可以是RADIUS或LDAP服务器,也可以是默认的本地数据库。 如果由于某种原因无法访问RADIUS或LDAP服务器,则即使选择了其他方法,身份验证也会回退到本地数据库。

在使用RADIUS或LDAP服务器时,仍然必须在防火墙中定义用户和/或组成员资格才能正确分配权限,因为还没有从认证服务器动态获取权限的方法。

要使组成员正常工作,pfSense必须能够识别认证服务器提供的组。 这需要做两件事情:

  • 本地组必须以相同的名称存在。
  • pfSense必须能够定位或接收来自认证服务器的组列表。

认证服务器

使用系统>用户管理下的认证服务器选项卡,可以将RADIUS和LDAP服务器定义为认证源。要添加服务器,单击 。要编辑一个已有的服务器,单击  。

RADIUS认证服务器

远程身份验证拨入用户服务(RADIUS)是多种网络设备通常支持的协议,用于用户身份验证,授权和计费(AAA)。尽管现在支持RADIUS的pfSense®软件上的大多数区域都通过用户管理器集成了RADIUS设置,但仍有一些使用单独设置的区域,例如PPPoE和L2TP服务器。

保护防火墙和RADIUS服务器之间的链接。如果服务器是本地服务器,请使用受信任的管理网络。如果服务器是远程服务器,请仅通过VPN隧道进行通信。

一些RADIUS协议以纯文本格式传输密码,尽管其他RADIUS协议尝试以其他方式保护密码,但该协议的其他方面未加密,并且可能包含敏感信息。

要添加一个 RADIUS服务器,在继续之前,请确保RADIUS服务器将防火墙定义为客户端。导航到系统>用户管理,认证服务器选项卡。单击 添加,类型设置为RADIUS,会显示RADIUS服务器设置。填写如下字段:

  • 描述名称:此RADIUS服务器的名称。该名称将用于在整个pfSense GUI中标识服务器。
  • 协议:防火墙在执行RADIUS请求时使用的协议。可能是以下之一:PAP密码验证协议。发送未加密的密码,被认为是弱密码。它比其他方法得到更广泛的支持,并且特定功能(例如mOTP)可能需要它。由于其安全性缺陷,请尽可能避免使用PAP;MS-CHAPv1协议,CHAP的Microsoft变体,双方都不需要知道密码的纯文本。尽管它通常更安全,但是它还有其他已知的弱点,使其容易受到攻击;MS-CHAPv2协议:MS-CHAPv1的更新版本。它在EAP以及802.1x / WPA Enterprise中用于无线。但是,它也有已知的缺点。某些RADIUS功能可能需要特定的模式。例如,mOTP通常需要PAP,因为它会以明文形式读取密码以分离PIN和OTP代码。利用EAP的服务通常使用MS-CHAPv2。
  • 主机名或IP地址:RADIUS服务器的地址。这可以是标准域名或IPv4 IP地址。防火墙上的RADIUS客户端当前不支持IPv6。
  • 共享密钥:在RADIUS服务器软件上为此防火墙建立的密码。
  • 提供的服务:这里设置RADIUS服务器提供的服务。 认证和计费、仅认证或仅计费。 认证将使用此RADIUS服务器来认证用户。 如果使用防火墙的区域支持,防火墙将为登录会话发送RADIUS开始/停止计费数据包数据。选择两者则该服务器将用于两种类型的操作。
  • 认证端口:只有在选择了认证模式时才会出现。进行RADIUS身份验证的UDP端口。默认为1812。
  • 计费端口:只有在选择计费模式时才会出现。进行RADIUS计费的UDP端口。默认为是1813。
  • 认证超时:控制RADIUS服务器响应验证请求可能花费的时间(秒)。 如果留空,则默认值为5秒。 如果正在使用交互式双因素身份验证系统,请增加此时间以说明用户接收和输入令牌的时间,如果必须等待外部操作(例如电话,SMS消息等),则可能需要60-120秒或更长时间。
  • RADIUS NAS IP属性:设置防火墙将在RADIUS请求NAS-IP-Address属性中发送的值。 RADIUS服务器使用此值来标识此防火墙服务器可以使用该值来做出认证决定,或表示在计费数据中通过哪个节点用户进行认证。在大多数情况下,NAS-IP-Address值无关紧要,只要它对于此防火墙是唯一的即可。但是,更复杂的RADIUS环境可以使用此属性来让服务器对用户登录到不同服务做出更明智的决定。例如,如果防火墙上有多个强制门户,则可以创建多个RADIUS服务器条目,每个条目都使用给定门户的特定接口地址。RADIUS服务器然后可以选择仅允许某些用户集登录到每个门户。
  • 点击保存创建服务器。
  • 访问系统诊断>认证,使用有效帐户测试RADIUS服务器。

RADIUS组

RADIUS组正常运行有两个要求:

1、RADIUS服务器必须在ClassRADIUS应答复属性中以字符串形式返回组列表。

2、本地必须存在相同的组

RADIUS服务器在“Class”属性中返回的多个组必须用分号分隔。例如,在FreeRADIUS中,要返回admins和VPNUsers组,请使用以下Reply-Item RADIUS属性:

Class := "admins;VPNUsers"

如果RADIUS服务器能正确地为用户返回组列表,并且这些组存储在本地,则在通过系统诊断>认证页面测试帐户时,这些组将显示在结果中。 如果测试时未显示组,请确保组存在于名称匹配的组管理器中,并且确保服务器以字符串而不是二进制形式返回Class属性。

LDAP认证服务器

轻量级目录访问协议(LDAP)是用户信息的存储库,它还支持通过绑定操作进行用户身份验证的机制。有许多使用LDAP的流行用户目录实例,包括Active Directory,OpenLDAP,FreeIPA等。

要添加新的LDAP服务器,必须确保防火墙可以访问LDAP服务器。如果使用SSL,请在继续之前将LDAP服务器使用的CA导入到pfSense中。

导航到系统>用户管理,认证服务器选项卡。单击添加,类型选择为LDAP。 会显示LDAP服务器设置。填写如下字段:

  • 主机名或IP地址:LDAP服务器的地址。可以是标准域名、IPv4 IP地址或IPv6 IP地址。注意:如果此LDAP服务器使用SSL,则此字段的值必须与LDAP服务器提供的证书匹配。 通常,这意味着它必须是解析为LDAP服务器IP地址的主机名,但是具体要求取决于服务器证书的内容。 例如,在此字段中使用ldap.example.com值,服务器证书必须包括FQDN值ldap.example.com,并且ldap.example.com必须解析为192.168.1.5。 一个例外是,如果服务器的IP地址也恰巧在服务器证书中列出。 在某些情况下,可以通过创建DNS主机覆盖来解析为正确的IP地址。
  • 端口值: 指定LDAP服务器正在侦听LDAP查询的端口。默认TCP端口为389,SSL为636。该字段将根据所选传输自动更新为正确的默认值。注意:使用端口636进行SSL时,pfSense使用ldaps:// URL,但不支持STARTTLS。确保LDAP服务器使用正确的模式侦听正确的端口。
  • 传输: 此设置控制将使用哪种传输方法与LDAP服务器进行通信。 LDAP查询包含敏感数据,例如用户名、密码和有关用户的其他信息。 最佳作法是防火墙在与LDAP服务器通信时使用加密(如果LDAP服务器支持的话)。 SSL / TLS和STARTTLS都将对防火墙和LDAP服务器之间的通信进行加密。
  • 对端认证机构:当“传输”设置为“ SSL / TLS加密”或“ STARTTLS加密”模式时,防火墙使用此选择器选择的CA来验证LDAP服务器证书。所选的CA必须与签署LDAP服务器证书的CA相匹配,否则验证将失败。 如果LDAP服务器使用的是全球信任的证书,请选择“Global Root CA List”。
  • 协议版本:选择LDAP服务器采用哪种LDAP协议版本(2或3),通常为3。
  • 服务器超时:LDAP操作被视为失败的时间(秒)。 使用较低的值将允许GUI在服务器出现故障时更快地连接其他身份验证源。 如果LDAP服务器运行缓慢或过载,则较大的值可以帮助防火墙接受延迟的响应。
  • 搜索范围: 确定搜索的位置和深度。层级: 选择“一级”还是“整个子树”来控制搜索的深度。当不确定时,整个子树是最佳选择,并且Active Directory配置几乎总是必需的。Base DN: 控制搜索开始的位置,通常设置为LDAP结构的根,例如DC=example,DC=com
  • 认证容器:潜在帐户位置或容器的列表,用分号分隔。当防火墙制作LDAP查询时,这些容器将在上面的Base DN之前。或者,在此处指定完整的容器路径,并将“Base DN”留空。如果LDAP服务器支持它,并且绑定设置正确,则单击“搜寻 选择容器”来浏览LDAP服务器并从列表中选择容器。下面是容器的一些示例:
    • CN=Users;DC=example;DC=com这将在域组件example.com(Active Directory的通用语法)中搜索用户
    • CN=Users,DC=example,DC=com;OU=OtherUsers,DC=example,DC=com这将在两个不同的位置进行搜索,第二个位置仅限于 OtherUsers组织单位。
  • 扩展查询:指定在用户名后面进行查询的额外限制,该限制允许将组成员身份作为过滤器。必须包括要搜索的项目以及搜索方法。例如,基于组成员资格的限制将使用memberOf。要设置扩展查询,请选中此框,然后使用以下过滤器填写“查询”值:
    memberOf=CN=VPNUsers,CN=Users,DC=example,DC=com
  • 绑定凭证:控制此LDAP客户端将如何尝试绑定到服务器。Active Directory通常需要使用绑定凭据,并且可能需要一个服务帐户或管理员等效帐户,具体取决于服务器配置。匿名绑定:(默认)选中时,防火墙将使用匿名绑定。取消选中时,GUI会显示“绑定凭据字段。绑定证书(用户DN /密码)。如果取消选中“绑定匿名”,则在执行查询时,防火墙将使用这些字段中的凭据进行经过身份验证的绑定。该用户DN可以是用户名或完整DN,这取决于LDAP服务器要求。
  • 初始模板:此选项仅在最初创建LDAP服务器条目时出现。它使用给定类型的LDAP服务器的常用默认值预填充页面上的其余选项。选项包括OpenLDAP, Microsoft AD和 Novell eDirectory
  • 用户命名属性:用于标识用户名的属性,最常见的是cn或 samAccountName
  • 组命名属性:用于标识组的属性,例如cn
  • 组成员属性:表示它的用户属性是组的成员,诸如 membermemberUidmemberOf,或uniqueMember
  • RFC2307组: 设置后,查询将在搜索组时包括用户DN。
  • 组对象类:指定RFC 2307样式组的对象类。通常为posixGroup ,但它可能因LDAP模式而异。对于Active Directory样式组不是必需的。
  • UTF8 编码: 选中后,将对LDAP服务器的查询进行UTF-8编码,并从UTF-8解码响应。支持因LDAP服务器而异。通常仅在用户名、组、密码和其他属性包含UTF-8或国际风格的带重音符号的情况下才需要。
  • 用户名变更:如果未选中,指定为user @ hostname的用户名将删除@hostname部分,以便仅在LDAP绑定请求中发送该用户名。选中后,将发送完整的用户名。
  • 允许未经身份验证的绑定:勾选后,具有空密码的绑定请求将在本地被拒绝。某些LDAP服务器(特别是Microsoft Active Directory)将接受未经身份验证的绑定请求,并将其视为成功。如果可能,必须在LDAP服务器上禁用此行为。允许请求使用空密码成功操作会带来重大的安全风险,并且会影响对LDAP服务器进行身份验证的任何设备或服务。尽管此选项允许pfSense软件拒绝此类身份验证尝试,但其他LDAP客户端可能无法提供相同的选择。禁用服务器上的功能是解决问题的最安全方法。
  • 点击保存创建服务器。
  • 访问系统诊断>认证,测试LDAP服务器。

如果LDAP查询正确地为用户返回组列表,并且这些组存储在本地,则在使用系统诊断>认证进行帐户测试时,这些组将显示在结果中。 如果组未显示,请确保它们存在于名称匹配的pfSense上,并且选择了正确的组结构,例如,可能需要选择RFC 2703组。

LDAP组

LDAP组正常运行有两个要求:

  • LDAP身份验证设置必须与LDAP服务器使用的组成员资格样式匹配
  • 本地必须存在相同的组

如果LDAP查询为用户正确返回了组列表,并且这些组在本地存在,则在使用系统断>认证页面测试帐户时,将在结果上列出这些组 。

如果未显示组,请确保它们存在于名称匹配的pfSense上,并确保LDAP身份验证服务器条目上存在正确的组结构(例如RFC 2703选项)。

注销webGUI

在当前版本的pfSense®软件中,通过导航至系统>注销系统或关闭浏览器窗口来注销

如果空闲长于会话将自动终止。默认会话超时为4小时(240分钟)。

发表评论

电子邮件地址不会被公开。 必填项已用*标注