Using v4l2loopback to create custom v4l2 interfaces

Duplicate a stream:

modprobe v4l2loopback devices=2 card_label="Mike er en hest","Det er brian oxo"

ffmpeg -f video4linux2 -s 800x600 -i /dev/video0 -codec copy -f v4l2 /dev/video2 -codec copy -f v4l2 /dev/video3

 

Udgivet i Knowledge Base, Videostreaming | Skriv en kommentar

Wiping a harddrive secureley

shred -vfz -n 10 /dev/md0 –random-source=/dev/urandom

Udgivet i Knowledge Base | Skriv en kommentar

VNC til en aktiv session

mike@reliant:~$ apt-get install tigervnc-scraping-server

mike@reliant:~$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

mike@reliant:~$ x0vncserver -display :0 –PasswordFile=.vnc/passwd

Udgivet i Knowledge Base, VNC, Workstation | Skriv en kommentar

Nu med WordPress

Efter et hurtigt bestyrrelsesmøde på IRC tidligere idag blev vi enige om at føre Uni-fix ind i det 21. Århundrede, droppe den gamle Perl-kode og sætte et WordPress site op. Så vi kan fokusere på indhold istedet for teknologi.

Vi vil med tiden få ført alt indhold over, men det er ikke noget vi kan gøre automatisk så det er en manuel process, primært fordi de enkelte indlæg skal kategoriseres. Så giv os lige et par uger eller 10, så burde vi være i luften på den nye platform.

Vi forventer at holde det gamle site i luften på adressen base.unifix.org som faktisk er den oprindelige URL, men der vil nok blive lukket for tilføjelse af nyt indhold.

Udgivet i Uncategorized | Skriv en kommentar

Ratelimiting på Linux

Linie 2 matcher kun 10 pakker i sekundet, med en burst på 20 (forklaret længere nede) og disse jumpes til accept. Resten fortsætter i tabellen, hvor man så kan gøre andet med den – f.eks. logge den.

iptables -N RateLimit
iptables -A RateLimit –match hashlimit –hashlimit-mode srcip –hashlimit-upto 10/sec –hashlimit-burst 20 –hashlimit-name conn_rate_limit –jump ACCEPT
iptables -A RateLimit –jump DROP

iptables -A INPUT –match conntrack –ctstate NEW –jump RateLimit

Burst er grænsen for hvor mange forbindelser der kan være bagud. Hvis f.eks. du ikke har haft trafik i flere timer kan du kortvarigt have flere tusind requests uden at komme over 10req/s hvis man ser på det over f.eks. en hel dag. Derfor fungerer det på den måde at hver ip adresse har en konto, og på denne bliver der sat 10 tokkens ind per sekund, og hvergang en forbindelse smutter igennem fjernes en tokken. Denne konto har i vores eksempel et max på 20 tokkens. Det betyder at når den grænse er nået sættes der ikke flere tokkens ind.

Test:
https://www.petefreitag.com/item/689.cfm

# ab -n 100 -c 10 http://renesejling.mikjaer.com/ 2>1 | grep “Requests per second”
Requests per second: 12.43 [#/sec] (mean)

Noter:
https://making.pusher.com/per-ip-rate-limiting-with-iptables/

Udgivet i Knowledge Base, Linux, Networking | Skriv en kommentar

Dræb en SSH session selv når den hænger

Hvis din ssh session hænger kan den lukkes ved at trykke <ENTER><~><.>

Udgivet i Knowledge Base, Linux, Old Base | Skriv en kommentar

MVC .NET Core med EF (Entity Framework) og Postgresql som database

Siden Microsoft har ændret taktik og begyndt at koncenterer sig mere om opensource, have vi fået dotnet core. Det er en opensource implementation af deres .Net Framework, der er stadig meget der mangler i dotnet core. men web delen er ret moden.

Jeg vil heri beskrive de trin der skal til for at sætte et MVC site op på dotnet core.

Denne guide forudsætter at postgresql er installeret og kørende.

1. Installere dotnet core -> https://www.microsoft.com/net/core#linuxredhat.
Du kan med fordel bruge visual studio code (installationen beskrives også i ovenstående link)

2. Opret en mappe til dit mvc projekt
   mkdir projekt_navn

3. Skift til mappen
   cd projekt_navn

4. Opret projektet ved hjælp af følgende kommando
   dotnet new mvc --Individual --framework netcoreapp1.1

   Individual - fortæller dotnet at du ønsker en simpel brugerstyrring i projektet
   framework - beskriver hvilet dotnet core framework projektet skal bruge.

5. Download nuget pakkerne til projektet
   dotnet restore

6. Køre projektet for at sikre det virker
   dotnet run

7. Installerer nuget pakker til postgres og entity framework
   dotnet add package Npgsql.EntityFrameworkCore.PostgreSQL --version 1.1.1

   Pr. skrivende stund er version 2.0.0 ikke kompatibel med dotnet core, derfor vi benytter 1.1.1.

   Npgsql.EntityFrameworkCore.PostgreSQL pakken installerer selv de fornødende afhængigheder.

8. Opret en bruger i postgres til projektet

9. Opret en tabel i postgres til projektet

10. Konfigurer projektet til at bruge npgsql.
   a. åben Startup.cs
   b. udkommenter "options.UseSqlite(Configuration.GetConnectionString("DefaultConnection")));" eller slet denne
   c. Indsæt "options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection")));" istedet for den overstående linje.

11. Konfigurer connectionString i appsettings.json filen
   ex.     "DefaultConnection": "Server=127.0.0.1;Port=5432;Database={{databasename}};User Id={{username}};Password={{Password}};"

12. check at projektet kan kompilere og køre
    dotnet run

13. Opdater nu databasen
    dotnet ef database update

    Denne kommando konfigurer databasens tabeller således at de database afhængig funktioner kan gemme og læse data.

Nu er vi sådanset klar til at begynde at udvikle på vores projekt

 

Udgivet i Knowledge Base, Linux, Old Base, Uncategorized | Skriv en kommentar

Installing FreeBSD 2017 (OpenVPN)

wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/11.1/FreeBSD-11.1-RELEASE-amd64-memstick.img

root@defiant:/home/mike/Downloads# dd if=FreeBSD-11.1-RELEASE-amd64-memstick.img of=/dev/sdb bs=10240

dpkg search openvpn
dpkg install openvpn-2.4.3
cd /usr/local/etc/
mkdir openvpn

root@beastie:/usr/local/etc/openvpn # cp /root/beastie.mikjaer.com.ovpn .

add to /etc/rc.conf

openvpn_enable=”YES”
openvpn_configfile=”/usr/local/etc/openvpn/beastie.mikjaer.com.ovpn”

reboot

Udgivet i FreeBSD, Knowledge Base, Old Base, OpenVPN | Skriv en kommentar

Forward webtrafic during server migration

We had to move some servers to another datacenter, and the customers dns provider was a bunch of n00bs so we had to respond on both ip’s for some time.

So we kept a virtualcenter in the old datacenter running this:

root@proxy:~# cat fw.sh
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/conf/all/forwarding

iptables -t nat -F PREROUTING
iptables -t nat -A PREROUTING -p tcp –dport 80 -j DNAT –to-destination 62.69.153.75:80
iptables -t nat -A PREROUTING -p tcp –dport 443 -j DNAT –to-destination 62.69.153.75:443

iptables -t nat -A POSTROUTING -j MASQUERADE

Udgivet i Knowledge Base, Linux, Old Base | Skriv en kommentar

Extend FreeBSD ZFS inside KVM with virsh

## Example details:

# Disk is sized 15G, we will extend it to 25G.
# RAM is 2G, Swap is also 2G.
# First partition is freebsd-boot.
# Second and third is eigher freebsd-swap or freebsd-zfs. I will cover both cases below.

## From KVM Host:

# When extending a ‘raw’ device, it will warn you that it is dangerous.
# I just ignored that warning, but it might mean something to you.

virsh shutdown <host>
cd /var/kvm
qemu-img info <host>.img
qemu-img resize <host>.img +10G
virsh start <host>

## Inside host: (FreeBSD ZFS)

# The recover command is due to the last copy of GPT is not in the right place.
# This will fix the ‘CORRUPT’ error.

# If zfs partition is p3 and swap is p2:

gpart show
gpart recover vtbd0  
gpart show
gpart resize -i 3 -a 4k vtbd0
gpart show 
zpool list
zpool set autoexpand=on zroot
zpool online -e zroot vtbd0p3
zpool list
zfs list

# If the swap partition is p3 and zfs is p2, it is in the way. Delete it, resize with ‘-s <size>’ to make room for swap, and create it again.

gpart show
gpart recover vtbd0  
gpart show
swapoff /dev/vtbd0p3
gpart delete -i 3 vtbd0
gpart resize -i 2 -a 4k -s 23G vtbd0
gpart add -t freebsd-swap -a 4k vtbd0
gpart show
swapon /dev/vtbd0p3
zpool list
zpool set autoexpand=on zroot
zpool online -e zroot vtbd0p2
zpool list
zfs list

 

Udgivet i FreeBSD, Knowledge Base, Old Base, Zfs | Skriv en kommentar