mandag den 10. december 2012

Skifte kodeord over netværk

Nogen gange har man brug for at brugere selv kan skifte kodeord uden at de har terminal adgang til serveren. Det kan fx være igennem en hjemmeside.
For ikke at lave for mange sikkerheds brud i systemet kan man bruge et program der hedder poppassd.
poppassd kan opsættes som en netværks service og har FTP ligne kommunikation. Problemet med poppassd er bare at det er dårligt dokumenteret, fyldt med fejl og opsætningen forældet eller forkert.

Programmet er originalt skrevet for at understøtte mail systemerne Eudora and NUPOP du kan finde original programmet her http://netwinsite.com/poppassd/

Den originale version bruger passwd programmet direkte, denne metode er knap så fleksibel og det har desuden vist sig at under nogen omstændigheder mister passwd processen sin parrent process og bliver en zombie.

Det har ledt til udviklingen af en ny version kaldet poppassd-ceti, den version kan findes her http://freecode.com/projects/poppassd-ceti poppassd-ceti benytter sig af PAM som er en langt mere fleksibel metode til at håndtere bruger konti autorisations funktioner.

Men da der også med den nye version er brug for udokumenteret workarounds for at få det til at virke bliver det her dokumenteret.
Bruger du RetHat enterprise eller Scientific linux (og måske andre RPM baseret systemer) kan du installere poppassd-ceti fra denne RPM poppassd-1.8.5-3.rh9.re.i386.rpm http://rpm.pbone.net/index.php3/stat/4/idpl/5808798/dir/redhat_9/com/poppassd-1.8.5-3.rh9.re.i386.rpm.html
Hvis den klager over den mangler sysklogd, og kun sysklogd så kontroller du har syslog installeret (#rpm -qa | grep syslog) da den kan have et par forskellige navnet, fx rsyslog, når det er bekræftet, installer den bare med --nodeps

Du kan teste om programmet virker ved at bare skrive poppassd i prompten, neden for er en typisk poppassd transaktion:

S: Server/K: Klient

S: 200 HOSTNAME popassd v1.4 hello, who are you?\r\n
K: user BRUGERNAVN\r\n
S: 200 your password please.\r\n
K: pass EKSISTERENDE_KODE\r\n
S: 200 your new password please.\r\n
K: newpass NY_KODE\r\n
S: 200 Password changed, thank-you.\r\n
K: quit\r\n
S: 200 Bye-bye\r\n

Klager den over eksisterende kode ikke er korrekt selvom den uden tvivl er det, skyldes det forkert opsætning af PAM.
Skal poppassd skifte koder i lokal unix's shadow fil (normale unix brugere), erstat din PAM konfiguration i /etc/pam.d/poppassd med nedenstående:

#%PAM-1.0
auth       required     /lib/security/pam_unix.so shadow nullok
account    required     /lib/security/pam_unix.so
password   required     /lib/security/pam_cracklib.so retry=3
password   required     /lib/security/pam_unix.so use_authtok nullok

Når det er testet kan der forsættes med opsætning af poppassd som netværks service.
Start med at definere din service i /etc/services
Vi skal bruge port 106, hvis den allerede bruges så kommenter de linjer med port 106 ud med # og indsæt i stedet nedenstående linje:

poppassd        106/tcp
Herefter bruger vi xinetd som har sine konfigurationer i individuelle filer for hver service, vi skal derfor bruge filen /etc/xinet.d/poppassd med følgende indhold.

service poppassd
{
        disable                 = no
        port                    = 106
        socket_type             = stream
        protocol                = tcp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/poppassd
        passenv                 = PATH
        env                     = HOME=/var/poppassd
        bind                    = 127.0.0.1
        only_from               = 127.0.0.1
        log_on_success  += HOST DURATION
        log_on_failure  += HOST
}
Efter rettelser i xinet.d konfigurations filer skal xinetd reloades
#/etc/init.d/xinetd reload

Test herefter med telnet at programmet virker som netværks service
$telnet localhost 106

fredag den 7. december 2012

Snyd med USB harddiske og nøgler/sticks

Selvom det er en gammel nyhed, ser det ud til det i Danmark er mere aktuelt end nogen sinde før.
Der snydes med størrelsen på USB harddiske og USB Flash nøgler/sticks der sælges på internettet og hos isenkræmmere.

Så sent som i går var en stribe falske USB nøgler i omløb på Den Blå Avis (dba.dk). Efter en henvendelse blev de hurtigt fjerne uden kommentarer fra sælgeren.

Det er ikke altid lige let at gennemskue om der er snyd med USB nøgler og harddiske, det anbefales derfor altid kun at købe EDB udstyr fra en rigtig forhandler.

I dette tilfælde er der nogle helt tydelige beviser som gælder mange af dem.

USB nøglen på billedet var annonceret med 500GByte plads til mellem 700kr og 1000kr.
Maksimum størrelse på USB nøgler er i dag 256GByte.
Hukommelse på USB flash nøgler kommer altid i blokke af 8bits per byte, så når der engang kommer USB flash nøgler på over 500GByte vil størrelsen være 512GByte.
Kingston har slet ikke en model der ligner den annonceret. Så at sikre sig producenten overhovedet har modellen som forsøges solgt kan nogle gange også være et tydeligt tegn på snyd. Men det kan ALDRIG være et tegn på der ikke er snydt! Nogle pirat kopier ligner til forveksling originalerne. Endnu være er at et eventuelt billede af produktet ikke stemmer overens med det man har modtaget, når man tager luppen frem og gennemgår font typer og størrelser, så stol aldrig på billeder af produktet.

Snyd med harddiske er sjældent ligeså lette at gennemskue da det findes i alskens størrelser og de falske er altid bygget over en pirat kopi af original produktet.

Læg mærke til den fine kasse og emballage på billedet til venstre, men indholdet af harddisken er knap så fint som det ses på billedet til højre.

Fælles for både USB nøgler og harddiske er at når man sætter dem i computeren bliver de vist med den falske størrelse og man ligger ikke mærke til det hvis man fylder dem over deres rigtige størrelse før man igen skal bruge filerne. Da vil de være tomme.

Det skal pointeres at der snydes også med de helt små størrelser af USB flash nøgler/sticks. Her er det ofte den billige pris der er afslørende.

torsdag den 15. november 2012

Censurfri DNS Servere

Nedenstående DNS servere kan frit benyttes af klient computere.
Serverne drives af Thomas Steen Rasmussen uden økonomiske interesser eller uden oplysninger gemmes.
Læs mere om denne services på censurfridns.dk

Hostnavn IPv4 IPv6
ns1.censurfridns.dk 89.233.43.71 2002:d596:2a92:1:71:53::
ns2.censurfridns.dk 89.104.194.142 2002:5968:c28e::53

Det er selvfølgeligt fuldt ud lovligt i Danmark, at benytte en censur fri DNS.
Læs mere om Danmarks brug af censur på internettet her...

søndag den 11. november 2012

Størrelses begrænsing af katalog

Hvis man kun har behov for at begrænse et katalogs størrelse for hele systemet og ikke på bruger basis kan man nøjes med bare at "mount" en ext3 formateret fil med den ønsket størrelse under det katalog man vil begrænse.
Denne metode er specielt godt egnet til bruger kataloger.

Start med at lave en fil af den ønskede størrelse.
#dd if=/dev/zero of=/data/25mb.ext3 count=55100
(55100 blokke af 512bytes lig 25mbyes)

Formater herefter filen til ext3.
#mkfs -q -t ext3 -F /data/25mb.ext3

Nu har du en slags "virtual disk" du kan kopiere til de enkelte brugere og herefter mounte under deres bruger katalog.
#cp /data/25mb.ext3 /data/USER_25mb.ext3
#mount /data/USER_25mb.ext3 /home/USER

Husk at være opmærksom på data der allerede måtte være tilstedet i kataloget før mount.

Har du brug for individuel opsætning af hvor meget data brugere må fylde i de samme kataloger skal du bruge programmet "quota".

torsdag den 19. juli 2012

Xming X Server for Windows

Det hænder der er nogen der har brug for at køre et grafisk unix program på en windows maskine og det kræver selvfølgelig en Xserver til windows.

Beskrivelse: 
Xming is the leading X Server for Microsoft XP/2008/Windows7. It is fully featured, small and fast, simple to install and because it is standalone native Microsoft Windows, easily made portable (not needing a machine-specific installation).

Website:
http://www.straightrunning.com/XmingNotes/

Download:
http://sourceforge.net/projects/xming/

Du skal efter installation være opmærksom på at "allow" tilføje IP adressen på den unix computer du vil køre programmer fra.

Instruktioner:
For at køre programmerne skal du logge på unix computeren med PUTTY.
Husk at afkrydse feltet "Enable X forwarding".
Du finder feltet i "Category" kolonnen til venstre når du starter PUTTY.
Kig under "Connection - SSH - X11".
Indtast derefter "localhost:0" i "Display" feltet.
Du kan også efter at være logget på en unix computer eksportere miljø variablen "DISPLAY=ip_adresse:display_nr" fx export DISPLAY=192.168.1.33:0 til den computer der skal have de grafiske programmer op på skærmen.

søndag den 15. april 2012

APC220 konfiguration fra Arduino

Som svar på kommentar til tidligere APC220 post er her et lille program fra AOit til at konfigurere APC220 direkte fra en Arduino.

/*Copyleft GNU GPL aoit.dk*/

#include <SoftwareSerial.h>

const int rxPin = 2; //rx pin
const int txPin = 3; //tx pin
const int setPin = 4; //set pin

SoftwareSerial apc220(rxPin, txPin);

void set_para(char hz[6], char rf_rate[2], char pwr[2], char uart_rate[2], char sc[2]) {
analogWrite(setPin, 0);
apc220.print("WR");
apc220.print(" ");
apc220.print(hz);
apc220.print(" ");
apc220.print(rf_rate);
apc220.print(" ");
apc220.print(pwr);
apc220.print(" ");
apc220.print(uart_rate);
apc220.print(" ");
apc220.println(sc);
delay(10);
while(apc220.available()) {
Serial.write(apc220.read());
}
analogWrite(setPin, 1023);

}

void get_para(void) {
int i=0;
char buff[32];
analogWrite(setPin, 0);
apc220.println("RD");
delay(10);
while(apc220.available()) {
Serial.write(apc220.read());
}
analogWrite(setPin, 1023);

}

void get_cmd() {
int i=0;
char buff[50];

if(Serial.available()){
delay(100);
while( Serial.available() && i< 49) { buff[i++] = Serial.read(); } buff[i++]='\0'; } if(i>0) {
char VAR1[4], VAR2[6], VAR3[2], VAR4[2], VAR5[2], VAR6[2];
sscanf(buff,"%s %s %s %s %s %s", VAR1, VAR2, VAR3, VAR4, VAR5, VAR6);
if(strcmp(VAR1,"RD") == 0) {
get_para();
} else if(strcmp(VAR1, "WR") == 0) {
set_para(VAR2, VAR3, VAR4, VAR5, VAR6);
} else {
Serial.println("");
Serial.println("Type 'RD' to ReaD APC220 parameters.");
Serial.println("Type 'WR' to WRite space delimeted APC220 parameters.");
Serial.println("Parameters are as follows:");
Serial.println("Frequency 6 Unit is KHz,for example 434MHz is 434000.");
Serial.println("Rf data rate 1 1,2,3 and 4 refer to 2400,4800,9600,19200bps separetely.");
Serial.println("Output power 1 0 to 9, 9 means 13dBm(20mW).");
Serial.println("UART rate 1 0,1,2,3,4,5 and 6 refers to 1200,2400,4800,9600,19200,38400,57600bps separately.");
Serial.println("Series checkout 1 Series checkout:0 means no check,1 means even parity,2 means odd parity.");
Serial.println("");
Serial.println("WR example: WR 434000 3 9 3 0");

}
}
}

void setup()
{
Serial.begin(9600);
apc220.begin(9600);
}
void loop() {
get_cmd();
}

lørdag den 7. april 2012

tmp36

Beskrivelse, opstilling og funktion.

tmp36 bruges, hvor der kun skal måles temperatur, den kan monteres direkte på shield og kræver ingen ekstra komponenter. Præcis og let at bruge.

Eksempel på opstilling:

Vc til 3.3Vc
3.3Vc til AREF
Gnd til Gnd
Vout til A0

Arduino function:

#define aref_voltage 3.3

float tmp36() {
int tempReading = analogRead(A0);

float voltage = tempReading * aref_voltage;
voltage /= 1024.0;

float temp = (voltage - 0.5) * 100 ;

return(temp);
}

lørdag den 31. marts 2012

AOCM software

Find det bruger id som din webserver køre under:
#ps aux | grep apache

Find gruppen til dit USB device:
#ls -l /dev/ttyUSB2 | awk ' { print $9, $4 } '

Tilføj brugeren til gruppen:
#usermod -a dialout www-data

Genstart webserver:
#apachectl restart

Flyt aocm/ kataloget til web katalog.

Software til AOCM kan ny fines i http://localhost/aocm

lørdag den 17. marts 2012

APC220 Serial radio link, Arduino

APC220 (V4)

Dette sæt består af to APC220 moduler der både har modtager og afsender, desuden en serial til usb adapter for computer tilslutning.

Manual

Moduler SKAL programmeres inden de tages i brug, "ulovlige" frekvenser. Det kan gøres fra windows med RF Magic, for linux eller anden direkte komunikation se manual fra side 5. Det er ikke nødvendigt at installeres drivere eller software i gængse linux distributioner.

Til windows installer følgende stoftware:
Drivere (windows)
Software (windows)

Start RF-Magic og kontroller feltet PC Series, det er her du angiver den serial port APC220 modulet er tilsluttet. Hvis du ikke kan finde enheden, skal du i enhedshåndteringen ændre den til et lavere serial port nummer, fx com3.

Det er vigtigt at du ændre feltet "RF frequency" (se skema nedenfor).

lovlige maritime frekvenser
457,525-457,575 MHz
467,525-467,575 MHz

lovlige amartør radio frekvenser
433,6250-433,7750 MHz
434,4500-434,5750 MHz

Laveffekts radioanlæg med integreret eller dedikeret antenne
433,050-434,790 MHz

Laveffekts radioanlæg til datakommunikationsformål
433,950 MHz
434,000 MHz
434,050 MHz
444,450 MHz
444,550 MHz

Laveffekts radioanlæg til fjernstyring
445,125 MHz
445,675 MHz
445,825 MHz
445,850 MHz
445,875 MHz

Laveffekts radioanlæg til fjernstyring af modeller
433,575 MHz
433,625 MHz
433,675 MHz
433,725 MHz
433,775 MHz
433,825 MHz
433,875 MHz
433,925 MHz
433,975 MHz
434,025 MHz

Personalarmer
448,2500 MHz
448,2750 MHz

PMR 446 og PMR 446 (analog og digital)
446,0-446,1 MHz (analog PMR)
446,1-446,2 MHz (digital PMR)

Radioanlæg til styring af tyverisikring i motorkøretøjer
433,92 MHz

torsdag den 1. marts 2012

Arduino TFT skærm og serial opdatering

Opsætning af terminal til direkte kommunikation med arduino MC.

Et hurtigt eksempel kunne være en internet vejrstation, der er brugt ardafruit TFT 1.8" breakeout board i simpel opstilling.

stty -F /dev/ttyACM1 cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl

lynx -dump http://www.dmi.dk/dmi/index/danmark/regionaludsigten/kbhnsj.htm | grep Roskilde | head -n1 | sed 's/, //g' | sed 's/ %/%/g' | sed 's/°C/c/g' | awk -F ' ' ' { print $3, $4, $5, $6, $7 } ' > /dev/ttyACM0

############### Arduino kode ################

#define sclk 4
#define mosi 5
#define cs 6
#define dc 7
#define rst 8

#define BLACK 0x0000

#include \
#include \

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);

void setup(void) {

Serial.begin(9600);
tft.initR(INITR_GREENTAB);
tft.writecommand(ST7735_DISPON);

}

void loop() {

int i=0;
char buffer[50];

if(Serial.available()){
delay(100);
while( Serial.available() && i< 49) { buffer[i++] = Serial.read(); } buffer[i++]='\0'; } if(i>0) {
tft.setCursor(0,0);
tft.fillScreen(BLACK);
tft.print((char*)commandbuffer);
}
}
Baggrunden for opslag og artikler her på AOit er mine mere end sidste ti års erfaringer i drift og brug af LAMP platformen til at løse et utal af opgaver. En platform der består af Linux, Apache, MySQL og PHP. Alle fire frit og åben software og til at presentere data som som information bruger jeg HTML til formatering og CSS til layout.