互联网连接和家庭网络每天变得越来越重要。诸如切断电源、添加物联网设备(IoT –例如,智能扬声器,摄像机,智能交换机等)之类的活动增加了我们对正常工作的家庭网络的依赖。家庭用户使用pfSense能够建立高效、快速和安全的网络。如果您正在使用pfSense,这里有五个方法帮助你更好的使用pfSense。
方法一:在有人连接到您的OpenVPN服务器时会收到通知
VPN支持是大多数人选择pfSense的原因之一。OpenVPN是许多个人和公司广泛使用的受支持的开源VPN方案,当然也受pfSense支持。
如果当有人成功连接到VPN服务器时希望收到通知,只需要修改OpenVPN连接脚本即可发送电子邮件进行通知。步骤如下:
1、在pfSense中设置电子邮件通知
首先必须有权访问SMTP服务器以使用pfSense发送电子邮件。在“ 系统”->“高级”中设置SMTP连接,然后选择“通知”选项卡。
2、找到并备份openvpn.attributes.ssh文件
每当建立或断开OpenVPN时,都会调用文件“ openvpn.attributes.ssh”文件。可以通过修改此文件来接收通知。该文件位于/ usr / local / sbin /中。在对该文件进行修改之前,建议首先进行备份。
3、修改openvpn.attributes.ssh文件
文件内容如下(你的也许不同)。只需要添加红色粗体部分。
#!/bin/sh
#
# openvpn.attributes.sh
#
# part of pfSense (https://www.pfsense.org)
# Copyright (c) 2004-2016 Rubicon Communications, LLC
# (Netgate)
# All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the # "License");
# you may not use this file except in compliance
# with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in
# writing, software
# distributed under the License is distributed on an
# "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if [ "$script_type" = "client-connect" ]; then
#BEGIN EDIT
/bin/echo "Client $common_name from $trusted_ip connected @ `date`" \
| /usr/local/bin/mail.php -s"OpenVPN Connection Beginning"
#END EDIT
if [ -f /tmp/$common_name ]; then
/bin/cat /tmp/$common_name > $1
/bin/rm /tmp/$common_name
fi
elif [ "$script_type" = "client-disconnect" ]; then
command="/sbin/pfctl -a 'openvpn/$common_name' -F rules"
eval $command
/sbin/pfctl -k $ifconfig_pool_remote_ip
/sbin/pfctl -K $ifconfig_pool_remote_ip
#BEGIN EDIT
/bin/echo "Client $common_name from $trusted_ip disconnected @`date`" \
| /usr/local/bin/mail.php -s"OpenVPN Connection Ending"
#END EDIT
fi
exit 0
第一个红色粗体部分在成功连接到OpenVPN服务器后发送带有IP地址的电子邮件,第二个粗体部分在断开连接时也发送同样的电子邮件。
注意:如果系统升级会覆盖此文件,因此您必须在每次升级后应用此补丁。
方法二:自动执行配置文件备份
如果您会不断地尝试各种配置来尝试新事物,为了保证防火墙能及时恢复,建立您做好系统配置备份工作。现在pfSense2.43以后的版本都已经自带了自动备份。如果您想在其他备份所在的位置进行自动备份,可以通过使用pfSense服务器上的cron作业将SCP文件发送到远程服务器来完成,或者通过一个内部服务器访问pfSense来复制文件。尽管安全性稍差(可以只允许从LAN进行ssh访问),方法如下:
1、在pfSense上设置SSH
这可以通过GUI完成。默认情况下,只仅对admin和root帐户启用ssh。
2、设置对pfSense的ssh密钥访问
这可以使ssh访问更加安全,网上有很多关于此的教程。只需要从SSH的帐户中创建公钥,然后将该公钥复制到pfSense中,ssh便可以正常连接。
3、创建cron作业来复制相关的配置文件
标准配置文件(config.xml)包含了pfSense的所有配置。设置ssh访问权限后,可以使用scp,通过类似于以下的命令来远程备份该文件:
scp root@<pfSenseIP>:/cf/conf/config.xml /backup/pfSense/
您可以根据自己设置替换上面的IP地址和目标文件夹。可以创建一个cron作业来复制该文件,当然也可以复制其他文件。例如,可以将/var/dhcpd/etc/dhcpd.conf文件复制到备份服务器。
方法三:限制对pfSense管理页面的访问
保证安全的方法是尽量减少可访问路由器设置的计算机数量。可以通过添加防火墙规则来控制对防火墙的访问。
pfSense默认配置允许从LAN上的任何计算机进行管理访问,并拒绝它访问本地网络之外的任何计算机。默认情况下,还启用了一个反锁定规则,该规则可以防止将防火墙规则配置为将用户锁定在Web界面之外。
首先要限制管理访问,请确保LAN规则允许访问用于webGUI的端口。这描述了默认的LAN规则,该规则允许访问Web界面。
如果LAN上存在限制性规则集,请在继续操作之前确保它允许访问Web界面。
现在禁用反锁定规则。导航到系统>高级, 管理员访问选项卡,然后选中禁用webConfigurator反锁定规则。单击保存,该规则将被删除。
强烈建议使用网络别名进行管理访问,如果同时使用了Web和SSH管理,可以为这些端口添加一个别名。下面是示例:
1、允许访问管理接口的网络别名
2、允许访问管理界面端口的别名
添加一个防火墙规则,源选择前面定义的IP别名,目标为该防火墙,目标端口为前面定义的端口别名。确保此规则位于列表的第一位。然后再添加基于该规则的规则(点击右侧的添加图标),将动作改为阻止或拒绝,源为any,目标为该防火墙。完成后的规则列表如下所示。
单击“ 应用更改”,现在管理页面仅限已定义的别名内的主机可以访问。
方法四:阻止不需要的设备访问Internet
pfSense防火墙可以非常方便的控制LAN网络上哪些设备可以访问或不能访问,可以有效阻止某些设备访问Internet或从Internet访问内部设备。
例如,如果在家庭内部安装了几个监控摄像头,一般只希望能在本地网络上查看,因此必须禁止它们访问Internet(也可以使用VPN远程查看)。只需在防火墙规则LAN接口的顶部创建一个规则:
- 动作:阻止
- 接口:LAN(或适合您的设置的LAN接口)
- 地址族:IPv4 + IPv6
- 协议:any
- 来源:单个主机或别名,然后添加一组IP或别名组
- 目标:any
应用该规则后,被阻止的所有设备将无法发送任何内容到Internet。
方法五:设置pfSense看门狗服务
pfSense运行虽然非常稳定,但是有时服务会停止。为了防止关键服务在不监视防火墙时停止运行,可以使用服务监视程序。
该服务程序监视指定的pfSense服务,并可以发送通知。在安装Service Watchdog插件后,可以转到Services-> Service Watchdog添加想要监视的服务,如下图所示:
请教下,如果设置了ddnsto的内网穿透,这个时候要要网管限制,该怎么做呢?