Kategorien
Synology Uncategorized Unix Web

jdownloader auf qnap

Um jdownloader auf einem qnap zu installieren und über das Webinterface zu verwenden, müssen Sie die folgenden Schritte ausführen

Zuerst müssen Sie installieren „Entware“ mit diesem Skript https://raw.githubusercontent.com/Entware/installer.sh/master/generic.sh

Dann müssen Sie JRE über den QNAP Store installieren

Registrieren Sie ein Konto auf https://my.jdownloader.org

Jetzt müssen Sie diesen Code ausführen

#!/bin/bash

clear

/bin/echo ""
/bin/echo "============================================================="
/bin/echo "            JDownloader2 QPKG Installer script"
/bin/echo "============================================================="
/bin/echo ""

JAVA_HOME_TEST=$(/bin/cat /etc/profile | awk '/JAVA_HOME=/ { print $2 }' | tail -c +11)
CONF=/etc/config/qpkg.conf
QPKG_NAME="JDownloader2"
QPKG_DIR=$(/sbin/getcfg $QPKG_NAME Install_Path -f $CONF)
JD2_UPDATE_FILE="jd2_update"
JD2_UPDATE_LINK="https://www.dropbox.com/s/gmp6wu95b3wyecm/$JD2_UPDATE_FILE"
JD2_JAR_FILE="http://installer.jdownloader.org/JDownloader.jar"
JAR_FILENAME=`/bin/echo $JD2_JAR_FILE | cut -d'/' -f 4`

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

if [ ! -z $QPKG_DIR ] ; then
  /bin/echo "===================================================================================="
  /bin/echo "JDownloader2 is already installed, please remove it if you want to install it again!"
  /bin/echo "===================================================================================="
  /sbin/write_log "JDownloader2 is already installed, please remove it if you want to install it again!" 1
  exit
fi

QPKG_DIR=

# Determine BASE installation location according to smb.conf
BASE=
publicdir=`/sbin/getcfg Public path -f /etc/config/smb.conf`
if [ ! -z $publicdir ] && [ -d $publicdir ];then
  publicdirp1=`/bin/echo $publicdir | /bin/cut -d "/" -f 2`
  publicdirp2=`/bin/echo $publicdir | /bin/cut -d "/" -f 3`
  publicdirp3=`/bin/echo $publicdir | /bin/cut -d "/" -f 4`
  if [ ! -z $publicdirp1 ] && [ ! -z $publicdirp2 ] && [ ! -z $publicdirp3 ]; then
    [ -d "/${publicdirp1}/${publicdirp2}/Public" ] && BASE="/${publicdirp1}/${publicdirp2}"
  fi
fi

# Determine BASE installation location by checking where the Public folder is.
if [ -z $BASE ]; then
  for datadirtest in /share/HDA_DATA /share/HDB_DATA /share/HDC_DATA /share/HDD_DATA /share/MD0_DATA; do
    [ -d $datadirtest/Public ] && BASE="$datadirtest"
  done
fi
if [ -z $BASE ] ; then
  /bin/echo "The Public share not found."
  exit
fi

#JD2_TMP_DIR="$publicdir/$JD2_DIR"

CheckForOpt(){ #Does /opt exist? if not check if it's optware that's installed or opkg, and start the package 
  /bin/echo -n " Checking for /opt..."
  if [ ! -d /opt/bin ]; then
    if [ -x /etc/init.d/Optware.sh ]; then #if optware ,start optware
      /bin/echo "  Starting Optware..."
      /etc/init.d/Optware.sh start
      sleep 2
    elif [ -x /etc/init.d/opkg.sh ]; then #if opkg, start opkg  
      /bin/echo "  Starting Opkg..."    
      /etc/init.d/opkg.sh start
      sleep 2
    elif [ -x /etc/init.d/Entware-ng.sh ]; then #if Entware-ng, start Entware-ng  
      /bin/echo "  Starting Entware-ng..."    
      /etc/init.d/Entware-ng.sh start
      sleep 2
    else #catch all
      /bin/echo "  No Optware or Opkg or Entware-ng found, please install one of them"    
      /sbin/write_log "Failed to start $QPKG_NAME, no Optware or Opkg or Entware-ng found. Please re-install one of those packages" 1 
      exit 1
    fi
  else
    /bin/echo "  Found!"
  fi
  }

pid_check() {
  # Check if process is already running
  PROCESS_PID=0
  for pid in $(/bin/pidof java); do
    # Try to find if the process is JDownloader
    /bin/grep -q "JDownloader" /proc/$pid/cmdline
    if [ $? -eq 0 ]; then
    # Process found, save PID and exit loop
    PROCESS_PID=$pid
    break
    fi
  done
  # Print result
  #/bin/echo "Pid of process = $PROCESS_PID"
  }

Shutdown_jd2() { #kills a proces based on a PID in a given PID file
  pid_check
  /bin/echo -n "Checking if $QPKG_NAME is running... "
  if [[ $PROCESS_PID -eq 0 ]]; then
    /bin/echo "$QPKG_NAME is not running!"
  else
    /bin/echo "Shutting down $QPKG_NAME... "
    i=0
    /bin/kill $PROCESS_PID
    /bin/echo -n "Waiting for $QPKG_NAME to shut down: "
    while [ -d /proc/$PROCESS_PID ]; do
      /bin/sleep 1
      let i+=1
      /bin/echo -n "$i, "
      if [ $i = 45 ]; then
        /bin/echo "   Tired of waiting, killing $QPKG_NAME now"
        /bin/kill -9 $PROCESS_PID
        exit 1
      fi
    done
    /bin/echo "Done"
  fi
  }

java_check() {
  /bin/echo -n "Checking for Java... "
  if [ -z "$JAVA_HOME_TEST" ]; then
    /bin/echo "Java PATH not found. Please install JRE QPKG from http://goo.gl/ayMIbE or via the Qnap App Center"
    /bin/echo "NOTE: If you have just installed Java, close and reopen your session to update (putty)."
    exit 1
  else
    /bin/echo "Found... exporting variables"
    export JAVA_HOME=$JAVA_HOME_TEST
  fi

  # Store JAVA binary path
  JAVA_BIN=${JAVA_HOME_TEST}/bin/java
  
  # Check if Java runs correctly
  /bin/echo -n "Checking for Java executable... "
  if ! $JAVA_BIN -version 2>&1 | /bin/grep -q "Java(TM)"; then
    /bin/echo "Java does not run correctly. Please test the Java environment and try again."
    exit 2
  fi
    /bin/echo "All OK!"
  }

countdown() {
  local OLD_IFS="${IFS}"
  IFS=":"
  local ARR=( $1 ) ; shift
  IFS="${OLD_IFS}"
  local PREFIX="$*" ; [ -n "${PREFIX}" ] && PREFIX="${PREFIX} > "
  local SECONDS=$((  (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2]  ))
  local START=$(date +%s)
  local END=$((START + SECONDS))
  local CUR=$START
 
  while [[ $CUR -lt $END ]]
  do
          CUR=$(date +%s)
          LEFT=$((END-CUR))

          printf "\r${PREFIX}%02d:%02d:%02d" \
                  $((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

          /bin/sleep 1
  done
  printf "\nOk, now I resume the installation\n"
  }

jar_download() {
  if [[ ! -d $JD2_DEST_DIR ]]; then
    /bin/mkdir -p $JD2_DEST_DIR
  fi
  /bin/echo -n "Info: Downloading $QPKG_NAME Jar file... "
  if /usr/bin/wget --no-check-certificate $JD2_JAR_FILE --directory-prefix=$JD2_DEST_DIR 1>/dev/null 2>&1 ; then
    /bin/echo "Done"
    /bin/sleep 2
  else
    /bin/echo "Error!"
    /bin/echo "Couldn't download $QPKG_NAME Jar file. Please check your internet connection and try again."
    exit 0
  fi
  }

cleanup() {
if [[ -f "$publicdir/$JD2_UPDATE_FILE" ]]; then
  rm -rf "$publicdir/$JD2_UPDATE_FILE"
fi
if [[ -f "$publicdir/$QPKG_FILE" ]]; then
  rm -rf "$publicdir/$QPKG_FILE"
fi
  }

set_variables() {
QPKG_DIR=$(/sbin/getcfg $QPKG_NAME Install_Path -f $CONF)
JD2_DEST_DIR="$QPKG_DIR/jd2"
  }

qpkg_download_and_install() {
  echo -n "Info: Downloading update file ... "
  if /usr/bin/wget --no-check-certificate $JD2_UPDATE_LINK --directory-prefix=$publicdir 1>/dev/null 2>&1 ; then
    echo "Done."
  else
    echo "Failed."
    /bin/echo "Oops, couldn't download JDownloader2 update file. Please check your internet connection."
    exit 0
  fi
  
  export DLINK=`/sbin/getcfg JDownloader2 dl_link -f $publicdir/$JD2_UPDATE_FILE`
  QPKG_FILE=`echo $DLINK | cut -d'/' -f 6`

  echo "Info: Starting download QPKG ... "
  
  if [[ -f "$publicdir/$JD2_UPDATE_FILE" ]]; then
    rm -rf "$publicdir/$JD2_UPDATE_FILE"
  fi

  if /usr/bin/wget --no-check-certificate -O $publicdir/$QPKG_FILE $DLINK 1>/dev/null 2>&1 ; then
    echo "Info: Download completed succesfully"
  else
    echo "Failed."
    /bin/echo "Oops, couldn't download JDownloader2 QPKG file."
    exit 0
  fi
      echo "Info: Installing the QPKG ..."
      /bin/sh $publicdir/$QPKG_FILE
      if [ "$?" != "0" ]; then
        echo "Info: Installation succesfully completed."
        /sbin/write_log "JDownloader2 QPKG succesfully installed." 4
      else 
        echo "Error occured during JDownloader2 QPKG installation."
        /sbin/write_log "Error occured during JDownloader2 QPKG installation!" 1
        rm -rf "$publicdir/$QPKG_FILE"
        exit 0
      fi
    }

umask 000
CheckForOpt
java_check
qpkg_download_and_install
set_variables
jar_download
cd $JD2_DEST_DIR && $JAVA_BIN -Djava.awt.headless=true -jar $JD2_DEST_DIR/$JAR_FILENAME
countdown "00:00:10" "Please Wait ..."
Shutdown_jd2
cd $JD2_DEST_DIR && $JAVA_BIN -Djava.awt.headless=true -jar $JD2_DEST_DIR/$JAR_FILENAME
Shutdown_jd2
cleanup
/bin/echo "=========================================================================================="
/bin/echo "All done!!! Remember to log-in to https://my.jdownloader.org/login.html and configure JD2!"
/bin/echo "=========================================================================================="
/bin/echo ""
read -s -n 1 -p "Ok, now press any key to continue, then you can terminate this ssh session. Have a Good Download!!!"
/etc/init.d/JDownloader2.sh start &
exit

Während des Setups müssen Sie Ihr Konto registrieren

Jetzt können Sie Ihren Download über das Webinterdace auf myjdownloader verwalten

Kategorien
Exchange Web

E-Mail-Server-Check

Folgen http://public.pyzor.org/whitelist/

dies ist wirklich großen E-Mail-Server überprüfen

Kategorien
Raspberry PI Web

installieren Apache2 auf Rasperry PI

APACHE Installation

apt-get update
apt-get install apache2 php5 mysql-server locales phpmyadmin php5-curl iftop iotop vim screen tightvncserver mysql-client
apt-get upgrade
apt-get dist-upgrade

Update-RPI

RPI-Aktualisierung

Installieren Sie ownCloud

cd /var/www
wget https://download.owncloud.org/community/owncloud-8.0.3.zip
unzip owncloud-8.0.3.zip
rm owncloud-8.0.3.zip
mv owncloud storage

Anabele Apache MOD'S

sudo a2enmod rewrite
sudo a2enmod headers
service apache2 restart
Kategorien
Unix Web

Proxy-Multicast-Stream über Apache-Proxy mit Authentifizierung

Ich konfigurierte einen Proxy für Multicast zu http

Dazu benötigen Sie beispielsweise für Proxying Verkehr Form Telekom Home Entertainment

wget https://freefr.dl.sourceforge.net/project/udpxy/udpxy/Chipmunk-1.0/udpxy.1.0.23-0-prod.tar.gz
tar -xzvf udpxy.1.0.23-0-prod.tar.gz
machen
make install

in den crontab

1 1 * * * root udpxy -p 4022

Neuanlegen für die Authentifizierung

htpasswd -c /etc/apache2/.htpasswd sammy

fügen Sie ein addtional Benutzer

htpasswd /etc/apache2/.htpasswd sammy2

in den VHOST

        <Lage / udp>
                http Proxypass://localhost:4022/udp
                http Proxypassreverse://localhost:4022/udp
                AuthType Basic
                AuthName "Passwort erforderlich"
                AuthUserFile /etc/apache2/.htpasswd
                Require valid-user
                bestellen Sie verweigern,ermöglichen
                Lassen Sie von allen
        </Ort>

ermöglichen auf Apache Mod falls noch nicht geschehen

a2enmod Proxy proxy_http

Ändern Sie die Kanalliste wie für telekom

#EXTM3U
#EXTINF:-1,(05) RTL
https://Benutzer:password@server/udp/239.35.20.10:10000

#EXTINF:-1,(06) RTL2
https://Benutzer:password@server/udp/239.35.20.22:10000

#EXTINF:-1,(07) RTLplus
https://Benutzer:password@server/udp/239.35.20.57:10000

#EXTINF:-1,(08) Pro7
https://Benutzer:password@server/udp/239.35.20.21:10000

#EXTINF:-1,(09) Kabel1
https://Benutzer:password@server/udp/239.35.20.38:10000

#EXTINF:-1,(10) Vox
https://Benutzer:password@server/udp/239.35.20.11:10000

#EXTINF:-1,(11) Super RTL
https://Benutzer:password@server/udp/239.35.20.39:10000

#EXTINF:-1,(12) ntv
https://Benutzer:password@server/udp/239.35.20.47:10000

#EXTINF:-1,(13) sixx
https://Benutzer:password@server/udp/239.35.20.9:10000

#EXTINF:-1,(14) Pro7maxx
https://Benutzer:password@server/udp/239.35.20.33:10000

#EXTINF:-1,(15) RTLNITRO
https://Benutzer:password@server/udp/239.35.20.59:10000

#EXTINF:-1,(16) Kunst
https://Benutzer:password@server/udp/239.35.10.20:10000

#EXTINF:-1,(17) Phönix
https://Benutzer:password@server/udp/239.35.10.22:10000

#EXTINF:-1,(18) 3sat
https://Benutzer:password@server/udp/239.35.10.6:10000

#EXTINF:-1,(19) Kikka
https://Benutzer:password@server/udp/239.35.10.19:10000

#EXTINF:-1,(20) tagesschau24
https://Benutzer:password@server/udp/239.35.10.25:10000

#EXTINF:-1,(21) Einsfestival
https://Benutzer:password@server/udp/239.35.10.21:10000

#EXTINF:-1,(22) EinsPlus
https://Benutzer:password@server/udp/239.35.10.26:10000

#EXTINF:-1,(23) ARD-alpha
https://Benutzer:password@server/udp/239.35.10.24:10000

#EXTINF:-1,(24) ZDF Kultur
https://Benutzer:password@server/udp/239.35.10.23:10000

#EXTINF:-1,(25) ZDF Infokanal
https://Benutzer:password@server/udp/239.35.10.28:10000

#EXTINF:-1,(26) ZDF neo
https://Benutzer:password@server/udp/239.35.10.27:10000

#EXTINF:-1,(27) Deutsche Welle
https://Benutzer:password@server/udp/239.35.20.44:10000

#EXTINF:-1,(28) BR Nord
https://Benutzer:password@server/udp/239.35.10.13:10000

#EXTINF:-1,(29) hr-Fernsehen
https://Benutzer:password@server/udp/239.35.10.8:10000

#EXTINF:-1,(30) MDR Sachsen
https://Benutzer:password@server/udp/239.35.10.9:10000

#EXTINF:-1,(31) NDR
https://Benutzer:password@server/udp/239.35.10.10:10000

#EXTINF:-1,(32) Radio Bremen TV
https://Benutzer:password@server/udp/239.35.10.12:10000

#EXTINF:-1,(33) rbb Berlin
https://Benutzer:password@server/udp/239.35.10.14:10000

#EXTINF:-1,(34) SR Fernsehen
https://Benutzer:password@server/udp/239.35.10.15:10000

#EXTINF:-1,(35) SWR Fernsehen BW
https://Benutzer:password@server/udp/239.35.10.16:10000

#EXTINF:-1,(36) WDR
https://Benutzer:password@server/udp/239.35.10.18:10000

#EXTINF:-1,(37) Das Erste HD
https://Benutzer:password@server/udp/239.35.10.1:10000

#EXTINF:-1,(38) ZDF HD
https://Benutzer:password@server/udp/239.35.10.2:10000

#EXTINF:-1,(39) ARTE HD
https://Benutzer:password@server/udp/239.35.10.3:10000

#EXTINF:-1,(40) Phoenix HD
https://Benutzer:password@server/udp/239.35.10.48:10000

#EXTINF:-1,(41) KiKA HD
https://Benutzer:password@server/udp/239.35.10.11:10000

#EXTINF:-1,(42) 3sat HD
https://Benutzer:password@server/udp/239.35.10.47:10000

#EXTINF:-1,(43) Tagesschau 24 HD
https://Benutzer:password@server/udp/239.35.10.63:10000

#EXTINF:-1,(44) Einsfestival HD
https://Benutzer:password@server/udp/239.35.10.58:10000

#EXTINF:-1,(45) EinsPlus HD
https://Benutzer:password@server/udp/239.35.10.59:10000

#EXTINF:-1,(46) ZDF Kultur HD
https://Benutzer:password@server/udp/239.35.10.54:10000

#EXTINF:-1,(47) ZDF neo HD
https://Benutzer:password@server/udp/239.35.10.55:10000

#EXTINF:-1,(48) ZDF Infokanal HD
https://Benutzer:password@server/udp/239.35.10.56:10000

#EXTINF:-1,(49) Bayern Süd HD
https://Benutzer:password@server/udp/239.35.10.49:10000

#EXTINF:-1,(50) HR HD
https://Benutzer:password@server/udp/239.35.10.60:10000

#EXTINF:-1,(51) MDR HD
https://Benutzer:password@server/udp/239.35.10.61:10000

#EXTINF:-1,(52) NDR HD
https://Benutzer:password@server/udp/239.35.10.50:10000

#EXTINF:-1,(53) RBB HD
https://Benutzer:password@server/udp/239.35.10.62:10000

#EXTINF:-1,(54) SWR BW HD
https://Benutzer:password@server/udp/239.35.10.51:10000

#EXTINF:-1,(55) WDR HD
https://Benutzer:password@server/udp/239.35.10.53:10000

#EXTINF:-1,(56) SR HD
https://Benutzer:password@server/udp/239.35.10.64:10000

#EXTINF:-1,(01) Das Erste
https://Benutzer:password@server/udp/239.35.10.4:10000

#EXTINF:-1,(02) ZDF
https://Benutzer:password@server/udp/239.35.10.5:10000

#EXTINF:-1,(03) Sa 1
https://Benutzer:password@server/udp/239.35.20.20:10000

#EXTINF:-1,(04) SAT1 Gold-
https://Benutzer:password@server/udp/239.35.20.24:10000

 

Kategorien
plesk Unix Web Wordpress

Wordpress autoupdater

wp-cli installieren -> http://wp-cli.org/

Verwenden Sie dieses Skript

#!/bin / bash

Updater(){
        wp Core Update --allow-root
        wp Core-Update-db --allow-root
        wp-Plugin Update --all --allow-root
        wp Thema Update --all --allow-root
        wp Kernsprache Update --allow-root
        CGroup = $(stat -c '% G' wp-cron.php)
        CUser = $(stat -c '% U' wp-cron.php)
        chown $ cUser:$cGroup ./* -rf
}

für i in $(find / var / www / vhosts -name wp-cron.php); machen
        wpdir = $(i echo $ | sed -r 's / wp-cron.php // g')
        echo $ wpdir
        cd $ wpdir
        Updater
erledigt
Kategorien
Raspberry PI Unix Web

Funksteckdosen via Raspberry Pi über das Terminal, Webinterface oder Siri steuern – 433 mHz

Belegung

rpi2-pins

RaspberryPi Transmitter Receiver
Pin 2 / 4 (5V) VCC VCC
Pin 6 / 9 (GND) GND GND
Pin 11 (GPIO17) – RPi Nr.1 ATAD
Pin 13 (GPIO27) – RPi Nr.2 DATA (to the left of GND)

Software

Kommen wir nun zur Software. Hierzu müsst ihr erstmal euren Raspberry Pi starten, an dem alles wie oben beschrieben montiert wurde. Anschließen solltet ihr erst mal

sudo apt-get update

ausführen. Dadurch werden eure Paketquellen aktualisiert. Dann muss git-core installiert werden (falls nicht sowieso schon geschehen):

sudo apt-get install git-core

Um die Ansteuerung des Transmitters zu realisieren gibt es ein Projekt namensWiringPi. Dieses installiert ihr euch auf eurem Raspberry Pi wie folgt:

cd
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

Auch für unseren Zweck, die Steckdosen zu steuern gibt es bereits ein Projekt. Dieses stammt von xkonni und nennt sich Raspberry-Remote. Ihr installiert es euch so:

cd
git clone git://github.com/xkonni/raspberry-remote.git
cd raspberry-remote

Damit es läuft, müsst ihr euch noch die send.cpp kompilieren, also folgendes eintippen:

make send
make demon

installieren eines sniffers

cd
git clone https://github.com/ninjablocks/433Utils.git
cd 433Utils/RPi_utils
make all

Für die Pin Belegung

gpio readall

test des sniffers

./RFSniffer
./codesend 1234

Webinterface

Natürlich ist es etwas umständlich und unkomfortabel, das Ganze immer über das Terminal/eine SSH-Verbindung machen zu müssen. Aber kein Problem! Raspberry-Remote liefert auch gleich ein passendes Webinterface mit. Damit ihr das nutzen könnt, solltet ihr erst mal Apache und PHP installieren auf eurem Raspberry:

sudo apt-get install apache2 php5

Jetzt gehts zum Webinterface, was xkonni direkt mitliefert. Dazu habe ich im Ordner

mkdir /var/www/html/remote

einen Unterordner remote erstellt. Anschließend den Inhalt von ~/raspberry-remote/webinterface dorthin verschoben:

cp -Rf ~/raspberry-remote/webinterface/* /var/www/html/remote

Jetzt muss noch in der

vi /var/www/html/remote/config.php

Datei die IP Adresse des Raspberry Pis angepasst werden: dazu einfach nano verwenden.

Deamon

Nun fehlt noch der Daemon, auf den das PHP-Script des Webinterfaces zugreift. Dazu gehen wir in das Raspberry-Remote Verzeichnis zurück: cd ~/raspberryremote und kompilieren den daemon: make daemon
Nun können wir diesen Starten:

sudo ./daemon &

Das & bewirkt, dass der Prozess im Hintergrund läuft.

Jetzt können wir unser Glück mit dem Webinterface probieren: Dazu rufen wir von einem anderen Rechner/Handy das Webinterface per http://192.168.11.44/remote/ (Eure IP einsetzen) auf. Wenn das geht und dort die verschiedenen Steckdosen sichtbar sind, dann muss man jetzt nur noch in der config.php die Steckdosen mit Namen versehen und evtl. die Codes, etc. anpassen. Die Konfiguration sollte selbsterklärend sein.screenshot_webinterface

Falls ihr eine Fehlermeldung wie „Switch out of range: GET /:XY“ bekommt, keine Sorge! In der daemon.cpp sind standardmäßig nur die Hauscodes 00000 & 00001 & 00010 abgedeckt. Das lässt sich aber einfach ändern. Geht dazu wieder ins Verzeichnis von Raspberry Remote (bei mir /home/pi/raspberry-remote/, also via

cd /home/pi/raspberry-remote/

und öffnet die daemon.cpp mit nano. Darin befindet sich der Eintrag „nPlugs=10;“, welche ihr einfach durch „nPlugs= 1110;“. Anschließend übersudo make daemon neu kompilieren und über sudo ./daemon & wieder starten. Jetzt sollte auch bei euch das Webinterface funktionieren.

 

Quellen:

Let Raspberry Pi’s communicate with each other per 433MHz wireless signals

https://alexbloggt.com/funksteckdosen-raspberry-pi-teil1/

https://alexbloggt.com/funksteckdosen-raspberry-pi-teil2/

 

Des weiteren habe noch einige anderen tolle Projekte gefunden

OK Google, Schalte Liste an -> https://blog.medienman.de/blog/2017/08/20/google-home-steuert-433-mhz-funksteckdosen/

Kategorien
News Raspberry PI Synology Unix Web

letsencrypt auf Apache und Linux

dies ist ein kleiner Leitfaden, wie man Setup letsencrypt auf Apache und auf Linux

Zuerst müssen wir ein letsencrypt Tool zum Download und die Beispielconfig in die richtige Position bewegen

cd /opt
git clone https://github.com/lukas2511/letsencrypt.sh
mkdir -p /etc/letsencrypt.sh
mkdir -p /var/www/letsencrypt.sh/
chown www-data:www-data /var/www/letsencrypt.sh
cp /opt/letsencrypt.sh/docs/examples/config /opt/letsencrypt.sh/config
cp /opt/letsencrypt.sh/docs/examples/domains.txt /opt/letsencrypt.sh/domains.txt

Konfigurieren Sie die letsencrypt Konfigurationsdatei

/opt / letsencrypt.sh / config.sh

BASEDIR ="/etc / letsencrypt.sh /"
bekannte ="/var / www / letsencrypt.sh /"
private_key ="${BASEDIR}/private_key.pem"
HOOK ="${BASEDIR}/hook.sh"
CONTACT_EMAIL ="my@mail.com"

 

theletsencrypt alias für Apache konfigurieren

/etc / apache2 / conf.d / letsencrypt

Alias /.well-known/acme-challenge /var/www/letsencrypt.sh/
Options None
AllowOverride None
Order allow,deny
Allow from all

die hook.sh Datei konfigurieren zum Nachladen des Apache

/etc / letsencrypt.sh / hook.sh

#!/bin/bash

if [ ${1} == "deploy_cert" ]; then
echo " + Haken: Ein Neustart Apache ..."
/etc/init.d/apache2 reload
else
echo " + Haken: Nichts zu tun..."
fi

Ändern Sie den mod dieser Datei

chmod + x /opt/letsencrypt.sh/hook.sh

Konfigurieren Sie die Domain-Datei

/opt / letsencrypt.sh / domains

www.mosandl.eu
storage.mosandl.eu

laufen letsencrypt

/opt / letsencrypt.sh / dehydriert -c

erstellen crontjob, dass die certs jede Woche erzeugt werden

1  1	* * *	root /opt/letsencrypt.sh/dehydrated -c

vHost

SSLEngine On
SSLCertificateFile      /etc/letsencrypt.sh/certs/storage.mosandl.eu/cert.pem
SSLCertificateKeyFile   /etc/letsencrypt.sh/certs/storage.mosandl.eu/privkey.pem
SSLCertificateChainFile /etc/letsencrypt.sh/certs/storage.mosandl.eu/chain.pem
SSLCACertificateFile    /etc/letsencrypt.sh/certs/storage.mosandl.eu/fullchain.pem
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384

Neufassungen

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/.well-known
Alias /.well-known/acme-challenge /var/www/letsencrypt.sh/
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVERNAME}/$1 [R,L]

Proxy-Pass

Proxypass /.well-known !
Alias ​​/.well-known/acme-challenge /var/www/letsencrypt.sh/

Fehler

Kategorien
Web

Kostenloses Monitoring einrichten

1. Kostenloses Monitorring Tool

https://uptimerobot.com/

2. danach einfach bei zapier anmelden und das richtige modul auswählen

RSS zu SMS

https://zapier.com / http://beepsend.com

 

Kategorien
Unix Web

Erstellen Sie eine Public-Key-Infrastruktur mit Hilfe der easy-rsa Scripts

Der erste Schritt bei der Einrichtung OpenVPN ist eine zu erstellen Public Key Infrastructure (PKI). Die PKI besteht aus:

  • Ein öffentlicher Master Zertifizierungsstelle (CA) Zertifikat und einen privaten Schlüssel.
  • Eine separate öffentliche Zertifikat und einen privaten Schlüssel (im Folgenden als Zertifikat bezeichnet) für jeden Server und jeder Client.

Um das Zertifikat Erstellungsprozess erleichtern, OpenVPN kommt mit einer Sammlung von RSA Schlüssel manangement Skripte (basierend auf der OpenSSL-Kommandozeilen-Tool) bekannt als easy-rsa.

Hinweis: Nur .key-Dateien müssen geheim gehalten werden, .CRT- und .csr-Dateien können über unsichere Kanäle wie Text-E-Mail gesendet werden.

In diesem Artikel werden die benötigten Zertifikate werden von Wurzel im Stammverzeichnis des erstellt. Dadurch wird sichergestellt, dass die erzeugten Dateien den richtigen Eigentümer und Berechtigungen haben, und sind sicher von anderen Benutzern.

Hinweis: Die Zertifikate können auf jeder Maschine erstellt werden. Für die höchste Sicherheit, die Zertifikate auf einem physisch sicheren Maschine erzeugen aus jedem Netz getrennt, und stellen Sie sicher, dass die erzeugte ca.key privaten Schlüssel gesichert und nie für jedermann zugänglich.
Warnung: Stellen Sie sicher, dass die erzeugten Dateien gesichert werden, vor allem die ca.key und ca.crt Dateien, wenn sie verloren gehen, da werden Sie nicht in der Lage, jede neue zu schaffen, noch widerrufen alle kompromittiert Zertifikate, so erfordert die Erzeugung eines neuen Zertifizierungsstelle (CA) Zertifikat, entkräften die gesamte PKI-Infrastruktur.

Installieren der easy-rsa-Skripten

Installieren Sie die Skripte durch folgende Maßnahmen:

# pacman -S easy-rsa
# cp -r / usr / share / easy-rsa / root

Zertifikate erstellen

Wechseln Sie in das Verzeichnis, in dem Sie die Skripte installiert.

# cd / root / easy-rsa

Um die konsequente Nutzung der Werte zu gewährleisten, wenn die PKI-Generierung, Satz Standardwerte durch die PKI-Erzeugungs Skripte verwendet werden. Bearbeiten / root / easy-rsa / VARs und auf ein Minimum KEY_COUNTRY gesetzt, KEY_PROVINCE, KEY_CITY, KEY_ORG, und KEY_EMAIL Parameter (nicht jeder dieser Parameter leer lassen). Ändern Sie den KEY_SIZE Parameter 2048 für die SSL / TLS 2048bit RSA-Schlüssel für die Authentifizierung verwenden.

/root / easy-RSA / Vars
# easy-rsa Parametereinstellungen

# HINWEIS: Wenn Sie von einer RPM installiert,
# diese Datei nicht an Ort und Stelle bearbeitet in
# /usr / share / openvpn / easy-rsa --
# stattdessen, Sie sollten die ganze kopieren
# easy-rsa Verzeichnis an einem anderen Ort
# (wie / etc / OpenVPN-) so dass Ihre
# Änderungen werden nicht von einer Zukunft ausgelöscht
# OpenVPN-Paket Upgrade.

# Diese Variable sollte zeigen auf
# die oberste Ebene des easy-rsa
# Baum.
Export EASY_RSA ="`pwd`"

#
# Diese Variable sollte zeigen auf
# die angeforderten ausführbaren Dateien
#
Export OPENSSL ="openssl"
Export PKCS11TOOL ="pkcs11 Werkzeug"
Export GREP ="grep"

# Diese Variable sollte zeigen auf
# die openssl.cnf-Datei enthalten
# mit easy-rsa.
Export KEY_CONFIG = `$ EASY_RSA / whichopensslcnf $ EASY_RSA`

# Bearbeiten Sie diese Variable verweisen auf
# Ihr soon-to-be-Schlüssel erstellt
# Verzeichnis.
#
# WARNUNG: Rein alles tun
# a rm -rf in diesem Verzeichnis
# so stellen Sie sicher, dass Sie definieren
# es richtig!
Export KEY_DIR ="$EASY_RSA / Tasten"

# Geben Sie rm -rf Warn
Echo HINWEIS: Wenn Sie laufen ./clean-all, Ich werde einen rm -rf auf $ KEY_DIR tun

# PKCS11-Fixes
Export PKCS11_MODULE_PATH ="Attrappe"
Export PKCS11_PIN ="Attrappe"

# Erhöhen Sie dies 2048 wenn du
# sind paranoid.  Dies verlangsamt
# nach unten TLS-Verhandlungen Leistung
# sowie die einmalige DH parms
# Erzeugungsprozess.
Export key_size = 2048

# In wie vielen Tagen sollte der Root-CA-Schlüssel verfallen?
Export CA_EXPIRE = 3650

# In wie viele Tage sollten Zertifikate ablaufen?
Export KEY_EXPIRE = 3650

# Dies sind die Standardwerte für die Felder
# die in dem Zertifikat platziert wird.
# Nicht leer eines dieser Felder verlassen.


Export KEY_COUNTRY ="UNS"
Export KEY_PROVINCE ="CA"
Export KEY_CITY ="Acme Acres"
Export KEY_ORG ="Gipfel"
Export KEY_EMAIL ="roadrunner@acmecorp.org"
#Export KEY_EMAIL=mail@host.domain
Export KEY_CN = Acme-CA
Export KEY_NAME = Acme-CA
= Export KEY_OU""
Export PKCS11_MODULE_PATH = changeme
Export PKCS11_PIN = 1234

Exportieren Sie die Umgebungsvariablen.

# Quelle ./vars

Löschen Sie alle zuvor erstellten Zertifikate.

# ./alles putzen
Hinweis: Die Eingabe eines . (Punkt) wenn für einen Wert aufgefordert, ausblendet den Parameter.

Der Build-Skript CA erzeugt das Zertifizierungsstelle (CA) Zertifikat.

# ./Errichten-wie
Erzeugen eines 2048 Bit RSA Private Key
..............++++++
...++++++
Schreiben neue private Schlüssel zu ‚ca.key‘
-----
Sie sind dabei aufgefordert werden, Informationen einzugeben, die eingearbeitet werden
in der Zertifikatsanforderung.
Was Sie sind im Begriff ist, zu geben, was ein Distinguished Name oder ein DN genannt wird.
Es gibt durchaus ein paar Felder, aber Sie können etwas leer lassen
Für einige Felder wird es ein Standardwert sein,
Bei Eingabe von ‚‘, wird das Feld leer gelassen werden.
-----
Ländername (2 Buchstaben-Code) [UNS]:
Staat oder Provinz-Name (vollständiger Name) [CA]:
Ortsname (z.B, Stadt) [Acme Acres]:
Name der Organisation (z.B, Unternehmen) [Gipfel]:
Name der Organisationseinheit (z.B, Abschnitt) []:
Gemeinsamen Namen (z.B, Ihren Namen oder Ihre Server-Hostnamen) [Acme-CA]:
Name [Acme-CA]:
E-Mail-Addresse [roadrunner@acmecorp.org]:

Der Build-Schlüssel-Server-Skript # ./build-key-server <server name> erzeugt ein Serverzertifikat. Stellen Sie sicher, dass Sie den Servernamen (Common Name beim Ausführen des Skripts) ist einzigartig.

Hinweis: Verwenden Sie keine Herausforderung Passwort oder Firmennamen eingeben, wenn das Skript Sie eine Eingabeaufforderungen.
# ./build-key-Server elmer
Erzeugen eines 2048 Bit RSA Private Key
.....................++++++
.......................................................++++++
Schreiben neue private Schlüssel zu ‚elmer.key‘
-----
Sie sind dabei aufgefordert werden, Informationen einzugeben, die eingearbeitet werden
in der Zertifikatsanforderung.
Was Sie sind im Begriff ist, zu geben, was ein Distinguished Name oder ein DN genannt wird.
Es gibt durchaus ein paar Felder, aber Sie können etwas leer lassen
Für einige Felder wird es ein Standardwert sein,
Bei Eingabe von ‚‘, wird das Feld leer gelassen werden.
-----
Ländername (2 Buchstaben-Code) [UNS]:
Staat oder Provinz-Name (vollständiger Name) [CA]:
Ortsname (z.B, Stadt) [Acme Acres]:
Name der Organisation (z.B, Unternehmen) [Gipfel]:
Name der Organisationseinheit (z.B, Abschnitt) []:
Gemeinsamen Namen (z.B, Ihren Namen oder Ihre Server-Hostnamen) [elmer]:
Name [Acme-CA]:
E-Mail-Addresse [roadrunner@acmecorp.org]:

Bitte geben Sie die folgenden ‚Extra‘ Attribute
geschickt mit Zertifikatsanforderung werden
Eine Herausforderung Passwort []:
Ein optionaler Firmennamen []:
Mit Konfiguration von /root/easy-rsa/openssl-1.0.0.cnf
Überprüfen Sie, ob die Anforderung die Signatur übereinstimmt
Unterschrift ok
Das Thema Distinguished Name ist wie folgt
Ländername           :BEDRUCKBARE:'UNS'
stateOrProvinceName   :BEDRUCKBARE:'CA'
localityName          :BEDRUCKBARE:'Acme Acres'
organization      :BEDRUCKBARE:'Gipfel'
gemeinsamen Namen            :BEDRUCKBARE:'Elmer'
Name                  :BEDRUCKBARE:'Acme-CA'
E-Mail-Addresse          :IA5String:'Roadrunner@acmecorp.org'
Das Zertifikat ist bis Dezember zu zertifizierenden 27 19:11:59 2021 mittlere Greenwich-Zeit (3650 Tage)
Melden Sie das Zertifikat? [y / n]:und

1 aus 1 Zertifikatsanforderungen zertifiziert, verpflichten? [y / n]y
Ausschreiben Datenbank mit 1 neue Einträge
Data Base Aktualisiert

Der Build-Skript erzeugt die AVW Diffie-Hellman-Parameter .pem-Datei vom Server benötigt.

Hinweis: Es wäre besser, ein neues für jeden Server zu erzeugen, Sie können jedoch die gleiche, wenn Sie möchten,.
# ./build-AVW
Erzeugen DH Parameter, 2048 Bit lange sicher prime, Generator 2
Das wird eine lange Zeit in Anspruch nehmen
..+.............................................................................
.
.
.
............+...............+...................................................
..................................................................++*++*

Der Build-key-Skript # ./build-key <client name> erzeugt ein Client-Zertifikat. Stellen Sie sicher, dass die Client-Namen (Common Name beim Ausführen des Skripts) ist einzigartig.

Hinweis: Verwenden Sie keine Herausforderung Passwort oder Firmennamen eingeben, wenn das Skript Sie eine Eingabeaufforderungen.
# ./build-Schlüssel Bugs
Erzeugen eines 2048 Bit RSA Private Key
....++++++
.............................................................++++++
Schreiben neue private Schlüssel zu ‚bugs.key‘
-----
Sie sind dabei aufgefordert werden, Informationen einzugeben, die eingearbeitet werden
in der Zertifikatsanforderung.
Was Sie sind im Begriff ist, zu geben, was ein Distinguished Name oder ein DN genannt wird.
Es gibt durchaus ein paar Felder, aber Sie können etwas leer lassen
Für einige Felder wird es ein Standardwert sein,
Bei Eingabe von ‚‘, wird das Feld leer gelassen werden.
-----
Ländername (2 Buchstaben-Code) [UNS]:
Staat oder Provinz-Name (vollständiger Name) [CA]:
Ortsname (z.B, Stadt) [Acme Acres]:
Name der Organisation (z.B, Unternehmen) [Gipfel]:
Name der Organisationseinheit (z.B, Abschnitt) []:
Gemeinsamen Namen (z.B, Ihren Namen oder Ihre Server-Hostnamen) [Bugs]:
Name [Acme-CA]:
E-Mail-Addresse [roadrunner@acmecorp.org]:

Bitte geben Sie die folgenden ‚Extra‘ Attribute
geschickt mit Zertifikatsanforderung werden
Eine Herausforderung Passwort []:
Ein optionaler Firmennamen []:
Mit Konfiguration von /root/easy-rsa/openssl-1.0.0.cnf
Überprüfen Sie, ob die Anforderung die Signatur übereinstimmt
Unterschrift ok
Das Thema Distinguished Name ist wie folgt
Ländername           :BEDRUCKBARE:'UNS'
stateOrProvinceName   :BEDRUCKBARE:'CA'
localityName          :BEDRUCKBARE:'Acme Acres'
organization      :BEDRUCKBARE:'Gipfel'
gemeinsamen Namen            :BEDRUCKBARE:'Bugs'
Name                  :BEDRUCKBARE:'Acme-CA'
E-Mail-Addresse          :IA5String:'Roadrunner@acmecorp.org'
Das Zertifikat ist bis Dezember zu zertifizierenden 27 19:18:27 2021 mittlere Greenwich-Zeit (3650 Tage)
Melden Sie das Zertifikat? [y / n]:und

1 aus 1 Zertifikatsanforderungen zertifiziert, verpflichten? [y / n]y
Ausschreiben Datenbank mit 1 neue Einträge
Data Base Aktualisiert

Generieren Sie ein Geheimnis Hash-basierte Message Authentication Code (HMAC) durch laufen: # openvpn --genkey --secret /root/easy-rsa/keys/ta.key

Dies wird verwendet, um eine zusätzliche HMAC-Signatur für alle SSL / TLS Handshake-Pakete hinzufügen. Darüber hinaus wird sofort gelöscht werden, jede UDP-Paket nicht die richtige HMAC-Signatur mit, Schutz vor:

  • Portscanning.
  • DoS-Angriffe auf dem OpenVPN UDP-Port.
  • SSL / TLS-Handshake Einweihungen von nicht autorisierten Maschinen.
  • Eventuelle Pufferüberlauf-Schwachstellen in der SSL / TLS-Implementierung.

Alle erstellten Schlüssel und Zertifikate in / root / easy-rsa / Schlüssel gespeichert. Wenn Sie einen Fehler machen,, Sie können wieder durch Ausführen des Rein alle Skript neu anfangen.

Warnung: Dadurch werden alle zuvor generierten Zertifikate in / root / easy-rsa / Schlüssel gespeichert löschen, einschließlich der Zertifizierungsstelle (CA) Zertifikat.

Konvertieren von Zertifikaten verschlüsselt P12-Format

Einige Software (wie Android) nur VPN-Zertifikate zu lesen, die in einem Passwort-verschlüsselten P12-Datei gespeichert werden. Diese können mit dem folgenden Befehl generiert werden:

# openssl pkcs12 -export -inkey Tasten / bugs.key -in Tasten / bugs.crt -certfile Tasten / ca.crt -out Tasten / bugs.p12

Überprüfen OpenSSL

Wenn Sie benötigen die Informationen innerhalb eines Zertifikats zu überprüfen, CSR oder Private Key, Verwenden Sie diese Befehle. Du kannst auch überprüfen CSRs und prüfen Sie die Zertifikate mit unserem Online-Tools.

  • Prüfen Sie den Certificate Signing Request (CSR)
    openssl req -Text -noout -verify -in CSR.csr
  • Überprüfen Sie einen privaten Schlüssel
    openssl rsa -in privateKey.key -prüfen
  • Prüfen Sie ein Zertifikat
    openssl x509 -in certificate.crt -Text -noout
  • Überprüfen Sie eine PKCS # 12-Datei (.pfx oder P12)
    openssl pkcs12 -info -in keystore.p12
Kategorien
Web

HTTP: deaktivierte Verbindung für (xxx)

[Wed Nov 26 12:11:53.835820 2014] [proxy:error] [pid 25184:tid 139835276719872] AH00940: HTTP: disabled connection for (xxx)

Das ist, weil der SE Linux.

Etwas reparieren:

/usr / sbin / setsebool wahr httpd_can_network_connect

Oder Sie können auch die Sicherheitseinstellungen,

-> Zum Sicherheitsstufe Konfigurationen und ändern Tab zu SELinux

Und SELinux-Richtlinien überprüfen ändern

Erlauben HTTPD Skripte und Module mit dem Netzwerk zu verbinden

unter HTTPD Service