以往,我们自己做家庭防火墙,使用的更多的是一台淘汰的台式主机加装一张网卡,安装上一个比较稳定的 Linux 发行版,然后稍作配置即可。不过现在有了树莓派,我们可以以更低的功耗、更小的空间实现这些功能,下面跟我们一起来折腾吧。
安装 CentOS 系统
很多情况下,我们的软防火墙用的都是 CentOS 系统,因此我们在这里也给我们的树莓派安装了 CentOS 系统,我们需要先到这里下来 CentOS 针对 armhfp 架构的镜像(树莓派 2 代和 3 代所使用的镜像) ,然后解压缩你下载下来的压缩文件,然后使用下面的命令将 CentOS 系统的镜像写入你的 microSD 卡(推荐至少容量 8G )
dd if=CentOS-Userland-7-armv7hl-Minimal-1511-RaspberryPi2.img of=/dev/sdx
在这个过程中一定要确定,你写入的设备是你的 microSD 卡,你可以先用 fdisk -l 命令查看一下你的设备当前安装的存储设备都有哪些,防止出现写错盘的问题。
初始配置
初始的时候最好不要将你的树莓派连接到外网,然后使用 root : centos 这个凭据登录到你的树莓派,OK,下一步马上改掉你的 root 用户的密码,然后在 /etc/hostname 文件里面设置你设备的主机名,然后参考 /root/README 中的说明,将你的 microSD 卡中没有被使用的存储空间划分到你的当前分区中。
然后你就可以将你的树莓派接入到你现在的网络中,安装我们需要的软件,比如 screen 、 vim 、 rwhois 、 mlocate 、 wget 、 bind-utils等等。安装完毕之后,我们就可以比较方便的通过 ssh 连接到我们的树莓派了。
设置第二张网卡
由于我们计划将树莓派当作一个防火墙来使用,我们需要张额外的网卡,这里我们使用了一个 USB3.0 接口的千兆有线网卡,然后我们把这个新的网卡配置成了 eth1 , 然后将这个网卡的 IP 配置在我路由器的对应网段下,网关写我的路由器的 IP 地址,然后配上至少两个 DNS 服务器的信息。
更新系统,加点自己的菜
当配置完上面那些之后,现在是时候更新你的系统了,当更新完毕之后,你的树莓派防火墙就工作在最佳的状态了,这个时候可以考虑加点自己的菜,给自己的 bashrc 加点自己喜欢的别名、上传一些自己惯用的脚本。
同步时间
这个版本的 CentOS 默认并没有安装一个时间同步软件,所以我们要自己安装 chrony ,然后配置 chrony.conf 为 cn.pool.ntp.org 这个本地 ntp 服务器,然后设置 chrony 随机启动即可。
防火墙
然后就到了最重要的时候了,也是我们的目的所在,安装并配置防火墙,我们要先安装 iptables-services 和 iptables-utils,然后我们就可以通过配置 /etc/sysconfig/iptables 来添加我们的过滤和转发等等的规则了。
路由转发配置
当你到这一步的时候,说明你的树莓派已经可以作为一个防火墙工作了,但是现在你还不能通过它来转发你的请求,所以我们要将你内核的 IPV4 转发功能打开。为此,我们需要将 /etc/sysctl.conf 里的 net.ipv4.ip_forward 选项的值改成 1 ,然后执行 sysctl -p 使改动生效,这样我们就可以通过配置 iptables 来通过 NAT 转发来实现上网和防火墙的功能了。
如何在树莓派 2 运行 Ubuntu Snappy Core
用于Raspberry Pi 的Linux 操作系统已经可用
Raspberry Pi(树莓派)的安装、配置IP及软件源等入门
参考文章 配置有改动