2009. augusztus 27., csütörtök

# Jelszó nélküli belépés - OpenSSH [Debian Lenny] - kiegészítve!


Jelszó nélkül nem annyira ajánlott, de sose lehet tudni, mikor jöhet jól [lásd: lentebb: kulcs+jelszó].

Kliens oldalon: [Ahonnan jelszó nélkül akarsz belépni, "user" helyére [/home/user/stb] írd a felhasználó nevét, vagy ahol értelemszerűen van a home mappája. $USER-t írva az éppen bejelentkezett felhasználó kerül oda automatikusan.]

Generáljuk le a kulcsot, jelszó nélkül:
time ssh-keygen -b 8192 -t rsa -f /home/user/.ssh/id_rsa -P '' -v
Nem muszáj 8192 bites kulcsot létrehozni, elég csak egy 4096 bit-est pl. [de attól kisebbet ne].

A "time" paranccsal lehet megtudni, hogy mennyi ideig tartott a generálás. Legfeljebb 32 768 bit-es kulcs készíthető, de az már valószínűleg lassabb belépéshez, és hosszú generálási időhöz vezet [pár óra? - fixme + de elvileg scp-zést nem lassítaná - fixme2].
8192 bit-es kulcs egy átlag mai gépen ~1 perc alatt generálódik.

Ezzel két fájl jön létre:
  • id_rsa: privát kulcsod, NE add oda senkinek!!!
  • id_rsa.pub: a publikus kulcsod
Most a serveren [ahová be akarsz lépni jelszó nélkül] telepítsd az "openssh-server"-t:
apt-get install openssh-server
Hozzunk létre egy usert, akinek majd megengedjük az SSH-t [a "valaki" az SSHFELHASZNALO a későbbiekben, és ha lehet valami nem kitalálható legyen a neve, én csak egy példa miatt adtam a "valaki"-t]:
useradd -m valaki
Jelszót adjunk neki:
passwd SSHFELHASZNALO
Szerkesszük meg egy kicsit a "/etc/ssh/sshd_config" fájlt Vim-el:
AllowUsers SSHFELHASZNALO
Ezzel beállítjuk, hogy csak az SSHFELHASZNALO léphet be SSH-val. Szóközzel elválasztva írhatunk több felhasználó nevet.
Megfelelő port kiválasztása, hogy nagyon NE az alapértelmezetten menjen az SSH:
Port VALAMI-NEM-ALAP-PORTSZAM
Még négy fontos dolog, ami nem alapértelmezett:
X11Forwarding no
AllowTcpForwarding no
GatewayPorts no
PermitRootLogin no
Mivel módosítottuk a config fájlt, indítsuk újra az ssh-t:
/etc/init.d/ssh restart
Vissza a klienshez: másoljuk át az "id_rsa.pub"-ot a serverre:
ssh-copy-id -i /home/user/.ssh/id_rsa.pub '-p PORTSZAM SSHFELHASZNALO@SERVER-IP-CIME'
A "'"-ba tétel a végén fontos, mármint ha nem alapértelmezett port van beállítva.
Kész.
Lépjünk be a kliensről, a serverre, és nem fog jelszót kérni:
ssh SSHFELHASZNALO@SERVER-IP-CIME -p PORTSZAM

Ha kulccsal + jelszóval szeretnél belépni [kiegészítés]

Mivel ez nagyban megnöveli a biztonságot. Jelszó nélküli belépés pl.: scriptelésnél, stb helyzetben lehet jó. Itt viszont annyi a különbség, hogy a kulcs generálásakor nem kell a "-P ''", ekkor jelszót fog kérni:
time ssh-keygen -b 8192 -t rsa -f /home/user/.ssh/id_rsa -v
És amikor szerkeszted a serveren a "/etc/ssh/sshd_config" fájlt, akkor a:
PasswordAuthentication no
-t FONTOS beállítani! Ezek után belépni csak a kulcs + ahhoz tartozó jelszó párossal lehet :)

ui.: Egy forrás
ui2.: Alap user kezelés
ui3.: Talán ide tartozhat: GPG-ről
ui4.: "openssh-server v5.1p1-5"-el próbáltam.
ui5.: Hup.hu link
ui6.: SSH Tips and Tricks
ui7.: SSH kulcsok használata
ui8.: Napi tipp: Ha SSH van, minden van
ui9.: man sshd_config és man ssh_config
ui10.: Későbbi bővítés lesz: bruteforce elleni védelem + port knocking

2009. augusztus 23., vasárnap

# Exim4+ClamAV+Dovecot+Horde3 [Debian Lenny]


Az írás inkább tanulási célra, mint hogy éles serverre való.. :)

Telepítés


Kiindulópont egy pl.: netinstall-os Debian Lenny. Legyen fix IP címünk, mert különben leveleink más servereken valószínűleg SPAM-ként lesznek megjelölve [sources.list-ed is legyen rendben]. Telepítéskor én egy "gipszj" nevű felhasználót hoztam létre:D , +VirtualBox-ban dolgoztam+Vim-el szerkesztettem a config fájlokat, az ":syntax enable" hasznos dolog, szöveg kiemelés színesen.
apt-get install vim
Vim fent van, esetleg ez még hasznos lehet.
Az időzóna legyen jól beállítva!! És legyen fent egy időszinkronizáló:
apt-get install openntpd
Először kézzel helyesbítsük azért az időt:
ntpd -s
Állítsuk át a telepítéskori üzeneteket bőbeszédűvé:
dpkg-reconfigure debconf
Itt válasszuk a "párbeszédes, alacsony", azaz "dialog, low" beállításokat.
Az SMTP, és az IMAP szolgáltatásokhoz külön programok/csomagok vannak:
SMTP:
apt-get install exim4-daemon-heavy
Az "exim4-daemon-light" alapból fent van, de nekünk az említett heavy szükséges, mivel azzal már meg lehet valósítani egy mailservert, annak adatbázissal való kommunikációját, ldap, vírusszűrés, spamszűrés, van beépített perl interpreter-e, kávét is főz [C. Krisztián mondta :D], stb.
Állítsunk be egy pár dolgot rajta:
dpkg-reconfigure exim4-config
-al láthatjuk a beállításokat [menürendszerben]:
  • General type of mail configuration:
    • internet site; mail is sent and received directly using SMTP
      • Normál internetes mailserver. "Direktbe" küldünk, és fogadunk leveleket.
    • mail sent by smarthost; received via SMTP or fetchmail
      • Pl.: irodai/céges mailservernél, a kimenő levelekre a szolgáltatód ügyel ["smarthost"], ő majd kézbesíti, ahova kell. Beérkező levelek pl.: fetchmail-el, POP3-al jönnek be.
    • mail sent by smarthost; no local mail
      • Nem egy igazi mailserver, hanem pl.: a gép egy fileserver, amin "nincs levelezés", de a hibaüzeneteket azért meg szeretnénk kapni.
    • local delivery only; not on a network
      • Megint nem igazi mailserver, nem küldünk kifele semmilyen levelet, nem fogadunk befele semmilyen levelet, csak helyben kézbesítünk. Pl.: a rendszergazdának szánt rendszerüzenetek, de ezen kívül nincs levelezés.
    • no configuration at this time
      • Beállítás kihagyása
Tehát
  1. Válasszuk a legfelsőt [internet site; mail is sent and received directly using SMTP].
  2. The 'mail name': itt állíthatjuk be, hogy mi a gépünk levelezésben használt neve [tehát a levélben a "@" utáni rész]. Valamint a géped az internetről érkező, az erre a címre jövő leveleket elfogadja. A default neved jó.
  3. Itt jön az, hogy milyen IP címen fogadja a kapcsolatokat az SMTP server. Ha ez nem egy rendes internetes mailserver, és csak az a célod, hogy helyileg küldjél, vagy kézbesíts leveleket, akkor a "127.0.0.1" elég, szóval csak a localhoston, sehol máshol.
    Ha azt akarod, hogy ez egy rendes internetes mailserver legyen, akkor ezt kitörlöd.
    Vagy ha azt akarod, hogy olyan servered van, hogy a leveleket POP3-al a szolgáltatódtól töltöd le rá, és a helyi usereid ezen keresztül küldenek kifele levelet a világba, és mondjuk ez a gép egyszerre látja az intranetet, és az internetet, akkor itt csak az intranetes IP címet adod meg, hogy az SMTP szolgáltatás csak az intranetes gép számára legyen elérhető.
  4. Milyen "@" után levő nevekről érkező leveleket fogadjon el a server. És helyileg kézbesíti őket. Arra vigyázz, hogy amit megadsz, levelezési név [az elején, hogy mi az alapértelmezett neve], és amiket itt felsorolt neveket, azokat helyi levelezési neveknek/címeknek fogja tekinteni. Az erre a címekre menő leveleket helyben akarja kézbesíteni. Tehát ha ide beírod a pl.: "t-online.hu"-t, akkor attól a pillanattól t-online-os ügyfélnek levelet nem fogsz tudni küldeni [pl.: visszapattan ismeretlen userrel]. Ha több domaint akarsz kiszolgálni ezzel a serverrel [localhost alapból benne van a listában], akkor itt tudod felsorolni őket [a domainek felsorolása kettősponttal történik].
  5. [Domains to relay mail for] Itt felsorolhatod, hogy melyek azok a domain nevek, amiknek továbbítani szeretnéd a leveleit [tehát te relay server vagy, fogadod, és továbbítod a levelet egy másik mail servernek, pl.: tartalék server funkció - nem smarthost!].
    Ez arról szól, hogy egy adott domain-nek úgy van beállítva az interneten a DNS-ben az MX-e, hogy van két server: az elsődleges, amin a levelek vannak, a másodlagos server a relay server, ha te vagy egy ilyen másodlagos server, akkor azokat a domaineket sorolod fel, aminek te a másodlagos serverre vagy, és akkor ha az elsődleges serverre nem tudnak majd levelet kézbesíteni, kapod te, mint másodlagos server [ha írtad, hogy azt a domaint elfogadod]. De ha DNS-ből látod, hogy van elsődleges server, akkor nem fogod helyileg kézbesíteni, hanem próbálod továbbadni az elsődleges servernek. Ha helyreállt, akkor tovább is adod neki [tehát ezzel egy tartalék servert tudsz csinálni a hálózatodon]. Hagyd üresen, ha nem vagy relay server [portszámot "::portszám"-al tudsz megadni]. Szóval röviden erről a részről: itt sorolhatjuk fel, hogy mik azok a domain-ek, amikre bárki küldhet rajtunk keresztül levelet. Alapból hagyd üresen.
  6. [Machines to relay mail for]: Mik azok az IP címek/tartományok, ahonnan jövő kapcsolattal az illető bárhova küldhet rajtunk keresztül levelet [Ide NE adjuk meg a pl.: "0.0.0.0"-át, vagy a "0.0.0.0/0", mert akkor a világban bárki küldhet rajtunk keresztül levelet. Ezt tilos beállítani az említett módon, mert a neten folyamatosan léteznek, scannelnek olyan botok, amik keresnek olyan címet, amin keresztül tudnak bárhova levelet küldeni - spammerek. Open Relay]. Hagyd üresen.
  7. [Keep number of DNS-queries minimal?] Ha csak nincs egy rendkívülien lassú kapcsolatod [ISDN, stb], "No".
    • "mbox format in /var/mail/": minden felhasználónévnek egy külön fájl, abban az egy darab fájlban minden levél, lassú, nehezen kezelhető.
    • "Maildir format in home directory": A felhasználó saját könyvtárába kerülnek a levelek, egy "Maildir" nevű mappába, azon belül is egy "cur", "new", és egy "tmp" alkönyvtárba, minden egyes levél külön fájlba. Ez jobb, mert a felhasználó saját dolgai a saját mappájában van, a levelek hozzáférése is gyorsabb, mert nem egy több gigás fájlban kell megkeresnünk a levelet, ami mellesleg egy sima textfile lenne, amit indexelni nem igazán lehetne. Tehát a választás inkább a Maildir legyen.

  8. [Split configuration into small files?]: Alapértelmezetten "No", de válaszd a "Yes"-t. Rakja a configokat külön kis fájlokba, egy nagy helyett - pl.: az átláthatóság miatt ["/etc/exim4/conf.d/"-be rakja őket]. Igazából a "/var/lib/exim4/config.autogenerated" fájlban lesznek a valódi beállítások, amik az Exim újraindításakor kerülnek generálásra ["/etc/init.d/exim4 restart"].
  9. Esetleg még megkérdi, hogy kinek menjenek a rendszerüzenetek, válaszd azt, akit szeretnél erre a célra [nem root, hanem hozz létre egy felhasználót].
IMAP:
apt-get install dovecot-imapd
Egyéb:
Vírus ellenőrzés:
apt-get install clamav clamav-daemon clamav-freshclam
A ClamAV fusson pl.: Daemon-ként, és válassz egy közeli mirror-t az adatbázisának frissítéséhez.
WebGUI a levelezéshez:
apt-get install horde3 imp4 turba2
Kérdezni fog egy pár dolgot, pl.: megjelenítésről, válaszd a default-okat, vagy pedig célod szerint.

További konfig


Hozzunk létre a megfelelő helyen egy "00_local" nevű saját config fájlt. Ezt az Exim észreveszi, és pl.: az esetlegesen saját filébe leírt/definiált változókat később nem fogja már feltétlenül legenerálni a gyári default-ra, hanem megmaradnak az általunk megadottak:
vim /etc/exim4/conf.d/main/00_local
A file [00_local]:
# Mondjuk meg az Exim-nek, hogy ki a virusscanner [tobb viruskeresot is be lehet allítani, de akkor az acl-nel kell allitgatni, de eleg a ClamAV]:
av_scanner = clamd:/var/run/clamav/clamd.ctl

# legyen egy file, amibe szeretnenk irni egy par szabalyt
CHECK_DATA_LOCAL_ACL_FILE = /etc/exim4/local_data_acl

Itt kereshetünk local változókat [de nincs mindegyik gyárilag definiálva]: "/etc/exim4/exim4.conf.template", pl.: a "00_local"-ba definiálhatunk dolgokat, ha kell.
Exim4-hez az ACL file tartalma, amire előbb hivatkoztunk [kinézete: 1 - megmondom, hogy mit akarok, 2 - milyen feltételekkel]:
vim /etc/exim4/local_data_acl
Így néz ki a file [local_data_acl]:
accept hosts = 127.0.0.1 # ha localhost-rol jon a level, akkor nem kell virusellenorzes

deny # deny, azaz SMTP REJECT-et kap az illeto, at sem veszem a levelet, RFC szerint [de "drop"-olni is lehet, a kuldo nem fogja tudni, hogy en azt a levelet eldobtam]
 message = Tiltott kiterjesztes: $found_extension
 demime = com:ovl:sys:dll:vbs:exe:msi:bat:cmd

#deny # ha el szeretnenk dobni a virusos leveleket [hashmark-ba raktam, mert most csak proba]
# message = Virusos tartalom ($malware_name), hasznalj inkabb Linuxot.
# malware = *

warn # csak egy figyelmeztetest rakjon a virusos levelek vegere
 message = Virusos tartalom ($malware_name), hasznalj inkabb Linuxot.
 malware = *

warn # a levelek vegere szurhatunk sajat uzenetet, felteve ha a level atment minden szuron
 message = X-Reklam-Helye: virusellenoriztuk a levelet.
A nemrégi telepítéskori 9)-es pontban említetten a :
/etc/init.d/exim4 restart
paranccsal tudod a saját configjaidat bevinni az Exim-be, mármint ekkor ő legenerálja neked a "/var/lib/exim4/config.autogenerated" fájlt, amiben valóban tárolja a beállításokat, csak mi szétszedtük őket, a könnyebb kezelhetőség miatt.
Ez után adjuk hozzá a "clamav" felhasználót a "Debian-exim"-csoporthoz, mert különben a clamav nem fogja tudni elérni a megfelelő könyvtárakat:
adduser clamav Debian-exim
Nézzük meg, hogy biztos hozzá-e lett adva az adott user a csoporthoz:
groups clamav
Ha azt írja, hogy: "clamav Debian-exim", akkor ok.
Még hátra van az authentikáció beállítása. [Megjegyzés: authentikáció: pl.: felhasználónév/jelszó párossal azonosítani valamit/valakit. Authorizáció: Meggyőződni a fél, vagy felek személyazonosságáról, pl.: tanúsítványok használatával.]

Smarthost használata esetén [csak akkor] a "/etc/exim4/passwd.client"-fájlba kell beleírni a mailserver nevét, kettőspont felhasználónév, kettőspont jelszó. Azon túl az Exim a kimenő leveleknél authentikálni fogja magát, azon a serveren, ahová küld [csak vigyázz, hogy a tényleges neve legyen a server neve].

A bejövő SMTP authentikációhoz a "/etc/exim4/conf.d/auth/" mappában találhatsz "mintákat". Módosítsd benne egy pár dolgot [hashmark jelet vedd ki egy pár sor elől], tehát:
vim /etc/exim4/conf.d/auth/30_exim4-config_examples
és a "plain_server:"-résztől kezdődően vedd ki a sorok elől a hasmark jelet, egészen a ".endif" részig. Ugyan így a ".endif" részig vedd ki a commenteket a "login_server:"-rész elől is. Még vedd ki a megjegyzésből a "cram_md5_server"-el kezdődő sorokat is, egészen a "server_set_id = $auth1"-ig.

A felhasználóknak a "/etc/exim4/passwd" filében kell lenniük [usernev:md5-elkodolt-jelszo:simajelszo]. [de "htpasswd"-el is kompatibilis] tehát:
vim /etc/exim4/passwd
A file [passwd]:
gipszj:md5-elkodolt-jelszo:simajelszo
usernev1:md5-elkodolt-jelszo:simajelszo
usernev2:md5-elkodolt-jelszo2:simajelszo2
Ha nincs cleartext jelszó [sima jelszó], akkor nem fognak működni a challenge-response alapú authentikációk, mint pl.: a cram-md5, ami egy fokkal biztonságosabb, ha nem TLS-t [titkosított kapcsolatot] használunk. Ha beleírjuk a cleartext jelszót, akkor menni fognak ezek, de viszont érthető okokból nem a legjobb.

Ellenőrizzük, hogy működik-e

Küldjünk egy levelet a "gipszj" felhasználónak.
Tudjuk, hogy mit adtunk meg domain névnek anno. [A "valami.hu" helyére a pl.: hostname menjen], off]:
echo "ez a mailszoveg" | mail -s "valami-targy" gipszj@valami.hu
Nézzük meg, hogy meg-e érkezett az e-mail a user "Maildir" mappájába:
cd /home/gipszj/Maildir/new
Ok, megérkezett, csak próbáljunk ki egy másik "módszert" :) :
A "$ "-el jelzem, hogy azt gépelni kell, "."-al jelezzük, hogy vége az e-mailnek.]
$ telnet IPCIM 25
Trying IPCIM...
Connected to IPCIM
Escape character is '^]'.
220 valami.hu ESMTP Exim 4.69 Fri, 7 Aug 2009 15:00:00 +0200
$ mail from: gipszj@valami.hu
250 OK
$ rcpt to: gipszj@localhost
$ data
$ From: Gipszj <gipszj@valami.hu>
$ To: Gipszj <gipszj@valami.hu>
$ Subject: barmi
$ safasdfsafas
$ asdfasdf
$ .
$ quit
A "/home/usernev/Maildir" mappában kellene lennie a levélnek, a "new"-ban.

Webmail beállítása

Lehessenek logok:
touch /var/log/horde/horde3.log
chown root:www-data /var/log/horde/horde3.log
chmod 770 /var/log/horde/horde3.log
Most vagy állítsuk be az apache config-jában, hogy hol van a horde mappája, vagy pedig készítsünk egy symlink-et.
ln -s /usr/share/horde3 /var/www/
Telepítsük fel a mysql-server-5.0-át:
apt-get install mysql-server-5.0
Adjunk egy jó jelszót a telepítéskor, majd válasszuk a "No-t" [Support MySQL connections from hosts running Debian "sarge" or older?].
Ez után a mysql-es example-t másoljunk a pl.: "/tmp"-be:
cp /usr/share/doc/horde3/examples/scripts/sql/create.mysql.sql.gz /tmp/
Majd tömörítsük ki a ".gz" filét:
cd /tmp/
gunzip create.mysql.sql.gz
Majd szerkesszük meg Vim-el:
vim /tmp/create.mysql.sql

REPLACE INTO user (host, user, password)
    VALUES (
        'localhost',
        'horde',
-- IMPORTANT: Change this password.
        PASSWORD('horde')
);
A "horde" password-öt módosítsuk másra, pl.: valami értelmes jelszóra. Ez után:
mysql -u root -p < /tmp/create.mysql.sql
A "/etc/horde/horde3/"-ban szerkesszük meg a "registry.php" filét, miszerint nekünk kell "active"-á tenni az egyed "modulokat":
vim /etc/horde/horde3/registry.php
És az "imp" résznél, a "statust" állítsuk "active"-ra, az "inactive"-ról. Ugyan így a "turba" résznél is legyen a "status" "active".
Még az IMP, és a Turba SQL-es részét adjuk hozzá:
mysql -u root -p horde < /usr/share/doc/imp4/examples/scripts/sql/imp.sql
mysql -u root -p horde < /usr/share/doc/turba2/examples/scripts/sql/turba.sql

A "/etc/horde/imp4"-en belül a "servers.php"-t módosítsd a "$servers['imap']" résznél:
vim /etc/horde/imp4/servers.php
  • A " 'server' => 'imap.example.com' " helyett legyen: " 'server => 'localhost' "
  • A " 'protocol' => 'imap/notls' " helyett legyen: " 'protocol' => 'imap/ssl/novalidate-cert' "
  • A " 'port' => 143 " helyett legyen: " 'port' => 993 "
  • A " 'maildomain' => 'example.com' " helyett legyen pl.: : " 'maildomain' => 'localhost.lan' "
  • A " 'smtphost' => 'smtp.example.com' " helyett legyen " 'smtphost' => 'localhost' "
Most módosítsd a jogosultságokat egy pár filénél, hogy a webes felületen beállíthassunk egy-két dolgot:
chmod 777 /etc/horde/horde3/conf.php
touch /etc/horde/horde3/conf.bak.php
chmod 777 /etc/horde/horde3/conf.bak.php
ifconfig-al tudjuk meg a gépünk IP címét, és írjuk be egy másik gépen egy böngészőbe azt, pl.: "XXX.XXX.XXX.XXX/horde3/". Egy üzenet fogad bennünket: "Horde3 configuration disabled by default because the administration/install wizard gives the whole world too much access to the system. Read /usr/share/doc/horde3/README.Debian.gz on how to allow access." - Ezt javítsuk ki:
vim /etc/horde/horde3/conf.php
Szóval megnyitottuk szerkesztésre a "conf.php" filét, itt vegyük ki a második, és a harmadik sort [ügyelve, hogy a "<?php" maradjon meg az elején! :D]. Az általunk kitörölt üzenettel találkoztunk előzőleg a böngészőben [+ a harmadik sorban van egy "exit (0)", amit szintén törlünk]. De nem muszáj kitörölni ezeket a sorokat, "//"-eket is rakhatunk eléjük, ezzel commentbe helyezve őket.
Most következik egy pár webes felületen történő beállítás [ekkor még hibaüzeneteket láthatunk bőven "webgui"-n, és a jogosultságokat kell majd állítani előtte a serveren]:

IMP-nél:
chmod 777 /etc/horde/imp4/conf.php
touch /etc/horde/imp4/conf.bak.php
chmod 777 /etc/horde/imp4/conf.bak.php
A "http://serverIPcíme/horde3/"-re lépve menjünk az Administration-Setup részben a "Mail (imp)"-re kattintva menjünk a "Generate"-re, ok, legenerálta a config filéjét, most módosítsuk vissza a jogosultságokat:
chmod 644 /etc/horde/imp4/conf.php
chmod 600 /etc/horde/imp4/conf.bak.php
Most a Turba2:
chmod 777 /etc/horde/turba2/conf.php
touch /etc/horde/turba2/conf.bak.php
chmod 777 /etc/horde/turba2/conf.bak.php
Ok, super, miután kész, még a turba2-őt is generáljuk le, lépjünk az "Administration/Setup"-on belül az "Address Book (turba)"-ra, majd "Generate Address Book Configuration".
Állítsuk megint vissza a jogokat:
chmod 644 /etc/horde/turba2/conf.php
chmod 700 /etc/horde/turba2/conf.bak.php
A "Horde (horde)"-re kattintva előjön "rengeteg" fül:
  • Database fül:
    • A "$conf[sql][phptype]"-nál válaszd a "MySQL"-t.
    • $conf[sql][username]: horde
    • $conf[sql][password]: sql-jelszod
    • $conf[sql][socket]: /var/run/mysqld/mysqld.sock
    • $conf[sql][database]: horde
    • $conf[sql][charset]: utf-8
  • Authentication fül:
    • $conf[auth][admins]: gipszj
    • $conf[auth][driver]: "Let a Horde application handle authentication"
    • $conf[auth][params][app]: imp
  • Logging fül:
    • $conf[log][enabled]: "Yes"
  • Preference System fül:
    • $conf[prefs][driver]: "SQL Database"
  • Alarm System fül:
    • $conf[alarms][driver]: "SQL Database"
  • DataTree System fül:
    • $conf[datatree][driver]: "SQL Database"
Most katt a "Generate Horde Configuration"-ra.

Állítsuk vissza a jogokat:
chmod 644 /etc/horde/horde3/conf.php
chmod 600 /etc/horde/horde3/conf.bak.php

Reboot, majd majd bejelentkezés, az én esetemben "gipszj" felhasználóval [mármint webes felületen egy logout után].

ui.: _Czakó Krisztián és Haluska György szavai alapján_ [egy Rossz minőségű diktafon felvételből+".bash_history"-ból+kevés idő megbeszélésre :D], szóval ha bármi hiba: FIXME. Bármilyen helyesbítést/kiegészítést szívesen várok.
ui2.: Configuring Horde Debian Wiki
ui3.: Utólag találtam 1-2 howto-t: Exim4 + Courier + SSL on Debian etch mini-HOWTO
ui4.: Exim4 + ClamAV + SpamAssassin + Greylistd on Debian etch mini-HOWTO
ui5.: Exim4 + Mailman + Apache2 on Debian etch mini-HOWTO
ui6.: még egy link, link2, link3, link4, link5, link6.

2009. augusztus 17., hétfő

# Kapcsolódás FTP/FTPS/SFTP serverhez


Ha már volt ftp serveres véset, írok egyet, hogyan lehet kapcsolódni hozzá... :)

Grafikus felületen

  • Először is, mielőtt bármit elkezdenél, légy biztos abban, hogy a gép, amin vagy, tiszta, nem vírusos, nincsenek rajta olyan programok [keyloggerek], amik lelesik a jelszód - friss vírusirtó [pl.: az ingyenes comodo], amit le is futtatsz néha - legyen. Bizonyos időközönként pedig legyen tiszta telepítéssel újratelepítve a géped, ha windows.
    Még ne felejtsd el, hogy a hálókártyáknak létezik Promiscuous módja, ergo egy HUB párossal szépen el lehet lopni [vagy egy hasznos link a SWITCH-ekről :) link1, link2 ] a nem titkosított, pl.: FTP jelszavaidat, mármint pl.: egy netkávézóban, ahol mások is vannak rajtad kívül a hálózaton [szóval ha lehet ne nagyon lépj be, idegen, nem ellenőrzött helyekről/gépekről, vagy ha igen, akkor utána módosítsd a jelszavad, ami ne legyen szótári szó, becenév, kutyád neve, stb, minimum 8-10 karakter, kis-nagy betűk, speciális karakterek keveréke, és csak te tudd, hogy mi az, ennyi]. Kellemetlen érzés, ha ellopják az ember jelszavát a tudta, vagy a nélkül, és akár felhasználják anyagi, vagy "szellemi" kár okozására, gondolkodj felelősséggel.
    [Extra: NoScript, CCleaner használata.]

  • Másodszor is neked kell tudni egy pár adatot, onnan, ahová be akarsz lépni:
    1. server címe [pl.: "valami.hu", vagy pl.: egy ip cím]
    2. felhasználói neved [bejelentkezési név]
    3. jelszód
    4. kapcsolódáshoz szükséges portszám [ha nem adnak meg, akkor a kliens program "tudni fogja", mivel egy alapértelmezettet fog használni]
    5. azt, hogy FTP/FTPS, vagy SFTP-n keresztül kell-e kapcsolódni

Ha ezek megvannak, akkor mehetünk tovább.
Egy jó FTP kliens program [FileZilla] telepítése/indítása:
  • Töltsd le a FileZilla nevű kliens-t [Magyar nyelvű], a hivatalos oldaláról: http://filezilla-project.org/download.php?type=client
    A "FileZilla_x.x.x_win32.zip"-et szedd le [windows esetén]. Az x-ek a verziószámot jelölik csak. Mindig a legfrissebbet kell használni! [Nem csak egy FTP kliens programból].

  • Jobb egér a letöltött filére, majd "Az összes kibontása...", majd a "Tovább" gombokra katt egy párszor.
  • Ok, most lépj bele a kitömörített mappába [vagy pedig automatikusan belelép neked, és felhozza az ablakát].
  • FileZilla nevű mappákban addig keress, ameddig nem találsz egy "filezilla.exe" nevű fájlt.

  • A "filezilla.exe" nevű fájlt nevezd át bármire, pl.: "lkdfjlasfd.exe".
  • Ok, most a pl.: "lkdfjlasfd.exe" lesz a program indítója, katt rá kétszer.
Program végre feltelepítve, már el is van indítva, most jöjjenek a továbbiak [három féle kapcsolódási "típus", azt válaszd, amit mondtak neked]:
  • FTP esetén: A program bal felső sarka felé találhatsz üres mezőket, amiket neked kell kitölteni, pl.: "Cím" [server címe], vagy "Felhasználónév", "Jelszó". A "Port"-hoz akkor írj portszámot, ha azt külön mondták/megadták. Miután kitöltötted ezt a pár adatot, csak üss enter-t, és már be is jelentkezik az FTP kliens program a serverre [ha nem, akkor felül ki fog írni hibaüzeneteket, amiből lehet következtetni, hogy mi lehet a hiba, pl.: lehet, hogy a gépeden levő tűzfalprogram nem engedi az FTP-t, vagy a windows beépített tűzfala blokkolja, vagy elírt jelszó, stb]. Ha megszakad a kapcsolat, akkor próbálj újra csatlakozni.

  • FTPS-nél: Ha ilyen kapcsolódási típust adtak meg, akkor hál' égnek már titkosított lesz a kapcsolat, nem lopják csak úgy el a jelszavad. A FileZilla-ban nyomj egy "Ctrl+s"-t [a bal Ctrl], hogy felhozd a "Kedvenc Helyek" ablakot.
    Katt az "Új állomás" gombra, és ugyan úgy töltsd ki a kért mezőket, "Cím", "Port", "Adatkapcsolat típusa" [itt válaszd az FTPES-t [explicit FTPS]], "Bejelentkezés típusa" ["Jelszó bekérése"], "Felhasználónév". Ha kész, akkor katt a "Csatlakozás gombra", és kérni fog jelszót, ez után feljön még egy ablak, miszerint fogadd el a server tanúsítványát [pipáld is be, hogy ezentúl ebben megbízol, és legalább ha változna valami a serveren, akkor kiírná, hogy héhé, megváltozott a tanúsítvány!!], katt az "OK"-ra. Kész, bejelentkeztél.

  • SFTP: Ugyanaz, mint az FTPS-nél, csak az "Adatkapcsolat típusa" legyen SFTP.

A program két fő ablakból áll: jobb oldalt vagy bejelentkezve a serverre, az ottani fájlokat láthatod, bal oldalon pedig a te helyi géped fájljai vannak. Ha valamit fel/le akarsz tölteni, akkor csak fogd meg az egérrel,és húzd át a másik oldalra [gépedre, vagy a serverre]. Kilépéshez csak zárd be a FileZilla-t.
Ha fel/letöltötted, amit akartál, és nem fogod használni az FTP-t egy ideig, akkor töröld ki a FileZilla mappáját, és következő alkalommal töltsd le újra, tömörítsd ki, nevezd át, stb..

GUI nélkül [Linux alatt]

Természetesen ugyan úgy megvan a FileZilla Linux alatt is grafikus felülettel, de azt már elmondtam.
  • FTP:
    ftp IPCIM portszam
  • Ezt után kérni fog felhasználó nevet, majd jelszót.
  • FTPS: Az ftp-ssl csomag kelleni fog:
    ftp-ssl IPCIM PORTSZAM
  • SFTP:
    sftp -oPort=PORTSZAM FELHASZNALONEV@IPCIM
Ha írsz bejelentkezés után egy kérdőjelet ["?"], akkor megkapod az összes parancsot amit kiadhatsz, put, ls, get, cd, mkdir, stb., pl.: ha "!vim valami.txt"-t írsz, akkor azzal elkezdesz szerkeszteni egy szöveges filét [valami.txt] a serveren.

ui.: Active FTP vs. Passive FTP, a Definitive Explanation
ui2.: Tűzfal scriptek itt
ui3.: Hup.hu link
ui4.: link

2009. augusztus 6., csütörtök

# Nmap [mármint megfelelő port kiválasztása]


Bizonyos szolgáltatásoknál jó, ha nem az alapértelmezett portot használjuk. De akkor melyiket helyette?
Lehetőleg olyant, amit pl.: az nmap ezzel a paranccsal:
nmap -sS -A IPCÍM
nem lát, tehát valami olyan portot, amit amúgy más szolgáltatás ~nem használna, vagy kerüljük a ""jellegzetes számokat"", pl.: 10000, 20000, stb.

ui.: Azért lett ez az "érdekes" bejegyzés, mert később hivatkozni fogok rá.

2009. augusztus 1., szombat

# Volume control OSD - windows


Hangerő szint kijelzése/állítása OSD-el, ~2 perc:
  1. Menj el ennek az oldalnak az aljára: http://www.nirsoft.net/utils/volumouse.html

  2. Ahol megtalálod a "Download self-install executable for automatic installation (volumouse_setup.exe)" letöltési linket.

  3. A "volumouse_setup.exe"-re katt kétszer, majd "Next-Next-Next-Finish"

  4. A "start menü/programok"-ban megtalálhatsz egy "NirSoft Volumouse/Volumouse" parancsikont, katt rá.

  5. Láthatsz egy "Alt key is down" legörgethető menüt, ezt állítsd át "Ctrl key is down"-ra.

  6. Majd ugyan ebben a sorban, a jobb oldalán a "More..."-ra kattints.

  7. A feljövő ablakban az "Indicator Options"-nél válaszd "Type"-nak az: "On Screen Display"-t. Ok gomb.

  8. Visszatérve a program főablakához rakj egy pipát a "Load Volumouse at startup"-ra, és vedd el a pipát a "Display icon in the system tray"-ből, majd "Ok" gomb.

Használata: Csak tartsd lenyomva a bal Ctrl-t, miközben az egér görgőjét görgeted.

ui.: Innen! - Köszönet bolond-nak!
ui2.: kérésre

2009. július 31., péntek

# Fájlrendszeri ACL-ekről


Wikipedia link. Az alap "rwx" nem lehet mindig elegendő, ezért ezt kibővíti az Access Control List.
Vajon mivel kezdünk? :)
apt-get install acl
EXT3 esetén az fstab-ban a megfelelő sorban írjuk mount opciónak még az "acl"-t! Ha nem akarjuk újraindítani a gépünket, és például a "/home"-ra állítottuk, akkor:
mount -o,remount /home
-al már is használható lesz. De például XFS esetén nem szükséges az említett plusz mount opciót megadni.
Hozzunk létre egy pár próbafilét:
for j in {0..1}; do echo "hi, ez itt a[z] $j. probafile" > probafile-$j; mkdir valami-$j; cd valami-$j; done; cd ../../
Milyen extra jogok vannak beállítva egy fájlra/vagy mappára?
getfacl probafile-0
# file: probafile-0
# owner: gbor
# group: gbor
user::rw-
group::r--
other::r--
Rekurzívan:
getfacl -R valami-0/
# file: valami-0/
# owner: gbor
# group: gbor
user::rwx
group::r-x
other::r-x

# file: valami-0//probafile-1
# owner: gbor
# group: gbor
user::rw-
group::r--
other::r--

# file: valami-0//valami-1
# owner: gbor
# group: gbor
user::rwx
group::r-x
other::r-x
Az ACL által kezelt jogok ugyan azok, mint a megszokott "rwx", csak ezek kibővítésre kerültek azzal, hogy kinek adhatunk, "rwx" jogosultságokat.
A jogok a következő kulcs szavakhoz vannak rendelve:
  • user: a jogok a felhasználóra vonatkoznak, a felhasználó az állomány tulajdonosa, ha a bejegyzés nem tartalmaz felhasználói nevet, egyébkén pedig a listabejegyzésben olvasható felhasználó.
  • group: a jogok az állomány tulajdonoscsoportjára vonatkoznak, ha a bejegyzés nem tartalmaz csoportnevet, egyébként pedig a bejegyzésben található csoportra.
  • other: a bejegyzésben található jogok azokra a személyekre [folyamatokra] vonatkoznak, amelyekre egyetlen más ACL bejegyzés sem vonatkozik.
  • mask: az ilyen jellegű bejegyzések a megadható legmagasabb jogokat mutatják, amely jog tehát nem szerepel ebben a maszkban, azt nem kaphatja meg senki, hiába szerepel a jog a másik bejegyzésben. Kivételt képez ez alól az állomány tulajdonosa és az other kulcsszóval megadott csoport, akiknek a jogait a maszk nem korlátozza.
Adjunk olvasási és írási jogot egy bizonyos felhasználó számára:
setfacl -m u:gbor2:rw probafile-0
Nézzük meg, mit műveltünk:
getfacl probafile-0
# file: probafile-0
# owner: gbor
# group: gbor
user::rw-
user:gbor2:rw-
group::r--
mask::rw-
other::r--
Tett egy plusz mask sorunk, látszanak a hozzáadott jogok a "gbor2" usernek, és egy "ls -lh" a filére már rak egy "+" jelet ezentúl, jelzésképpen, hogy ott nem csak az alap rwx jogosultságok léteznek:
ls -lh probafile-0 -rw-rw-r--+ 1 gbor gbor 29 2010-01-01 01:01 probafile-0
Most távolítsuk el az imént hozzáadottakat:
setfacl -x user:gbor2 probafile-0
getfacl probafile-0
# file: probafile-0
# owner: gbor
# group: gbor
user::rw-
group::r--
mask::r--
other::r--
Rekurzívan módosítani:
setfacl -R -m u:gbor2:rw valami-0/
Rekurzívan törölni:
setfacl -R -x u:gbor2 valami-0/
Az összes ACL bejegyzés egy paranccsal törölhető:
setfacl -b probafile-0
Ugyan így rekurzívan megint, stb..:
setfacl -R -b valami-0/
Példa: Egy "gbor" nevű felhasználó egy közös munka megkezdésekor egy "gbor2" emberkével szeretne együtt dolgozni, mármint olykor közös fájlokat használni. A felhasználó nevében:
cd /home/gbor/
mkdir kozos
cd kozos
echo "megosztott szoveg" > olvassel.txt
cd ..
"gbor" x jogot ad [ :D:D ] "gbor2"-nek a "/home/gbor"-ra:
setfacl -m user:gbor2:--x $HOME
Most a közös mappa [de másnak ne legyen joga hozzá]:
setfacl -R -m user:gbor2:rwx,other::--- kozos/
De: mivan, ha a "kozos"-ben egy új mappát/fájlt hoz létre valaki? Nem muszáj [ :D ] beállítani újra az ACL-t azon a fájlon, hanem létezik egy "default" kapcsolója a "setfacl"-nek, amivel megadhatunk öröklődést:
setfacl -m d:u:gbor2:rwx,o::--- kozos/
A "user"-t lehet rövidíteni "u"-nek is. "Group"-ot: "g"-nek, "other"-t "o"-nak.
cd kozos
mkdir barmi
getfacl barmi/
# file: barmi/
# owner: gbor
# group: gbor
user::rwx
user:gbor2:rwx
group::r-x
mask::rwx
other::---
default:user::rwx
default:user:gbor2:rwx
default:group::r-x
default:mask::rwx
default:other::---
ui.: Mount options
ui2.: Alap user kezelés

# Wiimote csatlakoztatása és beállítása távirányítóként Linux alatt


Mi az a wiimote? [Röviden, egy sokoldalú távirányító a Wii konzol mellé.]
Anno írtam róla, hogyan lehet helyettesíteni vele egy drága digitális táblát [by: Johnny Chung Lee] [készítettem Magyar feliratot az eredeti videókhoz], pedig csak 10e RMF-be kerül [Rossz Magyar Forint :) ].

Van benne egy nagy felbontású infra érzékelő, és egy infra tollal lehet "hadonászni" :) egy táblára írva, ennyi, ezt érzékeli, és lehet egy projector segítségével olyan hatást elérni, mint ha az infra tollal írnánk. Van benne gyorsulásmérő, és egy rezgő motor is. Kreativitás szabhat csak határt :D

Most csak gyorsan leírom, hogyan lehet csatlakoztatni, mint távirányítót, és megadni neki gombokat, pl.: mplayer-nél az "f"-betű a teljes képernyőre való állításhoz, ESC a kilépés, "o"-betű a kijelzésre, hogy hol tart a videó, szóköz a pause-nak, stb.
Kell egy pár csomag:
apt-get install wminput lswm gtkwhiteboard wmgui
A "wmgui"-t ebből nem használjuk, csak azért kell, hogy pl.: egy szép grafikus felületen lehet látni pl.: az infra érzékelőjének, vagy a gyorsulásmérőjének az adatait, stb., a "gtkwhiteboard"-al pedig lehet a digitális táblás apróságot próbálgatni :) [egy öngyújtó is ad infra jelet, tehát azzal is lehetne írni egy táblára :D ]
Töltsük be egy neki kellő modult:
modprobe uinput
Vajon tényleg betöltődött?
lsmod | grep uinput
Állítsuk be, hogy egy reboot után ne nekünk kelljen újra "modprobe"-olni:
echo "uinput" >> /etc/modules
Ok, most megszerkeszthetjük a config filéjét [Vim-hez segítség itt]:
vim /etc/cwiid/wminput/buttons
Wiimote-ról kép itt. A config fájl csak két oszlopból áll: első része a wiimote-on levő gombok, második rész pedig, hogy mit akarunk hozzájuk rendelni, én ezeket módosítottam:
Wiimote.Minus = KEY_ESC
Wiimote.1 = KEY_SPACE
Wiimote.2 = KEY_O
Wiimote.Home = KEY_F
Az egeret a gyorsulásmérő segítségével irányíthatjuk.. :D
Ok. Csatlakoztassuk Bluetooth-on keresztül:
wminput $(lswm -q)
Az "lswm -q"-val megkapjuk a wiimote MAC address-ét, amit megadunk a "wminput"-nak. Kérni fogja, hogy nyomd meg egyszerre az "1&2"-es gombokat, kéken elkezdenek villogni a rajta levő LED-ek, ekkor kereshető.
ui.: a "wminput"-ot lehet infra érzékelésre is használni, de ~nem a legjobb, inkább "gtkwhiteboard".

# Video out állítása


Ha pl.: van egy S-videó kábeled + mellé audió is, ami pl.: Scart-ban végződik [ezzel próbáltam], akkor hogyan lehet az X újraindítása nélkül clone-módba állítani a kijelzőket?

Előtte egy dolog - ha esetleg fekete-fehér lenne a kép, mert NTSC-re volt állítva, nem pedig PAL-ra:
xrandr --output TV --set TV_FORMAT PAL
Infókat így tudhatsz meg:
xrandr --verbose
Csak ez után dugd össze az S-videó kábelét a videókártyáddal, és:
xrandr --auto
ui.: Mi az aktuális képernyő felbontásom?

2009. július 22., szerda

# Mount options


Csak a felosztásról/mount opciókról, mert így nagyobb biztonság érhető el: LVM-el - dm_crypt [AES 256]-al a teljes HDD titkosítva - kivéve a "/boot":
mount point type options size dump pass
/ xfs defaults,noatime 2 GB 0 1
/boot xfs defaults,noatime,nodev,nosuid,noexec 256 MB 0 2
/home xfs noatime,nodev,nosuid * GB [ami marad] 0 2
/tmp xfs noatime,nodev,nosuid,noexec 10 GB 0 2
/usr xfs noatime,nodev 6 GB 0 2
/var xfs noatime,nodev,nosuid 3 GB 0 2
none swap sw 1 GB 0 0
Ha menet közben szeretnénk "újracsatolni", mert pl.: módosítottunk a mount opcióin:
mount /tmp -o remount
  • Miért XFS-t fájlrendszernek? Mert gyorsabban fut le rajta az esetleges fsck + amit kitörlök, azt nehezebb visszahozni + mert szeretem a feature-jei miatt :D:D
  • Minek a teljes HDD titkosítása? Mert ez esetben a laptop-om volt, nem tárolok rajta jaj de "non-public" dolgokat, egyszerűen csak r*h*djon meg az, aki ellopná :). +Nem mellesleg nagyobb biztonság, miszerint nem fognak tudni csak úgy bebootolni egy LiveCD-t, és hozzáférni az adatokhoz, ergo hitelesség, biztonság növelés.
ui.: Filerendszer felcsatolása
ui2.: Debian 5 Lenny telepítés - Hogyan.org

2009. július 18., szombat

# Kernel forgatás [alap leírás]


Mindenkinek a saját felelősségére. Nem annyira jellemző Debian alatt. De vannak disztribúciók, esetleges célok/igények, amikor mégis kellhet. Olvasd végig az egészet, és csak utána kezdj bele.
Lenny alatt jelenleg a "2.6.26-2"-es kernel van gyárilag, de mi a példa kedvéért alá szeretnénk rakni a jelenlegi legfrissebb stable kernelt, a "2.6.30-1"-est.
Töltsük le a forráskódot, tömörítsük ki, lépjünk bele a mappájába, majd másoljunk neki egy configot:
cp /boot/config-2.6.26-2-686 ./.config
Mielőtt elkezdenénk, kell egy pár csomag a gépre [figyelmeztet, hogy mégis mi hiányzik még a gépről]:
apt-get install gcc make libncurses5-dev
Most, ha akarsz/kell:
make menuconfig
-ban módosíthatod a config-ot, miszerint pl.: mi legyen "modulként", mi legyen "built-in"-ként, vagy mi ne legyen az elkészülő kernelben. Ez után már lehet kezdeni fordítani. A "make" parancsnak van egy "-jX" kapcsolója, ahol az "X" egy számot jelent, hogy hány szálon fog dolgozni/forgatni. Tehát pl.: csak tipp: két magos procinál:
time make -j2
legyen a parancs [azért a "time" elé, mert így a végén megtudhatjuk, hogy mennyi ideig tartott - nálam az első alkalommal: "real: 50m11.194s" - T7100-as C2D procival]. Ekkor rákérdezhet rengeteg dologra, egyszerűen üssünk entert [illetve tartsuk folyamatosan lenyomva azt, mivel említetten sok dologra kérdez rá, a default válaszok jók. A te régi kerneled configja, és az új közötti különbségek miatt teszi csak ezt]. A forgatás eltarthat egy jó darabig, gép/config file beállítástól nagyon függ. [Egy esetleges "megszakítás" esetén a "make"-nél ott kezdi, ahol "abbahagyta".] Kernel lefordulva, telepítsük [csak is innentől _kell_ "root" jog]:
time make modules_install install
Másoljuk az elkészült "fájlt" a helyére ["x86" helyett lehet, pl.: "x86_64", amilyen architektúrád van]:
cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.30-1
initrd image:
time mkinitramfs -o /boot/initrd.img-2.6.30-1 2.6.30.1
Ha nem akarod kézzel szerkeszteni a GRUB beállításait, akkor csak ezt a parancsot add ki:
update-grub
De viszont figyelj arra, hogy biztos ~így nézzen ki a "/boot/grub/menu.lst"-ed megfelelő része:
title
root
kernel
initrd
kernel 2.6.30.1-barminev
(hd0,1)
/boot/vmlinuz-2.6.30-1 root=/dev/hda2 ro
/boot/initrd.img-2.6.30-1
Mármint az "update-grub" az "initrd"-részt nálam kihagyta. A "/dev/XdXX", "(hdX,X)", mindenkinek változó lehet, ezt majd látni fogod [az "update-grub" azt legenerálja]. Szerkesztéshez használj pl.: Vim-et.
Kész, reboot.
ui.: Kernel forgatás - hupwiki, itt pedig egy sulinetes írás, itt pedig egy a cyberciti-ből. ""Bagoj úr blogja"". És még egy Hup.hu link.
ui2.: Pl.: Gentoo-sok szerintem több tucat/száz oldalt beszélhetnének kernel forgatásról, majd még később bővítem esetlegesen ezt az alap írást :D
ui3.: Csak egy megjegyzés.
ui4.: Roll a kernel Debian, Ubuntu way
ui5.: The Kernel Newbie Corner - csak hátha talál itt valaki valami "érdekeset" :) .
ui6.: Program fordítás Linuxon
ui7.: Saját Kernel Fordítása Ubuntu 9.04 Rendszeren
ui8.: KernelCheck: kernel compiling process as easy as the click of a button
ui9.: Kernel compile and install on Debian 5.0 for newbies
ui10.: Kernel Compilation & Installation on Ubuntu - KernelCheck
ui11.: Kernel forgatás, hup, egy és kettő.

2009. július 14., kedd

# Mely fájlok mikor módosultak a gépen?


Legfeljebb egy perccel ezelőtt módosultak:
find / -mmin 1
Az elmúlt ötödik, és tizedik perc közt módosult fájlok:
find / -mmin +5 -mmin -10
Az elmúlt 24 órában:
find / -mtime 0
Az elmúlt 24 órában:
find / -mtime -1
Az elmúlt 24, és 48 óra közt:
find / -mtime 1
48 óránál több ideje:
find / -mtime +1

2009. július 2., csütörtök

# Vágólap használata terminálból [xclip]


Telepíteni..:
apt-get install -fy --force-yes xclip
Pár tipp - szöveg vágólapra vitele:
echo -e "valami-elso-sora\nvalami-masodik-sora" | xclip
állományban levő szöveg vágólapra vitele [amúgy "-i filenev" lenne, de így is jó]:
xclip filenev
vágólapra vitel, de úgy, hogy GUI alól is be lehessen illeszteni [különböző karakterkészleteket "nem szereti" :) ]:
echo -e "valami-elso-sora\nvalami-masodik-sora" | xclip -selection c
beillesztés:
xclip -o
ui.: Ezzel az "X vágólapjáról" is illeszthetünk be szövegeket, pl.: egy GUI-s böngészőben jobbegér-másolás-al "elmentünk" egy URL-t, azt egy terminálban "xclip -o" kiadása után viszont láthatjuk.
ui2.: Innen és innen.
ui3.: Kell futnia x-session-nak a működéséhez...

2009. június 27., szombat

# tcpdump


Innen! [Wiki]: Mi "zajlik" az 53-as porton? [DNS]
tcpdump -i eth0 'udp port 53'
IPv4 alatt az összes be és kimenő HTTP forgalom [80-as port], de csak az olyan csomagokat írja ki, amik tartalmaznak adatokat [pl.: a SYN, FIN, ACK-only -kat ne]
tcpdump -i eth0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Egy adott IP cím FTP kapcsolatait [20-as, és 21-es port] írassa ki [202.54.1.5]
tcpdump -i eth0 'dst 202.54.1.5 and (port 21 or 20)'
Az összes 192.168.1.5-höz tartozó HTTP forgalmat
tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
A 80-as porton átvitt fájlok [használj Wireshark-ot részletesebb infókért]
tcpdump -n -i eth0 -s 0 -w output.txt src or dst port 80
ui.: Promiscuous mode ui2.: Egy rövid írás még itt.

2009. június 20., szombat

# SHA512 használata


Szóval mivel.. pont. :) [Más - egy régebbi.] Ezért a SHA512.

Készítése:
sha512sum VIZSGALANDO-FILE > KIMENETI-FILE
Leellenőrizni:
sha512sum -c KIMENETI-FILE
Ha van egy mappánk, és a benne levő fájlokról [rekurzívan] szeretnénk hash összegeket egy állományba készíteni:
find . -type f -exec sha512sum {} \; > sha512sum-${PWD##*/}
[A "${PWD##*/}" csak az adott mappa neve, hogy ne nekünk kelljen beírni.] Leellenőrizni:
sha512sum -c sha512sum-${PWD##*/} | grep -i fail
Egyet jelez "hibásnak" [amiben letároltuk az összegeket], dehát AZ amikor készítettük még módosult [mármint miután magáról is készített összeget], nem arról lett utoljára hash "generálva", viszont ő tárolta le azokat. Tehát az nem baj.
ui.: "Otthoni felhasználásra hova"? Rengeteg helyre. Például publikus kulcs ellenőrzésére, az én jelenlegimről itt van.
ui2.: Megint más, de hasznos végigolvasni.
ui3.: És még egy :)

# tar, gzip, bzip2, zip, rar, arj, 7z, unace-nonfree-ről


A "tar, gzip" az esetek bő többségében alapból fent van, a maradék említetteket pedig így telepítheted fel, ha "apt"-t használsz [de azért beleraktam a többit is]:
apt-get install -fy --force-yes tar gzip bzip2 zip unzip rar unrar arj p7zip-full unace-nonfree
Legyen egy mappánk, kis tartalommal [hogy legyen min "próbálgatni"]:
MAPPA=$(date +%F-%Hh-%Mm-%N)
mkdir $MAPPA
cd $MAPPA
dd if=/dev/zero of=barmi.barmi bs=1024 count=1024
cd ..
legyen egy külön fájlunk is [~mint előzőleg, itt is egy "generált tartalmú", 1 MByte-os]:
FAJLNEV=barmi.barmi
dd if=/dev/zero of=barmi.barmi bs=1024 count=1024

tar

[Wikipedia]
tar-al összefűzhetsz több fájlt [pl.: mappát - a benne lévő állományokkal, vagy több fájlt egybe]. A tar "NEM TÖMÖRÍT", "hacsak":
  • Nem használsz mellé valamilyen tömörítést, pl.: ".tar.bz2" -nél.
  • Vagy pedig láthatsz esetleg a ".tar"-olt fájlok méretében egy kis különbséget [mármint az eredeti fájlok összesített méretéhez képest], DE ez azért van, mert az utolsó foglalt adatblokkban fellép valamekkora veszteség, ha az állomány mérete nem egész számú többszöröse a fájlrendszerbeli blokkméretnek, mivel a könyvtárbejegyzéseknek mindig az adatblokk elején kell kezdődniük. Magyarul sok kis fájl/könyvtár ".tar"-olásánál végeredményben előjöhet méretbeli különbség!
A tar parancs pár "kapcsolója":
  • c - csomagolás
  • x - kicsomagolás
  • z - gz
  • j - bz2
  • --lzma - lzma
  • v - szokásos, több infót mutasson, verbose
  • vv - [egy "v" helyett kettő] - még több infó a "kezelt" fájlokról
  • f - fájl [végére írd]
.tar
tar -cf $MAPPA.tar $MAPPA
kicsomagolni [.tar]:
tar -xf $MAPPA.tar
.tar.gz
tar -czf $MAPPA.tar.gz $MAPPA
kicsomagolni [.tar.gz]:
tar -xzf $MAPPA.tar.gz
.tar.bz2
tar -cjf $MAPPA.tar.bz2 $MAPPA
kicsomagolni [.tar.bz2]:
tar -xjf $MAPPA.tar.bz2
.tar.lzma
tar --lzma -cf $MAPPA.tar.lzma $MAPPA
kicsomagolni [.tar.lzma]:
tar --lzma -xf $MAPPA.tar.lzma
Egy példa: a "/var/log" könyvtárban levő ".log"-ra végződő fájlokat csomagoljuk be "bzip2"-vel, egy fájlba, aminek a neve: "log-mentes-YYYYMMDD.tar.bz2"
cd /var/log
tar -cjf log-mentes-$(date +%Y%m%d).tar.bz2 *.log

gzip

[Wikipedia]
.gz [mappát nem tud, használd a fent említett tar-t! Az eredeti fájl eltűnik!]:
gzip $FAJLNEV
kicsomagolni [.gz] [A tömörített fájl eltűnik!]:
gzip -d $FAJLNEV.gz
letesztelni a tömörített fájlt:
gzip -t $FAJLNEV.gz
Egy mappán belüli fájlokat egyesével gzip-elni [Eredeti fájlok eltűnnek!]
gzip -r $MAPPA

bzip2

[bzip2 csomag legyen fent!][Wikipedia]
.bz2 [mappát nem tud, használd a fent említett tar-t! Az eredeti fájl eltűnik!]:
bzip2 $FAJLNEV
kicsomagolni [.bz2] [A tömörített fájl eltűnik!]:
bzip2 -d $FAJLNEV.bz2
letesztelni a tömörített fájlt:
bzip2 -t $FAJLNEV.bz2

zip

[zip, unzip csomag legyen fent!] [Wikipedia]
.zip
zip -r $MAPPA.zip $MAPPA
kicsomagolni [.zip]:
unzip $MAPPA.zip

rar

[rar, unrar csomag legyen fent!] [Wikipedia]
.rar
rar a $MAPPA.rar $MAPPA
kicsomagolni [.rar]:
unrar x $MAPPA.rar
letesztelni a tömörített fájlt:
rar t $MAPPA.rar

arj

[arj csomag legyen fent!] [Wikipedia]
.arj
arj a $MAPPA.arj $MAPPA
kicsomagolni [.arj]:
arj x $MAPPA.arj

7z

[p7zip-full csomag legyen fent!] [Wikipedia]
.7z
7z a $MAPPA.7z $MAPPA
kicsomagolni [.7z]:
7z x $MAPPA.7z

unace-nonfree

[unace-nonfree csomag legyen fent!] [Wikipedia]
kicsomagolni [.ace]:
unace x $MAPPA.ace $MAPPA

ui.: Fájl "kiterjesztések" Nautilus alatt
ui2.: Mi lehet az az "ismeretlen fájl"? [Mármint ha pl.: nincs kiterjesztése]
ui3.: windows alatt, ha kapnál egy pl.: ".tar", ".tar.gz", vagy ".tar.bzip2", stb fájlt, akkor azokat a PeaZip nevezetű programmal kezelheted.
ui4.: "Linux" alatt, ha GUI-t használsz, akkor már nagyon szépen integrálva van, pl.: a Nautilusban a "tömörítés kezelés" - jobb egér egy fájlra, és "Create Archive..." vagy "Extract Here"...
ui5.: Hogy mit ajánl az ember a tömörítéshez? Adott cél/körülmények döntik el [Sávszél? Fájlméret? Elég csak egy összefűzés - mennyi idő van rá?]. Általánosságban, ha "Linuxosnak" [non-MS] küldesz "valamit", akkor a ".tar.bz2", ha windowsosnak, akkor ".zip" [bz2 igen jól tömörít, windowsos meg.. kompatibilitás miatt]. Ha a célban szerepel a jelszavazás... jobban jársz, ha titkosítod egy 4096 bit-es GPG-al :) [már amennyiben egy embernek küldöd].
ui6.: Több fájl kitömörítése egyszerre Linuxon

2009. június 4., csütörtök

# Mennyi az operatív memória mérete Linux alatt?


MByte-ban adja meg az értékét [csak írd egy terminálba]:
free -m | awk '/Mem/ {print $2}'
ui.: Infók az adott gépről

# Mennyi a videómemória mérete Linux alatt?


Linux find out my VIDEO Card Memory RAM size using command line utility.
Előtte esetleg ezt futtasd le ezt root-ként:
apt-get install -yf --force-yes pciutils; update-pciids
Majd MByte-ban ezzel kiíratod:
lspci -v | awk '/, prefetchable/ {print $6}'
ui.: Infók az adott gépről

2009. május 28., csütörtök

# IPv6


Csak egy apró kezdeményezés. Mivel belátható időn belül négykézláb/kötelező ötlet lenne váltani/felkészülni az IPv6-ra, így ide fogok gyűjtögetni egy-két linket a "témáról". Remélem hasznosak lesznek az itt felsorolt hivatkozások, már akinek [nekem Igen :)]. Az IPv6 nem egy hype, vagy "jajdejó, új feature", egyszerűen nincs/nem lesz más választás [lásd: NIIF videók]. Akit ez egyáltalán Nem Érdekel, az az "idő eljövetelekor" vulgárisan szólva sz*rb*n lesz [már tényleg elnézést].
Egy sacc előtte: Mikor fogynak el az IPv4-es címek? - Pontosan úgy se tudja senki, több helyen lehet olvasni sokfélét, annyi a legbiztosabb, hogy el fognak fogyni rövid időn belül. Ha átlagolni kéne, azt mondaná az ember, hogy ha ~igaz amiket manapság írnak, akkor ~kb a mai dátumhoz [2009.05.28] képest ~2 év, azaz érdekes lesz visszanézni ezt az írást 2011 felénél :).

Hogyan lehetne esetleg terjeszteni az IPv6-ot ["átlag ember szempontjából"]? A mai oprendszerekben [de már évekkel ezelőtt is] volt/van IPv6 támogatás. ~~SOHO routerekben ~~is. Tehát aki akarja/van ilyenre "pénze" [mármint EGY telefonhívásra], egyszerűen hívja fel az internet-szolgáltatóját, és kérdezze meg, hogy mettől kaphat IPv6-os címet, mert ő [mármint TE] igen is akar!! [Mármint amennyiben érdekel.] Csak egy tipp volt. [Sok lúd ISP-t győz :)]
Egy pár adat: Akkor a lényeg - Hasznos linkek [idővel bővítem]: Indítottam egy fórum topicot, ahol felteheted extra kérdéseidet [és remélhetőleg válasz is jön rá :) ]: ui.: ISP - Hupwiki

2009. május 22., péntek

# Mi az a 8 MByte particionálatlan terület?


Egy pl.: xp telepítésekor

ui.: ez a legvalószínűbb [Dynamic Disk]
ui2.: Setup Reserves Disk Space for Upgrading to Dynamic Disk

# MBR törlése [tudd, hogy mit csinálsz! - mert ezzel kárt okozhatsz]


fdisk -l
-el megnézni, hogy mik a HDD-k elnevezései, majd a törlés:
dd if=/dev/zero of=/dev/sda count=1 bs=512
Ha nem akarod az MBR-ből kitörölni a partíciók adatait tartalmazó részt, akkor csak az első 446 Byte-ját nullázd:
dd if=/dev/zero of=/dev/sda count=1 bs=446
ui.: LiveCD-vel [pl.: SystemRescueCD].
ui2.: MBR-ről a Wikipedia-n.
ui3.: Biztonsági mentés az MBR-ről.

# Biztonsági mentés az MBR-ről


fdisk -l
-el megnézni, hogy mik a HDD-k elnevezései
dd if=/dev/sdX of=mbr.backup count=1 bs=512
-el pedig elmenteni egy fájlba az MBR-t.
dd if=mbr.backup of=/dev/sdX count=1 bs=512
-el pedig visszaállítani, esetleg egy "sync" parancs utána.

2009. május 21., csütörtök

# ~m3u "generálása" az adott mappában [generate m3u]


find . -maxdepth 1 -name "*.mp3" -type f > "Playlist_${PWD##*/}".m3u
Ugyan az, csak ha vannak a kiinduló [. - azaz ahol ki lett adva a parancs] könyvtárban almappák, akkor azokba is készítsen megfelelő Playlist-et:
find . -type d | while read MAPPANEV; do $(cd "$MAPPANEV"; find . -maxdepth 1 -name "*.mp3" -type f > "Playlist_${PWD##*/}".m3u;); done
find . -name "*.m3u" -size 0 -type f -exec rm -i {} \;
ui.: a legutolsó sort óvatosan ad ki!

# Konvertálás karakterkészletek közt [pl.: ISO-8859-1-ből UTF-8-ba]


iconv -f ISO-8859-1 -t UTF-8 filenev
vagy pl.:
sh script_aminek_szoveges_kimenete_lesz | iconv -f ISO-8859-1 -t UTF-8 > filenev
ui.: Convert DOS newlines CR-LF to Unix/Linux format
ui2.: egy hup.hu link

2009. május 18., hétfő

# OpenWrt #0 - Flash the Firmware


#!/bin/bash
# tested on ASUS WL 500 GPv2 [OpenWrt Kamikaze 8.09]

clear
echo "It will take 7 easy steps: "
echo "1/7: To run this script, you have to be root. If you aren't then press Ctrl+C. If you have root privileges, press any key."
read
clear

echo '2/7: If you have internet connection press any key [I want to download the firmware].'
read
wget --timeout 10 --tries=2 "http://downloads.openwrt.org/kamikaze/8.09.1/brcm-2.4/openwrt-brcm-2.4-squashfs.trx"
echo "--------------------"
echo "Press Ctrl+C if it didnt download the firmware..."
read
clear

echo "3/7: If you have internet connection press any key [I want to install atftp on you're PC]."
read
apt-get install -fy --force-yes atftp
echo "--------------------"
echo "Press Ctrl+C if it didnt find the package from you're repository..."
read
clear

echo "4/7: Now unplug you're MODEM from the router, then press any key."
read
clear

echo "5/7: Put you're OpenWrt router in DIAGNOSTIC mode, then press any key. "
echo
echo "Make sure you're IP is eg.: 192.168.1.5, and you're gateway is 192.168.1.1"
echo "And don't forget to check that atftp isn't blocked by a firewall, then press any key."
read
atftp --trace --option "timeout 1" --option "mode octet" --put --local-file openwrt-brcm-2.4-squashfs.trx 192.168.1.1
clear
for i in {1..180}; do sleep 1; clear; echo "[$i/180 sec...] Please wait... meanwhile you can set you're connection back to DHCP."; done
clear

echo "6/7: ...OK! Please turn OFF then turn ON the router, then press any key."
read
clear
for i in {1..50}; do sleep 1; clear; echo "[$i/50 sec...] Waiting for router to boot... Please wait..."; done
dhclient
clear

echo '7/7: ...Now I will telnet the router then you MUST CHANGE the password ["passwd root" command], then reboot it [with the "reboot" command]!!!'
echo "After you changed the root password and rebooted the router, were done! Bye."
echo 'If a "WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!" sign appear, when you want to SSH to the router, then you need to delete eg.: the "~/.ssh/" dir... '
echo "--------------------"
echo
telnet 192.168.1.1

ui.: ASUS WL 500 GPv2 -n lett tesztelve, mert az van a kezemben, de azért lehetne mást is választanih... [pl.: a v2-ből én FTP-n tudtam max kihozni 3 MByte/sec-et...]
ui2.: ha nem lenne elérhető flashelés után, akkor link

# OpenWrt #1 - Disable httpd [+move default port] & telnet for sure


#!/bin/ash
chmod 444 /etc/init.d/httpd
sed -i "s/80/48732/g" /etc/config/httpd
chmod 444 /etc/init.d/telnet
sync
ui.: Megfelelő port kiválasztása.

# OpenWrt #2 - Move default Dropbear port


sed -i "s/22/52316/g" /etc/config/dropbear
ui.: Megfelelő port kiválasztása.

# OpenWrt #3 - Set firewall policy to DROP


sed -i "s/REJECT/DROP/g" /etc/config/firewall
ui.: Mer' a REJECT túl RFC barát :D:D [mármint ez esetben ez ""baj""]

# OpenWrt #4 - Install openntpd & Set Hungarian TZ


#!/bin/ash
opkg update && opkg install openntpd
sed -i "s/UTC/UTC-2/g" /etc/config/system
sync

# OpenWrt #5 - Schedule something with cron [e.g.: upgrades, etc.]


#!/bin/ash

echo "1 4 * * 6 opkg update && opkg upgrade
0 4 * * * echo -e \"nameserver 208.67.222.222\\nnameserver 208.67.220.220\" > /tmp/resolv.conf.auto" > /etc/crontabs/root
chmod 755 /etc/crontabs/root
sync
pkill cron
/etc/init.d/cron restart

ui.: Jó, tudom, ütemezni [minden péntek reggel] egy repo frissítést & upgrade-et, hátha adtak ki valami frissítést nem a legbölcsebb rendelkezésre állás szempontjából, csak példa.

# OpenWrt - How to set automount@boot & SWAP@boot [USB HDD]


#!/bin/ash
# tested on ASUS WL 500 GPv2 [OpenWrt Kamikaze 8.09]
# echo "USB HDD: partition1: 512 MByte swap; partition2: * MByte for data... [EXT3]"

# Automount@boot #1
mkdir -p /mnt/hdd/
opkg update && opkg install kmod-usb2 kmod-usb-storage kmod-fs-ext3 fdisk screen e2fsprogs
clear
echo "Now use fdisk, and mkfs to make partitions on the USB HDD:"
echo "partition1: 512 MByte [SWAP]; partition2: * MByte for data... [EXT3]"
echo
fdisk -l
read
screen
sync
clear

# Automount@boot #2
echo "mkdir /mnt/hdd; mount "$(fdisk -l | awk '/Linux/ && /83/ {print $1}')" /mnt/hdd" > /etc/init.d/hdd
ln -s ../init.d/hdd /etc/rc.d/S45hdd
chmod 755 /etc/init.d/hdd
sync
/etc/init.d/hdd

# Set SWAP@boot on USB HDD
opkg install swap-utils
echo 'mkswap '$(fdisk -l | awk '/swap/ && /82/ {print $1}') >> /etc/init.d/hdd
echo 'swapon '$(fdisk -l | awk '/swap/ && /82/ {print $1}') >> /etc/init.d/hdd
sync
/etc/init.d/hdd
clear
mount
echo
free
read
ui.: előfordulhat egy-két apróság _néha_ egy USB HDD felismerésében
ui2.: Az fdisk-hez segítség [a példa alapján]:
fdisk /dev/scsi/host0/bus0/target0/lun0/disc

n
p
1
enter
+512mb
t
82

n
p
2
enter
enter
t
2
83

w
Hozzuk is létre a filerendszert:
mkfs.ext3 /dev/scsi/host0/bus0/target0/lun0/part2
ui3.: aki nem ismerné a screen-t, annak link

# OpenWrt - How to set NFS [on LAN]


Goal: Share videos/music on a network with an OpenWrt router [read only, anonym, UTF8 characters in file names too, router runs 24h a day, clients always connected]. Kamikaze 8.09.
On the router [if the shared folder is "/mnt/hdd/megosztas/" ]
#!/bin/ash
mkdir -p /mnt/hdd/megosztas/
chmod 555 -R /mnt/hdd/megosztas/
opkg update && opkg install unfs3
echo '/mnt/hdd/megosztas/ 192.168.1.0/255.255.255.0(ro)' >> /etc/exports
/etc/init.d/unfs3 enable

echo '#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50

start() {
/etc/init.d/portmap restart
/usr/sbin/unfsd
}

stop() {
killall unfsd
}

restart() {
stop
sleep 1
start
}' > /etc/init.d/unfs3

sync
sleep 60

/etc/init.d/portmap stop
/etc/init.d/unfs3 restart
Client side [NFS related firewall settings]
#!/bin/bash
IPTABLES=$(which iptables)
$IPTABLES -A INPUT -i lo -s 127.0.0.1 -p udp --dport 111 -j ACCEPT
$IPTABLES -A INPUT -i lo -s 127.0.0.1 -p tcp --dport 111 -j ACCEPT
$IPTABLES -A OUTPUT -p tcp -m multiport --dport 111,2049 -j ACCEPT
$IPTABLES -A OUTPUT -p udp -m multiport --dport 111,2049 -j ACCEPT
Client side
#!/bin/bash
FELHNEV=$(w | awk '/x-session/ && /tty/ {print $1}')
mkdir -p /home/$FELHNEV/Desktop/Megosztas/
mount -vvv -t nfs 192.168.1.1:/mnt/hdd/megosztas/ /home/$FELHNEV/Desktop/Megosztas/ -o ro,noexec,nosuid,nodev,noatime,nolock,nfsvers=3
Client side - fstab
#!/bin/bash
FELHNEV=$(w | awk '/x-session/ && /tty/ {print $1}')
mkdir -p /home/$FELHNEV/Desktop/Megosztas/
echo "192.168.1.1:/mnt/hdd/megosztas/ /home/$FELHNEV/Desktop/Megosztas/ nfs ro,noexec,nosuid,nodev,noatime,nolock,nfsvers=3 0 0" >> /etc/fstab
mount -a

ui.: boccs az angol miatt, gyorsabb volt így
ui2.: A lazy unmount hasznos lehet egy esetleges ro NFS meghajtó lecsatoláskor: "umount -l /home/valaki/Desktop/Megosztas", miszerint aranyos dolgok történhetnek, ha nincs kapcsolat a routerrel.. :)

# OpenWrt - How to change WAN Mac address


Because the WAN part is the last one in the config file:
#### WAN configuration
config interface wan
option ifname "eth0.1"
option proto dhcp
Just append a line like this:
echo "option macaddr XX:XX:XX:XX:XX:XX" >> /etc/config/network
sync

# OpenWrt - How to set fixed IP for given Mac address [static lease]


echo "XX:XX:XX:XX:XX:XX 192.168.1.120" >> /etc/ethers.local sync

# OpenWRT - How to set OpenDNS, and block some FQDNs


OpenDNS:
#!/bin/ash
echo 'echo -e "nameserver 208.67.222.222\nnameserver 208.67.220.220" > /tmp/resolv.conf.auto' > /etc/init.d/opendns
chmod 755 /etc/init.d/opendns
ln -s ../init.d/opendns /etc/rc.d/S99opendns
Block a few FQDNs:
wget "http://pastebin.com/pastebin.php?dl=f585ae167" -O /etc/hosts.local

# OpenWRT - Where can I see the log's?


Just type:
logread

2009. május 12., kedd

# Security Tools List


http://securitytoolslist.domandhost.com/
http://backtrack.offensive-security.com/index.php?title=Tools

2009. május 9., szombat

# audio from wmv to mp3


#!/bin/bash
INPUT_WMV=valami.wmv
OUTPUT_MP3=$(echo $INPUT_WMV | sed "s/.wmv//g")
mencoder -ovc frameno -oac mp3lame -o temporary.avi $INPUT_WMV
mplayer -dumpaudio temporary.avi
mv stream.dump $OUTPUT_MP3.mp3
rm -f temporary.avi
ui.: Forrás

2009. május 2., szombat

# MAC address megállapítása scriptől [akár helyi, akár hálózaton]


Ha már volt egy "Külső IP cím megállapítása scriptből", legyen esetleg egy MAC-re is :) .
root-ként helyi:
ifconfig eth0 | awk '/HWaddr/ {print $5}'
"felhasználóként", helyi [link!!]:
cat /sys/class/net/eth0/address
root-ként, gyűjtse be ami elérhető az adott hálózaton [IPv4]: [timeout kell - ez az egy tipp [package] volt egy mailing listről]
#!/bin/bash
timeout 15 netdiscover -r 192.168.1.0/24 > netdisc.tmp
awk '/192./ {print $1"-"$2}' netdisc.tmp | grep -v "scanning" | sort -u >> netdisc.list
rm -f netdisc.tmp
ui.: ha a terminál az előbbi script lefutása után "érdekesen" viselkedne :D akkor olvasd el ezt :D
root-ként, IPv4 cím szerint a hálózaton ["tuning" :D]:
arping -c 1 192.168.1.1 | awk '/192.168.1.1/ && /:/ {print $4}'
vagy:
ping -c 1 192.168.1.1 >/dev/null; arp -a | awk '/192.168.1.1/ {print $4}'
"felhasználóként", IPv4 cím szerint a hálózaton:
ping -c 1 192.168.1.1 >/dev/null; awk '/192.168.1.1/ {print $4}' /proc/net/arp
ui.: Forrás!!

2009. április 24., péntek

# Magic SysRq


Leírás róla itt! Hasznos dolognak tűnik :)

2009. április 17., péntek

# hdparm


hdparm -tT
Nem ad 100%-os pontosságot a valósághoz képest, de azért valami.
ui.: The -T option takes advantage of the Linux disk cache and gives an indication of how much information the system could read from a disk if the disk were fast enough to keep up. The -t option also reads the disk through the cache, but without any precaching of results. Thus -t can give an idea of how fast a disk can deliver information stored sequentially on disk.

2009. április 16., csütörtök

# Két rootkit kereső


Egyik: chkrootkit
Másik: rkhunter

frissíteni:
rkhunter --update
lefuttatni:
rkhunter --check
Tehát időnként [egy sorba írtam :) ] lefuttatni root-ként mindkettőt:
apt-get update; apt-get upgrade -y; apt-get install -y chkrootkit rkhunter; rkhunter --update; rkhunter --check; chkrootkit

2009. április 12., vasárnap

# Ha költöztetni kell egy másik fizikai HDD-re, kiesés nélkül [LVM]


Ha azt látjuk, hogy szeretne meghalni egy HDD, amin éppenséggel a rendszerünk van... és anno LVM-et használtunk telepítéskor, akkor vegyünk egy másik, pl.: legalább ugyan akkora HDD-t, tegyük bele a gépbe és helyezzük át az adatokat az új HDD-re [kiesés nélkül, a futó szolgáltatások kellenek], és később bootolni is lehessen az új HDD-ről, mivel a régi vinyót kivesszük, ha végzünk.
A példában a VG-ban [vg] van két LV ["root", és "swap"]. Az LVM a régi vinyón a "hda2"-őn volt. [Debian Lenny-t használtam, de az tetszőleges ^ ^ ]. Mielőtt elkezdi az ember, BACKUP!
Eredetileg a "/dev/hda1" volt EXT3-ban a "/boot", és a "/dev/hda2"-n az LVM:
fdisk -l # felismerte, az új HDD-t? OK
pl.: fdisk-el hozzunk létre két partíciót, egyet a "/boot"-nak, és még egyet a későbbi LVM-nek:
fdisk /dev/hdb
n
p
1
enter
+256M
t
83

n
p
2
enter
enter
t
2
8e

w
mkfs.ext3 /dev/hdb1
Ok, az új HDD rendesen particionálva fdisk-el [hdb1: EXT3 - 256 MByte; hdb2: LVM - maradék hely], most adjuk hozzá az új HDD-t a PV-khez:
pvdisplay # mi volt előtte?
pvcreate /dev/hdb2
pvdisplay # hozzáadta? OK
Adjuk hozzá a VG-hoz:
vgdisplay # mi volt előtte?
vgextend vg /dev/hdb2
vgdisplay # hozzáadta? OK
Most:
pvdisplay
Az utolsó paranccsal egyben megtudjuk, hogy mik a PV-ok nevei, tehát mozgassuk át az adatokat a régi HDD-ről, az újra:
pvmove /dev/hda2 /dev/hdb2 -i 10
Ez előbbi parancs sok ideig futhat [ezért a "-i 10" kapcsoló]. Esetleg előzetesen infót tudhatunk meg az adatok elhelyezkedéséről a következővel:
pvdisplay -m
Ok. A LV-ok át lettek helyezve a "hda"-ról a "hdb"-re.
A /boot
Akkor még a "/boot". A GRUB még nem tud bootolni LVM-ről, ezért kell külön "/boot" [a GRUB2 elvileg támogatja amúgy], szóval egyelőre marad az, hogy külön "partíción" van [említetten] a "/boot" [pl.: EXT3 filerendszerrel].
Szóval azzal külön kell foglalkozni, ezért is hagytam particionáláskor egy külön "/dev/hdb1"-et, vagy anno "/dev/hda1/"-et.

Csatoljuk fel a "hdb1"-en levő EXT3-as partíciót, "ujboot"-nak:
mkdir ujboot
mount /dev/hdb1 ujboot/
A régi "/boot" lemásolása:
cp -a /boot/* ujboot/
Csatoljuk le az "/ujboot"-ot, töröljük az ideiglenesen létrehozott könyvtárát, majd a régi "/boot"-ot is csatoljuk le [menet közben nem okoz gondot - FIXME].
umount /dev/hdb1
rmdir ujboot/
umount /boot
Ekkor esetleg egy "mount|grep hda" paranccsal nézzük meg, hogy biztos nincs már semmi felmountolva rá, csak hogy azzal már ne kelljen később törődni.
Most csatoljuk a "/boot"-ot a "hdb1"-re:
mount /dev/hdb1 /boot
Még az fstab-ban írjuk át a "/boot" helyét:
vim /etc/fstab # és ne a "/dev/hda1"-en legyen a "/boot", hanem a "/dev/hdb1"-en!
Még nincs kész!:

Ez után, még FONTOS, szabályosan szedjük ki a VG-ból a régi "hda2" PV-ot, sorrendet betartva [ekkor előtte esetleg még egy "pvmove", hátha írtak azóta rá]:
vgreduce vg /dev/hda2
Most a PV-ból is:
pvremove /dev/hda2
Rakjuk rendbe a GRUB-ot:
grub-mkdevicemap
grub-install /dev/hdb
A régi "hda" HDD-t vegyük ki.
ui.: Virtuális szg.-ben tevékenykedtem, működött ^ ^
ui2.: a man-ok nem írják, de szintén hasznos dolog, akár általánosságban, hogy a "-vvv"
kapcsolók bőbeszédebbűvé teszik a kimeneteket... ^ ^ ..hibakeresésnél ez jól jöhet... ui3.: Egy jó dok. itt.
ui4.: Még egy jó dok itt.
ui5.: LV létrehozása pl.: "lvcreate -L 10G vg -n lvneve"
ui6.: Ha elfogy a szabad terület [LVM] - korábbi LVM-es írás.

2009. április 11., szombat

# Ha elfogy a szabad terület [LVM]


Lassan elfogy a szabad terület, de viszont kiesés nélkül kell hogy menjen állandóan a gép/elérhetőek legyenek a szolgáltatások:
Rakjunk be egy új, esetleg nagyobb HDD-t, ami majd "/dev/hdb" lesz. Anno az os telepítésekor LVM-et használtunk XFS-el, kivéve a "/boot"-ra, az maradt EXT3-on. Ez csak egy alap példa lesz, ki lehetne még használni pl. úgy ezeket az előnyöket, hogy külön /var, /home, stb lenne LV-k-ban.
A példában, amikor régen telepítettük az os-t, akkor VG-nak a "vg" név lett adva kreatívan :D LV-oknak pedig pl.: "root", "swap" - értelemszerűen rajtuk felcsatolva az azonos nevű mount point-ok.
Előtte azért legyen friss BACKUP!
fdisk -l # felismerte, az új HDD-t? OK
Adjuk hozzá a PV-hoz:
pvdisplay # mi volt előtte?
pvcreate /dev/hdb # partíciót is hozzá lehet adni, nem csak "eszközt"
pvdisplay # hozzáadta? OK
Adjuk hozzá a VG-hoz:
vgdisplay # mi volt előtte?
vgextend vg /dev/hdb
vgdisplay # hozzáadta? OK
Innentől már van plusz szabad hely a VG-ban. Adjuk hozzá ahhoz a LV-hoz, amelyikhez szükséges, és amennyi kellhet.
lvdisplay # nézzük meg, mik a LV-ok nevei
lvextend /dev/vg/root --size=+10G
lvdisplay # hozzáadta? OK
Mivel azért választottunk XFS-t, hogy kihasználjuk azt az előnyét, hogy menet közben, lecsatolás nélkül lehet megnövelni a fájlrendszer méretét, növeljük is meg:
df -h # mekkora volt előtte?
xfs_growfs /
df -h # hozzáadódott? OK
És már ténylegesen hozzáadódott on-the-fly a plusz terület [az új fizikai HDD-ről] a már hely szűkében levő eredeti "/"-hez.
ui.: Forrás innen!! +még egy link, és még egy link ^ ^
ui2.: Egy youtube videó..: link itt.
ui3.: XFS méretét csökkenteni ha jól tudom nem lehet, de olvastam, mintha már készített volna valaki egy patch-t hozzá, amivel mégis lehetséges - FIXME [mert ez nem biztos..]
ui4.: Ha költöztetni kell egy másik fizikai HDD-re, kiesés nélkül [LVM] - későbbi LVM-es írás

2009. április 9., csütörtök

# Infók az adott gépről [hardware info Linux]


#!/bin/bash
lshw > lshw-info # összes eszköz listázása
lspci > lspci-info # pci-ba csatlakoztatott eszközök
lsusb > lsusb-info # usb portban levő eszközök
hwinfo > hwinfo-info # hasonló az lshw-hoz, csak bővített
dmesg > dmesg-info # "boot üzenetek" kiírása

A kimenetként kapott adatok abba a mappába kerülnek, amelyikben kiadtad a parancsot, amikor a terminálban voltál [adott parancs, utána "-info" nevű fájlokat keress]. Ha csak a képernyőre szeretnéd kiíratni az infókat, akkor nem kell átirányítani ">" a parancsok kimenetét egy fájlba.
man a következőkre:
ethtool [innen]
mii-tool
xdpyinfo [innen]
dmidecode [innen]
update-pciids
fdisk -l
xvinfo
hal-device

pl.: lshw -html > lshw.html

ui.: Mennyi a Videómemória mérete Linux alatt?
ui2.: Mennyi az operatív memória mérete Linux alatt?
ui3.: Grafikusabb megoldást keresőknek: gnome-device-manager
ui4.: Az lshw is maga egy csomag, szóval legyen fent! :)
ui5.: Mint általában, a -v kapcsoló több infót mutathat, pl.: "lspci -v"
ui6.: Milyen disztribúciót használok épp?
ui7.: Mi az aktuális képernyő felbontásom?
ui8.: Video out állítása

2009. április 7., kedd

# Mi az aktuális képernyő felbontásom?


xdpyinfo | grep -i dimensions: | sed 's/[^0-9]*pixels.*(.*).*//' | sed 's/[^0-9x]*//'

ui.: Egy compiz-hoz tartozó shell scriptben találtam :)
ui2.: Talán ide tartozik: Eszközök, gép infó listázása

2009. március 30., hétfő

# Képernyőkép készítése


Ha nem a normál printscreen gombot akarja használni az ember, akkor itt egy parancs a helyettesítésére ^ ^
import -border -frame kep.png
vagy pl.:
import -windows root kep.png