N1盒子折腾
前言
最近购买了一个N1盒子玩玩,虽然这个盒子的cpu性能已经过时了,而且还是usb2.0的,实测传输速度只有40mb左右。
但是这个在网上很流行,教程和固件非常多可玩性比较高。那些路由器系统我没有兴趣,我买它是为了刷armbian的,又在拼夕夕上花了30块钱买一块500g的2.5寸硬盘,配合ddns做一个远程下载机还是挺不错的。
1. 安装系统
armbian的下载地址在这里,选择晶晨S9xx版本的包。推荐使用bullseye的版本对应debian11,
bookworm对应debian12但是毕竟咱盒子硬件比较旧了,选择前一个版本的固件更稳定一些。
用Rufus把系统镜像写入u盘,插入盒子上电自动就能从u盘启动了。在u盘启动的armbian中执行 armbian-install
将系统写入盒子闪存中。重启后拔掉u盘重启后就安装成功了。
2. 磁盘挂载
机器只有8g内存,安装完系统可用6g左右,我在usb上挂着一个2.5寸硬盘。
首先使用 lsblk
命令查看磁盘挂载情况,外接磁盘一般是sda,我这边只有一个分区,因此sda1就是我的磁盘,后面的/mnt/sharefile是我的挂载点,刚开始时是没有的。
1 |
|
磁盘挂载步骤
1 |
|
但是这种挂载方式是临时挂载,重启就要重新做挂载,通过修改fstab可以做到系统启动自动挂载。
首先通过blkid命令查询硬盘uuid,因为前面的名字sda是系统生成的,再插入一块硬盘第二块就是sdb、sdc等等,不是固定的。如果你的两个usd插口都插了硬盘下次哪个在前哪个在后就不能确定了。
但是uuid是与硬盘绑定的,只要你不对硬盘进行分区,不进行格式化,他的uud相对是固定的。
1 |
|
可以看到我的硬盘的UUID=”09ef634f-5af8-f24e-9497-b668e4fbc413”,格式是ext4
备份然后编辑 /etc/fstab 文件,在原先的后面增加一行配置,一共6段数据,中间使用空格分割(几个空格没关系)
第一段填写UUID,不需要引号引用
第二段填写挂在点,提前创建好文件夹
第三段填写磁盘格式,这里是ext4
第四段填写 defaults,nofail
,nofail 可以防止磁盘不可用时系统启动不起来
第五段六段填写 0
1 |
|
配置完成后先将上面测试用的挂载去掉
umount /mnt/sharefile
然后执行:
mount -a
如果没有报错,并且 lsblk 命令再次查看能够挂载成功则说明我们配置的 fstab是没错的。如果报错了或者没有成功则说明fstab配置的有问题,请将备份配置文件还原回去,再检查下是不是配错了,不然可能导致重启后启动不起来。
成功后,重启机器磁盘就可以自动挂载上去了。
3. 配置系统
1.配置apt
编辑 ‘/etc/apt/sources.list’文件,修改为清华apt源,将下面内容替换进去即可,一共四行
bullseye 版本使用这个
1 |
|
bookworm 使用这个
1 |
|
2. 安装docker
软件源更新后下载速度是很快的,切换到root用户然后执行下面命令:
1 |
|
docker仓库镜像在 /etc/docker/daemon.json
中修改,不过现在不太好找可用的了。
1 |
|
3.命令提示建议
当输入命令出现错别字时,会提示 command not found
, 通过安装 apt install command-not-found
工具(需重新连接shell)后给出建议,效果如下。
假设我输入一个不存在的命令lala,会出现如下提示。
1 |
|
4. 配置ssh端口
使用默认的ssh 22端口不太安全,更换成高端口号更不容易被扫描。
1 |
|
- 将原先被注释掉的 Port 22 恢复,并再增加一条 Port 5000。Port可以配置多个。
- 使用命令 systemctl restart sshd重启 ssh服务
- 再开一个端口连接5000 如果能正常连接进去说明配置生效,按照上面的方法将22端口注释掉
5.开启ssh认证日志
ssh连接的日志会输出到 /var/log/auth.log
文件下的,后面要安装的fail2ban也是依赖该文件判定登陆是否成功、失败的次数,如果你没有这个文件可能是缺少了系统日志服务。
使用命令 ps -ef |grep rsyslogd
查看 rsyslogd是否存在
如果不存在 使用 apt install rsyslogd
安装
启动服务 systemctl start rsyslog
这样就可以输出登陆认证日志了
6. 安装fail2ban
fail2ban可以有效的方式暴力破解的方式,他会监听ssh的登陆日志,就是上面说的 /var/log/auth.log
如果密码错误超过一定次数直接封禁ip。建议安装在宿主机上而不是docker里,过程如下。
- 安装
apt install fail2ban
- 启动
systemctl start fail2ban
默认情况下fail2ban开启了ssh服务的拦截,不过是在22端口,因为上面我们修改了端口好,即使fail2ban能够通过日志发现黑客的攻击,但是只会通过iptables封掉对应的22端口
的访问,因为我们修改了ssh的端口号。
3. 配置修改配置文件 /etc/fail2ban/jail.d/defaults-debian.conf
这里我配置了端口号,并配置了封禁时间96小时,失败5次即封ip,如果ssh开启了多个端口号可以用逗号拼起来
ini [sshd] enabled = true port = 30000 bantime = 96h maxretry = 5
4. 重启fail2ban systemctl restart fail2ban
查看fail2ban
fail2ban提供了服务端和客户端,一般我们操作客户端命令查看fail2ban的运行情况。常用的命令如下1
2
3
4
5
6fail2ban-client status 查看整体状态
fail2ban-client status sshd 查看ssh的状态
fail2ban-client get sshd banip --with-time 查看ssh被封的ip,把封禁时间和解封时间都展示出来
fail2ban-client set sshd banip 555.222.111.222 手动封禁一个ip
fail2ban-client set sshd unbanip 555.222.111.222 手动解封一个ip
更详细可的可以查看 fail2ban-client –help
- 查看fail2ban的日志
日志在/var/log/fail2ban.log
下,里面有详细的封禁、解封日志
7. 配置语言环境 locale
使用下面的命令有可视化窗口,空格是选择回车是确认。选择en_US英文模式,如果想用中文保持不变也可以
1 |
|
8. 安装samba
1 |
|
安装完成后,配置账号密码
1 |
|
4. 一些命令
vnstat 展示过去流量汇总情况,可通过添加 -l参数查看实时流量
sysstat 是一个工具包,包含有几个很有用的系统检测程序,iostat,mpstat和sar
iostat用于磁盘I/O分区的统计信息.可以用来分析磁盘I/O,带宽等信息
iostat -m 2,没2秒输出一次信息,以MB为单位展示(默认KB)
mpstat用于输出CPU的各种统计信息. 可以用来分析程序运行时在内核态和用户态的工作情况
sar用于定时搜集系统的各种状态信息.然后可以对系统各个时间点的状态进行监控