Skip navigation

http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013

Valitse kaksi näistä
a) Tee deb-paketti, joka asentaa tekemäsi shell scriptin
b) Tee deb-paketti, joka muuttaa toisen paketin asetustiedostoa (divert, vaikea)
c) Allekirjoita paketit tai varasto
d) Etsi wepistä vanha “Linux palvelimena” koe ja ratkaise se
e) Kokeile PupeSoftia Ubuntulla

Yllä olevista tehtävistä päätin tehdä tehtävät a. ja c.

Tein kotitehtävän virtualisoituna. Virtualisointialustana toimi VMware Workstation 9. Virtualisoituna käyttöjärjestelmänä oli Xubuntu 12.10 64-bittinen versio.

Isäntäkoneen tiedot:

  • Prosessori: Intel Ivy Bridge i7-3770S, LGA1155, 3.1GHz
  • Näytönohjain: MSI GeForce GTX 660 Ti WindForce 2, 2GB GDDR5 192bit
  • Emolevy: Asus P8Z77-V LE, LGA1155, Intel Z77, DDR3, ATX
  • Kovalevy: OCZ 120GB SSD, Vertex 3
  • Muisti: Kingston HyperX 16GB, DDR3 1600MHz
  • Virtalähde: Corsair 650W 650TX v2
  • Käyttöjärjestelmä: Windows 8 Pro x64

A) Tee deb-paketti, joka asentaa tekemäsi shell scriptin

Alku

Aloitin tehtävän päivittämällä repositoriot ja asentamalla uusimmat versiot ohjelmista.

$ sudo apt-get update && sudo apt-get upgrade

Tämän jälkeen asennettiin equivs, jota tarvittaisiin .deb -paketin luomiseen

$ sudo apt-get install equivs

Equivsin asentamisen jälkeen loin työpöydälle uuden kansion ja sinne nanolla luotiin pieni skripti, joka kyselee iän, nimen ja tulostaa palautteen nimestä.

$ mkdir skripti

$ cd skripti

$ nano toughscript

Skriptin sisältö oli seuraava:

#!/bin/bash

echo “Welcome!”
echo “This is script for asking name and age”
echo “Please enter your name:”
read name
echo “Please enter your age:”
read age
echo “Your name’s $name and you’re $age years old.”

if [ $name = “Juuso” ]
then
echo “You are one tough guy, $name!”
else
echo “Dude, get a better name!”
fi

Seuraavaksi oli aika muodostaa cfg-tiedosto, jonka pohjalta lopulta .deb -paketti luotaisiin. Tämä onnistui evuivs-control -komennolla.

$ equivs-control toughscript.cfg

Muokkasin oletukseen verrattuna vain packagea, maintaineria ja filesia. Alimmalla rivillä Files-kohdassa määritellään käytettävän skriptin nimi ja kansio, mihin lopulta asennettu skripti sijoitetaan. Tässä tuloste koko .cfg-tiedostosta:

### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: misc
Priority: optional
# Homepage: <enter URL here; no default>
Standards-Version: 3.9.2

Package: juusos-toughscript
# Version: 0.1
Maintainer: Juuso Pääkkönen <nomail@here.com>
# Pre-Depends: <comma-separated list of packages>
# Depends: <comma-separated list of packages>
# Recommends: <comma-separated list of packages>
# Suggests: <comma-separated list of packages>
# Provides: <comma-separated list of packages>
# Replaces: <comma-separated list of packages>
# Architecture: all
# Copyright: <copyright file; defaults to GPL2>
# Changelog: <changelog file; defaults to a generic changelog>
# Readme: <README.Debian file; defaults to a generic one>
# Extra-Files: <comma-separated list of additional files for the doc directory>
Files: toughscript /usr/bin/

Tämän jälkeen tehtiin skriptistä debian-paketti:

$ equivs-build toughscript.cfg

Seuraavaksi oli aika asentaa skripti:

$ sudo dpkg -i juusos-toughscript_1.0_all.deb

Operaatio sujui ongelmitta ja seuraavaksi olikin vuorossa itse skriptin kokeileminen.

$ toughscript

skripti

Nyt skriptin pystyi ajamaan mistä tahansa kansiosta vain kirjoittamalla skriptin nimen.

C) Allekirjoita paketit tai varasto

Päätin allekirjoittaa ylemmän osion shell skripti -paketin. Aloitettiin tehtävä luomalla avain.

$ gpg –gen-key

Edellämainitulla komennolla aukesi pieni ohjelma, jossa kysyttiin haluttu salausalgoritmi, sen pituus. Lisäksi täytettiin henkilötiedot ja salasana.

Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)

Valittiin kohta 4. eli pelkkä RSA-allekirjoitus.

Seuraavaksi määriteltiin RSA-avaimen pituus. Valitsin 2048 bittiä. Avain olisi voimassa seuraavat 5 vuotta.

RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)

Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 5y

Täytettiin nimi ja sähköposti ja hyväksyttiin annetut tiedot. Avaimelle annettiin myös salasana.
Harjoituksessa ei pitänyt levittää pakettia verkossa muiden kanssa, joten julkisen avaimen säätöihin ei koskettu millään tavalla.

Asennettiin dpkg-sig -työkalu repositorioista.

$ sudo apt-get install dpkg-sig

Siirryttiin allekirjoittamaan paketti. Nyt piti antaa äsken määritelty salasana.

$ dpkg-sig –sign builder juusos-toughscript_1.0_all.deb

salaus

Tämän jälkeen paketti oli allekirjoitettu salaisella avaimella.

Signed deb juusos-toughscript_1.0_all.deb

Tarkasteltiin vielä debian-pakettia strings-komennolla

$ strings juusos-toughscript_1.0_all.deb

Komennolla saatiin esiin kohdat:

—–BEGIN PGP SIGNED MESSAGE—–
Hash: SHA1
Version: 4
Signer:
Date: Mon Mar 11 11:21:49 2013
Role: builder
Files:
3cf918272ffa5de195752d73f3da3e5e 7959c969e092f2a5a8604e2287807ac5b1b384ad 4 debian-binary
3066c675df88d612f4976940cb6d1f0a 0edebde57b649c4a7301cfc803d3e28916098e75 514 control.tar.gz
984c79f45e3b8b4a23ff973ada631fcb f536cc03f505f0ed891a2f4dd14051494e6b45ba 1601 data.tar.gz
—–BEGIN PGP SIGNATURE—–
Version: GnuPG v1.4.11 (GNU/Linux)
iQEcBAEBAgAGBQJRPiC9AAoJELkPrLm6GiLmb+UH/11tPtQ7Cf9QWT2b5aWe9BRt
iOo+mVj1a9e5LjxUYmBTU1RCyw1W0nb0qUIwVimzgJoUkIXvysmf1nbnO9u7dRM6
BVvE6LbzSsDOaUe8aTN+rzRyOiPVD76eqgTVY+92GnHzVVa45+DNg7Y6h1DOfni4
AUSpG2wqnhW4QIwXa7Kn9bI2t+TgY9L5ZGixC6KEcLix9i/qsIH+Bk1uS+eo56bq
u8KPRBh5pgkZWSs5+Y3bzEMlbcN/pkPJGjsO/3WIu5b2s2ZLgPx1xM7ksPWvd2In
JvOwGUvy11km2sfQ/KJSMvEXWSF2RlaT+NzzTR8/5/JOezctyeqqOdyCJDU+xiA=
=JBke
—–END PGP SIGNATURE—–

Paketti oli nyt siis onnistuneesti allekirjoitettu.

Lähteet:

http://blog.jonliv.es/2011/04/26/creating-your-own-signed-apt-repository-and-debian-packages/ <- Pakettien allekirjoittaminen

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: