Big Endidan, littel endian

Einfach, weil ich es immer wieder verwechsle:

Little Endian, entspricht der hex schreibweise
Wert:                                               0xA0C518
Reihenfolge im Speicher:           0xA0C518

  • hat sich durchgesetzt bei PCs (weil dies meist Intel-Prozessoren sind, x86, die littel endian Daten Speichern
  • Aufbau wie Stunden::Minuten::Sekunden.
    Zuerst der grosse Wert, dann der kleinere. (Am Ende stehen die tiefen Werte, die Einer)
  • Aufbau wie unser Dezimal (oder Hex) Zahlensytem

Big Endian, der Exot
Wert:                                               0xA0C518
Reihenfolge im Speicher:           0x18C5A0

  • Wird bei den Netzwerkprotokollen gebraucht
  • Kommt im Embedded Bereich bei der Datenverarbeitung vor
  • Das Ablegen der Daten entspricht nicht der Zahlenwertnotation
  • Aufbau wie Tag::Monat::Jahr
    Am Ende steht die grösste Einheit

Per LAN auf anderes Gerät zugreifen

Login auf ein anderes Gerät
Auf ein anderes Geräte im selben LAN (WLAN oder mit Kabel verbunden) kann man sich per IP in das Gerät einloggen. Es ist identisch wie wenn man sich als User vor Ort angemeldet hätte.

Für diese Verbindung braucht es ein sicheres Programm. SSH ist ein solches.

Bedingung
Man braucht den Username und das Passwort des Users.

Befehl

ssh   userName@<ip>
ssh   root@192.168.9.12
pw:   Passwort des Users eingeben

Navigation auf dem PC
Ist man im Gerät, kann man sich mit den Shell-Befehlen von Ordner zu Ordner bewegen und Dateien ausführen.

WLAN Standards IEEE 802.11

IEEE 802.11
Der Standard definiert das Frequenzband [F0], die Anzahl Kanäle, deren Kanalbreiten [B], die Modulationsarten, die Kommuncationsart (unicast, multicast) und die Anzahl Antennen (SISO <-> MIMO).

Überblick Spezifikationen
IEEE 802.11a, b, c, g:  1 Antenne,
.                                          B = 20 MHz,
.                                          F0 = 2.4 GHz,
.                                          Anzahl Kanäle =  14 (! überlappen sich. Nur 1, 6, 11 nutzbar)
.                                          R_max = 54 Mbps

IEEE 802.11n:              4 Antennen:
.                                         Durchsatz R multipliziert sich mit Anzahl Antenen
.                                          B = 20 MHz, 40 MHz
.                                          F0 = 2.4 GHz, 5 GHz
.                                          Anzahl Kanäle = ? (überlappen sich bei 2. FO nicht)
.                                          R_max 1 Antenne = 150 Mbps (64-QAM, B = 40, guard = 0.4 u
.                                          R_max 4 Antennen = 600 Mbps (siehe 1 Antenne)

IEEE 802.11ac:             8 Antennen,
.                                          B = 160 MHz,
.                                          F0 =5 GHz,
.                                          Anzahl Kanäle = 8
.                                          R_max 1 Antenne = 866.7 Mbps
.                                          R_max 8 Antennen = 6.77 Gbps

Datendurchsatz R per LAN messen [Bitpersecond]

Iperf
Ist ein freie Software, um den Datendurchsatz auf TCP/IP-Netzen zu messen. Das Programm generiert UDP oder TCP Datenströme und funktioniert nach dem Server-Client-Prinzip.

# Client
iperf3 -c <ip-server>
# Client mit Paketgrösse und Meesszeit 1 min
iperf3 -c <ipserver> -l 1400 -t 60 
-f k 
--get-server-output
# Server 
iperf3 -s

Befehle
– l     :  Packetgrösse
– t    :   Wie lange (in s). Standard: 10 s.
– i    :   Intervall der Pakete (in s). Standard: 1 s.
— get-server-output : Die Messwerte des Serverers
.          erscheinen auch unter den Messwerten des
.          Clients. So in 1 Datei beide Werte.
– f    :   Ausgabeformat der Messung.
.          -f k   bedeutet, dass alle angaben in k sind
-B   :   welche IP (bei mehreren Netzen, z.B. LAN und WLAN)
– u    :  UDP.  Standard: TCP.

Eingabe Parameter über Konsole (Windows)

# Messinterval und Messzeit eingeben
echo %1 %2
iperf3 -c -i %1 -t %2

Eingabe Paramter über Konsole (Linux)

echo "Messintervall: " $1
echo "Messdauer: "     $2
iperf -c -i $1 -t $2

 

Theoretische Durchsatzraten WLAN

 

 

Raspdebian am Netz: Sicherheit

RSA-Keys für User erstellen

Login mit RSA-Key und ohne Passwort
Beim Login kommt man zu Root. Man muss das debian Passwort eingeben. Steht der Raspberry Pi im Netz, sollte der Login ohne Passwort sein!  Brut force attacken werden so verworfen, da das Eingeben eines Passwortes verboten ist.

Port Forwarding  <Dienstanfrage Server> führt direkt auf <Dienstplattform auf lokalem Gerät>
Der Raspberry Pi steht nicht im Internet, er steht im privaten Netz und kann aufs Internet. Vom Internet aus kann man nicht auf den Rasperry PI zugreiffen. (Nur Lokal über SSH) . Nur der Router steht im Internet.
Will man OwnCloud brauchen, muss man vom Internet darauf zugreiffen können. Gibt man  <Dienstanfrage Routers> ein, so gelangt man auf den <Raspery Pi>. Dies gilt nur für die eingestellten Dienste.

IP Throuput <ip Server> führt direkt zur <ip lokales Gerät>
Gibt man die <IP des Routers> ein so gelangt man auf den <Raspery Pi>.

debian auf raspberry pi 2

Debian auf SD-Karte laden

Schritte von Juan:

  1. Download and extract the jessie-rpi2-*.img.gz to get an .img file
  2. On any debian-based linux type sudo apt-get install bmap-tools  and install it.
  3. Then type sudo bmaptool copy –nobmap jessie-rpi2.img /dev/sdx  (Change yourlocation to the location of the .img file and sdx for the letter where the SD is mounted, if you don’t know it type sudo fdisk -l  and look for it).
  4. Wait until it finishes and then put the SD on your rp2.

Erster SSH-Login zum Konfigurieren

  • Das RPi durch Ethernet mit dem Router verbinden und dann am Strom anschliesen zum booten.
  • Auf dem Router prüfen, welche  IP-Adresse das RPi bekommen hat (durch Namen der Maschine)
  • $ ssh root@192.168.1.158 mit Passwort debian

Grundsystem konfigurieren

  • Kontos für ale und katrin erstellen. Login ohne Passwort, nur mit key.
    • adduser katrin  (+ale)
    • auf Linux, SSH-key generieren: ssh-keygen  (fragt um ein Pfad)
    • scp id_rsa.pub katrin@192.168.1.158:.ssh/  (+ale)
    • auf den rpi: cat id_rsa.pub >> .ssh/authorized_keys
    • Zugangsrechte für ~.ssh/*  auf r–  setzen
  • kein login für root und nur key login für den users:
    • edit /etc/ssh/ssh_config ,
    • PasswordAuthentication no  und PermitRootLogin no  setzen.
  • Auf dem Router, Port forwarding für https einrichten

Owncloud installieren

  • die externe festplatte in /etc/fstab  hinzufügen
    • die uuid der festplatte mit blkid  auslesen
    • in /etc/fstab die folgende Zeile hinzufügen:
      UUID=375cae2c-e89e-45ef-80f3-ee65e54b27e2 /mnt/data ext4 defaults 0 2
    • ln -s /mnt/data/owncloud /var/www/owncloud/data  (falls data/ bereits exisitert, zuerst umbennen und dann den inhalt in den neuen data/  verzeichnis kopieren; es scheint nicht möglich zu sein, auf andere laufwerke zugreifen)
  • user owncloud  in der datenbank hinzufügen:
    $ mysql –user=root –password mysql
    create user ‚owncloud’@’localhost‘ identified by ‚owncloud‘ WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO ‚owncloud’@’localhost‘;

    SELECT User FROM mysql.user;
    create database owncloud;
  • Community Debian Repository von Owncloud hinzufügen und das neuste Owncloud installieren
  • php5-mysql  dazu installieren
  • Frage: sollten wir nginx statt apache brauchen? (http://etapien.com/guides/how-to-install-owncloud-on-debian-7-with-nginx/)
  • 192.168.1.158/owncloud/ aufrufen, admin konto erstellen und unbedingt auf |> clicken um mysql als datenbank auszuwählen.
  • port für SSH auf nicht Standard setzen (22; https://www.adayinthelifeof.nl/2012/03/12/why-putting-ssh-on-another-port-than-22-is-bad-idea/)
  • Securing MySQL: MySQL ships with a few conveniences that are supposed to be removed when put on a real server, to do that type:
    sudo mysql_secure_installation

DNS

  • You need to log into your Domain Registra’s account and set the A-record for your domain (mysite.com) to point to your router’s public IP address.

SSL

  • https://blog.hasgeek.com/2013/https-everywhere-at-hasgeek/
  • https://hallard.me/enable-ssl-for-apache-server-in-5-minutes/
  • http://www.startssl.com/?app=1

VPN

  • You’ll need to forward port 1194 (UDP traffic) to your Raspberry Pi’s internal IP address.
  • Install openvpn
    • http://readwrite.com/2014/04/10/raspberry-pi-vpn-tutorial-server-secure-web-browsing
    • http://www.raspberrypihelp.net/tutorials/1-openvpn-server-tutorial
    • http://www.linuxuser.co.uk/news/create-a-vpn-with-the-raspberry-pi

WIFI als LAN-Verbindung zu Raspery Pi einrichten

  • wicd-curses  installieren (network manager)
  • die netdev  gruppe für beide users hinzufügen
  • das wifi sollte automatisch erkannt werden, falls nicht:
    • sudo iwlist eth2 scan  zeigt alle access points
    • in der Preferences von wicd wlan0 als device setzen und wicd neu starten

How to get the wifi to work: http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/#comment-2210d3fbce30bfee22ad73d751a14d31$

Andere programme

  • usbutils  for lsusb
  • vim
  • sudo update-alternatives –config editor
  • sudo nmap -sP 192.168.1.0/24  to discover the ip addresses around you

stream bearbeiten

token
Aufteilen des Streams in Pakete.
Die Paketunterteilung erfolgt über intelligente Funktionen.
Die Token an sich haben noch keine Bedeutung, es sind uninterpretierte Pakete.

parsen
Nennt man den Vorgang, der den Paketen (Token) eine Bedeutung zuteilt.
Es ist die Interpretation der Pakete.


Mit den Pipe-Operatoren < und > können streams übergeben werden.
Dies kann als Parameter für ein anderes Programm oder in eine Datei sein.

Aliases in Linux

– Alias ersetzen Befehle durch ein Keywort
– Der Aufruf des Keyworts startet den Befehlt- Aliase müssen im home/.bashrc  eingetragen werden
– Aliase können nicht nur die Argumente enthalten (ohne Programm)

Syntax

// keyword = endocsope, Befehl = ssh
alias endoscope = "ssh root@192.168.17"

// Aufruf des Befehlts
endoscope

Alias setzen

gedit   home/katrin/.bashrc
# Aliase
alias endoscope='ssh root@192.168.17'

source ~/.bashrc