刚放假时就想搞一台自己的服务器,平时用来反弹shell,做个xss测试,跑个环境之类的,但无奈实在太忙,hvv期间甚至做了几次渗透测试,中途还被拉去搭建了个CTF靶场,累的够呛,现在终于有时间来折腾服务器了。
毕竟是第一台服务器,在这里留个记录
选购
本想购买阿里云的ECS,99元一年,2H2G,怎么看都很心动的,可惜只支持国内,因此只好选择了288一年的轻量应用 服务器,2H1G,虽然内存与流量都小了些,但考虑到我的需求只是做些测试,也没有博客搬家的打算,也可以接受,毕竟都是白嫖的(学生优惠券300元)
事实上,这个价格令我很犹豫,但回想起这一年来无数次由于网络问题而栽的跟头,还是选择了看起来不实惠,但位于海外的服务器。我真要感谢当时的我做出了这个决定。
配置如下:
操作系统选择了Ubuntu22.04,地域为新加坡。本想选择位于香港的,但香港的服务器每日限购,想也正常,毕竟香港位于国内,访问延迟小,还不被墙所限制,自然是抢手货。但我没那精力去抢购,就选择了位于新加坡的
安全组修改
服务器一开始分配给我们一个公网ip与一个内网ip,而且在SSH登陆后,ifconfig看到的是内网ip,若想通过外部网络访问服务器,需要配置安全组,将服务器的外网ip的端口映射到内网ip。
在控制台查看防火墙,可以看到默认映射的几个端口
我这边的选择是将全端口映射,毕竟以后需要反弹shell,安全在服务器内部做好即可
SSH配置
首先肯定是修改默认端口
修改SSH配置文件:vim /etc/ssh/sshd_config
将Port 22
修改为想使用的端口即可
保存,随后使用ufw开放该端口
|
|
除此之外,我顺带开放了端口8000用于监听,方便用python跑http服务或反弹shell
我购入的这台服务器默认不允许使用SSH密码登陆,但我需要配置本地的公私钥登陆,因此先在sshd_config
中将PasswordAuthentication
设置为yes,在控制台设置了root密码后,就可以在本地进行SSH密码登陆
但无论密码有多复杂,只要开放了密码登陆,就会有被暴破的风险
在本地生成密钥,并指定算法
|
|
之后会请我们设置passphrase,用于在我们使用私钥登陆时再进行一次检验,也就是密码,防止他人拿到我们的私钥后直接登陆服务器
将其命名为key,之后就可在.ssh文件夹下找到key
(私钥)与key.pub
(公钥)
接着就是将公钥内容写入服务器指定用户的~/.ssh/authorized_keys
下
之后就可以通过ssh -p [端口] -i ~/.ssh/key root@[ip]
来登陆了
为了之后不用每次输入那么长的语句,可以在本地的.ssh
目录下写一个config,内容如下
|
|
如此一来,以后就可以通过ssh -p [端口] Server
来登陆
同样的方法配置了XShell的公私钥,再将服务器的SSH配置中将密码登陆选项关闭
Docker安装
我还想偶尔用服务器跑一些环境,因此还需要装个Docker
这是我装那么多次Docker以来最舒服的一次,直接跟着官方文档一步步下来即可,没有被墙的感觉真好
自然,墙维护了国内网络环境,也有其存在的意义,这是无可否认的
首先设置Docker的apt存储库
|
|
安装Docker包
|
|
不用换源,good
接着安装docker compose
|
|
拉个vulhub测试一下
|
|
这里有个问题,ufw明明只开放了监听端口与SSH端口,我们该怎么访问容器映射的端口呢,毕竟每个漏洞环境的映射端口不可能都是同一个。
这个问题在官方文档中得到了解释
当您使用 Docker 发布容器的端口时,该容器的往返流量在通过 ufw 防火墙设置之前会被转移。Docker 在表中路由容器流量nat,这意味着数据包在到达ufw 使用的INPUT和OUTPUT链之前会被转移。数据包在应用防火墙规则之前被路由,从而有效地忽略了您的防火墙配置。
闲话
目前服务器能满足我的大部分需求了,后续看我有了什么需求再配置吧。本来想配个代理池方便我做渗透测试的,但缺少相关知识,近期又很忙,只能搁置了。
上周靶机没打,这周打算打两台补上,很好,事多起来了 :D