是否可以编写PythoniOS程序来允许/执行RaspberryPi命令?

问题描述

我目前正在进行我的高级Capstone项目,我将在其中编写一个基本的程序,该程序允许我的iPhone6设备上的自定义界面远程控制或向家里RaspBerryPi上建立的NIDS(Suricata)发出关键命令。 (3B +)VPN。但是,我的问题是编写这样的程序是否可行,该程序可以对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","bold"))
button1.place(x=50,y=110)      #GROOVE,RIDGE,SUNKEN,RAISED

button2=Button(window,text="Packet Dump","bold"))
button2.place(x=220,RAISED

button3=Button(window,text="Block Port","bold"))
button3.place(x=110,y=170)      #GROOVE,RAISED

这里显示了非常基本的选项。

解决方法

您可以将Flask服务器与API结合使用,并可以向其发送发布请求。然后,您可以发送获取请求以接收命令。要托管您的API,请查看Heroku(可用的免费层,并且功能非常强大,并且已经配置了app_name.herokuapp.com)。

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

Python:

模块:烧瓶(服务器),请求(客户端)

服务器代码:

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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...