-2

我目前正在进行我的高级 Capstone 项目,在该项目中,我将编写一个有点基本的程序,它允许我的 iPhone6 设备上的自定义界面远程控制或向我家 RaspberryPi(3B+) 中建立的 NIDS (Suricata) 发出关键命令虚拟专用网。然而,我的问题是,编写可以允许对 Pi 的 IDS 上的基本功能/响应选项进行远程访问控制的程序是否可行,因为我将它用作 VPN 网络中的设备。主要问题是在出现异常时向 iOS 设备建立远程信号,并允许其响应并在 NIDS 上执行根级命令。

如果它有用的话,我目前正在使用 Pythonista 作为我移动设备上的运行时环境,并将我的 VPN 的连接方法设置为 UDP,但我不确定启用 SSH 是否会对我有所帮助。我对如何操作有关网络连接的编程有相当基本的了解。我非常感谢提供的任何和所有帮助!

from tkinter import *
window=Tk()
window.geometry("450x450")
window.title("IDS Response Manager")

label1=Label(window,text="Intrusion Response Options",fg= 'black',bg ='white',relief="solid",font=("times new roman",12,"bold"))
label1.pack()

button1=Button(window,text="Terminate Session",fg='white', bg='brown',relief=RIDGE,font=("arial",12,"bold"))
button1.place(x=50,y=110)      #GROOVE ,RIDGE ,SUNKEN ,RAISED

button2=Button(window,text="Packet Dump",fg='white', bg='brown',relief=RIDGE,font=("arial",12,"bold"))
button2.place(x=220,y=110)      #GROOVE ,RIDGE ,SUNKEN ,RAISED

button3=Button(window,text="Block Port",fg='white', bg='brown',relief=RIDGE,font=("arial",12,"bold"))
button3.place(x=110,y=170)      #GROOVE ,RIDGE ,SUNKEN ,RAISED

非常基本的选项,如此处所示。

4

1 回答 1

-1

您可以使用带有 API 的烧瓶服务器,您可以向其发送 post 请求。然后,您可以发送获取请求以接收命令。要托管您的 API,请查看 Heroku(免费层可用,功能非常强大,已配置app_name.herokuapp.com)。

向上搜索以使用您用于构建应用程序的技术发送发布请求。将带有命令的关键字命令连同密码“password_here”(可更改为您想要的任何内容)一起发送到 /send_commands。

Python:

模块:Flask(服务器)、请求(客户端)

服务器代码:

from flask import Flask

app = Flask(__name__)

commands = []

@app.route('/get_commands', methods=['GET'])
def get_commands():
    tmp_commands = commands[::]
    commands = []
    return {'commands': tmp_commands}

@app.route('/send_commands', methods=['POST'])
def send_commands():
    if request.json['password'] == "password_here":
        commands.append(request.json['command'])
        return {'worked': True}
    else:
        return {'worked': False}

if __name__ == '__main__':
    app.run(debug=True)

客户代码:

import requests 
  
URL = "url_here/get_commands"

commands = requests.get(url = URL) 

for command in commands:
    os.system(command)
于 2020-09-27T21:00:47.547 回答