ADD sshtunnel to mysql_connect.py

main
Sebastian Serfling 2023-07-25 12:28:15 +02:00
parent 409978e796
commit 0d7b81a3eb
5 changed files with 33 additions and 52 deletions

BIN
dist/main.exe vendored

Binary file not shown.

22
main.py
View File

@ -1,14 +1,10 @@
import mysql.connector
import subprocess
import csv
from datetime import datetime
import socket
import adcontroller_export
import exchange_export
import smtp_export
import rds_export
import ssh_tunnel
import mysql_connect
def get_local_ip():
try:
# Socket erstellen, um die lokale IP-Adresse zu ermitteln
@ -80,25 +76,24 @@ def gucamole(ip,servername):
## Import User + Maschinen als RAW
print("" + ip + servername)
# Verbindung zur Datenbank herstellen
# SSH Tunnel aufbauen
ssh_tunnel.create_ssh_tunnel()
# query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get_local_ip())
query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format("172.18.1.3")
query = "SELECT * FROM `Stines-GmbH`.`Kunden-Server` WHERE `IP-Adresse` = ""'{}'""".format(get_local_ip())
list = mysql_connect.get_ip(query)
# Ergebnisse durchlaufen und ausgeben
for row in list:
print(row)
name = row[1]
ipadress = row[3]
lastchange = row[5]
funktion = row[6]
token = row[7]
print(name)
cursor = mysql_connect.get_database()
# Überprüfen, ob die Datenbank bereits existiert
database_exists = False
for (db_name,) in cursor:
if db_name == name:
@ -108,7 +103,7 @@ for row in list:
# Datenbank erstellen, wenn sie noch nicht existiert
if not database_exists:
create_database_query = f"CREATE DATABASE {name}"
cursor.execute(create_database_query)
mysql_connect.create_database(create_database_query)
print(f"Die Datenbank '{name}' wurde erfolgreich erstellt.")
else:
print(f"Die Datenbank '{name}' existiert bereits.")
@ -119,7 +114,4 @@ for row in list:
else:
eval(funktion + '("' + ipadress + '","' + name + '")')
except NameError:
print("Die Funktion existiert nicht.")
# Verbindung schließen
ssh_tunnel.close_ssh_tunnel()
print("Die Funktion existiert nicht.")

View File

@ -1,29 +1,45 @@
import mysql.connector
import mysql.connector.locales.eng.client_error
from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder(
('forward.stines.de', 2223),
ssh_username="root",
ssh_password="adm.3dfx12",
remote_bind_address=('127.0.0.1', 3306)
)
server.start()
print(server.local_bind_port)
mydb = mysql.connector.connect(
host="172.17.1.21",
host="127.0.0.1",
port=server.local_bind_port,
user="root",
password="N53yBCswuawzBzS445VNAhWVMs3N59Gb9szEsrzXRBzarDqpdETpQeyt5v5CGe",
database="Stines-GmbH"
)
def get_ip(query):
print("GetIP")
mydb.connect()
cursor = mydb.cursor()
cursor.execute(query)
mydb.close()
return cursor.fetchall()
def get_database():
cursor = mydb.cursor()
cursor.execute('SHOW DATABASES')
return cursor
return cursor.fetchall()
def create_database(query):
print(query)
cursor = mydb.cursor()
cursor.execute(query)
mydb.commit()
mydb.close()
return ("Database Created")
def add_user(query):
def add_user(query, user):
print("add_user")
mydb.connect()
cursor = mydb.cursor()
cursor.execute(query)
return (query)
cursor.execute(query, user)
mydb.commit()
mydb.close()
return ("user Addet")

View File

@ -9,7 +9,6 @@ def rds (ip,name):
# Die Ausgabe des Befehls aufteilen und die Benutzernamen und Anmeldezeiten extrahieren
output_lines = result.stdout.strip().split('\n')[1:]
logged_in_users = []
print(logged_in_users)
# Tabelle erstellen, falls sie noch nicht existiert
table_name = "RDS-Online-User"
@ -18,7 +17,6 @@ def rds (ip,name):
create_table_query += f"`{field}` TEXT, "
create_table_query = create_table_query.rstrip(", ") + ")"
create_table_query += " ROW_FORMAT=DYNAMIC"
row_length = len(create_table_query)
mysql_connect.create_database(create_table_query)
for line in output_lines:

View File

@ -1,25 +0,0 @@
import paramiko
def create_ssh_tunnel():
# Erstelle eine SSH-Verbindung zum SSH-Server
local_port = 8888 # Der lokale Port, auf dem der Tunnel lauschen soll
remote_host = "172.17.1.21" # Hostname des Servers, auf den du zugreifen möchtest
remote_port = 3306 # Port des Servers, den du zugreifen möchtest (hier ist es der SSH-Port)
ssh_host = "172.17.1.21" # SSH-Server, über den der Tunnel geleitet wird
ssh_port = 22 # SSH-Port (Standard ist 22)
ssh_username = "root" # Dein SSH-Benutzername
ssh_password = "adm.3dfx12" # Dein SSH-Passwort
ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(ssh_host, port=ssh_port, username=ssh_username, password=ssh_password)
# Erstelle den SSH-Tunnel
ssh_tunnel = ssh_client.get_transport().open_channel(
"direct-tcpip",
(remote_host, remote_port),
("localhost", local_port)
)
return ssh_tunnel
def close_ssh_tunnel():
paramiko.SSHClient().close()