让你的树莓派更安全

安全使用树莓派

更改树莓派用户名

出于安全的考虑,更改默认用户名和root密码

  1. 创建新用户
sido adduser anran

将提示您为新用户创建密码。这里新用户名设置成了anran,此时新用户将有一个家庭目录在。
/home/anran/

  1. 添加到组,并授权
sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,gpio,i2c,spi anran

尝试以下措施来检查您的权限是否到位。

sudo su - anran

如果它运行成功,那么可以确定新帐户在组中。

  1. 删除旧用户(系统原用户pi)
    一旦确认新帐户正常工作,可以删除用户。为此,需要首先关闭其流程。
sudo pkill -u pi

请注意,与当前的树莓派操作系统分配,有一些方面要求默认在场。如果不确定自己是否会受到此影响,请将默认用户保留。

要删除用户,请键入

sudo deluser pi

此命令将删除用户,但将离开文件夹。如有必要,可以使用下面的命令同时为用户删除主文件夹。请注意,此文件夹中的数据将被永久删除,因此请确保任何所需的数据存储在其他地方。

sudo deluser -remove-home pi

此命令将导致警告该组不再有成员。不过,该命令会删除用户和组。

使sudo需要密码

默认情况下,以超级用户的身份运行不需要密码。一般来说,这不是问题。但是,如果你的 Pi 暴露在互联网上,并以某种方式被利用(例如,通过网页漏洞利用),攻击者将能够更改需要超级用户凭据的操。所以设置sudo强制需要密码就很必要了。

在命令行输入:

sudo visudo /etc/sudoers.d/010_pi-nopasswd

并将条目(或任何用户名具有超用户权)更改为:

pi ALL=(ALL) PASSWD: ALL

提高ssh安全性

SSH 是远程访问树莓派的常见方式。默认情况下,登录 SSH 需要用户名/密码。更安全的方法是使用基于密钥的身份验证。

  • 更改配置来允许或拒绝特定用户
sudo nano /etc/ssh/sshd_config
  • 这里提供windows下,ssh远程密钥登陆的方法:

    1. 检查用来连接树莓派的计算机上是否已经有密钥
    dir ~/.ssh
    

    如果存在,则会返回id_rsa id_rsa.pub known_hosts类似信息,可以跳到第三步。

    1. 没有密钥的情况下,在有安装git的情况下,打开git bash
    ssh-keygen
    

    将在默认位置生成密钥,如果原先已经存在则会覆盖掉。
    如果原先已经有密钥对存在了,那么就需要在指定文件路径下生成密钥:

    ssh-keygen -t rsa -b 2048 -f ~/.ssh/server-64/id_rsa
    
    1. 将公钥发送到树莓派上
    ssh-copy-id 树莓派用户名@树莓派ip
    

    将指定文件路径下的key发送到远端:

    $ ssh-copy-id -i ~/.ssh/server-64/id_rsa.pub anran@192.168.0.100
    

    如果提示是否需要设置密钥的密码,一般回车即可,除非你觉得还不够安全,你可以设置密钥的密码。
    之后退出登陆利用ssh登陆工具,设置密钥登陆,输入树莓派的用户名,即可登陆成功了。

    如果有报错,则需要修改~/.ssh/路径下,known_hosts文件中,包含远端ip的内容,删除或替换

(可选择)禁用密码登陆ssh

sudo nano /etc/ssh/sshd_config

修改

ChallengeResponseAuthentication noPasswordAuthentication noUsePAM no

如果不清楚这几项的用途,可以直接百度。
保存后,重启ssh

sudo service ssh reload

防火墙

  • 安装UFW
    Linux 有许多防火墙解决方案。大多数使用底层iptable项目来提供数据包过滤,此项目位于 Linux 网络过滤系统上,默认安装在树莓派操作系统上,但未设置,设置它也是一个复杂的任务。ufw是一个提供简单界面的防火墙"。这是 Ubuntu 的默认防火墙工具,可轻松安装在树莓派上。
sudo apt install ufw
  • 启用防火墙
sudo ufw enable

由于是通过ssh远程登陆,所以会收到这个回复

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

ssh连接可能会被中断,输入y,即可。若ssh连接被中断重新登陆就是。

  • 关闭防火墙
sudo ufw disable
  • 允许特定端口进入(默认已使用22端口)
sudo ufw allow 22
  • 拒绝某个端口访问(同样以22端口示例)
sudo ufw deny 22
  • 限制给端口提供的服务
    指定允许或拒绝在端口上提供哪些服务。示例:拒绝在端口 22 上使用 tcp:
sudo ufw deny 22/tcp
  • 允许ssh通过防火墙访问
sudo ufw allow ssh
  • 查询防火墙当前状态
sudo ufw status
  • 限制登陆次数
    限制使用 tcp 登录 ssh 端口的尝试:如果 IP 地址在过去 30 秒内尝试连接六次或六次以上,此会拒绝连接。
sudo ufw limit ssh/tcp

拒绝ip从某个端口访问(示例)

sudo ufw deny from 192.168.2.1 port 30

遇到的问题
在安装完防火墙后,原本部署好的仪表盘无法访问了(如果你已经部署pi-dashboard的话),
原因是:防火墙阻拦了80端口的流量进出,用指令打开即可权限。

这里我设置成了只允许某个端口输出流量,不允许进入流量

用网线联网:

sudo ufw allow out on eth0 to any port 80 proto tcp

用wifi:

sudo ufw allow out on wlan0 to any port 80 proto tcp

参考文章:树莓派文档 - 配置 (raspberrypi.org)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值