(连载)在 windows 中搭建 lua 应用环境(一)

windows 中搭建 lua 应用环境,包括 lua 解释器的编译部署和 lua module 的编译部署

  • 缘由

    感谢 amazon 提供 1 年的 aws ec2 的使用权。使用一段时间后,发现 ssh 攻击非常频繁,如图所示
    p1
    因此萌发了阻断攻击的想法。
  • 思路

    查看 linux 日志,识别非法的 ssh 来源,把恶意 ip 添加至 liunx 防火墙
  • 存在问题

    • 以什么方式查看日志

      攻击随时可能发生,并且暴力破解均为程序自动完成,不可能随时查看日志。此外,日志显示方式不友好,查看不方便。
    • 以什么方式分析日志

      分析日志的方法很多,如 shell 以及类似的脚本语言,或程序设计语言,或使用现成的日志分析工具。
    • 是否在本地保存日志

      毕竟本地有响应速度更快的 PC,便于日志的快速查看和进一步分析,但本地电脑不能 7×24 小时开机。家用路由器可长时间开机,但硬件资源有限。
  • 分析

    • 现有条件

      家用 PC 一台,windows 10 x64 系统,使用 hyper-v 虚拟了一个 debian-9 amd64*;小米路由器 *mini 一台,使用 lede 系统;小米路由器连接硬盘一块,150G。
    • 关于日志接收

      好奇心驱使,笔者想看一看日志,并想进一步分析一下日志,如攻击时间段、攻击频率、攻击来源等。只有路由器能够 7×24 小时开机, lede 系统能够进行少量运算,并且外挂硬盘,因此日志接收的工作由路由器完成。
    • 关于日志分析

    aws ec2 :编写 shell ,找出恶意 ip ,添加至 linux 防火墙
    本地:对路由器接收的日志信息进行分析(暂无具体思路)
    • 路由器应用程序开发工具选择

      lua:lua 解释器,lede 系统提供
      luasql-sqlite3:sqlite3lua 包装模块,用于操作 sqlite3 数据库, lede 系统提供
      luasocket:socketlua 包装模块,用于 socket 编程,接收远端的日志信息, lede 系统提供
    • lua 应用程序开发

    lua 的跨平台特性决定了这样一种开发思路:在 PC 上编写、测试 lua 脚本,在路由器上运行最终 lua 脚本
    操作系统选择:windowslinux*。从生产效率、熟悉程度等方面考虑,笔者选择 *windows 操作系统
  • 搭建 lua 应用环境目标

    包括 lua 解释器和各模块源代码的编译和部署:

lua 解释器
luasocket 模块
luasql-sqlite3 模块
sqlite3luasql-sqlite3 依赖

  • 结束语

    开源项目的源代码对 liunx 要友好许多,在 liunux 环境下 makemake install就能解决问题,而在 windows 环境下则困难重重,几番折腾下来,发现对于小白来说,选择 liunx 作为 lua 开发环境未必会比 windows 效率低多少。