基于Raspbian(树莓派)搭建web安全练习环境(一)

树莓派 DVWA WooYun-DVWA bWAPP

前言


本文主要记录的的是基于树莓派(一代B型)raspbian-jessie-lite系统搭建的web安全练习环境,其中包括树莓派的基本设置、树莓派服务器的搭建和DVWA的配置等内容。限于篇幅,本文将分成两大部分,第一部分是关于树莓派的一些设置,第二部分是关于环境的搭建。

​ 本人早已对树莓派的大名有所耳闻,看着网上大神们的各种鼓捣,心里有些痒痒,但我就是不买:sweat_smile:。。。。因为冷静一想,这东西最大的可玩性在于GPIO,对我来说用处不是很大。但在去年无意中得到一块一代B型,这可让我纠结了——”食之无味,弃之可惜“,只好利用起来了。想了一想,就拿来搭建一个网页服务器吧,正好学习web安全等知识,并以此博客记录和总结,也希望能帮助到各位。

​ 本文大部分资料来源于网络,使用某度搜索出来的结果大同小异,故不贴出全部链接了,在此感谢各位作者的分享和帮助,侵删!由于本人才疏学浅,时间和精力有限,若文章中出现不妥与错误之处,恳请读者批评指正。


树莓派基础教程

硬件准备

树莓派、网线、高速SD卡或TF卡(老型号派用的是SD卡,新用的是TF卡)、多功能读卡器、Micro USB数据线(安卓流行的数据线)、一个普通的手机充电插座(5V)、壳和散热器随意。

因为卡的速度和容量会直接影响树莓派的运行速度和存储空间,搭建的又是无桌面web服务器,可以通过SSH连接,所以笔者建议是Class4以上、4G以上的卡,也不需要准备HDMI线、多余的键盘和鼠标,通过网线接入与自己所用的电脑的局域网即可。一般的笔记本是带有SD插槽,有笔记本用SD卡的同学可以不用准备读卡器。

软件准备(win环境下)

连接树莓派和FTP的软件笔者选择的是Xshell(非商业用途免费)和FileZilla(开源免费),烧写系统用的软件是Win32 Disk Imagerusbit等也行),科学上网工具(非必须)。

系统的选择和安装

以官方的raspbian为例,其他系统安装方法差(mei)不(shi)多(guo)。

下载系统

树莓派官网:https://www.raspberrypi.org/

树莓派各个系统下载地址:http://downloads.raspberrypi.org/ 在网站中的os_list.jsonos_list_v2.jsonos_list_v3.json系统命名的文件夹os.json的有关于树莓派的系统相关描述。

树莓派各个系统的下载.jpg

既然是玩Linux服务器,那命令行才是经典。raspbian官方镜像完整版4G左右,而精简版1G左右,基于硬件支持和系统稳定性等方面的考虑,在这我选择的是树莓派的新的精简版官方系统raspbian-jessie-lite

安装系统

1.解压raspbian-jessie-lite.zip,里面有raspbian-jessie-lite.img镜像文件

解压zip.jpg

2.打开Win32 Disk Imager,选择刚才解压出的img文件,Device(设备) 选项下选择SD/TF卡的盘符,然后选择Write(写),选择Yes后,等几分钟便完成。

烧写镜像.jpg

烧写镜像2.jpg

3.安装成功后会弹出完成对话框,提示写入成功。烧录烧录完成后,在Windows下显示卡只有几十兆,这是因为在装Linux系统的时候给卡分了Windows无法识别的分区。
系统分区.png

4.如果不成功,确认一下镜像是否完整(官方下载的地方有哈希值)?读卡器是否接触良好?连接正常?SD/TF卡是否烧坏了?烧写软件没问题的情况下再试一下把卡拔下来重新烧录一次,如果还不行,看一下是不是把卡格式化成FAT32格式?是不是路径有中文名的问题?要不把杀毒软件关一下?还是不行?要不重启试试?换别的电脑试试?笔者就遇到过因为笔记本的南桥有问题而没有刷成功:dizzy_face:。。。

启用树莓派

激活SSH

<strong><font color="red">注意:2016年11月25日的官方的release notes中表明之后的Raspbian系统默认禁用了SSH。激活的方法是在卡的根目录下新建一个名为ssh的空白文件然后把卡插回派即可,否则在使用SSH连接时会提示Connection refused。SSH登录的默认账号是pi,密码是raspberry。</font> </strong>

2016-11-25:
  * SSH disabled by default; can be enabled by creating a file with name "ssh" in boot partition
  * Prompt for password change at boot when SSH enabled with default password unchanged

在2017年2月16日的release notes中有

2017-02-16:
  * Detection of SSH enabled with default password moved into PAM
  启用默认密码的SSH检测已移已至PAM
  //笔者不太明白这句话的意思,但在使用2017-3-2的镜像时还是要新建文件激活SSH

开机

通过网线接入与电脑所连接的路由器(同一局域网),连接电源后一会儿派的灯就亮起,有些在闪烁。

LED指示灯状态相关解释——官方论坛

LED指示灯状态相关解释——树莓派实验室

LED 颜色 功能解释 状态解释
ACT 绿色 card status卡的状态 闪烁:正在访问SD卡
PWR 红色 power电源 常亮:正常
FDX full duplex全双工 亮:全双工/不亮:半双工
LNK link/activity网络活动情况 亮:网络连接成功
100/10M ethernet以太网状态 亮:100 Mbps/不亮:10 Mbps

连接

​ 为了方便每次重新开机连接树莓派,笔者建议设置固定树莓派的IP,在树莓派中设置固定IP不(wo)仅(lan)麻(de)烦(nong),而且有可能会造IP地址冲突,所以笔者在采用的是在路由器端设置树莓派的静态IP。如果读者由于各种原因没有办法登录路由器的管理界面,则要扫描局域网的设备的软件,用于查找树莓派的IP,并要在树莓派中设置固定IP地址,具体方法请读者自行搜索。

​ 登录路由器管理界面后,找到IP和MAC地址绑定的相关选项,设置并绑定树莓派的IP,拔掉(小心点==)树莓派的电源再插上重启一下树莓派,看一下树莓派的地址是不是刚才设置绑定的IP,如果不是可以多试一下重启树莓派或者重启路由器即可。

找到raspberry的ip.jpg

绑定IP.jpg

设置好树莓派的静态IP后,使用Xshell连接就好。在linux中输入密码是一般看不见任何东西的==

连接树莓派.jpg

​ Xshell的默认配色看久差点瞎了笔者的四眼==以下是笔者根据网上的资料设置的配色,读者可以将文中的代码保存到SolarizedDarkModify.xcs的文件中,然后在Xshell的配色方案 -> 浏览-> 导入,导入刚才的文件即可。

[SolarizedDarkModify]
text=839496
cyan(bold)=00ffff
text(bold)=e9e9e9
magenta=c000c0
green=80ff00
green(bold)=3c5a38
background=042028
cyan=00c0c0
red(bold)=ff0000
yellow=c0c000
magenta(bold)=ff00ff
yellow(bold)=ffff00
red=ff4500
white=c0c0c0
blue(bold)=1e90ff
white(bold)=fdf6e3
black=000000
blue=00bfff
black(bold)=808080
[Names]
name0=SolarizedDarkModify
count=1

设置

修改root密码

​ 在进行一些操作时需要用到管理员权限,以后使用FTP软件对树莓派的站点文件夹进行上传、删除等操作也需要用root用户登录。

sudo passwd root #为root设置密码,根据提示输入两次相同的即可。记住密码
su root #从当前用户pi切换为root,需要密码,验证root是否可以使用
su pi #从root切换当前用户为pi,不需要密码
设置允许root远程登录
sudo nano /etc/ssh/sshd_config 

ctrl+w搜索 PermitRootLogin

# 将PermitRootLogin without-password 修改为
PermitRootLogin yes

修改完成之后重启一下即可

sudo reboot
修改更新源

​树莓派的官方服务器在国外,所以我们更新、下载软件比较慢,因此我们设置软件源地址为国内的镜像服务器,以加快软件下载速度。
BUT,这不是绝对的,笔者发现用默认的官方源更新下载的比自己设置的阿里云的源还要快,应该是官方会自动定向国内源。这是树莓派官方的镜像列表

sudo nano /etc/apt/sources.list #使用nano编辑更新源文件,若不使用sudo,则无法对文件进行有效修改

将文件中的之前的用#注释掉,添加以下其中的一组内容,其中jessie是对应的系统版本,本机安装的是jessie版本的系统

#阿里云的源(已亲测)
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessie main contrib non-free

#以下未亲测==

#中科大的源
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main contrib non-free

#清华大学的源
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ jessie main contrib non-free

#重庆大学的源
deb http://mirrors.cqu.edu.cn/Raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirrors.cqu.edu.cn/Raspbian/raspbian/ jessie main contrib non-free

#中山大学的源
deb http://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free

#浙江大学的源
deb http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib contrib non-free
deb-src http://mirrors.zju.edu.cn/raspbian/raspbian/ jessie main contrib contrib non-free

#大连东软的源
deb http://mirrors.neusoft.edu.cn/raspbian/raspbian/ jessie main contrib non-free
deb-src http://mirrors.neusoft.edu.cn/raspbian/raspbian/ jessie main non-free contrib

修改源.jpg

然后使用快捷键 Ctrl+O回车后保存文件,Ctrl+X退出然后执行

 sudo apt-get update && apt-get upgrade -y #更新系统软件并更新已安装应用,-y是不提示是否安装直接安装更新
更新软件.jpg

在更新时若出现获取(get)的连接都不是自己设置的更新源,下载很慢,可以尝试重启树莓派后再更新。

如果遇到使用临时管理员sudo更新出现权限不够的问题,请切换至root用户执行命令。

su root#切换搭配root用户
#输入root密码
apt-get update && apt-get upgrade -y
#更新
切换到root用户再更新.jpg
raspi-config详解

树莓派装系统初次启动会出现raspi-config设置,也可以使用一下命令调出

sudo raspi-config #打开树莓派的设置界面
设置的界面.jpg

使用上下键上下移动光标,Tab键是切换焦点,左右键左右选择下边的SelcectFinishBack等选项,空格是勾选或者取消选中,回车键则选择中这个选项。

  1. Change User Password :更改默认用户(pi)的密码(建议修改,使用弱口令是一个坏习惯)

  2. Hostname:设置树莓派在在网络可见中的名称

  3. Boot Options:设置启动选项

    1. Desktop / CLI:选择启动时是进入桌面环境还是命令行模式
      • Console:文本控制台,需要用户登录。(作为服务器,我们选择这一项)
      • Console Autologin:自动登录文本控制台
      • Desktop Desktop GUI:需要用户登录图形用户界面
      • Desktop Autologin Desktop GUI:自动登录图形用户界面
    2. **Wait for Network at Boot **:等待网络在开机选择是否等待网络连接再引导
    3. Choose graphical splash screen or text boot:启动时选择进入图形界面或命令行
  4. Localisation Options:本地设置,设置语言和时区,快捷命令sudo dpkg-reconfigure locales

    1. Change Locale:更改语言和区域。想要显示中文,先安装了中文字体再选择设置。如果不安装中文字体系统是不会自动安装,所以看见的一些显示是方块方框。安装中文字体的方法

      sudo apt-get install ttf-wqy-zenhei #安装文泉驿中文字库
      

      回车后上下移动光标,page down / up 翻页,按空格选中en_US.UTF-8 UTF-8、zh_CN.UTF-8 UTF-8、zh_CN.GBK GBK(选中选项[]里会有一个*号)


      选中中文.jpg

      然后使用Tab键选择确定后再确定zh_CN.UTF-8为系统环境默认字符集,树莓派重启即可。

    选择默认字符集.jpg
    1. Change Timezone:时区设置,主要是用来显示树莓派的时间。选择Asia(亚洲)再选择Chongqing(重庆)即可。
  5. **Change Keyboard Layout **:键盘布局(在初始设置时有,好像是在设置后语言区域和时区后,重启就没有了==)
    关于键盘布局:我们是通过SSH连接树莓派的,所以不需要安装中文输入法,但直接在Xshell输入时键盘的一些符号不对或者对调,那就使用复制粘贴来解决吧。

  6. Change Wi-fi Country:设置wifi的信道

  7. Interfacing Options:接口设置

    1. Camera:设置启用或者禁用树莓派的相机
    2. SSH:设置启用或者禁用SSH远程连接树莓派,开启或者禁用SSH服务器
    3. VNC:设置启用或者禁用RealVNC远程连接树莓派,确认开启树莓派会自动下载RealVNC
    4. SPI:设置启用或者禁用在内核模式中自动加载SPI
    5. I2C:设置启用或者禁用在内核模式中自动加载I2C
    6. Serial:设置启用或者禁用串行连接的Shell和内核消息
    7. 1-Wire:设置启用或者禁用一线接口
    8. Remote GPIO:设置启用或者禁用远程连接GPIO针脚
  8. Overclock:设置超频,更多超频设置信息

  9. Advanced Options:高级设置

    1. Expand Filesystem:扩展文件系统,将分区扩展到整张卡(建议选中,方便后期工作)
    2. Overscan:设置是否全屏显示
    3. Memory Split:设置给GPU分配多少内存(我们不使用图形界面,建议分配16M
    4. Audio:设置声音默认输出到3.5mm接口还是HDMI口
    5. Resolution:设置屏幕分频率
    6. GL Driver:设置启用或者禁用实验的桌面GL驱动
  10. Update:升级这个树莓派设置工具到最新版

  11. About raspi-config关于 raspi-config这个工具

本文同步发布于我的CSDN博客我的博客园

设置好了之后重启设置就生效了,到此树莓派的基本教程结束。第一次写文章,如果读者有什么问题或者建议请留言讨论。

推荐阅读更多精彩内容