lunes, 26 de noviembre de 2012

Zelan arindu konpilazioak FreeBSDn (ccache)

FreeBSD erabiltzaileok ohituta gaude gure sistema osoak konpilatzen. Askotan nahiko prozesu luzea izaten da, adibidez mahaigaina berkonpilatu behar dugunean (bertsio berria dela eta). Prozesu hauek arintzeko tresna interesgarriak dauzkagu, adibidez ccache.


Ccache tresnak aurrememoria batean sartzen du C/C++ konpilazioen irteerak, hurrengo batean konpilatzen bada, emaitzak aurrememoriatik hartuko dira, konpilazio hori ekiditen. Hau askotan izugarri arintzen du birkonpilazio denbora. FreeBSDn tresna hau erabiltzeko aukera daukagu, beraz erabil dezagun!


Lehenik eta behin ccache instalatu behar dugu:


# cd /usr/ports/devel/ccache
# make install clean

Behin instalatuta /etc/make.conf fitxategira hurrengo aldaketak gehituko dizkiogu:


.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*))
.if !defined(NOCCACHE)
CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1}
CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1}
.endif
.endif

csh erabiltzen badugu (normalean horrela izango da, root erabiltzailearen shell-a aldatzea ez baita batere gomendagarria) aldaketa batzuk egin beharko dizkiogu /etc/csh.cshrc fitxategira, gure ccache erabiltzeko. Garrantzitsua da CCACHE_DIR ezartzea, horretan egongo baita gure aurrememoria. Normalean /usr partizioa handiena da, beraz hor jarriko dugu (defektuz Giga 1eko tamaina dauka):


setenv PATH /usr/local/libexec/ccache:$PATH
setenv CCACHE_PATH /usr/bin:/usr/local/bin
setenv CCACHE_DIR "/usr/.ccache"

Eta… prest!!! Zelan ari den egiten eta bere estatistikak ikusi nahi baditugu, “ccache -s” komandoa exekutatu besterik ez dugu egin behar


Normalean ez dugu arazorik izango ccache erabiltzen, baina… arazorik badugu port bat konpilatzeko honela saia gaitezke:


make NO_CCACHE=yes install clean

Gauza bera egingo dugu ‘make buildworld’ exekutatzean arazorik badugu:


make NO_CCACHE=yes buildworld

domingo, 25 de noviembre de 2012

Zelan instalatu unbound DNS server FreeBSDn

Unbound konfiguratzeko erreza da. Instalatzeko, ohikoa den moduan, ports sistema erabilko dugu:


# cd /usr/ports/dns/unbound
# make install

Unbound zerbitzariak badauka root DNSko zerbitzarien zerrenda bere iturburuan, baina badaezpada erabiliko dugu eguneratuta dagoen zerrenda bat.


Zerrenda hau INTERNICetik jaitsiko dugu eta jarriko dugu /usr/local/etc/unbound direktorioan, non unbound-eko konfigurazio artxibo guztiak izango dira, beraz:


# cd /usr/local/etc/unbound
# fetch ftp://FTP.INTERNIC.NET/domain/named.cache

Unbound.conf konfigurazio fitxategian erabiliko dugu jaitsitako fitxategia, root-hints direktibarekin.


Unbound-ek DNSSEC erabil dezake, baina horretarako root zerbitzariaren gakoa beharko dugu. Honetarako fitxategi bat sortuko dugu, root.key, horretan zerbitzariaren gakoa izango dugu. Fitxategi hau sortzeko, errazena unbound-anchor tresna da:


# /usr/local/sbin/unbound-anchor -a "/usr/local/etc/unbound/root.key"

Honekin dagoeneko has gaitezke /usr/local/etc/unbound/unbound.conf fitxategia egokitzen. Erabil dezakegu direktorio berean dagoen unbound.conf.sample artxiboa.


Artxibo hori nahiko ondo komentatuta dago eta konfiguratzeko erraza. Eredu moduan hauxe izan daiteke gure unbound.conf fitxategia:


server:
root-hints:"/usr/local/etc/unbound/named.cache"
auto-trust-anchor-file:"/usr/local/etc/unbound/root.key"
interface: 192.168.0.1
interface: 127.0.0.1
outgoing-interface: 192.168.0.1
access-control: 127.0.0.0/8 allow
access-control: 192.168.0.0/24 allow
logfile:"/var/log/unbound.log"
verbosity: 1
statistics-interval: 86400
statistics-cumulative: yes

local-zone: "example.com." static
local-data: "a.example.com. IN A 192.168.0.13"
local-data: "b.example.com. IN A 192.168.0.16"
local-data-ptr: "192.168.0.13 a.example.com"
local-data-ptr: "192.168.0.16 b.example.com"

forward-zone:
name: "anotherexample.com"
forward-addr: 192.168.0.11


Eredu honetako zehaztasun batzuk:


  • root-hints: Direktiba honekin lehen jaitsitako fitxategia root zerbitzari helbideekin

  • auto-trust-anchor-file: DNSSEC egiaztatzeko artxiboa kargatzen dugu honekin

  • interface: Honekin unbound zein helbidetan entzun behar duela azaltzen dugu

  • outgoing-interface: Zein interfaze erabili behar duen root zerbitzariei kontsultak egiteko, normalean internetera konektaturik dagoena erabiliko dugu

  • access-control: Honekin zein makinek kontsulta dezakete gure DNS zerbitzaria murrizten dugu.

  • local-zone, local-data, local-data-ptr: Hauekin barneko DNS gisa konfiguratzen dugu.

  • forward-zone: Honekin unbound zein zerbitzarietara kontsulta behar duen zehazten dugu domeinu konkretu baterako. Root zerbitzarietara kontsultatu beharrean, honekin beste zerbitzarietara kontsultatzeko agindua ematen diogu. Mota honetako direktiba anitzak egon daitezke, domeinu ezberdinetarako.

sábado, 24 de noviembre de 2012

Zelan sortu SSL zertifikatuak FreeBSDn

FreeBSDn SSL zertifikatuak sortzea oso erraza da, eta horretarako, nola ez, ports sisteman laguntzaile baten bat topatuko dugu, gure kasuan script txiki bat, security/ssl-admin.


Beraz, instalatuko dugu:


 # cd /usr/ports/security/ssl-admin
# make install clean

Port berak bukatzean abisua emango digu ssl-admin.conf fitxategia editatzeko ssl-admin lehenengo aldiz exekutatu baino lehen. Baliatuko gara ssl-admin.conf.default gure konfigurazio artxiboa sortzeko.


# cd /usr/local/etc/ssl-admin
# cp ssl-admin.conf.default ssl-admin.conf

Artxibo honetan gure lehenetsitako gakoaren konfigurazioa zehaztuko dugu. Fitxategiak itxura hau dauka:


 ## Set default values here.  
#
# The following values can be changed without affecting
# your CA key.

$ENV{'KEY_SIZE'} = "1024";
$ENV{'KEY_DAYS'} = "3650";
$ENV{'KEY_CN'} = "";
$ENV{'KEY_CRL_LOC'} = "URI:http://CRL_URI";


## WARNING!!! ##
#
# Changing the following values has vast consequences.
# These values must match what's in your root CA certificate.

$ENV{'KEY_COUNTRY'} = "COUNTRY";
$ENV{'KEY_PROVINCE'} = "STATE/PROVINCE";
$ENV{'KEY_CITY'} = "CITY";
$ENV{'KEY_ORG'} = "ORGANIZATION";
$ENV{'KEY_EMAIL'} = 'EMAIL_ADDRESS';

  • KEY_SIZE: Gakoaren luzera, bits-etan, gutxienez 1024 bitekoa izan behar da, baina VPN baterako erabiltzeko asmoa badaukagu 2048 edo balio altuago bat ezarriko dugu.

  • KEY_DAYS: Zenbat egun iraunduko duen gure gakoak iraungi baino lehen. 

  • KEY_CN: Zertifikatuaren lehenetsitako Common Name, normalean hutsik uzten da, ssl-admin exekutatzean eskatuko baitigu.

  • KEY_CRL_LOC: Gure CRL (Certificate Revokation List) helbide publikoa. Ssl-admin momentuz ez da gai CRLa bidaltzeko beste sistema batera, baina honekin zertifikatu guztietan helbide hori gordeko dugu.


Behin ezarpenak gordeta, ssl-admin script-a exekutatuko dugu:

 # ssl-admin

Lehenengo aldiz exekutatzean CA root zertifikatu berria sortzeko eskatuko digu. Aurretik badugu kokapena ezartzeko aukera emango digu. Gure kasuan zertifikatu berri bat sortu beharko dugu ziurrenik. Kontuan izan behar dugu:


  • Zertifikatuko jabearen izenean ezin ditugu hutsuneak, letra larriak edo karaktere bereziak erabili

  • BETI babestu behar dugu gure CA zertifikatua pasahitzaz

  • Ohartuko gara aukera gehienak balio bat izango dutela. Balio hauek editatutako ssl-admin.conf fitxategikoak dira.

Behin sortuta gure CA root zertifikatu honelako menua ikusiko dugu:


 This program will walk you through requesting, signing,
organizing and revoking SSL certificates.

 ssl-admin installed Sun Nov 25 16:02:33 CET 2012

=====================================================
# SSL-ADMIN #
=====================================================
Please enter the menu option from the following list:
1) Update run-time options:
Common Name:
Key Duration (days): 3650
Current Serial #: 01
Key Size (bits): 1024
Intermediate CA Signing: NO
2) Create new Certificate Request
3) Sign a Certificate Request
4) Perform a one-step request/sign
5) Revoke a Certificate
6) Renew/Re-sign a past Certificate Request
7) View current Certificate Revokation List
8) View index information for certificate.
z) Zip files for end user.
dh) Generate Diffie Hellman parameters.
CA) Create new Self-Signed CA certificate.
S) Create new Signed Server certificate.
q) Quit ssl-admin

Menu Item:

Agertzen diren aukerak ez dute azalpenik behar.

viernes, 23 de noviembre de 2012





Batzutan naturak paisaia izugarriak oparitzen dizkigu, edozein unetan, edozein tokitan. Gaur goizean egunsenti eder bat gozatzeko aukera izan dut, hirian bertan, esnatu eta hau ikustea hobetzeko zaila da.