Geosupportsystem IT-plattform – Installationsguide del 2

I detta inlägg så är det ”städning” av den OpenGeo Suite installation som gjordes i förra inlägget.

Det mesta är beskrivet i den dokumentation som följer med installationen och det jag ändrat på eller anpassat rör sådant jag vill uppnå senare för att ytterligare öka flexibiliteten i IT-plattformen. Det finns även en del steg som helt enkelt inte fungerade för mig, så jag fick klura ut ett annat sätt att få det att fungera.

Jag börjar med PostgreSQL och PostGIS.

PostgreSQL/PostGIS

Sedan tidigare har jag aktiverat root privilegier med sudo su – men det hjälper inte nu. Jag måste nämligen köra ett root kommando som en annan användare, så sudo måste användas i alla fall.

sudo -u postgres psql postgres
\password postgres
\q

Det första kommandot loggar in i postgres med användaren ”postgres”. De efterföljande kommandona är kommandon inne i databasen för att sätta ett lösenord för postgresanvändaren ”postgres”. Jag väljer lösenord ”postgres” för mina tester, vilket du inte skall göra om du skall sätta upp en faktisk produktionsmiljö.

Det mesta av det jag visar här är främst för att få saker att fungera snabbt. Skall det dessutom vara säkert så skall man tänka till några gånger och analysera var man måste vidta åtgärder för att höja säkerheten. Detta gäller inte bara en linuxserver med öppen källkod utan för alla IT-system.

Det är ganska strypta system till att börja med, så innan PostGIS kan användas så behöver man ”öppna” en del av dessa begränsningar.

nano /etc/postgresql/9.3/main/pg_hba.conf

Kommandot ovan startar redigering av en av konfigurationsfilerna för PostgreSQL. Tänk på att använda sudo om du inte har aktiverat root privilegier (sudo su –).

I filen skall du enligt instruktionen leta reda på två rader:

local  all  all           peer
...
host   all  all  ::1/128  ident

På dessa byter du ut peer och ident mot md5, sedan sparar och stänger du filen, men detta fungerar inte!

Du behöver även byta ut peer på en rad till mot md5 för att kunna logga in lokalt med kommandot:

sudo service postgresql restart
psql -U postgres -W

För att kunna logga in med PgAdminIII från en annan dator så behöver man göra lite till.

I instruktionen så beskriver man en metod som är lite säkerhetsmässigt tveksam så jag gör såhär:

I samma fil som tidigare så finns det en rad som börjar med host. Denna har en IP adress som redigeras för att passa den adressrymd som skall tillåtas ansluta till databasen för direkt access.

host   all   all    192.168.0.1/24    md5

I mitt exempel så använder jag masken /24 vilket begränsar tillåtna adresser till 192.168.0.1 – 255.

Något man utelämnat i instruktionen är att du faktiskt behöver ändra en fil till för att servern ens skall lyssna på andra adresser än de lokala. På annan plats föreslår man en lösning som inte heller är helt säkerhetsmässigt pålitlig, så jag gör såhär.

I filen /etc/postgresql/9.3/main/postgresql.conf så finns det en rad som börjar med #listen_addresses. Denna redigeras och localhost ersätts med serverns IP-address.

listen_address = '192.168.0.50'

Har du nu även tagit bort brädgårdstecknet framför raden, sparat och startat om postgresql tjänsten så skall du kunna ansluta från en annan dator med PgAdminIII.

För att kunna använda databasen med egna data så är det bäst att skapa en ny geodatabas för detta ändamål.

PostGIS

Det går att använda PgAdminIII för att skapa en ny databas i ett GUI, men jag tycker det är enklare att göra det i terminalen.

createdb -U postgres geodata
psql -U postgres -d geodata -c 'CREATE EXTENSION postgis'

Om du vill ha ett annat namn på databasen så byter du ut geodata mot ett annat namn.

Det finns nu en databas med namnet geodata på den IP-adress som servern har, på porten 5432. I QGIS så kan man enkelt lägga till denna koppling via ”lägg till PostGIS lager” och klicka på ”Ny” vid ”Anslutningar”.

Skärmbild från 2015-08-23 12:11:06Du får själv välja om du vill spara användarnamn och lösenord, men du skall vara medveten om att dessa i så fall sparas i dina projektfiler i klartext. Vill du att användare som öppnar dina projekt skall tvingas ange egna användarnamn och lösenord så kryssar du inte i dessa rutor.

Ännu så länge är databasen tom och det går inte att ”Lägga till” några lager från databasen. Dialogen för att lägga till data kan därför stängas.

För att lägga till nya ”scheman” och tabeller så är det enklast att använda DB Manager.

Skärmbild från 2015-08-23 12:17:25När man är ansluten till databasen kan man skapa nya scheman med menyalternativet ”Schema”. Jag har en databas sedan tidigare i bilden ovan, men den jag skapade nyss är den som är markerad.

Scheman kan man säga är ett sätt att organisera olika typer av data. Du kan ha olika scheman för olika ändamål och dessa kan innehålla olika data.

Med menyalternativet ”Tabell” kan man skapa det som skall bli nya tomma lager i databasen. Har du redan data som du vill importera till PostGIS så gör du det via knappen med pilen som pekar nedåt (bilden ovan).

Skärmbild från 2015-08-23 12:23:27I dialogen för att skapa tabell skall du tänka på att aktivera geometrikolumnen och om du känner till det vilket SRID du skall använda för att lagra geomterierna (3006 är SWEREF99TM).

Ett spatialt index har många fördelar så jag kan inte tänka mig en situation när det är dåligt att skapa ett sådant.

Annars är det bara att experimentera och lägga till nya data, ladda upp gamla och testa lite olika datatyper som helt plötsligt är tillgängliga när man släpper shapefilssargen.

I nästa inlägg skall jag titta närmare på anpassningar på klientsidan för att förenkla hanteringen av servertjänster ytterligare.

Advertisements

Taggar:, , ,

One response to “Geosupportsystem IT-plattform – Installationsguide del 2”

  1. Anders J says :

    Om du vill höja säkerheten på PostGRES så kan du bara tillåta localhost, och sedan sätta upp en SSH-tunnel från den maskin som du vill ansluta från till den med PostGRES.
    Detta finns redan stöd för i programmet pgadmin 3.

    Då kan man inte komma åt PostGRES om man inte har ett konto på servern som det går att logga in på med SSH.

    I PostGRES så sätter man rättigheter på databaser med grupper och användare. Den enda skillnaden är att användare kan logga in, det kan inte grupper. Så då går det att skapa ett ”träd” eller grupper av rättigheter, där grupper och användare ingår. Ganska smidigt att exempelvis ha en grupp WEBUSERS som är alla användare som kommer åt databaser via webbprogram. Då kan man ha en användare per webbprogram, som ingår i gruppen.

    I övrigt så har du låst ned maskinen rätt bra.

    Tips: Adressen 0.0.0.0 eller 0::0 är alla nätverksanslutningar som är igång när programmet startar. Dvs enkelt sätt att lyssna på både localhost och maskinens ”riktiga” adresser.

    Tips: Kontrollera vilka anslutningar som är ingång med programmet nmap och netstat. Då ser man vilka portar som är öppna. För att kontrollera brandvägg, så behöver man köra nmap från annan maskin. Programmet netstat kontrollerar lokalt på maskinen vilka portar som program har öppna (innan brandväggen stänger).
    Prova netstat med: sudo netstat -l -n –ip -4 -6 -p
    # -l lyssnande -n nummeriska adresser och portar -ip bara ip ej sockets
    # -4 -6 IPv4 och IPv6 -p vilket program det är (fungerar bara från root)
    Prova nmap med: nmap -A -T4 minmaskin
    # -A identifiera OS och program -T4 hur lång tid det tar -6 scanna IPv6
    # minmaskin adressen som skall provas (det går även för nät), testa localhost

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s

%d bloggare gillar detta: