旧安卓机别扔了,自制 Web 服务器了解一下!

一颗小胡椒2023-01-30 15:25:09

你一定有安卓旧手机吧?每年都有大量的电子垃圾被扔掉,在发达国家,平均每个人每隔几年都要扔掉一台手机,而废弃的手机是最大的电子垃圾来源。

我有一台在角落兜灰的旧摩托罗拉G5 Cedric,所以我决定用它来做点什么。现在,我利用它运行一个Puma Web服务器,上面跑着一个简单的Sinatra应用。

在进一步介绍之前,你也许会想:这有什么实际的用途吗?一台旧的安卓手机可能并不会有太高的性能,但t2.nano的AWS服务器也没有。我还没有在安卓上部署任何“真正”的代码,但即使是最廉价的手机,一般也都有四核甚至八核CPU,至少2GB内存,所以理论上手机性能几乎接近最先进的云服务器(例如t2.nano就只有512MB内存)。当然,手机的处理器是ARM,而云服务器通常是x86;内存管理也完全不同。不过我们这里只是粗略估计一下。

不论如何,这篇文章的目的是介绍如何将安卓设备改造成Web服务器或任何其他东西。

1、安装Termux

首先我们需要在手机上设置一个Linux环境。Termux是一个运行在安卓上的终端模拟器和Linux环境,可以直接从谷歌应用商店下载。安装完成后不需要任何配置。

2、设置SSH

你肯定不想在手机的小屏幕上输入大量命令,所以我们来设置一下ssh,这样就可以远程登录Termux了。

方法实现有几种,但我认为最方便的是通过一个名为Dropbear的软件。

首先在安卓上运行:

pkg upgradepkg install dropbear

你可以选择密码认证,也可以选择公钥认证。虽然推荐使用公钥认证,但作为尝试的话,密码认证是最简单的。运行以下命令:

passwdNew password:Retype new password:New password was successfully set.

小贴士:可以安装一个终端复用程序,如tmux或screen。这样通过ssh运行程序时非常方便:

pkg install tmux

接下来,在台式机或笔记本上测试连接:

ssh android-ip-address -p 8022

3、设置安卓的静态IP地址

进入WiFi设置,禁用DHCP,然后给手机指定一个IP地址。

这一步是有必要的,这样路由器就不会每过几天就给手机分配一个新地址。否则,配置会相当麻烦。

4、安装Ruby、Bundler、Sinatra和Puma

Sinatra是一个轻量级的Web应用程序框架,而Puma是Web服务器。

Ruby就是Ruby!

当然,Sinatra和Puma只是建议,你甚至可以在手机上运行完整的Rails应用程序。只要别使用默认的Rails开发服务器WEBRick就行,它只有单进程、单线程,因此不适合生产环境。(小型测试环境还是不错的)。

在安卓上运行:

pkg install rubygem install sinatra puma

安装nginx

nginx是Web服务器、反向代理和负载均衡器。虽然配置成多服务器是最有效的,它可以给多台服务器分发请求,但在我们的手机服务器上nginx也非常好,它内置了DDoS防范功能,还能为静态文件提供服务。

在安卓上运行:

pkg install nginx

接下来需要一点小技巧,才能让nginx与Puma相互配合。这个配置(https://gist.github.com/ctalkington/4448153)非常好,复制nginx.conf,将appdir改成你的Web应用的根目录。在我的配置中,我将其改成了 /data/data/com/termux/files/home/android-sinatra。

设置端口转发

如果想让Web服务器可以通过互联网访问,就需要给路由器设置端口转发,将进入的请求到新配置好的安卓Web服务器上。

具体做法取决于你的路由器。可以参考这篇文章(https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/)。

配置动态dns

大多数人的公网IP地址都是动态的。因此,设置一个动态dns(DDNS)服务非常有必要,它会给你提供一个静态域名,自动将请求转发到你的动态公网IP地址上。

有几个免费的DDNS服务。我使用的是no-ip,到目前一切都好。只不过你需要每个月去“更新”一下域名。

设置好DDNS之后,你需要配置路由器,让它定期将自己的IP地址通知给DDNS服务。具体做法取决于路由器型号。

运行Hello world!

负载测试

你可以用siege这个HTTP负载测试软件来模拟真实世界中的使用情况。下面是在我的服务器上运行siege的情况,服务器支持3个并发用户(真实世界中应该设置得更大):

截图中数字的意义不大,因为我们的Web应用的响应只不过是时间戳,不超过100个字符,但足够证明,我们的服务器可以处理少量的并发用户了。

番外篇:安全性

互联网非常危险。如果你真的要运行一台服务器,就必须考虑这些问题。

运行这台服务器几个小时后,就已经有各种爬虫进来了。大多数都是无害的搜索引擎爬虫,但有的却是来者不善,比如这两个请求:

所以,务必要保证所有软件都是最新的,随时观察访问日志,并遵循nginx的安全指南。

androidweb开发
本作品采用《CC 协议》,转载必须注明作者和本文链接
低代码成了企追求的主流目标,与使用计算机编程语言构建应用程序的传统方法不同,低代码开发平台是使用图形向导来创建和构建软件的应用程序开发平台。因此,在许多情况下,低代码或无代码(几乎没有代码)这个名称是作为可视化开发工具来帮助设计人员进行拖放、组件浏览器和逻辑构建器的。
浏览器的沙盒技术
2023-03-15 10:07:58
它有助于将数据与外部安全威胁和不安全浏览隔离开来。引爆技术可以帮助发现 Web 浏览器中的新漏洞及其缓解措施。broker 和 target 是构成 Chromium 浏览器沙箱的两个进程。Firefox 浏览器沙盒为了保护本地系统免受威胁,Firefox 在沙箱中执行不受信任的代码。Firefox 浏览器通过使用父进程和子进程进行沙盒化。
网站和应用程序用于连接到Facebook,Google,Apple,Twitter等的开放授权标准实施中的漏洞可能允许攻击者接管用户帐户,访问和/或泄露敏感信息,甚至进行金融欺诈。当用户登录到网站并单击链接以使用另一个社交媒体帐户登录时,OAuth就会发挥作用,例如“使用Facebook登录”或“使用Google登录” - 许多网站都使用该功能允许跨平台身份验证。该漏洞是Salt研究人员在在线平台实施OAuth时发现的第二个也是更具影响力的漏洞,OAuth被证明是一个难以安全实施的标准。
本文综合论文、博客、案例揭示了开源软件供应过程中风险点与防护手段,为渗透测试工程师、运维人员提供攻击、防守思路,为开发开发、审查自己代码提供安全建议,为安全产品研发提供更多方向。
关键词漏洞安全研究人员发现,用于数百线上服务的知名开发框架Expo出现可劫持账号的重大漏洞。Expo框架主要
近日,安全专家披露,Expo 框架中存在一个高危的OAuth安全漏洞,可被攻击者利用来劫持窃取各类在线服务中的用户数据。Salt Security 的研究机构 Salt Labs 解释说,在发现该漏洞后,它立即将其披露给 Expo,Expo迅速修复了该漏洞。Expo 在一份公告中表示,它在 2023 年 2 月 18 日负责任地披露后数小时内部署了一个修补程序。
软件漏洞分析简述
2022-07-18 07:08:06
然后电脑坏了,借了一台win11的,凑合着用吧。第一处我们直接看一下他写的waf. 逻辑比较简单,利用正则,所有通过 GET 传参得到的参数经过verify_str函数调用inject_check_sql函数进行参数检查过滤,如果匹配黑名单,就退出。但是又有test_input函数进行限制。可以看到$web_urls会被放入数据库语句执行,由于$web_urls获取没有经过过滤函数,所以可以
为什么一个关于猫的游戏需要获得授权来拨打电话或探查你的位置呢? "可爱的猫咪日记"是Doctor Web恶意软件分析师在华为Android官方应用商店AppGallery发现的190个游戏木马之一。 很多安卓设备中都安装了它。在周二发表的一份报告中,Doctor Web估计有超过930万名安卓设备用户安装了这些危险的游戏。 据研究人员称,这些带有恶意模块的应用程序内含有大量诱导儿童的条目,包
现在很多网站都是通过卖VIP会员盈利的,为了让用户更有购买欲望,有的时候会把内容展示一小部分,然后隐藏绝大多部分,让你看完一点还想看就忍不住付钱了:),产品经理的愿景是很美好的,但是开发人员的水平是参差不齐的,最终实现的效果可能就会有各种各样的问题,甚至留下安全隐患。
工具简介本工具只可用于安全性测试,误用于非法用途!工具定位边界打点后的自动化内网工具,完全与服务端脱离。服务端只用于生成poc,网段信息等配置。内网渗透痛点目前已有的扫描器,依赖库较多,体积过于庞大,在内网渗透中,很多极端情况无法安装扫描器,使用socks4/socks5代理扫描的话,时间久,效率低。
一颗小胡椒
暂无描述