Alix s debianem klfree kendyedition

Z HKfree wiki
Přejít na: navigace, hledání

/dev/sdd je pro vzor a predstavuje zapojenou cfkartu v systemu.

Aktualni verze

Stahnuti image disku

kendy temp # wget http://igw.hkfree.org/download/cf2gb_20091122.img
--2009-05-11 19:56:40--  http://igw.hkfree.org/download/cf2gb_20091122.img
Překládám igw.hkfree.org… 89.248.240.28
Navazuje se spojení s igw.hkfree.org|89.248.240.28|:80… spojeno.
HTTP požadavek odeslán, program čeká na odpověď… 200 OK
Délka: 563200000 (537M) [text/plain]
Ukládám do: „cf2gb_20091122.img“.

100%[===================================================>] 563 200 000 3,17M/s   za 3m 39s

2009-05-11 20:00:19 (2,46 MB/s) – „cf2gb_20091122.img“ uloženo [563200000/563200000]

Upload image na CFkartu

kendy temp # cat cf2gb_20091122.img > /dev/sdd

Misto cat lze pouzit dd if=soubor.img of=/dev/sdd

Když nemám linux? .. Instalace pomocí physdiskwrite z windows

Stáhnu si prográmek physdiskwrite, který umí zapisovat obraz disku fyzicky na disk (bez ohledu na formát disku disk natvrdo přepíše). Program physdiskwrite funguje když je CF karta zasunuta do CF IDE adaptéru (CF se hlásí jako hard disk už v BIOSu) nebo když je CF karta zasunuta do USB-CF čtečky nebo PCMCIA-CF adaptéru (disk "poznají" až Windows). Physdiskwrite pak spolu s obrazem disku nahraj do jedné složky a zadej příkaz skrz CMD:

physdiskwrite.exe název image (příklad physdiskwrite.exe cf2gb_20091122.img) 

physdiskwrite má i svoji GUI verzi, je lepší použít právě tu physdiskwrite download

potom vyber správný disk (rozhodně to nebude 0 !!! ve čtečce jsem ho měl jako disk 2) a physdiskwrite ti na něj zapíše obraz disku (chvíli to trvá). Na CF kartě máš nahranej systém a v pc routeru/alixu ho můžeš z CF karty nabootovat.

pozn.: Pokud nemám linux, rovnou můžu přeskočit na Boot, zvetseni partyšny bez linuxu nejde.

Zvetseni prvni partisny

Jelikoz je image velky, tak aby se vesel na 512MB kartu, budem asi pri dnesnich podminkach pri pouziti 1 ci 2GB karte chtit roztahnout prvni partisnu. To lze v nekolika krocich:

  • donutit kernel načíst nové rozdělení CF karty

Pro znovunačtení rozdělení CF karty ji vyjmeme ze čtečky a vložíme zpět. Jinak se nepodaří v následujícím kroku uložit správná data. Pro ověření že je vše v pořádku provedeme testovací připojení svazku:

[root@boudicka klfree-kendy]$mount /dev/sda2 /media/usbdisk 
[root@boudicka klfree-kendy]$df -h /media/usbdisk
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              47M   24M   21M  54% /media/usbdisk
[root@boudicka klfree-kendy]$mount|grep sda2
/dev/sda2 on /media/usbdisk type ext3 (rw)
[root@boudicka klfree-kendy]$umount /media/usbdisk/
  • sejmuti conf partisny do souboru
kendy temp # dd if=/dev/sdd2 of=cf2gb_20090110-config.img
98304+0 vstoupivších záznamů
98304+0 vystoupivších záznamů
50 331 648 bajtů (50 MB) zkopírováno, 7,75824 s, 6,5 MB/s
  • zvetseni /dev/sdd1

spustime cfdisk:

kendy temp # cfdisk /dev/sdd

KLfreeDebian cfdisk1.png
vidime ze volne misto je 502,27MB z celkoveho 1014MB, conf partisna zabira(la) 50,34MB
proto odstranime /dev/sdd2 i /dev/sdd1 a bez ukladani ihned vytvorime novou /dev/sdd1.
Novy, primarni s velikosti 964MB, zbyde 50,60MB, na tomto zbylem mistu udelame druhou primarni partisnu s nabizenou velikosti. Nakonec dame ulozit.
Rozdeleni bude vypadat priblizne, tak jako na tomto obrazku:
KLfreeDebian cfdisk2.png

  • Provedem resiznuti filesystemu (data nam tam zustala)
kendy temp # e2fsck /dev/sdd1
e2fsck 1.41.2 (02-Oct-2008)
/dev/sdd1: obnovuji žurnál
/dev/sdd1: čistý, 12396/114240 souborů, 227135/451184 bloků
kendy temp # resize2fs /dev/sdd1
resize2fs 1.41.2 (02-Oct-2008)
Resizing the filesystem on /dev/sdd1 to 941424 (1k) blocks.
Systém souborů na /dev/sdd1 je nyní 941424 bloků dlouhý.


  • vraceni conf partisny na /dev/sdd2
kendy temp # cat cf2gb_20090110-config.img > /dev/sdd2

kendy temp # resize2fs /dev/sdd2
resize2fs 1.41.2 (02-Oct-2008)
Resizing the filesystem on /dev/sdd2 to 49408 (1k) blocks.
Systém souborů na /dev/sdd2 je nyní 49153 bloků dlouhý.

opet misto cat soubor > partisna lze pouzit dd if=soubor.img of=/dev/sdd2

  • Priprava hotova, muzem cfkartu zasunout do Alixe a bootovat.

Prvni boot

Defaultni ip v tomto image je 192.168.2.2/24
uzivatel: root
heslo: root

  • pristup na konzoli pres seriovy port:

rychlost serioveho portu je 38400. Pro pristup napr. pres /dev/ttyS0 a prikaz screen:

screen /dev/ttyS0 38400

Pozor, pokud pujdete napoprve ihned pres ssh, tak pocitejte s tim, ze login bude hodne zdlouhavy, protoze v zakladu router ma ip 192.168.2.1 a nebude nikam routovat, tj. nebude resolvovat. Ten dlouhy login bude zpusoben timeoutem pri prekladu. Staci pak nastavit IP/masku/branu/dns server tak, aby router resolvoval, a dalsi login na ssh bude uz standartni rychlosti.

  • boot v PC-like routeru

Pro boot v PC routeru je treba zmenit vystup kernelu do VGA, to je treba upravit soubor /boot/grub/menu.lst odstraněním "console=ttyS0,38400" z popisu kernelu, který bootuje
Defaultne je nastaven boot tak,ze kernel hlasky jsou presmerovany do serioveho portu a na VGA bude videt jen uncompressing Linux

  • uzamykani/odemykani cf karty

Jelikoz toto je upravena distro pro beh z CF karty, je na ni defaultne system v rezimu RO, pro zapis configu je treba si partisny remonuntit na RW a to takto:
remountovat / partition na RW: mount -o remount rw,noatime /
premountovat config partition na RW: mount -o remount rw,noatime /conf/perm
po ulozeni configu premountovat nazpet na RO:
remountovat / partition na RO: mount -o remount,ro /
premountovat config partition na RO: mount -o remount,ro /conf/perm


apt-get

  • Pro stazeni baliku pres apt-get, je treba si zvetsit /var, aby se tam vesly listy. Duvod proc je /var pro bezne pouzivani malej, je ten, ze bezi v RAM a aby nebylo zabrano zbytecne moc RAM => zbylo neco na samotny system.
[root@alix ~]# df -h /var
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  35M   15M   20M  43% /var
[root@alix ~]# umount -l /var/
  • Edituju /etc/fstab a přepíšu velikost u adresáře /var na požadovanou velikost např.:
tmpfs           /var            tmpfs   size=63000k,defaults    0 0
  • A pokračuju dále
[root@alix ~]# mount /var/
[root@alix ~]# df -h /var
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  62M     0   62M   0% /var
[root@alix ~]# cp -a /conf/perm/skel/var/ /
[root@alix ~]# df -h /var
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  62M   14M   49M  22% /var
[root@alix ~]#
  • Zmente si datum na aktualni, aby debian nevypisoval chyby s gpg.
[root@alix ~]# date
Sun Jan  2 07:12:47 CET 2000
[root@alix ~]# ntpdate -v ntp.hkfree.org
 2 Jan 07:18:09 ntpdate[24522]: ntpdate 4.2.0a@1:4.2.0a+stable-2-r Fri Aug 26 10:30:13 UTC 2005 (1)
 28 Jun 03:24:32 ntpdate[24522]: step time server 10.107.3.1 offset 330894382.268481 sec
[root@alix ~]# date
Mon Jun 28 03:24:39 CEST 2010
[root@alix ~]#
  • Nyni je vse pripraveno pro pouziti apt-get
[root@alix root]# apt-get update
Get:1 http://ftp.cz.debian.org etch Release.gpg [394B]
Get:2 http://ftp.cz.debian.org etch Release [67.8kB]
Get:3 http://security.debian.org etch/updates Release.gpg [197B]
Get:4 http://security.debian.org etch/updates Release [37.6kB]
Ign http://ftp.cz.debian.org etch Release
Ign http://security.debian.org etch/updates Release
Get:5 http://ftp.cz.debian.org etch/main Packages [4282kB]
Get:6 http://security.debian.org etch/updates/main Packages [329kB]
Get:7 http://security.debian.org etch/updates/contrib Packages [7805B]
Get:8 http://security.debian.org etch/updates/non-free Packages [3614B]
Fetched 4728kB in 21s (221kB/s)
Reading package lists... Done
  • po skonceni prace s apt-get je treba si zazalohovat databazi apt/dpkg protoze /var bezi z RAM a pri bootu se kopiruje jeho obsah z /conf/perm/skel/var:
cp -p /var/cache/apt/pkgcache.bin /conf/perm/skel/var/cache/apt/
cp -a /var/lib/dpkg/ /conf/perm/skel/var/lib/ 

Vzorove skripty pro start wifi:

  • Mod Client
#Zrusit predchozi ath0 (default po nahrani modulu je mod managed)
wlanconfig ath0 destroy
#Vytvorit novej ath0 do modu klient
wlanconfig ath0 create wlandev wifi0 wlanmode sta
#Nastavit ESSID
iwconfig ath0 essid test.hkfree.org
#Nastavit mod 5GHz
iwpriv ath0 mode 1
#Nahodit interface do stavu UP
ifconfig ath0 up
#Nastavit rychlost
iwconfig ath0 rate 54Mbit
#Nastavit vzdalenost
athctrl -i wifi0 -d 4000
  • Mod AP
#Zrusit predchozi ath0 (default po nahrani modulu je mod managed)
wlanconfig ath0 destroy
#Vytvorit novej ath0 do modu AP
wlanconfig ath0 create wlandev wifi0 wlanmode ap
#Nastavit ESSID
iwconfig ath0 essid test.hkfree.org
#Nastavit mod 5GHz
iwpriv ath0 mode 1
#Nastavit kanal
iwconfig ath0 channel 128
#Nahodit interface do stavu UP
ifconfig ath0 up
#Zvysuje to stabilitu
iwpriv ath0 uapsd 0
#Nastavit rychlost
iwconfig ath0 rate 54Mbit
#Vypnout background scan, snizuje to load masiny
iwpriv ath0 bgscan 0
#Nastavit vzdalenost
athctrl -i wifi0 -d 4000
  • Mod WDS (lze pouzit na plne transparentni linku)
    • Pro to aby mohla byt plne transparentni linka, je treba mit v sytemu bridge napr br0 a v nem interface (napr) eth0 ath0
#R1 
#(prikladna MAC adresa ath0 je: 00:00:00:00:00:01)

#Zrusit predchozi ath0 (default po nahrani modulu je mod managed)
wlanconfig ath0 destroy
#Vytvorit novej ath0 do modu wds(repeater)
wlanconfig ath0 create wlandev wifi0 wlanmode wds
#Nastavit mod 5GHz
iwpriv ath0 mode 1
#Nastavit kanal
iwconfig ath0 channel 140
#Pridat MAC R2
iwpriv ath0 wds_add 00:00:00:00:00:02
#Nahodit wds
iwpriv ath0 wds 1
#Nastavit vzdalenost
/usr/bin/athctrl -i wifi0 -d 2000
#Nahodit interface do stavu UP
ifconfig ath0 up


#R2 
#(prikladna MAC adresa ath0 je: 00:00:00:00:00:02)

#Zrusit predchozi ath0 (default po nahrani modulu je mod managed)
wlanconfig ath0 destroy
#Vytvorit novej ath0 do modu wds(repeater)
wlanconfig ath0 create wlandev wifi0 wlanmode wds
#Nastavit mod 5GHz
iwpriv ath0 mode 1
#Nastavit kanal
iwconfig ath0 channel 140
#Pridat MAC R1
iwpriv ath0 wds_add 00:00:00:00:00:01
#Nahodit wds
iwpriv ath0 wds 1
#Nastavit vzdalenost
/usr/bin/athctrl -i wifi0 -d 2000
#Nahodit interface do stavu UP
ifconfig ath0 up

Zabezpeceni WIFI

AP s podporou WPA2

Pridame radek do /etc/wifi/athX.sh, kde X je cislo interface

hostapd /etc/hostapd/hostapd-athX.conf -B

A obsah hostapd-athX.conf muze byt napriklad nasledujici

interface=athX
bridge=wifiY
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=1
ssid=MOJEHKFEREAP.hkfree.org
wpa=2
# do tohoto souboru zadame pro kazdeho klienta jeho MAC a nasledne klic v HEX - bezpecna asociace klient/zarizeni
wpa_psk_file=/etc/hostapd/clients_ps
# pouzivame pre-shared secret
wpa_key_mgmt=WPA-PSK
# nejdrive WPA1 a pokud nekdo vyzaduje, tak i CCMP (WPA2)
wpa_pairwise=TKIP CCMP
wpa_group_rekey=600
wpa_gmk_rekey=86400
rsn_preauth=1
rsn_preauth_interfaces=athX

AP s podporou WPA2 jako hotspot pro cleny HKF

Nejdrive pridame dalsi interface viz napriklad

wlanconfig athX destroy
# asi nejdulezitejsi prikaz, ktery dela ten trik ...
wlanconfig athX create wlandev wifiY wlanmode ap
iwconfig athX essid MOJE_AP.hkfree.org
iwconfig ath2 channel Z
ifconfig ath2 up
sleep 3
hostapd /etc/hostapd/hostapd-athX.conf -B
iwpriv ath2 uapsd 0
iwconfig ath2 rate 54Mbit
iwpriv ath2 bgscan 0

hostapd-athX.conf

# je treba pridat dalsi interface na stejnem kanale, pokud nechceme zbytecne blokovat dalsi kartu
interface=athX
# ktere karta
bridge=wifiY
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
debug=0
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=1
ssid=HOSTPOT-XXX.hkfree.org
# pouzije se autentizace pres radius
macaddr_acl=2
#auth_algs=3
ieee8021x=1
auth_algs=1
eap_server=0
eapol_key_index_workaround=1
###Radius Setup
own_ip_addr=10.107.0.81
nas_identifier=nejake-ap.hkfree.org
auth_server_addr=10.107.251.8
auth_server_port=1812
auth_server_shared_secret=testing123
acct_server_addr=10.107.251.8
acct_server_port=1813
acct_server_shared_secret=testing123
###WPA
wpa=1
wpa_key_mgmt=WPA-EAP
# povoleno jen WPA2 (plne 802.11i)
wpa_pairwise=CCMP
wpa_group_rekey=300
wpa_gmk_rekey=640

DHCP server

návod pro debian je zde DHCP server na Debianu

  • balíček dhpc3-server vyžaduje při instalaci použití utility mktemp, ta není součástí základního systému, musíte ji tedy předem nainstalovat!
apt-get install mktemp

SNMP server

  • Musíme mít nainstalovaný snmpd
  • Nakonfigurovat /etc/snmp/snmpd.conf
  • V /etc/default/snmpd u snmpd options odmazat 127.0.0.1 jinak server poběží pouze na localhostu!

iptables

V default instalaci jsou již předpřipravená některá pravidla omezující šíření nejznámějších win červů. Můžete si definovat jakákoli svoje pravidla.

  • uložení nadefinovaných pravidel iptables:
iptables-save > /etc/network/iptables

Soubor /etc/network/iptables je vytvořen aplikací iptables-save, což je program na extrakci pravidel iptables do snadno parsovatelného tvaru. Z tohoto souboru se pravidla loadují při bootu. Vždy když provedete změnu v pravidlech nezapomeňte je takto uložit!

Protějšek je iptables-restore, který pravidla načítá (iptables-restore < /etc/network/iptables)

quagga

  • Musím mít nainstalovanou quaggu, ospf a zebra (základní instalace je obsahuje)
  • Nakonfiguruju /etc/quagga/ospfd.conf a /etc/quagga/zebra.conf
  • V /etc/quagga/debian.conf u zebra_options a ospfd_options odmažu "-A 127.0.0.1" jinak servery poběží jen na localhost!
  • Spustím quaggu, pokud mám všechno nakonfigurované a zapojené správně zebra mi naplní routy.

V dalsi verzi pripravuji:

  • prikaz rw, ro - nahrazujici rucni vypisovani mount -o remount

Docasne si kazdy muze skripty napsat sam:

/sbin/rw

 mount -o remount,rw,noatime /
 mount -o remount,rw,noatime /etc

/sbin/ro

 mount -o remount,ro,noatime /
 mount -o remount,ro,noatime /etc


Pozor, pri vytvareni se musite nejprve rucne prepnout do RW rezimu a nezapomente nastavit prava x pro dane soubory:

 [root@alix sbin]# chmod 755 /sbin/r[ow]
 [root@alix root]# ls -la /sbin/r[ow]
 -rwxr-xr-x 1 root root 63 Jan  1 01:08 /sbin/ro
 -rwxr-xr-x 1 root root 63 Jan  1 01:07 /sbin/rw
  • bacula-fd - klient pro zalohovaci system

Postřehy z instalace (C-R-E-A-T-I-V-E)

  • Než budete dělat cokoli s ethernetem (nastavovat IP apod.), nejlépe ještě úřed prvním bootem, smažte obsah souboru /etc/udev/rules.d/70-persistent-net.rules kromě komentáře na začátku viz. Cloning_Worker_Nodes podnadpis "Clearing out Current Udev MAC Information" udev pak bude přiřazovat ethernetům jména od nuly (eth0, eth1, atd.).
  • Uložení iptables: (nejdříve přemountovat na rw)
 iptables-save > /etc/network/iptables

Alix vs. kernel 3.x

Po nástupu Debianu 7 (a jeho derivátů jako Ubuntu, Voyage, apod.), který je standardně vybaven kernelem 3.x nastal problém. Kernel 3.x pro i686 architekturu totiž vyžaduje, aby CPU HW podporoval tzv. PAE (physical address extension) což je funkce celkem dobře známá díky problému omezení adresace paměti na 32bitových OS, u Windows je to omezení pouze softwareové, už i první 32bit Pentia Pro (první i686 CPU) uměly adresovat víc než 32bitů, tedy 4GiB, ale MS asi v zájmu podpory 64bit CPU toto u svých non-server Windows měl. Každopádně linux 686 kernel 3.2.x "pae" vyžaduje, ale bohužel CPU AMD Geode v Alixu toto neumí. Jsou 2 možnosti co s tím, buď mít na Alixu starší systém, upgradovat na novější, ale nechat si starý kernel (2.6.x) nebo použít distribuci, která obsahuje kernel kompatibilní s non-pae CPU neboli podporuje CPU s architekturou 386/486/586, to je např. Linux Mint (nezkoušel jsem).

Upgrade z Debian 6 na Debian 7

Toto je řešení problému kdy upgradujeme na Debian Wheezy, ale necháme si starý kernel.

  • Současný systém pomocí apt-get update & apt-get upgrade aktualizujeme na nejnovější verzi všech balíčků, které jsou obsaženy v Debian Squeeze.
  • Přepíšeme zdroje balíčků ze Squeeze na Wheezy - v /etc/apt/sources.list nahradíme všude "squeeze" za "wheezy" jako např. "deb http://ftp.cz.debian.org/debian/ wheezy main" atd.
  • Pomocí apt-get update & apt-get upgrade necháme systém upgradovat na verze balíčků přítomné v distribuci Wheezy, to zabere klidně i několik desítek minut.
  • Příkazem apt-get dist-upgrade provedeme upgrade distra z 6 na 7.
  • Nyní budou v systému nainstalované 2 kernely, 2.6.32 a 3.2.x ovšem update grubu způsobí, že kernel 3.2.x bude na prvním místě a systém bude chtít bootovat s tímto kernelem což se pochopitelně nepovede (stane se kernel panic čico, každopádně Alix se bude neustále dokola rebootovat).
  • V konfigu grubu musíme upravit aby se nám by default spouštěl kernel 2.6.32, jak na to:
    • V /etc/default/grub je položka "GRUB_DEFAULT=číslo" ta reprezentuje kolikátý záznam ze seznamu systémů vypsaných v grubu se má spouštět pokud při bootu nějak nezasáhneme ručně a ručně si nespustíme nějakou jinou položku, číslování začíná od nuly - když se má vybrat první záznam v /etc/default/grub bude GRUB_DEFAULT=0, jak zjistit jaké číslo použít:
    • V /boot/grub/grub.cfg jsou řádky začínající "menuentry" kde je poté z závorce vypsáno co se má vypsat v menu ze kterého jde vybrat který systém se má spustit, jde o jednoduchou posloupnost, záznamy jsou řazené odshora dolů, pokud tedy záznam který potřebujeme, ten s kernelem 2.6.32 je třetí, víme že GRUB_DEFAULT se má rovnat 2 (začíná se od nuly) ten správný záznam bude něco jako: 'Debian GNU/Linux, with Linux 2.6.32-5-686'.
  • Nakonec se musí grub konfigurace "zkompilovat" příkazem update-grub.
  • Dáme reboot, pokud se všechno podařilo nový systém najede a pak si můžeme příkazy lsb_release -a zkontrolovat, že jsme v Debianu 7 Wheezy a přákazem uname -a, že běžíme stále na kernelu 2.6.32.

Není to dokonalé řešení, ale je to jednodušší než instalovat nový systém.

Debian 7 a i586 kernel

Druhé čistší řešení je nainstalovat nový systém s i586 kernelem, kde specifikace architektury ještě neměla PAE, použít jde např. Linux Mint či Linux Voyage, které jsou vždy založené na i586 kernelu, s debianem to jde taky jen se při instalaci musí použít expertní režim a jedna z položek na výběr je právě který kernel se má použít, v instalaci je to označeno jako kernel 486 nebo 868, když se vybere 486 nainstalovaný systém má pak kernel i586 (nonPAE), nepodařilo se mi dohledat které z instalaček obsahuje oba kernely, tak sem poižil tu největší DVD instalačku.