|
2010. január 29. péntek, 13:02 |
|
A kliens oldali bejelentkezést hagyományosan a pg_hba.conf fájl szabályozza. A fájlban 7 fajta módon lehet megadni a kapcsolatot. A fájl a /etc/postgresql/8.3/main/ könyvtárban található nálam.
local database user auth-method [auth-options] host database user CIDR-address auth-method [auth-options] hostssl database user CIDR-address auth-method [auth-options] hostnossl database user CIDR-address auth-method [auth-options] host database user IP-address IP-mask auth-method [auth-options] hostssl database user IP-address IP-mask auth-method [auth-options] hostnossl database user IP-address IP-mask auth-method [auth-options]
Minen olyan sor, ami előtt # van nem értelmezendő. Az egyes szavakat szóközök választják el.
"local database user auth-method [auth-options]"
A helyi felhasználók számára fenntartott kapcsolódási mód. Például "local all postgres trust" Helyileg, minden adatbázishoz, a postgres (root) felhasználó jelszó bekérése nélkül való kapcsolódáshoz. A trust bejelentkezési metódust át lehet állítani 'password' -re, de csak miután ALTER USER postgres PASSWORD 'valamijelszó'; beállításra került. Amikor psql -d adatbazis -U postgres parancsal az adatbázisba szeretnénk lépni kérni fogja a valamijelszó jelszót. (ez egyébként nagyon nem ajánlott, mert bizonyos automatikus műveletek így nem futnak le!)
Szükség lehet az adatbázis távolról történő elérésére/szerkesztésére is, amit a local nem tesz lehetővé. A "local" kapcsolódáson kívüli lehetősgek eseteiben azonban a postgresql.conf fájl listen_adresses="localhost" sorát módosítani kell. Méghozzá aszerint, hogy mely ip címeknek, ip tartományoknak engedjük meg a csatlakozást (a korlátozás feloldása a "*" érték esetén valósul meg). A "host" sorában mind ssl, mind nossl módban engedélyezni lehet a kapcsolódást, a hostssl, hostnossl sorokban pedig csak egyik, vagy másik kapcsolódási állapot engedélyezett. A hostssl sorok létrehozása esetén további beállításokra van szükség, amit itt részleteznek: http://developer.postgresql.org/pgdocs/postgres/ssl-tcp.html. Ám ezek végrehajtása után az adatforgalom biztonságos lesz. Az adatbázis és a felhasználó beállítása a jogosultságok finomítását teszi lehetővé. A host kezdetű sorok végére ugorva (auth-method) be kell állítani a felhasználó belépési módját. Local esetében már volt szó a trust és a password módokról, de ezenkívül még több mint féltucat bejelentkezési lehetőség van. Amit kiemelnék az a reject, és az md5 mód. A reject segítségével bizonyos felhasználókat lehet kiszűrni, míg az md5 lényegében a password mód titkosítással védett változata. CIDR-adress: Egy ip tartományt lehet megadni szám formátumban, ahonnan csatlakozhatnak (ennél bonyolultabb) , samehost érték esetén a szervergéppel azonos host tartományú gépek csatlakozhatnak, míg samenet esetén lényegében bárki csatlakozhat. IP-adresses, IP-mask: Például, ha csupán bizonyos kapcsolódásokat akarunk engedélyezni. Pl:
host kulcsdb balazs 192.168.1.101 255.255.0.0 md5
ekkor a psql -d kulcsdb -U balazs parancs kiadása után fogja a jelszót kérni.
Az első szám ebben a router által kiosztott ip, a második pedig az IP-maszk.
host kulcsdb balazs ::1 ::1 md5
Ebben az esetben a python pgdb moduljával tudok kapcsolódni a tty1-ről az adatbázishoz a következőképpen (sudo aptitude install python-pygresql parancsal lehet telepíteni) :
import pgdb
db = pgdb.connect(dsn='localhost:kulcsdb',user='balazs',password='balazsjelszo') cursor=db.cursor()
Auth-method bővebben:
trust: Feltétel nélkül enged csatlakozni, nincs jelsóval, vagy egyéb plusszal járó autentikáció.
reject: Feltétel nélkül tiltja a csatlakozást, nincs semmiféle bejelentkezési lehetőség, elsősorban bizonyos hostok kiszűrésére használatos.
md5: md5 titkosítással küldött jelszó szükséges.
password: Ebben az esetben egy titkosítatlan text fájlt vár jelszóval az adatbáziskezelő. Nem megbízható hálózatban nem ajánlott használni
gss: GSS API használ a felhasznló azonosítására, csak TCP/IP -n keresztül használható.
sspi: Sspi-t használ azonosításra az adatbáziskezelő, csak windows esetében működőképes.
krb5: Kerberos V5 azonosítja a felhasználót, csak TCP/IP-n kersztűl használható.
ident: Az operációs rendszertől, vagy TCP/IP kapcsolaton keresztül az azonosító szerveren keresztül próbálja azonosítani a felhasználót az adatbáziskezelő azonos felhasználójával.
ldap: ldap szervert használ az azonosításhoz.
radius: radius szervert használ az azonosításra.
cert. ssl -t használ azonosításra.
pam: Az operációs rendszer által biztosított Pluggable Authentication Module-t használja a felhasználó azonosítására.
|
|
2010. január 28. csütörtök, 19:23 |
|
Jelenleg a Postgissel kiegszített Postgresql adatbázis-kezelő a legmegfelelőbb a vektoros adatok kezelésére, hiszen több gépről elérhető, és a legtöbb nyílt forráskódú térinformatikai program támogatja. Postgis raszteres kiegészítése készülőben van, egy bejegyzés szerint 2010 végére várható a megjelenése.
Paolo Corti blogjában találtam rá egy telepítési útmutatóra:
Ez pedig egy szájbarágó tutorial.
Magyar nyelvű tutorial
Telepítés Ubuntu alá:
sudo aptitude install postgresql-8.3-postgis postgresql-8.3
Jelenleg nem a legfrisebb verziót használom (ami 8.4 a postgresql-nál), de ez eddig problmamentesen működött. A fenti parancs automatikusan telepíti a postgist minden szükséges függőségével együtt.
sudo su postgres createdb kulcsdb createlang plpgsql kulcsdb psql -d postgistemplate -f /usr/share/postgresql-8.3-postgis/lwpostgis.sql / psql -d postgistemplate -f /usr/share/postgresql-8.3-postgis/spatial_ref_sys.sql
UPDATE: A fájlok elérési útvonala megváltozott itt található egy részletes telepítési útmutató. A fájlok itt lesznek: /usr/share/postgresql/8.4/contrib/ Ebből a postgres az alap root felhasználója az adatbáziskezelőnek, neki alapból mindenre van joga, postgistemplate (postgissablon kinek mi tetszik) pedig a sablon adatbázis.
psql -d kulcsdb -c "SELECT postgis_full_version();"
Teszteléshez a fenti sort kell a parancsorba bevinni, ha működik minden ok. Ezután közetkezik a ROLE, USER kreálás. Fontos, hogy a Postgresql által használt azonosítók nem azonosak a linux által használt azonosítókkal, ez két külön rendszer. ROLE és az USER között egy különbség van, az USER rögtön alapból kap egy LOGIN tulajdonságot, míg a ROLE esetében ezt be kell állítani. Lépjünk be a
psql -d kulcsdb
paranccsal.
CREATE ROLE felhasznalonev NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE LOGIN PASSWORD 'mypassword';
ALTER DATABASE kulcsdb OWNER TO felhasznalonev;
ALTER TABLE geometry_columns OWNER TO felhasznalonev; ALTER TABLE spatial_ref_sys OWNER TO felhasznalonev;
Az adatbázis, és a postgis két táblájának tulajdonosi jogai a postgres felhasználótól így átkerülnek a gis felhasználóhoz. Ezzel tulajdonképpen megvannak az alapok. Postgresql még megengedne egy csomó finomhangolást (például sablon adatbázis használata, eltérő tulajdonságú csoportok létrehozása, sémák alkalmazása, azonban ez mind bonyolítaná a helyzetet, akit pedig érdekel előbb utóbb utána fog járni).
pg_hba, postgresql.conf szerkesztése
Ezen fájlok szabályozzák honnan lehet belépni egy adatbázisba, kinek stb. A postgresql.conf számomra fontosabb sorai:
listen_adresses="local" #csak helyi gép számára engedélyezett, "*" pedig mindenki számára, egyébként azokat az IP címeket lehet beírni, ahonnan elfogad kapcsolódást. port=5432 #ez az alap port, át lehet állítani ugyanúgy, ahogy az ssh szervernél írtam az előző posztban a biztonságot nővelheti. ssl=true # nincs előtte a kettős kereszt --># password_encryption = on # hasonló mint fentebb
Áttérve a pg_hba fájlra, ebben lehet megadni, hogy kik honnan mihez kapcsolódhatnak.
http://developer.postgresql.org/pgdocs/postgres/auth-pg-hba-conf.html
Érdemes ezt az oldalt alaposan áttanulmányozni. (Segítek, ha nem sikerül).
Adatbázis feltöltése.
shp2pgsql -s "4326" uthalozat.shp uthalozat_table kulcsdb > uthalozat.sql
Ez létrehoz egy dump fájlt, ami alapján a
psql -d kulcsdb -U felhasznalonev -f uthalozat.sql
paranccsal létrehozható az uthalozat_table az shp tartamával.
Manuálisan:
CREATE TABLE poi (gid int4,nev varchar); select AddGeometryColumn ('public','poi','geom','4326','POINT',2);
Először egy hagyományos tábla jön létre (alapból a public sémában, két oszloppal). A következő paranccsal a public sémában, a poi táblában létrehoz egy geom oszlopot, földrajzi koordináta rendszerben, pont alakzatoknak.
|
|
2010. január 28. csütörtök, 19:19 |
|
Leírás magyarul: http://eznemegy.blog.hu/2008/08/25/ubuntu_debian_tavoli_elerese_ssh_val_1
Telepítése ubuntu alá:
sudo apt-get install openssh-server openssh-client sudo vi /etc/ssh/sshd_config
Három dolgot okvetlen meg kell változtatni:
# What ports, IPs and protocols we listen for Port 22 ---> Ezt ki kell cserélni egy olyan számra, ami ebben a listában nincs benne: http://nmap.org/data/nmap-services
Következő sor:
PermitRootLogin yes ---> Át kell állítani No -ra.
Következő sor:
# Change to no to disable tunnelled clear text passwords #PasswordAuthentication yes ---> a # -et ki kell törölni a PasswordAuthentication yes sor elől
Ezután sudo /etc/init.d/ssh restart
Router mögül Port Forwarding -ot kell csinalni (ha a routeren kivülről is szeretnnk elérni az ssh szervert), ezt a router beállításainál lehet megtenni. Érdemes összekapcsolni az ssh szerveres gép mac címét egy a router által kiosztott ip címmel, amivel meg lehet spórolni még néhány kattintást. Ha valami nem világos a fentebbi linkról elérhető poszt tényleg OK!
SSH kliens, putty
Az ssh szervert futtató gép parancssorát lehet e két programmal elérni.
ssh kliens esetében:
~$ ssh nev@host -p portszam
pl, ha "finnugor" az ssh szerveren a bejelentkezési nevem, 192.168.1.105 a célgép címe, és az ssh szerver a 60666 -os porton kommunikál, akkor
~$ ssh
Ezt a címet a spamrobotok ellen védjük. Engedélyezze a Javascript használatát, hogy megtekinthesse.
-p 60666
Putty hasonlóan működik, így néz ki a kezdőpanelje (itt értelemszerűen kell kitölteni a port, host felhasználónév hármast) Innen lehet letölteni a PUTTY programot.
Winscp/Nautilus
Winscp-vel windows alól lehet fájlokat le/fel tölteni.
így néz ki a főpanelja, hasonlóan a PUTTY-hoz ki kell tölteni. Innen lehet letölteni.
Nautilus az Ubuntu ablakkezelője. Így néz ki, a Fájl->Kapcsolódás szerverhez menüpontja alatt találjuk azt a fület, amelyiket ehhez hasonlóan kell kitölteni. Ami után nagyjából úgy kezeli a másik gép elérhető meghajtóját, mintha az egy USB drive lenne, közvetlenül lehet pl fájlt szerkeszteni.
|
|