Reittisuunnitelma

2013-01-26 12.40.26Makuuhuoneen ovessa on ollut pitkään tuloste Pohjois- ja Etelä-Amerikasta, johon on saanut piirtää ja merkata haluamiaan kohteita.

Vuodenvaihteen jälkeen aloimme Kristan johdolla työstämään halutuista kaupungeista reittiä kasaan. Torstai 24.01. tilasimme liput ja näin ollen runko on lyötynä lukkoon. Allaoleva kuva on suunnittelustamme. Liitutaulu on lyömätön suunnittelutyökalu Smile

Liikkelle 24.08.2013 Helsingistä kohti New Yorkia. Washingtonin kautta Buffaloon, josta matka vie meidät Los Angelesiin, missä teemme pienen reissun kohti Grand Canyonia tämän jälkeen matkustellaan Chileen moikkaamaan tuttuja ja sieltä palataan Rio De Janeiron (sweeeeeet) kautta Suomeen niin että 11.10. 2013 olemme Helsingissä taas.

Lähtösuunnitelma

CRL

Viimeinen palanen mikä tarvitaan toimivan PKI rakenteen ylläpitämiseen on varmenteiden hylkäyslista (CRL) tai OCSP, joka puolestaan vastaa reaaliajassa varmenteen tilan.

CRL on vanha tuttu, joten aloitin sen kanssa. Itseasiassa CRL:n liittyvät asiat olin päättänyt jo juuri CA:ta tehdessä. CRL tulee löytyä osoitteesta crl.leivo.org. Jotta varmenteet toimivat ulkopuolellekin oikein on tuo crl.leivo.org julkisesti saavutettavissa. Se on itseasiassa tämä web palvelin. Toinen tärkeä huomioitava asia on, että sisäverkossa homman on toimittava myös, joten sisäverkossani crl.leivo.org onkin minun Microsoft Home server. Näinollen WLAN tunnistus, kun sinne saakka päästään, tulee toimivaan vaikka nettiyhteys olisikin kentässä jostain syystä.

OpenSSL on helppo virittää sylkemään pihalle CRL:ää. Minulla palvelin on viritetty sylkemään 30 minuutin välein uusi CRL. Tämä tarkoittaa sitä että varastettu/menetetty varmenne on käyttökelpoinen noin 30 minuuttia sen hylkäämisenkin jälkeen. OpenSSL luo normaalisti PEM muotoisia CRL:iä. Windows käyttäytyy kauniisti DER muotoisten CRL:n kanssa, joten valitse oma myrkkysi.

PEM: openssl ca -config testca.cnf -gencrl -out crl/Rootca-crl.pem
DER: openssl ca -config testca.cnf -gencrl -outform DER -out crl/LeivoI-CA.crl

kuten konfiguraatioista huomaa, minä sotkin PEM ja DER muotoja keskenään. Tämä siksi, että huomasin Windowsin ominaisuuden vasta myöhemmin Smile.

Tämän jälkeen skriptejä päivittämään CRL pitkin eri web palvelimia ja homma on kunnossa.

Kevyen taisteluväsymyksen vuoksi, en tässä vaiheessa konffaa OCSP:tä käyttöön. Se tulkoon myöhemmin.

Sub CA

Tämän operaation jälkeen voin alkaa jo käyttämään tätä rakennelmaa, eli luomaan varmeneita koneilleni. Ei ollut edes vaikea setti Open-mouthed smile.

Pohjatyöt

Samat kuin aikaisemmin katso OpenSSL ja CA:n luominen. Varsinainen konfiguraatiotiedosto:

Konfiguraatiotiedosto

Alku on pitkälti sama, muutetaan vaan määritykset täsmäämään uuteen hakemistorakenteeseen ja varmenteisiin.

#
# OpenSSL configuration for Leivo Sub CA
#

# This definition stops the following lines choking if HOME isn’t
# defined.
HOME            = .
RANDFILE        = $ENV::HOME/.rnd

####################################################################
[ ca ]
default_ca    = Leivo_sub        # The default ca section

############################# Defining CA ######################################
[ Leivo_sub ]

dir        = d:/temp/sub-testCA    # Where everything is kept
certs        = $dir/certs        # Where the issued certs are kept
crl_dir        = $dir/crl        # Where the issued crl are kept
database    = $dir/index.txt    # database index file.
new_certs_dir    = $dir/newcerts        # default place for new certs.

certificate    = $dir/Leivo_sub.pem    # The CA certificate
serial        = $dir/serial         # The current serial number
crlnumber    = $dir/crlnumber    # the current crl number
crl        = $dir/crl.pem         # The current CRL
private_key    = $dir/private/sub-ca.key # The private key
RANDFILE    = $dir/private/.rand    # private random number file
string_mask    = utf8only

######################## End of defining CA ####################################

Tästä kohtaa alkaa pääasialliset erot. Luulen, että yleensä allekirjoitan palvelimen SSL varmenteita, joten peruslaajennus, joka lisätään varmenteeseen on ssl_cert. Myönnän yleensä vuoden voimassaolevia varmenteita, joten default_days on 365. CRL on voimassa maksimissaan 3 päivää, ei vuoden kuten juuri CA:n kanssa.

#################### Defining certificate signing ##############################
x509_extensions    = ssl_cert        # The extentions to add to the cert
name_opt     = ca_default        # Subject Name options
cert_opt     = ca_default        # Certificate field options

crl_extensions    = crl_ext

default_days    = 365            # how long to certify for
default_crl_days= 3             # how long before next CRL
default_md    = sha256        # use public key default MD
preserve    = no            # keep passed DN ordering

policy        = policy_match

# For the CA policy
[ policy_match ]
countryName            = match
organizationName        = match
commonName            = supplied
emailAddress                   = optional

################## End of defining certificate signing #########################

Tässä kohtaa sisältö on jo täysin eri. Sub CA ei saa allekirjoittaa itselleen Sub CA, joten kaikki varmenteet ovat mallia basicConstraints= CA:FALSE. SSL_CERT on normaali SSL varmenne SSL palvelin laajennuksin. USR_CERT on käyttäjävarmenne SSL asiakas laajennuksin. OCSP on OCSP:n varmenne rakenne.

################## Certificate types #########################

[ ssl_cert ]
basicConstraints        = CA:FALSE
keyUsage            = critical, keyEncipherment, digitalSignature
extendedKeyUsage        = serverAuth
crlDistributionPoints     = URI:http://crl.leivo.org/LeivoICA-crl.crl
authorityInfoAccess         = OCSP;URI:http://ocsp.leivo.org:4444

[ usr_cert ]
basicConstraints        = CA:FALSE
keyUsage            = critical, nonRepudiation, keyEncipherment, digitalSignature
extendedKeyUsage        = clientAuth
crlDistributionPoints     = URI:http://crl.leivo.org/LeivoICA-crl.crl
authorityInfoAccess         = OCSP;URI:http://ocsp.leivo.org:4444

[ crl_ext ]
issuerAltName            = issuer:copy
authorityKeyIdentifier    = keyid:always

[ ocsp ]
basicConstraints        = CA:FALSE
subjectKeyIdentifier        = hash
authorityKeyIdentifier    = keyid:always,issuer
extendedKeyUsage        = critical, 1.3.6.1.5.5.7.3.9
crlDistributionPoints     = URI:http://crl.leivo.org/LeivoICA-crl.crl

################## End of Certificate types #########################

########################### Basic SSL request ##################################
[ req ]
default_bits            = 2048
default_keyfile         = privkey.pem
distinguished_name        = req_distinguished_name
req_extensions        = extensions
string_mask            = utf8only

[ req_distinguished_name ]
countryName            = Country Name (2 letter code)
countryName_default        = FI
countryName_min        = 2
countryName_max        = 2

0.organizationName        = Organization Name (eg, company)
0.organizationName_default    = Leivo.org

# get the DN name for the certificate
commonName            = Server FQDN
commonName_max        = 64

[ extensions ]
basicConstraints         = CA:FALSE
keyUsage             = critical, keyEncipherment, digitalSignature
extendedKeyUsage        = serverAuth
#subjectAltName         = @alt_names

[alt_names]
#IP.1 = 192.168.8.3        # Invalid according to CA/B forum
#DNS.2 = homeserver        # Invalid according to CA/B forum
#DNS.1 = home.leivo.org

######################### End basic SSL request ################################

CA hörskymään

Kun pohjatyöt ja konfiguraatiotiedosto on kohdallaan jäljelle jää enää CRL:n jatkuva julkaisu ja OCSP:n laittaminen päälle.

Auta toista

Pyöräilin keskiviikkoiltana yhdentoistamaissa kohti kotia, kun näin miehen makaamassa lumihangessa kävelytien reunalla. Pysähdyin ja kysyin onko kaikki OK? Hän päästyään pystyyn totesi suomalaiseen äijätyyliin, että hän on ihan kunnossa. Katsoessani miestä totesin hänen olevan vanhempi herrasmies ja “hyvässä maistissa”. Hyppäsin pois pyörän päältä ja kysyin kävisikö hänelle jos kävelen hänen kanssa kotiin. Hän hyväksyi tarjoukseni ja otin hänet käsikyykkään. Kävelimme 15-20 minuuttia hänen asunnolleen jutellen niitä näitä. Matkan aikana hän kyseli minulta “Mitä minä saan tästä?”, johon minä vastasin “Jos tilanne on koskaan toisinpäin, toivon että joku auttaa minua”. Hän matkan aikana toisti monesti “Olet hyvä ihminen”. Minulle myös paljastui että hän on lopulta vain pikkujoulujen uhri Smile.

Iltani kohokohta oli se hetki kun pääsimme hänen kerrostalon rappuun ja hän sai oven auki. Hän otti kasvoistani kiinni ja kiitti minua vielä kerran kertoen minulle kuinka hyvä ja harvinainen ihminen olen. Tuo toisen ihmisen kiitollisyys lämmitti sydäntäni valtavasti ja jää mieleeni pitkäksi aikaa. Tuon vuoksi kirjoitin tämän blogiviestin. Tahdon muille yhtä mahtavan fiiliksen! Auttakaa toista ihmistä, jos se vaan suinkin on mahdollista, se tunne auttamisen jälkeen on sanoinkuvaamaton.

PKI ratkaisun rakenne

Ennen kuin aloin sub CA:n kanssa työstämään ihan mahdottomasti, mietin hetken systeemin rakennetta.

Palvelin näkökulmaPKI ratkaisun rakenne

5 palvelinta:

– Juuri CA pääasiassa sammuksissa

– CRL palvelin, jonne kaikki CA:t julkaisee CRL:nsä. Tämä on normaali WEB palvelin.

– Sub CA, päällä oleva CA, jota voidaan käyttää varmenteiden allekirjoittamiseen

– RA palvelin, CA:n suoja, tähän loppukäyttäjät ottaa yhteyttä anoakseen varmenteita

– OCSP palvelin, tämä on CRL:lle rinnakkainen palvelu, se kertoo yksittäisen varmenteen statuksen pyydettäessä.

En vaivaudu rakentamaan RA:ta. Olen itse ainut systeemini asiakas. Se tarkoittaa että vain kolme palvelinta tarvii olla päällä. Todellisuudessa CRL ja OCSP mahtuu hyvin samalle koneelle, joten DNS aliaksia kehiin vaan. Näin saadaan aikaan että lopulta tarvitaan vain 2 konetta, sub CA ja hylkäysdataa ylläpitävä palvelin. Sub CA:n tulisi sijaita verkon syvimmässä nurkassa, karmean suojauksen takana, mutta valitettavasti sisäverkkoni on lättänä tällä hetkellä – asia mikä pitää korjata jossain vaiheessa. Kotikäytössä lopulta kaikki roolit voisivat olla samalla koneella…

PKI hierarkia

Luonnollisesti systeemissä on läjäpäin allekirjoitettuja varmenteita. Niiden luottorakenne menee näin.

PKI ratkaisun allekirjoitukset

Tästä rakenteesta meillä on toteutettuna jo Root CA ja sub CA. Seuraavaksi kartoitin mitä varmenteita tulen myöntämään sub CA:lta. Ilmiselviä on

  • OCSP varmenne
  • SSL palvelimen varmenne
  • SSL asiakkaan varmenne

tällä pohjalla päästään varmasti eteenpäin, joten seuraavaksi Sub CA:n konfiguroiminen.

OpenSSL ja CA:n luominen

Netistä saa metsästää oikein urakalla, että saa tarvittavat palaset CA:n luomiseen OpenSSL:llä. Peruspaketista löytyy kyllä CA:n konffis, mutta se on mielestäni ihan päin mäntyä. Minä tein CA:n omien tietämysteni ja CA/B forumin ohjeisiin pohjaten. Tällä päästään ratkaisuun, jonka pitäisi kantaa pitkälle.

Mietittävää

Avaimen koko: 1024 ei ole enää suositeltu CA:n avaimen koko (ref:NIST 800-57, part 3), 2048 riittää nykytietämyksen mukaan, 4096 on “varma”
Avaimen salasana: kaksi piippuinen juttu. Täysin automatisoitua CRL:n luontia varten salasana pitää syöttää skripteihin, joten kotionline CA:n avainta ei ehkä kannata salata. Toisaalta jos salasanaan menee, oleellista on valittu salausalgoritmi ja salasanan pituus. AES-128 bittinen vaatii kaveriksieen 23 merkkiä pitkän salasanan (a-z,A-Z,0-9 aakkosto), jotta salasana olisi yhtä vahva kuin  algoritmi. 25 vuotta voimassa oleva avain kaipaa järeämpää salausta ja vastaavasti useita kymmeniä merkkejä pitkän salasanan.
Allekirjoitusalgoritmi: MD5 on heikko, eikä suositeltava. SHA1 on yhtä vahva kuin 1024 bittinen avain. SHA256 on 2048:n kanssa oikea pari. Huomioitavaa on että SHA256 ei ole kaikkien vempainten tukema. Esimerkiksi 2010 vuoden Tomato firmwaressa oleva OpenVPN ei tue SHA256:sta. Vanhat älypuhelimet, eivät välttämättä tue ja näin lista jatkuu.

Nämä asiat kun on mietittynä lähdetään CA:n luontiin.

Pohjatyöt

Tarvitsemme OpenSSL:n  valitsemallemme käyttikselle. Linuxien tapauksessa pakettienhallinnasta löytyy, Windowsin tapauksesta täältä löytyy.
Seuraavanlainen hakemisto rakenne on tarpeen

/LeivoCA 
  |-/certs 
  |-/newcerts 
  |-/crl 
  |-/private

CA:n juurihakemistosta (/LeivoCA) pitää löytyä seuraavat tiedostot

index.txt 
index.txt.attr 
serial (tämän tiedoston sisältä pitää löytyä sarjanumero hex-muodossa, joten laita sinne vaikka 01) 
crlnumber (tämän tiedoston sisältä pitää löytyä sarjanumero hex-muodossa, joten laita sinne 00)

Hakemistoihin oikat pitää rajata hyvin hyvin tiukaksi. Root tai Administrator pääsy on ainut hyväksyttävä pääsy, jos kokee että CA:ta tulee ajaa jollain muulla tunnuksella, sille tarpeelliset oikat. Näiden käyttäjien oikeuksien lisäksi mitään muita oikeuksia hakemistoihin ei tule olla.

Konfiguraatiotiedosto

Tässä on konffitiedosto paloiteltuna osiin. Tämä konfiguraatiotiedosto on tarkoitettu vain juuriCA:lle. Varsinaisen tiedoston löydät täältä.

Tässä osuudessa määritellään kotihakemisto ja tiedostojen sijainti. Korjaa hakemistot täsmäämään tarpeisiisi.

# 
# OpenSSL configuration for Leivo Root 
#
# This definition stops the following lines choking if HOME isn't 
# defined. 
HOME            = . 
RANDFILE        = $ENV::HOME/.rnd
#################################################################### 
[ ca ] 
default_ca    = Leivo_Root        # The default ca section
############################# Defining CA ###################################### 
[ Leivo_Root ]
dir        = d:/temp/testCA    # Where everything is kept 
certs        = $dir/certs        # Where the issued certs are kept 
crl_dir        = $dir/crl        # Where the issued crl are kept 
database    = $dir/index.txt    # database index file. 
new_certs_dir    = $dir/newcerts        # default place for new certs.
certificate    = $dir/Leivo_Root.pem    # The CA certificate 
serial        = $dir/serial         # The current serial number 
crlnumber    = $dir/crlnumber    # the current crl number 
crl        = $dir/crl.pem         # The current CRL 
private_key    = $dir/private/root-ca.key # The private key 
RANDFILE    = $dir/private/.rand    # private random number file 
string_mask    = utf8only

######################## End of defining CA ####################################

Tässä osuudessa määritellään yleisesti ottaen varmenteen allekirjoittamiseen liittyvät palaset. Laajennukset, nimeämiskäytännöt, CRL voimassaolo aika, allekirjoitusalgoritmi.

#################### Defining certificate signing ############################## 
x509_extensions    = v3_ca        # The extentions to add to the cert 
name_opt     = ca_default        # Subject Name options 
cert_opt     = ca_default        # Certificate field options
crl_extensions    = crl_ext
default_days    = 3650            # how long to certify for 
default_crl_days= 365             # how long before next CRL 
default_md    = sha256        # use public key default MD 
preserve    = no            # keep passed DN ordering
policy        = policy_match
# For the CA policy 
[ policy_match ] 
countryName        = match 
organizationName    = match 
commonName        = supplied 
emailAddress               = optional

################## End of defining certificate signing #########################

Tämän osuuden jälkeen määritellään laajennukset. Tässä tulee se varsinainen pihvi varmenteille.

v3_ca_root –osuus määrittelee juurivarmenteen. Olen rajannut juuren alla olevien CA:n määrän yhteen (pathlen:1)

v3_ca –osuus on subCA:lle tarkoitettu osuus.  Pathlen on 0, sillä subCA:lla ei voi alla olevia CA:ta. SubCA:lle on myös määritelty CRL, mikä on juuriCA:n CRL.

[ crl_ext ] 
  authorityKeyIdentifier    = keyid:always
[ v3_ca_root ] 
  subjectKeyIdentifier        = hash 
  authorityKeyIdentifier    = keyid:always,issuer 
  basicConstraints         = CA:true, pathlen:1 
  keyUsage             = cRLSign, keyCertSign, digitalSignature
[ v3_ca ] 
  subjectKeyIdentifier        = hash 
  authorityKeyIdentifier    = keyid:always,issuer 
  basicConstraints         = critical, CA:true, pathlen:0 
  crlDistributionPoints     = URI:http://crl.leivo.org/Rootca-crl.pem
########################### Basic SSL request ################################## 
[ req ] 
  default_bits        = 2048 
  default_keyfile     = privkey.pem 
  distinguished_name    = req_distinguished_name 
  req_extensions    = extensions 
  string_mask        = utf8only
[ req_distinguished_name ] 
countryName            = Country Name (2 letter code) 
countryName_default        = FI 
countryName_min            = 2 
countryName_max            = 2
0.organizationName        = Organization Name (eg, company) 
0.organizationName_default    = Leivo.org
# get the DN name for the certificate 
commonName            = Server FQDN 
commonName_max            = 64
[ extensions ] 
  subjectKeyIdentifier        = hash 
  basicConstraints         = critical,CA:true, pathlen:0 
  keyUsage             = cRLSign, keyCertSign, digitalSignature

######################### End basic SSL request ################################

Juuren, sub:n ja CRL:n luonti

Juuren avaimen luonti

openssl genrsa -aes256 -out testCA\private\root-ca.key 4096

Juuren itse itsensä allekirjoittaminen

openssl req -new -x509 -days 9125 -key testCA\private\root-ca.key -out testCA\Leivo_Root.pem -extensions v3_ca_root -sha256 -config testca.cnf

CRL:n luominen

openssl ca -config testca.cnf -gencrl -out testCA\crl\Rootca-crl.pem

SubCA:n luonti

openssl req -out subca.csr -pubkey -new -keyout subca.key -config testca.cnf

SubCA:n allekirjoittaminen

openssl ca -config testca.cnf -extensions v3_ca -out subca.crt -infiles subca.csr

Juuren sammuttaminen

Lopuksi kopioidaan koneelta ulos

  • Leivo_Root.pem (JuuriCA:n varmenne)
  • Rootca-crl.pem (JuuriCA:n CRL)
  • subca.key (SubCA:n privaattiavain, TÄMÄ SIIRRETÄÄN, ei kopioida!)
  • subca.crt (SubCA:n varmenne)

Ja näin, iso työ on tehty. Seuraavaksi subCA:n konffaus, ensimmäiset SSL varmenteet, automaattinen CRL julkaisu ja muu työ.

Kunnon kotiverkon alkupiste on oma CA

Työni Nokialla on vienyt minut syvälle, syvälle PKI ihmeelliseen maailmaan. Nyt kun kenkäisin kotiprojektit käyntiin katsoin omaa varmennetoteutustani. Käytän varmenteita OpenVPN:n kanssa. Käytän varmenteita Slicen ja Home serverin HTTPS yhteyksissä. Käytän “kaupallista” varmennetta Slicen kanssa ja Home serverin kanssa käytin mitä Microsoft näki hyväksi asentaa koneelle. Tuohan on surullista mieheltä, jonka päivätyössä vuosia säädettiin varmenteita. Niinpä käärin hihat ja aloitin Leivo.org PKI järjestelmän miettimisen.

Luonnollisesti sen tulisi olla vähintään 2 tasoinen. Yksi sammuksissa oleva juuriCA, jonka CRL olisi voimassa vuoden kerrallaan. Juuren alla olisi 1-3 käynnissä olevaa CA:ta, jotka julkaisevat CRL:n joka olkoon voimassa 3 vuorokautta kerrallaan. Täysin tolkullinen kotikäyttöön tarkoitettu pikku hierarkia. Haluan tehdä tämän mahdollisimman helposti ja lähelle minun näkemystä oikeasta. Valitsin työkalukseni OpenSSL:n, sillä siitä minulla on aikaisempaakin kokemusta. Heti tämän valinnan jälkeen törmäsin nimeämisongelmaan, miten nimeän CA:ni ja vielä tärkeämmin miten nimeän koneet joita tästä syntyy? Kehitin ongelman ratkaisuksi nimeämiskäytännön, josta blogimerkintä löytyykin. Sitten aloin ajattelemaan eri rooleja eri CA:lle… Tässä kohtaa mieleeni tuli KISS (Keep It Simple Stupid). Jos rehellisiä ollaan, selviän varmaan vain kahdella käynnissä olevalla CA:lla. Yksi kappale OpenSSL:llä tehtyjä CA:ta, joka antaa palvelimien SSL ja  ja VPN:n tunnistusvarmenteet, sekä muita mahdollisia varmenteita, mitä en vielä ole kuvitellut. Toinen CA on Microsoft CA, joka on tiukasti kiinni AD:ssani jakaen laitevarmenteita, joilla mahdollistetaan kodin langattomaan verkkoon 802.1X tunnistautuminen ja myöhemmin kotiverkon NAC.  Tästä luonnollisesti päästään RADIUS palvelin tarpeisiin, mutta siitäkin myöhemmin. Tärkeintä on että olen nyt päässyt ymmärrykseen, että tarvitsen vain kolme CA:ta kotiverkkoani varten.

JuuriCA – Leivo Root CA

Alkuspeksit CA:lle oli nämä:

  • Voimassa 25 vuotta
  • 4096 bittinen avain
  • SHA256 allekirjoitus algoritmi
  • CRL on voimassa vuoden kerrallaan

JuuriCA on kaiken ankkuri ja se mitä firma/yksilö haluaa eniten suojata. Sen avulla voidaan allekirjoittaa muita CA:ta, joilla taasen voidaan allekirjoittaa mitä vaan ja luottamusketju säilyy. HSM olisi se oikea tapa mennä, mutta ne maksavat vähän liikaa näinkin vakavaan kotikäyttöön Smile. Näin ollen on aika virittää tinahattu päähän ja miettiä mitä vähillä varoilla voidaan tehdä avaimen suojaamiseksi.

Kyseessä on lähes vuoden kerrallaan sammuksissa oleva laite/ohjelmisto (CRL oli voimassa vuoden). Kyseinen CA on täysin verkoton, se ei tarvitse nettiä mihinkään. Tässä pikaresepti oman juuriCA:n rakentamiseen – käyn konfiguraatiotiedostot eri kirjoituksessa läpi.

  1. Polta valitsemasi Linux distribuutio levylle (oma valintani Ubuntu 12.04 LTS)
  2. Asenna Linux koneelle, mikä on täysin irti kaikista tietoverkoista
  3. Valmistele itsellesi osoite missä CRL voi levätä (esim. http://crl.leivo.org/Rootca-crl.pem)
  4. Asenna ja konfiguroi OpenSSL
  5. Tee avain, varmenne ja ensimmäinen CRL
  6. Polta varmenne ja CRL CD:lle. (Tinahattu HUOM. USB tikkuja ei voi käyttää, sillä ne ovat RW mediaa ja voivat sisältää vaikka mitä.)
  7. Turvaa CA (Tinahattu temppu! Kotikäytössä tämä temppu on ehkä inan verran yliampuva…)

 

a) Polta CA:n hakemistosta DVD ja laita kone tai kovalevy sekä DVD turvalliseen talteen (Tinahattu HUOM. turvapussit luovat luotettavuutta käytettäessä logeja sekä useita varmistavia henkilöitä)

 

b) Polta kaksi DVD:ta CA:n hakemistosta ja laita DVD:t turvalliseen talteen. Aja boot & nuke muutamalla kerralla satunnaista ylikirjoitusta koneen kovalevylle (ref. Gutmann method). Nyt konetta levyineen voidaan käyttää uudelleen muihin tarkoituksiin.

Luonnollisesti vaihtoehdossa B pitää aina asentaa uudestaan käyttöjärjestelmä ja OpenSSL kun pitää allekirjoittaa uusi CA tai uusi CRL, mutta toisaalta se ratkaisu ei ole laitesidottu (Tinahattu HUOM. vikasietoisuus! \o/)

Ja näin minulla on ensimmäinen palvelin läjästä palvelimia suunniteltuna.

Nimeämiskäytäntö

Säätämisen myötä tulen asentelemaan paljon koneita ja aikaisemmasta kokemuksesta tiesin, että hyvin nopeasti jään jumiin palvelimien nimiin. Tästä on syytä päästä ohi nopeasti, joten otin apuihin työkokemukseni.

Palvelimien nimeämiskäytäntö

  1. Nimet tulee olla määrämittaisia. Olkoon mitta 10 merkkiä
  2. Nimistä tulee selvitä palvelimen sijainti. Olkoon 2 ensimmäistä kirjainta kaupungin 2 kirjainta (esimerkiksi TU = Turku)
  3. Nimestä tulee selvitä onko palvelin fyysinen vai virtuaalinen. Olkoon yksin kirjain varattuna tähän. P = fyysinen, V = virtuaalinen
  4. Palvelimilla on käyttötarkoitus tai lempinimi, sen tulee selvitä nimestä. Olkoon kolme kirjainta varattuna tähän määritykseen. (esimerkiksi ESX = VMware ESX palvelin)
  5. Palvelimia on kahta mallia, kehityskoneet ja tuotantokoneet, laadunvarmistus jääköön väliin tässä kevyessä kotirakennelmassa. Olkoon yksi kirjain varattuna tähän. P = tuotanto, D = testi/kehitys
  6. Palvelimia saattaa olla useita samaa tarkoitusta varten tai uudelleenasennettuna monta kertaa. On hienoa tietää montako kertaa tämäkin on tullut tehtyä. Olkoon kolme viimeistä numeroa juokseva “versionumero”.

Näin saamme VMware ESX palvelimilleni nimet TUPESXP001 ja TUPESXP002.

Hyvin nopeasti tulen törmäämään tilanteeseen, jossa minulla on useita eri käyttäjätilejä hallittavana, tämä tulee olemaan ongelma. Kehitin tähänkin työkalun

Käyttäjätilien nimeämiskäytäntö

Tilin nimen mitta on satunnainen. Tilin nimi muodostuu käyttäjän etunimen ensimmäisestä kirjaimesta ja sukunimestä yhdistettynä. Sikäli tulee törmäystilanne, uudemmat tilit nimetään lisäämällä .X missä X on juokseva numero. Esimerkiksi minun tili on jleivo

Sikäli käyttäjän tili on ylläpitotili tulee käyttäjän tilin nimen eteen tulee lisätä _. Esimerkiksi minun ylläpitotilin on _jleivo.

CMDB

Tämä laitemäärä ja tilimäärä lähtee lapasesta kuin viritetty tossumopo minun käsistä kesäasvaltilla – Mies jää selälleen maahan ja ihmettelee mitä tapahtui. Ratkaisu tähän on CMDB. Valitettavasti kuuden (6) tunnin säätämisen ja kahden eri ilmaisen CMDB ohjelmiston jälkeen palasin käyttämään Exceliä. Se kelvatkoon toistaiseksi. Pystyn laajentamaaan sitä tarvittaessa. Se näyttää tältä:

Name Creation date Purpose Disposal date OS Last patching date Physical host Notes
               

Säätöalusta

Työpäivän jälkeen, istuessani auton takapenkillä matkalla kohti kotia, ajatus riivaa minua. Ajatus on oman pilven (owncloud) rakentaminen. Otan puhelimeni esiin, laitan sen 10” näytön sisälle, yhdistän sen näppäimistöön. Nyt kun minulla on pieni läppäri avaan VPN yhteyden kotiin, kirjaudun reitittimelle ja Home serverille. WOL käskyt liikkeelle ja TUPESXP001 herää henkiin. Home serverin kautta luon uuden Linux pohjaisen virtuaalikoneen aikaisemmin tekemäni Linuxpohjan avulla TUPESXP001:lle. Virtuaalikoneen bootattua pystyyn otan yhteyden siihen puhelimeni SSH ohjelmalla ja alan asentamaan. Turkuun päästyämme oma pilvi on pystyssä omassa sisäverkossani ja työpöytäohjelmisto on asennettua virtuaali Windows 7 koneelle (TUVW07D001). Olen tyytymätön, ohjelmiston versio Ubuntun repoissa oli vanha. Pitää käsin alkaa säätämään.

Viikko takaperin tein oikeasti noin. Puhelimeni on Asus Padfone. Kotini reititin on Buffalon WHR-G125, missä on Tomato firmware OpenVPN variaatiolla. Kellarissa lepää Atom pohjainen Microsoft Home Server, sekä 2 kappaletta räkkipalvelimia, nimeltään TUPESXP001 ja TUPESXP002. Näissä pyörii VMwaren ESXi ilmainen versio. Yläkerrassa nukkuu Nightmare, pääkoneeni – täysin valmiina palvelemaan jos tarve tulee. Tämä koko paketti mahdollistaa säätämisen mistä vain milloin vain ja tätä olen halunnut kauan. Nyt vain aika on säätämiseni rajoitteena.

Suunnitelmissani on lisätä laitteistoa ainakin parilla vanhalla läppärillä ja vähän muullakin raudalla. Home server pitää uusia, verkkolaitteisto on vanhaa…Kerron tästä myöhemmin

Mites vihreät arvot? – Ne on kovassa huudossa tässä taloudessa. Talossa aina hereillä on vain läjä verkkolaitteita netin ja sisäverkon ylläpitämiseen sekä Home server. Kaikki muut laitteet nukkuvat tai ovat sammuksissa ja herätän ne WOL:n avulla tarvittaessa.

Yksinkertaistettuna se näyttää tältä

Simple home

Mitä sä oikein teet tuolla?!

TyöpisteOtsikon mukainen kysymys on ollut vuosia riesanani. Kysymys yleensä tulee esiin hieman sen jälkeen kun henkilö on nähnyt sen hetken pääkoneeni. (kuva vieressä).

“Sä varmaan pelaat paljon” “Koodaat”… Itseasiassa en juurikaan pelaa, pelaan lähes ainoastaan MökkiLAN:lla. WoT on ensimmäinen peli vuosiin, jota pelaan merkittäviä määriä LANien ulkopuolella. En myöskään koodaa mitään kieltä. Osaan skriptata Windowsin komentorivikielellä, VBscriptillä sekä Linuxin bashilla. Mitä hittoa sitten oikein teen tällä koneella? Olen aikaisemmin vastannut “Säädän, säädän asioita”. Se on aikalailla kenraalitason vastaus. Täysin oikein ja täysin hyödytön. Nyt kun olen miettinyt asiaa enemmän, voisin sanoa että ratkon ongelmia kuten joku ratkoo sanaristikoita tai sudokuja, minä ratkon ongelmia. Mitä ongelmia? Mitä päähän pälkähtää. Saan idean tehdä jotain ja sen jälkeen alan tekemään. Tärkeintä on tekeminen ja ongelmien ratkominen, jonkin lopputuloksen aikaan saaminen, ei sen hyödyllisyys tai “järjellisyys”. Järjellisyys on suhteellista.

Nyt olen saanut säätöalustani sille tasolle mistä olen vuosia unelmoinut. Nyt ajattelin Epin inspiroimana alkaa kertomaan maailmalle mitä minä säädän.  Pyrin kirjoittamaan näitä aina säätöpäivän päätteeksi ja välillä vähän pahan päivän varalle.