MongoDB Authentication aktivieren

Per Default ist bei einer MongoDB Instanz keine Authentication aktiviert. Hier der kurze Weg. Admin Account anlegen devusr@testsystem:~# mongo MongoDB shell version v3.6.5 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.5 > use admin switched to db admin > db.createUser({user: „admin“, pwd: „geheimes_passwort“, roles: [{ role: „root“, db: „admin“ }]}) Successfully added user: { „user“ : … Weiterlesen

MongoDB und Python

Ein paar Notizen zu Python und MongoDB 🙂 MongoDB ist eine NoSQL Datenbank, weitere Infos -> Wikipedia 🙂 Aktuelle MongoDB Version installieren (auf Ubuntu 16.04) sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 echo „deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse“ | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list apt install apt-transport-https apt update apt-get install -y mongodb-org siehe auch: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ … Weiterlesen

Passwort Hashing in Python

Hier die einfachste Variante um in sicheres Passwort Hashing in Python umzusetzen. Dazu wird die passlib verwendet. Diese kann per pip installiert werden, passlib ist für Python 2.x und 3.x kompatibel. pip install passlib Passwort hashen: >>> # passlib laden >>> from passlib.hash import pbkdf2_sha256 >>> >>> # das passwort zum hashen >>> password = … Weiterlesen

Palo Alto Networks – XML API verwenden mit Python

Die Palo Alto Jungs haben eine exzellente XML API implementiert die für die Firewalls als auch Panorama usw. funktioniert. Um auf die API Dokumentation zuzugreifen einfach https://<firewall_ip>/api aufrufen. Der User muss API Rechte haben. Hier ein Beispiel zum Auslesen der ARP Tabelle. Ich habe den SSL Zertifikatscheck in Python deaktiviert in meiner Lab Umgebung. Bitte … Weiterlesen

Python: Arbeiten mit YAML Files

YAML ist eine vereinfachte Auszeichnungssprache zur Datenserialisierung. Das Format ist einfach gehalten und ist eine schöne alternative zu XML, JSON usw. Ist auch ein super Format für Configfiles als alternative zu INI Files. Einfaches YAML File: variable_str: value variable_num: 33 list: – a – b – c – d dictionary: – list1: – a – … Weiterlesen

Python: Entfernen von Steuerzeichen in ASCII Strings

Bin heute wieder mal über ein Problem mit ASCII Strings gestolpert. Im String war ein CTRL+C welches als \x03 in der ASCII Tabelle ist. Ich bin auf eine Seite gestoßen welche für alle möglichen Script und Programmiersprachen Codesnippets bereitstellt um Steuerzeichen zu entfernen. ASCII Tabelle bei Wikipedia: https://de.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange Hier für Python: stripped = lambda s: „“.join(i … Weiterlesen

Cisco/Python: Backup der Konfiguration bei write Event auf externen Server

Diverse Cisco Geräte können bei einem write Event die Konfiguration an einen anderen Server z.B. über HTTP pushen. Cisco Config: archive path http://1.2.3.4/cisco_config/put/$h-$t write-memory Apache /etc/httpd/conf.d/zzz_cisco_backup.conf: WSGIDaemonProcess cisco_backup user=apache group=apache threads=10 WSGIPythonPath /opt/cisco_backup/web_root WSGIScriptAlias /cisco_backup /opt/cisco_backup/web_root/cisco_backup.wsgi <Directory /opt/cisco_backup/web_root> WSGIProcessGroup cisco_backup WSGIApplicationGroup %{GLOBAL} WSGIScriptReloading On Order deny,allow Allow from all <Files cisco_backup.py> Require all granted </Files> … Weiterlesen

Python: Snippet – E-Mail versenden, alternative zu Mailer

#!/usr/bin/env python # -*- coding: utf-8 -*- import smtplib from email.mime.text import MIMEText def postmaster(mfrom, mto, msubject, message, smtphost): msg = MIMEText(message.encode(„utf-8“)) msg[‚Subject‘] = msubject msg[‚From‘] = mfrom msg[‚To‘] = mto s = smtplib.SMTP(smtphost) s.sendmail(msg[‚From‘], msg[‚To‘], msg.as_string()) s.quit()  

Python: Snippet: SSH shell on Cisco devices

Mit dem Snippet können Kommandos auf einer Cisco Shell via SSH ausgeführt werden. #!/usr/bin/env python import paramiko import sys def send_string_and_wait_for_string(command, wait_string, should_print): shell.send(command) receive_buffer = „“ while not wait_string in receive_buffer: receive_buffer += shell.recv(1024) if should_print: print receive_buffer return receive_buffer client = paramiko.SSHClient() client.load_system_host_keys() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect(„10.62.62.10″, username=“testuser“, password=“testpasswd“, look_for_keys=False, allow_agent=False) shell = client.invoke_shell() send_string_and_wait_for_string(„“, … Weiterlesen

Python: Snippet/Experiment – Syslog Server mit globalen und Host Filtern

Der Code ist nicht fertig und war mal ein Labor Versuch. Es lassen sich globale und Host Filter setzen wo diese zutreffen werden die Logs in ein extra File geschrieben. Config file: #!/usr/bin/env python # -*- coding: utf-8 -*- # Config definition class CFG: def __init__(self): # Path for logfiles self.syslogpath = „/home/mthoma/_dev/syslog/log/“ # Listner … Weiterlesen

Python: Snippet Multiprocessing mit Ergebnis

Beispiel für Parallelisierung von Jobs mit Ergebnis welche als Liste zurückgegeben werden. #!/usr/bin/env python # -*- encoding: utf-8; py-indent-offset: 4 -*- import os from multiprocessing import Pool def worker(job): x, y = job result = x ** y return os.getpid(), result if __name__ == ‚__main__‘: jobs = [(1, 2), (3, 4), (5, 6), (11, 12), … Weiterlesen

Python: Experiment/Snippet – Komprimieren und löschen von Logfiles nach X Tagen

Ein Ansatz für Logverzeichnisse im Format /log/<yyyy>/<mm>/<dd>/<div. logsfiles> #!/usr/bin/env python import gzip import shutil import os import datetime import time ############################################# # Config ############################################# # Path of Logfiles # Structure is /opt/log/<YYYY>/<MM>/<DD>/ gpath=’/opt/log/‘ # hold logs for x days hold_time=180 ############################################# def get_immediate_subdirectories(a_dir): return [name for name in os.listdir(a_dir) if os.path.isdir(os.path.join(a_dir, name))] def delete_files(f): # … Weiterlesen

Python: Snippet – Kaputten UTF-8 String reparieren

Ich habe aus der Datenbank einen String zurückbekommen der UTF-8 war aber falsch kodiert zurückgegeben wurde. So wurde aus Geschäftsstelle -> Gesch├ñftsstelle Folgendes Snippet kann einen kaputten UTF-8 String neu auf UTF-8 kodieren: name_kaputt = ‚Gesch\xc3\xa4ftsstelle‘ name = “.join(chr(ord(c)) for c in name_kaputt).decode(„utf-8“) print name_kaputt print name Ergebnis: Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC … Weiterlesen