.rpm paketi installeerimine/update'mine ja uninstall. |
Installeerimiseks/update'miseks: $ rpm -Uvh paketi_nimi NB: kui teatab, et juba on, aga ikkagi ei tööta, siis lisa ka --force. Uninstalleerimiseks: $ rpm -e paketi_nimi NB: paketi lõpust jäta ära arhitektuuri tähised (.i386, .athlon vms) ja .rpm. Juba installeeritud paketid saab teada, kui kribad $ rpm -qa | less Ehk kui otsid midagi täpsemat (näiteks Mozillat), siis $ rpm -qa | grep mozilla Kui on olemas miski fail (N: /bin/echo), aga ei tea mis paketist see pärineb $ rpm -qf /bin/echo |
LILO
paigaldamine kõvakettale,
näiteks kui winXX on suutnud järjekordselt MBRi
puhtaks teha.
http://www-128.ibm.com/developerworks/library/l-bootload.html?ca=dgr-lnxw01LILOandGRUB |
Bootida 'root'
floppy diskilt ja tulevale promptile kirjuta: rescue root=/dev/hdaX ro kus X on gnu/linuxi root partitsioon ehk '/' partitsioon (vaata "Failisüsteem"). Kui massin on tööle hakanud, sa oled end root'ina sisse loginud, siis kirjutad lilo ja loodetavalt ongi jälle kõik korras. Eelnev meetod töötas vististi viimati RedHat 6.2'ga ja uuemad on selle rescue värgi segasemaks/paremaks? teinud ning seepärast ise kasutan Slack 7.1 bare.i bootdiski: mount root=/dev/hdaX ro NB: Slack 7.1 floppy kettalt bootimine ext3'e (alates RedHat 7.3'st?) ei tööta ning seega kasuta RH enda bootketast ("Bootdisk") ning käsk tulevale promptile tuleb kribada kujul: linux root=/dev/hdaX ro PS: LILO konfiguratisioon on failis /etc/lilo.conf ning sisu on midagi sarnast: prompt timeout=50 default=linux boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message lba32 image=/boot/vmlinuz-2.4.7-10 label=linux initrd=/boot/initrd-2.4.7-10.img read-only root=/dev/hda3 Uue kerneli image lisamiseks tuleb lihtsalt kopeerida see image= alune osa ning muuta vastavalt nimed. label= annab nime millega LILO antud imaget tähistab ning default= näitab, mis image bootimisel vaikeväärtusena kasutusse läheb. NB: Ei ole mul õnnestunud massinat bootida kettalt, mis on ühendatud näiteks IDE Secondary Masterisse, sest massina bootimisel BIOS/kernel/... sihikindlalt väidab, et massin bootis /dev/hda'lt, aga tegelikult on /dev/hdc. Ainuke võimalus on bootida floppylt (sama kehtib ka GRUBi kohta). Single mode keelamine ehk massinale ligipääsu keelamine isegi juhul kui klaviatuur on saadaval: http://lists.suse.com/archive/suse-linux-e/2002-Oct/0849.html http://www.desktop-linux.net/root-password.htm |
Massina tapmiskäsud. |
$ halt seiskab massina; $ poweroff halt + püüab ka voolu välja võtta; $ reboot halt + restart; |
Näitab kõiki masinas jooksvaid protsesse. |
kõik protsessid
massinas: $ ps -aux | less massinat koormavad protsessid saad: $ top kill käsuga saab protsessidele vee peale tõmmata (pid on protsessi number). -9 kiire surm: $ kill -9 pid -15 ootab väljumist: $ kill -15 pid PS: Protsessidega tegelemiseks peab sul olema vastavad õigused ehk kirvereegel: root teeb, mis tahab. NB: kill'iga saab ka muid asju teha: $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1 35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5 39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX -19 protsessi peatamine: $ kill -19 pid -18 protsessi taaskäivitamine: $ kill -18 pid |
Kui
kasutamisel peab pidevalt mingisugust rida sisestama, et
miski korralikult töötaks (N: teed telneti winXX
masinast GNU/linuxi box'i ja pead peksma TERM=vt100, et pine
üldse töötaks). |
Kodukataloogis olevasse
faili kas .bash_profile või .profile sisestada: TERM=vt100; export TERM Käskudele võib ka alias'e kirjutada (alias rm='rm -i' - teatab ikka ka mida kustutab), et nende kasutamiseks vähem kirjutama peaks. Lisaks on ka kasutaja PATH ehk kataloogide tee milles asuvad käivitatavad failid on jooksvale kasutajale kättesaadavad ilma täit teed nendeni andmata. Näiteks: PATH=$PATH:$HOME/bin lisad sellele tuleb teha ':' kasutades: PATH=$PATH:$HOME/bin:/sbin |
Kui editoriks olev vi ootamatus kohas ründab ja mõistus otsa saab, siis näiteks joe'st peaks ikka abi olema. |
.profile või
.bash_profile või .bashrc (root saab globaalselt kehtestada
/etc/bashrc) sisesta: EDITOR=joe; export EDITOR VISUAL=joe; export VISUAL PS: Selline väärtuste määramine kehtib kõiksugu muutujate kohta, vaata näiteks käskude set ja env tulemit. |
Et
saaks masinat rahumeeli konfida (single mode). |
Bootimisel LILO's
kirjuta: linuxi_image_nimi_mis_lilos_kirjeldatud S Bootimisel Grub'is: 1. Vali nimekirjast sobiv kernel; 2. Vajuta 'a'; 3. Vajuta [tyhik]; 4. Vajuta '1'; 5. Vajuta [enter]; |
Script
kellaaja ja kuupäeva võrgust küsimiseks ehk ka
kellamajandus. |
#-8<--------Cut
here------- #!/bin/bash /usr/sbin/ntpdate ntp.lth.se /sbin/hwclock --systohc #-8<--------Cut here------- PS: See kellamajandus on üldse üks segane asi, aga: 1) Eesti asub EET ajavööndis; 2) Lihtsam viis on ajavööndiks määrata "Europe/Tallinn"; 3) Märgi "System clock uses UTC"; 4) Ning kellaaega pane küsima miskist serverist, näiteks ntp.lth.se. NB: RedHat 8.0'is on ajamajandus täielikult puus, aga olukord paraneb kui uuendad ("Progeste upgrade/install/uninstall/... (RPM)") pakki redhat-config-date. Värskeimad versioonid RedHat'i pakkidest leiad: ftp://ftp.redhat.com/pub/redhat/linux/rawhide/i386/RedHat/RPMS/. |
Kui
up2date miskipärast "segmentation fault"'i viskab või
muidu miskeid müstilisi vigu kurdab. |
0) Veendu, et
võrk on töökorras. 1) Veendu, et see massin on ikka registreeritud (rhn_register --nox), RedHat'i public_key on paigas (miskil hetkel see up2date või rhn_register ütleb kuidas sa selle key saad) ja massin ise on ka entitlement'itud (rhn.redhat.com). 2) Kustuta selle massina registreering rhn.redhat.com'is ning registreerid selle massina uuesti. 3) Kustuta kõik failid kataloomas /var/spool/up2date/. Seni ei ole ma kohanud ühtegi massinat, mida nende võtetega pole saanud ravida. (*** Aga siiski on juhtunud, et miskid massinad ei allu up2date'misele nendest liigutustest hoolimata - isegi rhn_register ei võta enam jutule. Sellisel juhul on lahenduseks olnud update cd plaadilt. ***) PS: konsoolilt saab ka seda up2date't kohandada: $ up2date-nox --configure ning up2date konsoolilt $ up2date-nox -u PS1: Kui on soov upgradeda miskiks teiseks RedHat versiooniks, aga ei viitsi ise cdrom'iga jännata, siis "up2date-nox --configure" all on "Version Override", mis tuleks vastavaks panna (näituseks 7.3) ning, siis up2date käivitada. PS1a: RedHat 7.3.93 alates ei ole selline upgrade enam võimalik, aga samas saab sellest probleemist üle kui selle massina profiil kustutada rhn.redhat.com süsteemist, muuta "Version Override"= selliseks nagu tahad (näituseks 8.0), registreerida see massin uuesti (up2date-nox --register) ning alles siis alustada tegevusi "up2date-nox -u"ga. PS2: Kuna uuele versioonile üleminekul võivad miskid softijupid (paketid) üldse kasutuselt kadunud/miskisse teise paketti kolinud olla, siis (halvemal juhul) tuleb ka natuke rpm -e'd kasutada ("Progeste upgrade/install/uninstall/... (RPM)"). NB: Uuemal ajal on up2date asemele/kõrvale tulnud uued programmid, mis saavad softiuuendusega hakkama - apt-get, synaptic, yum, ... |
Ketta
kiiruse mõõtmiseks. |
X - ketas, mida
testid (a,b,c,...): $ hdparm -Tt /dev/hdX |
Failisüsteemi
tabel. |
Failis /etc/fstab on
failisüsteemi tabel. Näiteks: /dev/hda5 / ext3 defaults 1 1 /dev/hda1 /boot ext2 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/hda2 swap swap defaults 0 0 Vaata ka "Partitsioonimajandus" (kõik NBd annavad lisateavet) & "Ketta lisamine/laiendamine" 2. osa näide. Näiteks Win partitsiooni ühendamiseks vaata: http://www.vendomar.ee/%7Eivo/mount.html |
Terve
HDD kopeerimine ühelt kettalt
teisele. |
Midnight Commander (mc/midc)
ei kopeeri(nud) failide õigusi ja linke korralikult
ning seepärast sai kogenumalt kaasvõitlejalt abi
küsitud... Tulemuseks oligi selline skript: $ mount /dev/uusketas /mnt/mingiasi $ cd / $ tar cf - kõik_kataloogid_ja_failid_juurikas_va_proc_ja_mnt | (cd /mnt/mingiasi;tar xvfp - ) NB0! Kõik partitsioonid tuleb kopeerida eraldi ehk $ df ja/või "Failisüsteem"on abiks. NB1! kataloogide eraldajaks on tühik. NB2! /mnt kataloogi kopeerides võib tekkida rekursiooni oht, juhul kui teine ketas on mount'itud /mnt alla (/mnt kataloog oma sisuga tuleks eraldi teha uuele kettale). NB3! /proc kataloog kindlasti uuele kettale teha, muidu ei suuda bootida. NB4! Ketta kopeerimisel vaata, et oleks täidetud "Partitsioonimajandus" NB3'e alune tingimus. NB5! Miski näide on "Ketta lisamine/laiendamine" 2. osas. |
13. Projekt:
Kuidas Adaptec 2400A driverid RH7.X alla käima saada. Kuna esialgne eesmärgiks oli Adaptec 2400A RAID kontrolleri käimasaamine RH7.2'ga, siis sai seda elukat torgitud vasakult ja paremalt. Kaardi leidis ilma lisapingutusteta üles küll ja pidas dpt_i2o mooduli kaudu selle küljes olevaid IDE kettaid SCSI ketasteks, aga kuna Adapteci manualid järjekindlalt väitsid "kui ei ole tehtud lowlevel formatit või miskit ZAP'i miskise raidutil jubinaga, siis ei ole asi hea mette" ning seega saatsin kirjakesi Adapteci suunas ja seda teemadel, et kas ja kuidas saab RH7.2 (2.4.9-13) asja tööle, aga need seal panid vastu, et kasuta ikka unofficial RH7.1 (kernel 2.4.2-2) mooduleid ja ei midagi enamat. Egas midagi püüdsin vägisi sellele raipele seda utiliiti selgeks teha, aga ei midagi head. Siin on siis katse RH 7.1'ga. |
Katse RH7.1 (kernel
2.4.2-2): #see ametlik draiver on valele kernelitele, aga on vajalik, et sm_linux_v314_install.rpm rahule jääks. $ rpm -Uvh aar2400_linux_v221_drv.rpm #see on mitteametlik draiver 2.4.2-2 kernelile $ tar -xzpf dptdriver.tgz $ cp -R usr / $ cd /usr/adaptec/i2o_driver/ $ ./install.sh --noinitrd # nüüd siis storage manager 3.14, mis on küll RH7.0, aga kuna muud pole, siis ehk kõlbab $ rpm -Uvh sm_linux_v314_install.rpm Ja ei midagi erinevat: ei õnnestu miskit teha selle va raidutil'iga, mis asub kataloomas /usr/dpt/, aga eks vaatab, mis edasi saab. (Väidetavalt on Adapteci draiverid selle kaardi jaoks ametlikult alates kernelist 2.4.10 sees, aga ei ole viitsinud asja uuesti näppida.) Uuendus: RedHat 7.3 on juba kerneliga 2.4.18 ning see raidimajandus töötab täiesti! |
14. Uuele
kettale GNU/Linux'i partitsioonid. http://www.linuxplanet.com/linuxplanet/tutorials/4269/1/ |
FDISK on
õige tööriist tegemaks uuele kettale
partitsioonid (näiteks: $ fdisk /dev/hdc, juhul kui uus
ketas on Secondary Master), fdisk'is on piisav abi olemas kuidas
midagi teha (sisuliselt sarnane M$ fdisk'iga, aga vabadust
midagi metsa keerata on rohkem). Juhul kui vaja vana ketas uue vastu vahetada, siis peab olema uuel kettal vähemalt üks LinuxNative ja üks LinuxSwap partitsioon. Näiteks soovin saada /dev/hdc1 LinuxSwap'iks ning /dev/hdc2 LinuxNative'ks. LinuxNative ketta failisüsteemiks valin näituseks ext2, seega tuleb failisüsteemi loomiseks (formatiseerimiseks) kribada $ /sbin/mkfs.ext2 /dev/hdc2 ning LinuxSwap ketta jaoks $ /sbin/mkswap /dev/hdc1. NB1: Kui on vaja ext2 failisüsteem muuta ext3'ks, siis näiteks $ tune2fs -j /dev/hdc2 . NB1a: Kui see esialgne ext2 patritsioon on/saab olema /etc/fstab'is ehk üldjuhul ka bootimisel vaikimisi mount'itav, siis muuda see ka seal (/etc/fstab) vastav partitsioon ext3'ks (vaata ka "Failisüsteem"). Nüüd mil on partitsioonid olemas saab need lihtsalt külge mount'ida ($ mount /dev/hdc2 /mnt/disk) ja kasutada kuidas soovi on. NB2: vfat (fat32) partitsiooni tegemiseks fdisk'i ja mkfs'iga: fdisk'is tuleb partitionil /dev/hdaX tüüp muuta käsuga 't' näiteks 'c'-"Win95 FAT32 (LBA)" ning käsuga mkfs.vfat -F 32 /dev/hdaX saabki selle siis vfat'iks pöörata. NB3: On olemas ka selline vigur nagu 'partition label' ehk partitsiooni nimi või kuidas iganes seda nimetada. See on üks tore asi, aga jama on selles, et mkfs jätab vaikimisi selle tühjaks ning man mkfs ei räägi kuidas seda ikkagi määrata. Seepärast edasiste jamade vältimiseks ("kernel panic") tuleb root'il muuta faili /etc/fstab kujule: /dev/hda2 / ext3 defaults 1 1 /dev/hda1 /boot ext3 defaults 1 2 (partitsioonide tegeliku mount-pointi saad teada 'df' pruukides) ehk muuta esimest tulpa kus on kirjas LABEL'id: LABEL=/ / ext3 defaults 1 1 LABEL=/boot /boot ext3 defaults 1 2 |
RH7.2's
on bootmanageriks GRUB ja perast Terve HDD
kopeerimine ühelt kettalt teisele tekkis jama bootloaderi
taastamisega. Miskit tekst grubi teemadel mainis miskit ketaste nummerdamise erinevust tavalisest kasutatavast (algab 0'ist). Perast mitut tulutut katset jõudsin töötava tulemuseni, sest proovisin kas ka partitsioonid hakkavad nullist ja need hakkavadki. http://www.uruk.org/orig-grub/install.html http://www-128.ibm.com/developerworks/library/l-bootload.html?ca=dgr-lnxw01LILOandGRUB |
Bootida massin üles
floppylt, kasutades "Bootloader LILO" võtteid
ning lilo asemel käivitad grub'i. grub'is kirjutad: install= (hd0,0)/grub/stage1 (hd0) (hd0,0)/grub/stage2 0x8000 p NB1: (hd0,0) ehk esimene ketas ja esimene partitsioon (vaata ka "Failisüsteem"). NB2: /grub/ tähendab faili stage1 või stage2 asukohta ehk kui grub on kusagil mujal, siis tuleb ka vastavalt näidata. NB3: Kettad nummerdatakse vastavalt olemasolule, mitte valitud slotile ehk kui massinas on kettad /dev/hda ja /dev/hdc, siis need saavad nummerdatud 0 ja 1. GRUB konfiguratsioon on failis /boot/grub/grub.conf ning sisu on midagi sarnast: # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/hda3 # initrd /initrd-version.img #boot=/dev/hda default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz title Red Hat Linux (2.4.18-10) root (hd0,0) kernel /vmlinuz-2.4.18-10 ro root=/dev/hda3 initrd /initrd-2.4.18-10.img title DOS rootnoverify (hd1,0) chainloader +1 NB4: Juba eelnevalt mainitud ("Partitsioonimajandus") partitsiooni LABEL võib ka mängus olla ehk root partitsiooni asukoht on antud kujul: root=LABEL=/ PS: Tundub, et see õpetus on kuidagi poolik, sest ühele lapparile ei saanud ma kuidagi selgeks teha, et see bootida võiks. Ainus, mis tekkis, oli grubi prompt. |
Ühel
päeval sain üllatuse osaliseks, GNU/Linux
võib osutuda keerulisemaks lihtsalt seepärast, et pole
kunagi kuuldud kunagi programmist Midnight Commander
(mc / midc). |
Kui WinDOS käpas
on, peaks mingis staadiumis NC, FAR, ... ikka nähtud
olema - Unix'i maailmas mängib sarnast rolli mc (midc). NB: kui mc käivitada telnet'iga WinDOS'i massinast, siis enne seda peaks/võiks ka TERM=vt100 promptile kribada ("Kuidas käske lühemaks teha ehk alias"). |
Kui
ei ole soovi kasutada routerit ning ikka tahaks
ühendada võrku kari massinaid. Ega muud kui teeme
ise silla (bridge). Vajalikuks osutub programmijupats: bridge-utils & bridge-utils-devel. http://bridge.sourceforge.net/download.html Täpsemalt: http://www.linuxgazette.com/issue76/whitmarsh.html |
RedHat 7.2 korral: $ ifdown eth0 $ ifdown eth1 $ ifconfig eth0 0.0.0.0 $ ifconfig eth1 0.0.0.0 $ brctl addbr sillake $ brctl addif sillake eth0 $ brctl addif sillake eth1 Kui see sild on läbipaistev ehk aadressita, siis: $ ifconfig sillake up Aga kui ikka aadressi ka vaja, siis: $ ifconfig sillake 192.168.0.200 netmask 255.255.255.0 Ja tundub, et rohkem pole vajagi... Aga Aironet/Cisco 4800/342/352/... ei ole võimeline sildama. |
18. Väikesed tegevused. |
$ ls katalooma sisu vaatamine (ainult nimed); $ ls -la katalooma sisu vaatamine (nimed+omanikud+õigused); $ du annab katalooma ja selle järglaste kasutatava mahu; $ df annab seadmete mahud ja kasutatud mahu; $ top jooksvad protsessid ja natuke muud infot; $ uptime kaua massin püsti on olnud; $ switchdesk KDE pöörab desktopimajanduse KDE'ks; $ switchdesk GNOME pöörab desktopimajanduse GNOME'ks; $ chown -R root.root /mnt muudab katalooma /mnt ning selle järglaste omanikuks ning ka grupiks root; $ chmod +x script muudab faili script käivitatavaks; $ apropos dir näitab dir-iga seotud käske; $ man mkdir näitab mkdir-i manuaali; $ locate fail otsib faili; $ which cat otsib käsu cat asukohta PATHis; |
Vesa
Framebuffer juhuks kui näituseks on
vaja konsooli (vaikeväärtusega 80 veergu 25 rida)
läpparil/massianal suuremaks ajada. http://www.xss.co.at/sysinfo/laptops/asusP6300/vesafb.html |
GRUB ehk nö GRUB1'e korral lisa
kernel rea lõppu vga= ning moodi number. Miskid moodid saab sellest tabelist: | 640x480 800x600 1024x768 1280x1024 -----+------------------------------------- 256 | 0x301 0x303 0x305 0x307 32k | 0x310 0x313 0x316 0x319 64k | 0x311 0x314 0x317 0x31A 16M | 0x312 0x315 0x318 0x31B Kui on soov ise katsetada ja uurida, siis kirjuta vga=ask. Näiteks: kernel /vmlinuz-2.4.9-31 ro root=/dev/hda3 vga=0x317 annab resolutsiooniks 1024*768*16bit värvi. Aga järjest enam võimu koguval KMS/GRUB2 ajastul ei saa konsooli ekraani suurusi enam nii lihtsa liigutusega vahetada - GRUB2 seadistamine on segasemaks aetud ning KMS ignoreerib 'vga=' seadistust (hetkel 'vga=' toimib siiski enne KMS'i aktiveerumist, aga seegi on vist ajutine). Et KMS ei hakkaks ise omatahtsi tegutsema tuleb kernelile saata parameeter 'video=' (näiteks 'video=1024x768@60'). Kui tahtmine KMS üldse keelata, siis selleks on parameeter 'nomodeset'. Veidi spetsiifilisem näide on 'vga=792 video=VGA-1:1024x768@60me', mis muudab ekraani reziimi enne KMS'i ning KMS ise sunnitakse aktiveerima VGA-1 port 1024x768@60 reziimis. See, mis GRUB2 puutub, siis kuna '/boot/grub2/grub.cfg' genereeritakse automaatselt, siis kõik vajalikud muudatused tuleb teha '/etc/default/grub' failis 'GRUB_CMDLINE_LINUX=' real või 'GRUB_CMDLINE_LINUX_DEFAULT=' real ning käivitada 'grub2-mkconfig -o /boot/grub2/grub.cfg', mis omakorda genereerib '/boot/grub2/grub.cfg'. https://wiki.archlinux.org/index.php/GRUB2 http://www.mjmwired.net/kernel/Documentation/fb/modedb.txt |
Selle
scripti tegin WGET'i täienduseks,
selleks et wget'i kaasabil saada kätte faile, mis
kindlasti olemas on, aga serveri ülekoormatuse pärast
löögile ei lasta (wget lõpetab sel juhul
töö). Seda scripti kasutades olen saanud soovitud kraami lõpuks ikkagi kätte. |
#-8<--------Cut
here------- #!/bin/bash echo "KET." echo "Behavior: tries until file is downloaded successfully." if [ "$1" = "" ] then echo "URL needed." else while true; do if wget -c -t0 --passive-ftp $1; then echo 'Success with "'$1'"' break; else echo 'No success with "'$1'"'; fi;done fi; #-8<--------Cut here------- |
***
Wondershaper *** ehk et upload ei tapaks downloadi. http://lartc.org/wondershaper/ Ka muud samal teemal: http://ds9a.nl/ |
ET Atlas Mediumile
sai pandud: DOWNLINK=335 UPLINK=110 ning tundub, et sobivad, aga eks aeg näita... ...aeg näitas, et ma seda enam ei kasutagi. |
Bootdiski tegemiseks juba installitud distributsioonis. |
mkbootdisk --device
/dev/fdX kernel_version X on kas 0 ehk "A:" ja 1ehk "B:". Võimalikud kernel'i versioonid saad, kui kribad: $ ls /lib/modules/ Või kui tahad jooksvat kernelit teada: $ uname -a Näide: $ mkbootdisk --device /dev/fd0 2.4.18-14 |
Näitab tekkinud kerneli message'id.. |
$ dmesg Vaata ka "Logid". |
Väljastab kõik read kus on lõik 'hd' ehk antud juhul annab kerneli messagetest kõik IDE ketastega seonduvat. |
$ dmesg | grep hd |
Valitud teksti kopeerimine. |
Märgid näiteks hiirega teksti ära (vasak klahv) ja siis pasted (parem klahv). Ehk juba miski teksti märkimine võrdub operatsiooniga "copy" ning "paste" tuleb eraldi teha. |
Teise kasutajana massinas möllamine. |
$ su lähed root'iks enda settingutega. $ su - lähed root'iks root'i settingutega. $ su teine_tegelane lähed teiseks_tegelaseks. |
Et saada kasutaja, kes ei saa shelli kasutada ja ainuke ligipääs on ftp. |
Promptil ja
root'ina: $ cd /bin # NB! järgnevatel ridadel kui kasutad lihtsalt ">", siis kirjutab viidatud faili üle, mille tagajärg võib väga kurb olla, samas ">>" paneb kirje selle faili lõppu. $ echo 'echo "Shell is not available!"' > pole $ chmod +x pole $ cd /etc $ echo '/bin/pole' >> shells Kui massinas on linuxconf (alates RedHat 7.3 ei ole linuxconfi enam distributsioonis ning vajadusel tuleks kasutada RedHat 7.2 oma või kasuta hoopis redhat-config-users utiliiti): Linuxconf'is valid "Users accounts"->"Normal"->"Group definitions". Veendud, et /etc/ftpaccess olev "guestgroup" definitsiooniga antud kasutajagrupp on olemas (N: "guestgroup ftpchroot" ehk "ftpchroot"). Kui see puudub, siis lisad: "Add"->"Group name", mille paned selleks guestgroup'is määratud nime (N: ftpchroot). Linuxconf'is valid "Users accounts"->"Normal"->"User accounts"->"Add". Ehk teed uue kasutaja: "Login name": kylaline "Supplementary groups": ftpchroot "Command interpreter(opt)": /bin/pole |
Ketta lisamine/laiendamine. |
1) kui asendada
olemasolev ketas lihtsalt suuremaga, siis käiku
lähevad "Uuele kettale GNU/Linux'i partitsioonid" ehk "Partitsioonimajandus"
(partitsioonitabeli vaata /etc/fstab'ist, aga ega sellest ei pea
üheselt kinni pidama, samas kui miskipärast kasutad teist
partitsioonide paigutust, siis uue ketta /etc/fstab'is, pärast
kopeerimist, tuleb ka vastavad muudatused teha), "Terve HDD
kopeerimine ühelt kettalt teisele" ehk "Ketta
kopeerimine", vana ketas asenda uuega ja "LILO paigaldamine
kõvakettale..." ehk "Bootloader LILO"
või kui kasutad GRUBi, siis selle paigaldamine ehk "Bootloader
GRUB". 2) kui on soov olemasolevat ketast säilitada, aga lisada veel üks/kaks/kolm/... ketast, siis kasuta "Uuele kettale GNU/Linux'i partitsioonid" ("Partitsioonimajandus") ning seejärel: see kataloom, kuhu sa seda ketast tulevikus mountida (ühendada) tahad, peab olema olemas ning ka tühi (NB! miskist 2.4.x kernelist alates võib ketast mountida ka mittetühja katalooma, aga sel juhul ei ole vanad failid enam ligipääsetavad) ehk kui asendad olemasolevat katalooma, siis kasutad "Terve HDD kopeerimine ühelt kettalt teisele" ("Ketta kopeerimine") võtteid, aga vahega, et sa kopeerid ainult miskit katalooma ja mitte tervet ketast. Kui see tehtud ja jamasid ei ole tekkinud, siis kustutad esialgse katalooma sisu ning viid täiendused ka /etc/fstab'i. PS: Kui on vaja asendada miski katalooma sisu juba varem (kusagil mujal) installeeritud massinast, siis on enam kui kindel, et kataloomade/failide omandiõigused ei klapi ehk näituseks kataloom /home/siim ei pruugi tagelikult uues süsteemis kuuluda kasutajale 'siim' vaid hoopis kasutajale 'priit' (ehk uid ehk user id ja gid ehk group id võivad osutuda numbriliselt samaks). Et kataloom /home/siim kuuluks ikka kasutajale 'siim', siis: $chown -R siim.siim /home/siim Näide: Soov on asendada olemasolevat katalooma /home ning olemas on ka partitsioneeritud (vaata ka "Partitsioonimajandus" NB3'e alust tingimust) ja formateeritud ketas /dev/hdc (ütleme, et /dev/hdc2 on tulevane /home kataloom). /mnt/disk kataloom peab eelnevalt olemas olema ning kui pole, siis tee! $ mount /dev/hdc2 /mnt/disk $ cd /home Tõmbad näituseks mc tööle (ütleme, et seal on sellised failid ja kataloomad: leelo, afdsf_dffd.rAw.eer_1 ja enda_failid) ja seal sees kribad: $ tar cf - leelo afdsf_dffd.rAw.eer_1 enda_failid | (cd /mnt/disk;tar xvfp - ) Ootad kopeerimise lõpuni ning kui jama ei ole, siis kustutad vana /home katalooma sisu ära (mitte /home katalooma ennast). Edasi võtad lahti /etc/fstab faili ja lisad sinna rea samas formaadis, mis teisedki selle faili read, aga välja võiks tulemus näha selline: /dev/hdc2 /home ext2 defaults 1 1 NB: ext2 asemel peab/võib olla ext3 kui eelnevalt on teada, et süsteem toetab ext3 failisüsteemi ja $ tune2fs -j /dev/hdc2 on ka tehtud (vaata ka "Failisüsteem" & "Partitsioonimajandus" NB1a). Kui see operatsioon on tehtud, siis egas muud kui $ mount /home (veendumaks, et selle /home katalooma sisu on ikka olemas) või kui riskid, siis $ reboot. |
Partitsioonide otsimine ja taastamine. |
$ gpart /dev/hdX kui sisu meeldib, siis $ gpart -W /dev/hdX /dev/hdX Kui tulemus ei ole hea, siis: $ rescuept /dev/hdX > tabelike $ sfdisk /dev/hdX < tabelike või kui kobiseb miskit ja ikka soovid partitsioonitabelit paigaldada: $ sfdisk --force /dev/hdX < tabelike Täiendus: Selgus, et uued distrod ei pruugi vastavaid utikaid omada. Fedorast leidsin testdisk nimelise utika, teeb sama asja... |
Logidevärk. |
/var/log/ kataloom sisaldab
igasugu logisid: /var/log/dmesg sisaldab kerneli sõnumeid, mis näiteks bootimisel öeldakse; /var/log/messages on põhjalikum logi, mis ka deemonite sõnumeid sisaldab; /var/log/secure massinasse pääsu proovimised ja saamised; neid logisid on veelgi, aga vaata ise. |
Kuidas
ilma erilise lisavarustuseta RedHat purgiga võrgu
kasutajate kiirusi piirata? Miski näite leiab /usr/share/doc/shapecfg-2.2.12/README.cbq ning seda muidugi juhul kui shapecfg pakk ikka paigaldatud on. Samal/seonduval teemal on abiks ka script http://www.kivilinn.tartu.ee/iproute2/. Lisatarkust http://lartc.org/HOWTO//cvs/2.4routing/html/c47.html ning miski lihtsam näide http://www.docum.org/. See CBQ.init on tegelikult tc peal tehtud ehk tc kohta ka üks link: http://snafu.freedom.org/linux2.2/iproute-notes.html |
RedHati distributsioonidega
kaasas on selline jubin nagu CBQ (shapecfg paketis) millega saab
edukalt
võrgu kasutajate kiirusi piirata. NB0: Miskipärast on, RedHati levitatav, variant cbq.init'ist kole vana ehk uuema saab: https://sourceforge.net/project/showfiles.php?group_id=42529&release_id=108424 Järgnevad skriptid käivad konfile kus on eth1=Internet ning eth0=LAN. eth1 võrgukaart on 100Mbit/s eth0 võrgukaart on 10Mbit/s /etc/sysconfig/cbq/ kataloogis on kehtivad konfifailid ning kui seal on miski example ees, siis kustuta/tõsta see mujale. Konfifailide nimed peavad olema antud kujul: cbq-ID.nimi 1) ID on HEX 2 baiti ning peab olema unikaalne igale failile! 2) nimi on string. LAN'i klient 192.168.3.2 saab kiiruseks 1024Kbit downloadi ja 256Kbit uploadi. Kliendi downloadi shapemine: (fail cbq-0002.k0-d) DEVICE=eth0,10Mbit,1Mbit RATE=1024Kbit WEIGHT=100Kbit PRIO=5 RULE=192.168.3.2 Kliendi uploadi shapemine: (fail cbq-0003.k0-u) DEVICE=eth1,100Mbit,10Mbit RATE=256Kbit WEIGHT=25Kbit PRIO=5 RULE=192.168.3.2, Abiks on ka: cbq start cbq stop NB1: Liiklusmahtu piirata (traffic shaping) saab ainult ruuteripurgist väljuva liikluse kohta reeglite kehtestamisega: 1) kuna Interneti poolt (eth1) sisenev läbiv liiklus väljub LANi eth0 kaudu, on mõistlik kliendi downloadi liiklusmahtu piirav reegel (RULE) kehtestada eth0 jaoks. 2) kuna LAN poolt (eth0) tulev läbiv liiklus väljub purgist (Internetti) eth1 kaudu, on LAN kliendi liiklusmahu piiramiseks vajalik reegel (RULE) vaja kehtestada eth1 jaoks. NB2: Selliselt tehtud piirang ei tööta juhul, kui LAN klient kasutab NAT teenust - sel juhul ei saa eth1 teada LAN kliendi tegelikku aadressi - siis on lahendusvariandina mõeldav eraldi marsruuteripurgi kasutamine, mis ühtlasi tegeleks siis ka liiklusmahu piiramisega. NB2a: Uploadi mahtu NATi purgis saab siiski kontrollida, kui vastava IP paketid täiendavalt märgistada miski kindla tunnusega (vaata ka NB0): http://www.eenet.ee/arhiiv/linuxvestlus/msg15055.html http://www.eenet.ee/arhiiv/linuxvestlus/msg15061.html http://www.eenet.ee/arhiiv/linuxvestlus/msg15082.html NB3: Shapeda ei saa alias device'i ehk device'i kujul eth0:1. NB4: Shapeda saab ka pordi kaupa ning sel juhul peab RULE's oleva aadressi lõppu :portnr panema, kus portnr on vastava pordi number (N: 192.168.3.2:80). NB5: Võrgu shape'imiseks tuleb anda aadress kujul võrguaadress/mask (N: 192.168.3.0/24). NB6: Täitmisel läbitakse RULEd väiksemast ID numbrist alates ning täitmisele läheb esimene, mis tingimusi täidab ehk kui on vajalik shape'ida suurt osa võrgust ühtmoodi ning selle sees mõnede IPde kohta tarvis erinevaid reegleid, siis peavad nende üksikute erandite ID numbrid olema väiksemad kui üldised võrgu shape'ingu RULEd. NB7: Samasse faili pandud RULEdele kehtib ühtne RATE, mitte igale RULEle eraldi ehk igal võimalikul ajahetkel on RULEdes näidatud aadressidega seotud võrguliiklus summaarselt võrdne RATEga (muidugi juhul, kui sellest torust ikka niipalju matsu üldse läbi tuleb). PS: Lisaks kiiruse piiramisele vaata ka "Võrk omadele ehk MAC/IP filter". Üits näide kah, mis katsetajaile abiks võiks olla: Tere
Tegin teie lehel leiduva juhendi järgi võrgu piiramise red hat 7.3'ga. Asi downloadi puhul töötab ideaalselt nii kui läbilaset muudan kohe trafficust on näha, aga nyyd probleem, sest mis oleks põhiline vajadus, et uploadi jaoks ei mõju :( Äkki oskad miskit nõu anda? P.S. Lisan 2 confi faili ka ______________________________________________________________________ DEVICE=eth0,10Mbit,10Mbit RATE=64Kbit WEIGHT=8Kbit PRIO=5 RULE=192.168.0.0/24 ______________________________________________________________________ DEVICE=eth1,100Mbit,100Mbit RATE=2048Kbit WEIGHT=100Kbit PRIO=5 RULE=192.168.0.0/24 Vastus sai selline: Tere, Vaevalt, et sa uploadi rohkem annad, kui downloadi ehk kui eth1 on LAN ning eth0 on internet ning NATimist sa ei kasuta: 1) Downloadi shape: DEVICE=eth1,100Mbit,10Mbit RATE=2048Kbit WEIGHT=205Kbit PRIO=5 RULE=192.168.0.0/24 2)Uploadi shape: DEVICE=eth0,10Mbit,1Mbit RATE=64Kbit WEIGHT=7Kbit PRIO=5 RULE=192.168.0.0/24, Kui sa kasutad NATi, siis: 1) pead alati käivitama (kirjuta see näiteks /etc/rc.d/rc.local faili lõppu): /sbin/iptables -t mangle -A PREROUTING -s 192.168.0.0/24 -j MARK --set-mark 0x1 2) Downloadi shape: DEVICE=eth1,100Mbit,10Mbit RATE=2048Kbit WEIGHT=205Kbit PRIO=5 RULE=192.168.0.0/24 3) Uploadi shape: DEVICE=eth0,10Mbit,1Mbit RATE=64Kbit WEIGHT=7Kbit PRIO=5 MARK=1 PS: Uuenda shapecfg pakki (ftp://rpmfind.net/linux/rawhide/1.0/i386/RedHat/RPMS), sest RH7.3 kaasas olev ei oska MARK'iga midagi teha. Ehk olin abiks... |
Lihtsaim/lihtne
iptables'iga võrgujagamisskript. Tarkust teemadel: http://www.linuxguruz.org/iptables/ |
Teed näiteks faili
/etc/rc.d/rc.masq ja paned sinna sellise sisu (***vajadusel muudad
aadressid ja interfaceid *** ): #-8<--------Cut here------- #!/bin/sh # Mis interface on ühendatud välisvõrku (ehk see kaabel tuleb õuest tuppa)? IFACE=eth1 # NAT'itav ehk MASQ ehk sisevõrk: INTNET=192.168.0.0/24 # /24 on network mask, mis antud juhul on 24 bitti väärtusega 1 ehk 255.255.255.0 # Vajalik, sest muidu ei ole purk võimeline ruutima: echo 1 > /proc/sys/net/ipv4/ip_forward #Kõikvõimalikud moodulid: modprobe iptable_nat modprobe ip_nat_ftp modprobe ip_nat_irc modprobe ip_conntrack_ftp modprobe ip_conntrack_irc #See rida on tegelik rule, mis selle MASQ e. NATimisega tegeleb: /sbin/iptables -t nat -A POSTROUTING -o $IFACE -s $INTNET -j MASQUERADE; #Miskist ERRATAst selgus, et turvalisuse kaalutlustel oleks vaja vigased paketid kõrvaldada: /sbin/iptables -A OUTPUT -m state -p icmp --state INVALID -j DROP #-8<--------Cut here------- NB1: Väidetavalt selline MASQUERADE kasutamine on mõeldud juhul kui välisühenduse aadress on muutuv (dhcp) ning püsiaadressi korral tuleb kasutada: iptables -t nat -A POSTROUTING -s $INTNET -o $IFACE -j SNAT --to $OUTIF kus OUTIF on interface aadress, mille kaudu see välisühendus käib (vt: http://www.mandrakesecure.net/en/docs/HOWTO/NAT-HOWTO/NAT-HOWTO.linuxdoc-6.html). NB2: Veendu, et masinas on olemas/lubatud iptables ning samas ei jookse ipchains (RedHati sisseehitatud firewall jookseb ipchainsiga ning iptablest ei lasta käivitada ehk keela see firewall (kasuta käsku 'setup' ning sealt alt 'firewall' ning 'services')). NB3: Et see skript ka käivituks tuleb see käivitatavaks teha (näituseks: $ chmod +x /etc/rc.d/rc.masq) ja /etc/rc.d/rc.local'isse sisse (lõppu) kirjutada. Veel linke: http://www-106.ibm.com/developerworks/security/library/s-netip/?t=gr,lnxw02=LinuxFirewall |
KDE2/3'ga
on võimalik üsna edukalt kohtvõrgu jagatud
kataloomasid sirvida, aga out-of-box ei taha see mitte
õnnestuda, sest vastav service ei panda installeerimisel kaasa
ega ka stardita seda. http://lisa-home.sourceforge.net/ |
Probleemi lahendamiseks
on olemas proges nimega "lisa" (asub eraldi lisa-XXX.rpm'is),
mis tuleks /etc/rc.d/rc.local'isse sisse kirjutada, et siis
igal massina käivitamisel see ka tööle pandaks. NB: Sõltuvalt "lisa" versioonist võib olla vajalik kribada see rida: lisa --config=/root/.kde/share/config/lisarc (või sõltuvalt lisarc asukohast miski muu path.) RH7.3's piisab ainult lisa märkimisest. KDE'l lisandub Control Center'isse "LAN Browsing" valik (Network alla), kus tuleks kohtvõrgu parameetrid paika panna, aga mulle tundub, et default settingud kõlbavad küll. Network'i all on ka veel "Windows Shares", kuhu saad kirjutada oma default username, password'i ja group'i. PS: lisa ise on KDE'st sõltumatu ning abi peaks/võiks ka GNOME'l sellest olla. NB1: Kahjuks puhas (update RedHat 8.0'le töötab nagu vaja) install RedHat 8.0 koos KDE'ga (samas GNOME sirvib nagu muiste) ei sirvi neid võtteid kasutades - share'sid näitab küll, aga sharede sisust midagi kätte ei saa... |
Lihtsaim/lihtne ipchains'iga võrgujagamisskript. |
Teed näiteks faili
/etc/rc.d/rc.masq ja paned sinna sellise sisu (***vajadusel muudad
aadressid ja interfaceid *** ): #-8<--------Cut here------- #!/bin/sh # NAT'itav ehk MASQ ehk sisevõrk: INTNET=192.168.0.0/24 #Kõikvõimalikud moodulid: modprobe ip_masq_ftp # Vajalik, sest muidu ei ole purk võimeline ruutima: echo 1 > /proc/sys/net/ipv4/ip_forward #See rida on tegelik rule, mis selle MASQ e. NATimisega tegeleb: ipchains -A forward -s $INTNET -d 0.0.0.0/0 -j MASQ #-8<--------Cut here------- NB1: Veendu, et masinas on olemas/lubatud ipchains ning samas ei jookse iptables (kasuta käsku 'setup' ning sealt alt 'services')). NB2: Et see skript ka käivituks tuleb see käivitatavaks teha (näituseks: $ chmod +x /etc/rc.d/rc.masq) ja /etc/rc.d/rc.local'isse sisse (lõppu) kirjutada. NB3: Tundub, et RedHat 2.4.X kernelitega ei ole mõtet ipchainsi proovida, sest kernel ei kipu seda toetama... |
Kui
on soov viia miski IP aadress võrgus hoopis teise massina
külge ehk kuidas välisvõrgu aadress panna
sisevõrgu massinale - meetod klassikaliste vahenditega. IP aliaste näited: http://www.ccp14.ac.uk/ccp14admin/linux-server/ip_aliases/ See ei ole küll selle näitega seotud, aga on küll sarnastel teemadel (tunnelitest): http://www.linuxguruz.org/iptables/howto/2.4routing-5.html |
Olgu kolm
massinat/routerit A (eth0=213.186.5.1/29; eth1=192.168.0.1/24), B
(eth0=192.168.0.5/24; eth1=192.168.3.1/24) ja C (eth0=192.168.3.2/24)
ning eesmärk on saada C massinale aadress
213.186.5.2/32. NB1a: See meetod töötab juhul, kui on ligipääs kõikidesse massinatesse A, B, C ning ka A eellasse. Kui ligipääsu ei ole võimalik saavutada, siis proovi "IP aadressi pikendamine sisevõrku (iptables)". Massinas A tuleb lisada host route: route add -host 213.186.5.2 gw 192.168.0.5 echo 1 > /proc/sys/net/ipv4/ip_forward Massinas B tuleb lisada host route: route add -host 213.186.5.2 gw 192.168.3.2 echo 1 > /proc/sys/net/ipv4/ip_forward Massinas C tuleb lisada IP alias: ifconfig eth0:1 213.186.5.2 netmask 255.255.255.255 broadcast 213.186.5.2 echo 1 > /proc/sys/net/ipv4/ip_forward NB1b: Massin C on nähtav ainult liinis A ja B ning nende järglastele, aga mitte A massina eth0 võrgus. Et sealgi nägemist saada, siis nendes massinates tuleb lisada host route: route add -host 213.186.5.2 gw 213.186.5.1 echo 1 > /proc/sys/net/ipv4/ip_forward |
Kui
on soov viia miski IP aadress võrgus hoopis teise massina
külge ehk kuidas välisvõrgu aadress panna
sisevõrgu massinale - meetod moodsate vahenditega. SNAT & DNAT: http://www.mandrakesecure.net/en/docs/HOWTO/NAT-HOWTO/NAT-HOWTO.linuxdoc-6.html |
Olgu massinad/routerid
(võrgu konfiguratsioon on sama, mis "IP aadressi
pikendamine sisevõrku (host route)") A
(eth0=213.186.5.1/29; eth1=192.168.0.1/24) ja C (eth0=192.168.3.2/24)
ning eesmärk on saada C massinale aadress
213.186.5.2. Massinas A tuleb lisada IP alias ning teha suunamine: ifconfig eth0:1 213.186.5.2 netmask 255.255.255.248 broadcast 213.186.5.7 iptables -t nat -A PREROUTING -d 213.186.5.2 -j DNAT --to 192.168.3.2 echo 1 > /proc/sys/net/ipv4/ip_forward NB1: Massin C on nähtav ainult A järglastele, samas A ise ei näe teda sellel aadressil, sest suunamine on tehtud SISENEVATELE pakettidele, aga A genereeritud päringud ei ole sisenevad. NB2: Massin C peab olema juba ka eelnevalt massinale A nähtavaks tehtud, aga seda muidugi oma sisevõrguaadressi kaudu. PS1: Miskipärast jõuab välisaadress (näites 213.186.5.2) ikkagi ka sisevõrgu massinasse C, mis ei ole kõige parem tulemus, sest sisevõrgus ei ole selle aadressiga midagi peale hakata (või siiski on?). Arendused suunamise teemadel: *** Miski kindla pordi suunamine sisevõrgu massinasse *** Näituseks pordi 80 suunamine sisevõrku massinasse C pordile 8080: iptables -t nat -A PREROUTING -p tcp --dport 80 -d 213.186.5.2 -j DNAT --to 192.168.3.2:8080 *** Miski kindla pordi suunamine teise sama võrgu massinasse ehk suunamine NATimata võrgus *** Näituseks pordi 8080 suunamine massinas C massinasse D (eth0=192.168.3.10/24) pordile 80: iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.3.10:80 iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -d 192.168.3.0/24 -p tcp --dport 80 -j SNAT --to-source 192.168.3.2 http://www.eenet.ee/arhiiv/linuxvestlus/msg15858.html PS2: tcp ja udp pakette suunatakse eraldi ehk '-p tcp' asemel '-p udp'. |
Kui näituseks on vaja anda tavakasutajale õigus jooksutada tavapäraselt root'i õigusi nõudvat käsku, siis abiks on sudo. |
Kõikides GNU/Linux
distributsioonides peaks leiduma pakett sudo (RH 7.3
sudo-1.6.5p2-2.i386.rpm), mis võimaldabki root'il jagada
teistele
kasutajatele tavapärasest erinevaid käivitusõigusi
(sudo jooksutab faili selle faili omaniku õigustes). Failis /etc/sudoers on kirjas kes ja mida võib sudo'ga käivitada. Näide: root kirjutab (sedasi skripti tegemisel on ka ohte ehk vaata "Et ainult ftp oleks saadaval" ehk joe'ga on "valutum" neid skripte teha): $ echo /sbin/ifconfig >> eee $ chmod +x eee Ning lisab /etc/sudoers faili lõppu: mina ALL=/root/eee Ja nagu võluväel saabki kasutaja 'mina' käivitada selle faili. mina kirjutab: $ sudo /root/eee või kui kui kasutada NB1 võtteid, siis vähemasti ei pea /root/ ette kirjutama. (PS: see näide on tegelikult nadi, sest ei ole ilus lasta /root/ kataloogi teisi tegelasi susserdama, aga see on ju ainult näide...). NB1: path ja env jääb jooksva kasutaja omaks ehk kõik käsud tuleb kas kirjutada otse teena või teha selle kasutaja path'i vajalikud täiendused (ning ka kui kõigest hoolimata ei taha isegi 'sudo' kirjutada) ehk vaata "Kuidas käske lühemaks teha ehk alias". NB2: sudo käivitamisel küsib jooksva kasutaja parooli, mis loetakse vaikimisi kestvaks ~5min, aga seda on võimalik muuta... (man sudo); |
Kuna
IP aadressi saab/võib iga tegelane ise
suht kergeste muuta, samas võrgukaardi MAC
aadressi ehk mette, siis liikluse lubamine ainult
massinatele, mille MAC ja IP aadressid on ilusaste
vastavuses, võiks piirata tundmatute tegelaste
"väljapääsu" internetiavarustele sinu routeripurgist...
Juhul kui selline range vastavus ei ole oluline, siis luba
kasvõi ainult kas MAC või IP alusel eraldi. http://groups.yahoo.com/group/ilug-indore/message/1154 Linke seonduvatel teemadel: http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO-7.html http://www.samag.com/documents/s=1769/sam0112a/0112a.htm http://www.tldp.org/HOWTO/mini/TransparentProxy-4.html http://users.pandora.be/bart.de.schuymer/ebtables/ http://www.geocrawler.com/archives/3/261/2001/7/50/6235131/ http://www.cc.hit-u.ac.jp/monban/inside/packetfilter.sample http://lists.netfilter.org/pipermail/netfilter/2001-February/007922.html |
Olgu massin C
(eth0=192.168.3.2/24; eth1=192.168.0.1/24), mille eth1 taga on selle
sisevõrk oma klientidega ("Lihtsaim
võrgu jagamine (iptables+NAT)"). Sel juhul tuleb massinasse C viia täiendused kujul: #-8<--------Cut here------- #Keelad FORWARDi: /sbin/iptables -P FORWARD DROP #Lubad eraldi kõik "head" sisevõrgu MAC/IP aadressid: #Kui MAC ei ole oluline ning piisab ainult IP aadressi vastavusest: /sbin/iptables -A FORWARD -s 192.168.0.22 -j ACCEPT #Kui IP ei ole oluline ning piisab ainult MAC aadressi vastavusest: /sbin/iptables -A FORWARD -m mac --mac-source 00:02:92:25:A4:5F -j ACCEPT #Kui vaja miskit IP kinnistada MAC aadressiga: /sbin/iptables -A FORWARD -m mac --mac-source 00:30:96:35:AC:EF -s 192.168.0.34 -j ACCEPT #-8<--------Cut here------- NB: MAC aadressid saad näituseks kui rootina pingid "sõbrad" läbi ning kribad: $ arp -a PS: Kui massin C saab omale välisvõrgust suunatud aadressi "IP aadressi pikendamine sisevõrku (iptables)", siis tuleb eraldi lubada ka liiklus massina C gateway MAC aadressil ehk antud näite korral tuleks vastava MAC aadressi saamiseks kribada: $ ping -c 1 192.168.3.1 $ arp -a 192.168.3.1 |
Kui
pead massinaga (ssh/telnet) ühenduse katkestama, aga tahad kunagi
hiljem selle sama shelliga tööd jätkata, siis kasuta
progest "screen", mis seda võimaldabki. |
1. Logi massinasse
sisse, aga esimene asi, mis kriba on $ screen; 2. Sa saad tavalise shelli prompti ning jätka sellega, mis sul plaanis oli; 3. Kui aga miskil hetkel tekib soov/vajadus ühendus massinaga katkestada, siis vajuta CTRL+a+CTRL+d või logi sellesse samasse massinasse sisse veel teisegi sessiooniga ning kriba $ screen -d; 4. Katkesta ühendus massinaga; 5. Kui tahad sessiooni taastada, siis logi sellesse massinasse uuesti sisse ning kriba $ screen -r (mitme screen'i sessiooni kasutamisel pead näitama missugune sessioon tuleb taastada); NB: Ülejäänud screen'i klahvide kohta saab abi olles screen'is ning CTRL+a+? pressides. PS: man screen ja pinfo screen on ka abiks... Vaata ka: http://freshmeat.net/articles/view/581/ |
Lihtsaim
viis desktopi kaughalduseks on VNC, mis ka iga distributsiooniga kaasas
on. |
Ütleme, et on
massin nimega massin ning on soov root (või tavakasutaja)
desktopi kaugelt hallata. Käivita vncserver: $ vncserver Väljundiks saad: You will require a password to access your desktops. Password: Verify: New 'X' desktop is massin:1 Creating default startup script /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/massin:1.log Ehk edasi saab massina desktopile ligi juba vncviewer progesega, millesse anna desktopi aadress ehk massin:1 ning password. (Erinevatele platvormidele saab vncviewerit aadressilt http://www.uk.research.att.com/vnc/download.html) PS: Korraga võib samal desktopil möllata ka mitu kasutajat, aga kas see ka hea on eks ise proovi. NB: Logout'i (desktopilt) ei tasu kasutada, sest siis ei saa sa enam vncviewer'iga sinna ligi (desktop'i ju ei ole enam...). Desktopi saab kustutada kribades: $ vncserver -kill massin:1 Mõningad võtmed: $ vncserver -geometry 800x600 -depth 16 PS1: Et tegevus natuke turvalisem oleks, siis saab VNC SSHst läbi lasta: http://www.uk.research.att.com/vnc/sshvnc.html |
M$
maailma Network Neighbourhood'i analoog on SAMBA. |
Et saada massina faile
jagama tuleb: 1) Paigaldada samba pakk (näituseks samba-XXXX.rpm); 2) Mudida faili /etc/samba/smb.conf; 3) Pärast /etc/samba/smb.conf mudimist tuleb smb käivitamine/kasutamine setup programmis "System services" alt ka lubada ning kribada: $ /etc/rc.d/init.d/xinetd restart $ /etc/rc.d/init.d/smb restart või kui massinas pole xinetd, siis: $ /etc/rc.d/inetd restart $ /etc/rc.d/smb restart või hoopis: $ reboot NB: Järgnevad konfi read moodustavad ühe võimaliku konfiguratsiooni komplekti ehk ülejäänud read smb.conf [global] sektsioonis tuleb välja kommenteerida kas '#' või ';' märgiga või veel parem - teha hoopis uus smb.conf faili (vana smb.conf nimeta ümber millekski muuks). PS1: Vähemasti miski aeg tagasi ei osanud SAMBA Windowsi passworde krüpteerida ning vajalikuks osutus Windows massinates plainpassword.reg failide käivitamine (kataloomas /usr/share/doc/samba-XXXX/docs/Registry/). /etc/samba/smb.conf (töötamine proovitud samba 2.2.5'ga): [global] # Massina grupp: workgroup = Minu # Serveri tervitus: server string = See on Minu Samba Server # Keda lubad massinale ligi: hosts allow = 192.168. 127. # Kui see massin peaks ka enda küljes olevat printerit jagama, siis: printcap name = /etc/printcap load printers = yes printing = lprng # Logimajandus: log file = /var/log/samba/%m.log max log size = 500 # Turvalisuse tase ehk kas, kus ja mis juhul passwordi küsitakse (minule kõige arusaadavam oli/on 'share'). security = share # Miski default setting passwordide kohta: obey pam restrictions = yes # Windowsis browsimine kipub vahetevahel surema ning seepärast vaja: socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Kui massin on sisevõrgus, siis ei ole mõtet sharesid dns'iga lahendada: dns proxy = no [homes] comment = Kasutajate kodukataloomad browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 #Kui printereid selle massina küljes ka on, siis: [printers] comment = Kõik printerid path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes [failid_lugemiseks] comment = Neid faile saavad kõik lugeda. path = /failid public = yes writable = no printable = no [virgo_failid] comment = Neid faile saab lugeda ja salvestada ainult kasutaja virgo. path = /virgo_failid #kasutaja virgo peab nii windowsis kui ka linuxis kasutajaks olema, sest windows ei lase networki browsimisel kasutajanime sisestada. valid users = virgo public = no writable = yes printable = no create mode = 0664 directory mode = 0775 [avalik] comment = Neid faile saavad kõik lugeda ja salvestada kõik huvilised. path = /avalik public = yes only guest = yes writable = yes printable = no PS2: Kontrolli kõikide jagatavate kataloomade/failide omandust ja õigusi ehk kui ikka süsteem ei luba kirjutada, siis ikka ei saa kirjutada. PS3: Ning "KDE kohtvõrku sirvima (lisa)" on ka abiks. |
Igasugu
vennikesed tahavad (ja juhtub, et saavad) sinu massinasse ronida ning
suuremat või vähemat korda saata. Juttu igasugu utiliitidest: http://www.linuxjournal.com/article.php?sid=6361 http://www.linuxjournal.com/article.php?sid=6362 |
Uuri, mis pordid su
massinal lahti on ning vaata kas need ikka vajalikud on: $ nmap localhost (http://www.rpmfind.net on üks hea koht tundmatute service'te nimede järgi tegeliku progese otsimiseks..) $ setup -> "System services" on koht kus saab nii mõnegi mittevajaliku service kinni keerata. Kataloom /var/log/ ehk "Logid" sisaldab ka mõningaid märke "külalistest"... Syslog: http://www.linuxsecurity.com/feature_stories/feature_story-123.html Jooksvatest ühendustest pajatab: $ netstat Konsooli torkimiseks üle võrgu võiks kasutada näituseks ssh'd ning faile liigutada sftp'ga. Ning ega miski FireWall ka halba tee... Linke: http://theregister.co.uk/content/archive/26843.html http://www.theregister.co.uk/content/55/27998.html http://cryptome.org/usa-v-zm-email.htm |
Kui
osutub vajalikuks isoleerida mõningad ruuditavad
(alam)võrgud üksteisest. Tarkust: http://www.netfilter.org/documentation/HOWTO/packet-filtering-HOWTO-6.html |
Olgu massinad/routerid
(võrgu konfiguratsioon on sama, mis "IP aadressi
pikendamine sisevõrku (host route)") B
(eth0=192.168.0.5/24; eth1=192.168.3.1/24; eth2=192.168.4.1/24;
eth1:1=192.168.6.1/24), C (eth0=192.168.3.2/24), D
(eth0=192.168.4.2/24)
ja E (eth0=192.168.6.2/24) ning eesmärk on kõrvaldada kogu
liiklus massinate B eth0 võrgu, C, D ja E vahel. B routeris käivitamiseks: #-8<--------Cut here------- # Reegel kogu liikluse jaoks: iptables -N traffic # Reegel alamvõrkude liikluse jaoks: iptables -N internal_traffic # Sisevõrkude liiklus suunata alamvõrkude liikluse reeglisse: iptables -A traffic -s 192.168.0.0/16 -d 192.168.0.0/16 -j internal_traffic # Liiklus alamvõrkude vahel kõrvaldada: iptables -A internal_traffic -j DROP # FORWARD chain tegeleb routemisest tulevate pakettidega ehk suuname selle # kogu liikluse reeglisse. iptables -A FORWARD -j traffic #-8<--------Cut here------- * Kui on soov siiski valikuliselt alamvõrkude liiklust lubada * 1) Miskite kindlate 2 alamvõrgu vahelise liikluse lubamine. NB: Lisatavad reeglid peavad olema kahepoolsed ehk midagi sarnast: iptables -A internal_traffic -s 192.168.4.0/24 -d 192.168.3.0/24 -j ACCEPT iptables -A internal_traffic -s 192.168.3.0/24 -d 192.168.4.0/24 -j ACCEPT (See näide lubab liikluse C ja D vahel, aga E jääb ikkagi keelatuks.) 2) Miski alamvõrgu avamine liikluseks kõikidele alamvõrkudele. NB: Siingi peavad lisatavad reeglid olema kahepoolsed ehk midagi sarnast: iptables -A internal_traffic -s 192.168.0.0/24 -j ACCEPT iptables -A internal_traffic -d 192.168.0.0/24 -j ACCEPT (See näide avab liikluseks B ruuteri eth0 võrguga ehk C,D ja E saavad B ruuteri eth0 võrguga suhelda, aga omavahel siiski mitte.) |
Kui
vaja takistada näituseks miskitel massinatel pingimisega (D)DOSi
edukat läbiviimist. Tarkust ka: http://www.sns.ias.edu/~jns/security/iptables/ |
http://www.sns.ias.edu/~jns/security/iptables/iptables_conntrack.html#ICMP # Massin 192.168.0.12 ei saa pingida ruuteripurki: iptables -A INPUT -p icmp -s 192.168.0.12 --icmp-type 8 -j DROP # Alamvõrgu 192.168.2.0/24 massinad ei saa pingida ühtegi ruuteri läbimist vajava aadressiga massinat, aga küll ruuterit ennast: iptables -A FORWARD -p icmp -s 192.168.2.0/24 --icmp-type 8 -j DROP Lisatarkust icmp tüüpidest: http://www.linuxquestions.org/questions/showthread.php?threadid=5237 http://archives.neohapsis.com/archives/sf/linux/2002-q4/0025.html |
Kui toru ei ole piisavalt jäme, et kõiki WWW lehti pidevalt Internetist tõmmata - kasuta Squid Cache't. |
Täpsem info ja soft: http://www.squid-cache.org/ Üks Elioni võrku sobiv ja 192.168.X.X võrku cache'iva Squid'i konf: http://www.vendomar.ee/~ivo/squid.conf |
Kui
usaldus on väga suur ehk SSH ilma password'i küsimata. |
See on imelihtne, sest ainuke asi mida vaja on lisada ~/.ssh/authorized_keys2 faili selle kasutaja avalik võti ja järgmisel katsel ei küsita sellelt kasutajalt enam salasõna. Pikemalt: http://www.linux-mag.com/2004-07/tech_support_01.html |
Linux ja Windows eraldi
ketastel, kuidas bootida? |
Kui esimesel kettal on Linux ning teisel on Windows, siis GRUBi konfi tuleb veidi mudida (/boot/grub/grub.conf, /boot/grub/menu.1st): title Linux root (hd0,0) kernel /vmlinuz-2.6.23.8-63.fc8 ro root=/dev/sda2 initrd /initrd-2.6.23.8-63.fc8.img title Windows map (hd0) (hd1) map (hd1) (hd0) rootnoverify (hd1,0) makeactive chainloader +1 |
F10
keeldus uuendamast F9, sest SWAP oli /etc/fstab failis kirjeldatud kujul
/dev/sda3 |
Egas midagi, partitsioonidele LABELid kylge: "fdisk /dev/sda" annab partitsioonide tabeli ning tyybid ("p") ning "cat /etc/fstab" kuhu need partitsioonid yhendatud on. Minul andsid need tulemuseks: /dev/sda1 on yhendatud /boot ehk tegemist on boot kataloogiga (BOOT) /dev/sda2 on yhendatud / ehk tegemist on juurikaga (ROOT) /dev/sda3 on SWAP LABELite panekuks ext2/ext3 korral saab pruukida e2label utiliiti: e2label /dev/sda1 BOOT e2label /dev/sda2 ROOT SWAPi LABELi mudimiseks ei leidnud ma muud varianti kui SWAPi uuesti loomine, selleks: swapoff -a mkswap /dev/sda3 -L SWAP swapon -a /etc/fstab tuleb nyyd ka LABELeid kasutama panna ("joe /etc/fstab"): LABEL=ROOT / ext3 defaults 1 1 LABEL=BOOT /boot ext3 defaults 1 2 LABEL=SWAP swap swap defaults 0 0 PS: Muid /etc/fstab ridu ei maksa eriti mudida - saad endale jamad kaela |
Ühel ilusal hommikul läppar enam ei käivitunud.
Pärast lähemat uurimist selgus, et kõvaketas "ussitab" -
Bad Sector'id. Nüüd siis päästan, mida päästa
annab... |
Kuna üks neist vigadest asub sellises kohas, et Windows ega Linux ei ole valmis seda failisüsteemi avama, siis alustuseks teen sellest kettast koopia teisele kettale: dd if=/dev/sdc of=/dev/sdd conv=noerror,sync NB: /dev/sdc on see vigane ketas ja /dev/sdd on uus ketas. Edasi sai sama ketas pandud juba Windows'iga kasti ning käivitatud "chkdsk /R d:", mis paistab, et tõigi pea kõik ketta failid nähtavale. PS: Miskipärast on Windowsil nüüd eriline arusaamine faili omandiõigustest vms, aga vähemasti Linux'i all saab kõigele ligi ning vajalikud failid saab ehk ka tallele kopeeritud. Täpsemat juttu: http://www2.uic.edu/~aciani1/sector_blues.html http://rentzsch.com/notes/survivingIOErrors |
Vaja ühelt kettalt faile vaadata, aga selgus, et see LVM'iga
"partitsioneeritud". |
Kui vajalik kerneli moodul laadimata on, siis laen selle: modprobe dm-mod Vaatan, et millised LVM'id olemas on: vgscan Üleminek sobivale partistioonile: vgchange -a y mind_huvitav_lvm_ketas LVM ketta sisu vaatamine: lvdisplay Edasi läheb käiku juba tavaline "mount" käsk. Howto mount a logical volume (LVM) |
Vaja ühe ketta tõmmis keise masinasse saata. Kasvõ arhiiviks. |
Kohaliku masina /dev/sdb ketta tõmmis teise masinasse .img failiks: [root@massin ivo]# dd if=/dev/sdb | ssh kasutaja@192.168.0.10 dd of=ketta_t5mmis.img conv=noerror,sync kasutaja@192.168.0.10's password: How to use SSH to make a dd copy of disk A from host B and save on disk B? |
Kui miskipärast initramfs arusaam ketta (N: /dev/sda) partitsioonidest lahkneb
/boot/grub2/grub.cfg ja /etc/fstab kirjeldatud sisust, siis heal juhul kukud bootimisel
omadega dracut promptile, halvemal juhul ei juhtugi midagi ning süsteem
jääb rippuma. Kuidas seda probleemi ravida? |
Mul juhtus see Fedora 21 ketta kopeerimisel ning uuel kettal LVM'ist vabanemisel ehk uue partitsioonitableli tegemisel. Selgub, et /boot kataloogis (/boot kataloog eraldi /dev/sda1 partitsioonil) olevad initramfs tõmmised ei taha teada midagi sellistest muutustest ning kokkuvõttes tervitati mind bootimatu süsteemiga. Selle probleemi lahendamiseks tuleb masin bootida miskilt meedialt ning käivitada "dracut -f". Kuna muud ma ei leidnud, kui Fedora 21 Live DVD, siis sellelt ma masina käivitasingi ning esimesel võimalusel lülitusin ümber konsoolile (alt+f2 või alt+f3 vms, mis annab kasutatava prompti): mkdir /mnt/sysimage mkdir /mnt/sysimage/proc mkdir /mnt/sysimage/dev mkdir /mnt/sysimage/sys mount --bind /proc /mnt/sysimage/proc mount --bind /dev /mnt/sysimage/dev mount --bind /sys /mnt/sysimage/sys chroot /mnt/sysimage mkdir /boot mount /dev/sda1 /boot cd /boot dracut -f reboot PS: "dracut -f" teeb initramfs'i jooksvast kernelist, mis minu puhul oli kettal ja Live variandil sama, aga vajadusel tuleb kerneli versioon eraldi näidata. Kui masin nüüd bootib, siis tuleks kõik teised initramfs'id ka uuesti luua. Creating a New Initial RAM Disk |
Kui FTP serveri kasutaja lukustamine oma kodukataloogi (FTP CHROOT) on
pelgalt FTP-deemoni konfiguratsioonis kirjeldatav tegevus ning ei lõhu kasutaja
muid ligipääsu võimalusi, siis SFTP CHROOT paistab olema on sisult segasem lahendus. Vähemasti antud näide teeb kasutajast sisuliselt ainult SFTP kasutaja ning SSH ega kohaliku loginiga pole tal masinasse enam asja, kui just FTP serverit ei jooksuta. |
useradd kasutaja passwd kasutaja #SSH-deemon nõuab CHROOT kataloogi enda omandusse: chown root.root /home/kasutaja #SSH-deemon nõuab justnimelt selliseid õigusi: chmod 755 /home/kasutaja #Eelnevaga seonduvalt muutub kasutaja tavapärane (kodu)kataloog talle peaaegu kasutuks, sest see pole enam tema oma ega saa ta sinna ka salvestada! #PS: See hävitas ka tema võime kohalikku masinasse tavapäraselt sisse logida... #Kui kodukataloog ise on kasutu, siis teeme tema failidele sinna uue alamkataloogi: mkdir /home/kasutaja/data chown kasutaja.kasutaja /home/kasutaja/data #SSD-deemoni konfiguratsiooni mudimine: joe /etc/ssh/sshd_config #-------------------- #Ehk ei olegi nii vajalik samm, aga leitud näited seda miskipärast sisaldavad...: Subsystem sftp internal-sftp #Üksiku kasutaja eraldi pookimine on meil siiski vajalik: Match User kasutaja ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no #-------------------- #Salvestad faili [ctrl]+k+x ja SSH-deemonile taaskäivitus: systemctl restart sshd.service #Vajadusel, tahab SELINUX veel lisa sudimist: setsebool -P ssh_chroot_rw_homedirs on restorecon -R /home/kasutaja How to setup openssh chrooted sftp and SELinux in Fedora 16 OpenSSH SFTP ChrootDirectory Chrooted sftp gives “Permission denied” error |
Kui SSD'st ei piisa ehk kolime sodi NVMe kettale. |
NB! NVMe ajurid panevad ketta kuhugi /dev/nvme0nX ja partitsioonid on pX tähisega (N: /dev/nvme0n1p1). Selgus, et Fedora 25 ei pane NVMe draiverit (nvme.ko) GRUB2'le bootimiseks kaasa (initramfs'i) ning seega kukutab dracut end promptile, kus edasi pole midagi mõistlist teha (vist?!), sest ketast ju ei nähta... Selle häda kõrvaldasin dracut'i ehitamisega tavalisel SATA kettal ning siis selle ketta tõmmise kopeerimisega NVMe kettale (lisaks partitsioonide ning ketaste numeratsiooni parandamisega /etc/fstab'is ja /boot/grub2/grub.cfg's). Dracut'i osa selles tegevuses: # echo 'add_drivers+=" nvme "' > /etc/dracut.conf.d/nvme.conf # dracut -f |
Kaardile lisaks on vaja ka fyysilise liidese enese moodulit |
Kaardid ise saab vast toimima, sest draivereid leiab ja utiliidid ka, aga (fiibri)moodulite endi tugi on selgelt segane teema ja paistab olema kaarditootjate sisemine salajane tarkus. Oma mures naiteks HPE voi Mellanoxiga suhelda sa ei saa, sest need tahavad kohe support contracti, aga selline eBayst ostmine on olemuselt supporti välistav sündmus. Küsi kaardi müüjalt või mooduli müüjalt (kes kumbki ei tea, et kas voi mis moodulid toimivad nende seadmetega) ehk suuresti on see selline "osta omale need paar moodulit ära (selline mitmesajane laks) ning proovi ise järgi"-protseduur... ..., aga senine kogemus on positiivne, sest selline pimesi ostmine on õnnestunud ning 100GBe moodulid on kõik toiminud. Selle kogemuse järgi justkui paistaks, et 1GBe, 10GBe ning 40GBe moodulite tugi voib olla olemuselt nirum, kui seda 100GBe oma ongi. Ju seotud turu ja moodulite kasutusalaga, sest 100GBe klient on peamiselt datacentris ning need ei lase end eriti pikalt kottida ja kaotatud käibemahud ei ole seal paar moodulit korraga... NB: Mellanox kaartide seadistamiseks on vaja MST, MLXCONFIG, FLINT, MLXCABLES... utiliite, mida saab Windows/Linux variandina alla sikutada Mellanoxi veebist. Tarkust selleks vajalikest liigutustest leiab siit: https://network.nvidia.com/pdf/MFT/MFT_User_Manual_v4_11_0.pdf [root@boxta ~]# mst status MST modules: ------------ MST PCI module is not loaded MST PCI configuration module is not loaded PCI Devices: ------------ 0b:00.0 88:00.0 05:00.0 04:00.0 [root@boxta ~]# Hmm. Kus on seadmete nimed ja miks on siin miskid errorid? Redhat Fedora all sai neid kaarte varem muditud ja MST toimetas otse seadmenimedega, aga peale miskit uuemat kerneli uuendust on sellele vajalised kerneli moodulid puudu. See on suuresti seotud sellega, et antud pakk tuli valjaspoolt ning ei tea Fedora sellistest moodulitest midagi. Selgub, et neid pole tegelikult vajagi ja tuleb lihtsalt neid kaarte otse oma PCI-aadressiga nimetada: https://docs.nvidia.com/networking/display/MFTv4161/Running+mst+in+an+Environment+without+a+Kernel Kaablite ja moodulite info tarvis on vaja antud infot veidi koguda: [root@boxta ~]# mst cable add -I- Added 4 cable devices .. [root@boxta ~]# [root@boxta ~]# mst status -v MST modules: ------------ MST PCI module is not loaded MST PCI configuration module is not loaded PCI devices: ------------ DEVICE_TYPE MST PCI RDMA NET NUMA ConnectX4(rev:0) NA 0b:00.0 rocep11s0f0 net-ens2f0np0 0 ConnectX4LX(rev:0) NA 88:00.0 rocep136s0 net-ens4np0 1 ConnectX4(rev:0) NA 0b:00.1 rocep11s0f1 net-ens2f1np1 0 ConnectX4LX(rev:0) NA 05:00.0 rocep5s0 net-ens1np0 0 ConnectX3Pro(rev:0) NA 04:00.0 ibo49 net-ibo49,net-eno49d1 0 Cable devices: --------------- 05:00.0_cable_0 0b:00.1_cable_1 88:00.0_cable_0 0b:00.0_cable_0 [root@boxta ~]# Kaablite/moodulite info: Pikalt tootjaga arutatud ja katseks tellitud EdgeOptics 100GBe CWDM4 moodul: [root@boxta ~]# mlxcables -d 0b:00.0_cable_0 Querying Cables .... Cable #1: --------- Cable name : 0b:00.0_cable_0 >> No FW data to show -------- Cable EEPROM -------- Identifier : QSFP28 (11h) Technology : 1310 nm EML (60h) Compliance : Extended Specification Compliance is valid, 100GBASE-SR4 or 25GBASE-SR Wavelength : 1301 nm OUI : 0x0002c9 Vendor : EDGE Serial number : EO142201100068 Part number : 100G-QSFP28-2.1- Revision : B1 Temperature [c] : 65 [-10..80] Digital Diagnostic Monitoring : YES Length [m] : 0 m [root@boxta ~]# Selle teabe järgi polegi see justkui CWDM4 moodul SM-fiibril, vaid hoopiski SR ehk MM-fiibrile kirjeldatud, mille sagedus on viitega hoopiski LR4 poole... ...CWDM4 tas siiski on, sest toimib paaris ka tegeliku CWDM4 vastu. Mellanox kaartide-moodulite kapsad olid selles osas täieliselt vait ning veebi otsingud ei leidnud mitte ühtegi viidet, et millega või kellega koos toimivad ollakse. FS.com 100GBe CWDM4 moodul: [root@boxta ~]# mlxcables -d 05:00.0_cable_0 Querying Cables .... Cable #1: --------- Cable name : 05:00.0_cable_0 >> No FW data to show -------- Cable EEPROM -------- Identifier : QSFP28 (11h) Technology : 1310 nm DFB (44h) Compliance : Extended Specification Compliance is valid, 100G CWDM4 MSA with FEC Wavelength : 1310 nm OUI : 0x000000 Vendor : FS Serial number : C2106107848 Part number : QSFP28-IR4-100G Revision : 01 Temperature [c] : 51 [-10..80] Digital Diagnostic Monitoring : YES Length [m] : 0 m [root@boxta ~]# Mellanox 100GBe AOC kaabel: [root@boxta ~]# mlxcables -d 0b:00.1_cable_1 Querying Cables .... Cable #1: --------- Cable name : 0b:00.1_cable_1 >> No FW data to show -------- Cable EEPROM -------- Identifier : QSFP28 (11h) Technology : 850 nm VCSEL (00h) Compliance : 40G Active Cable (XLPPI), 100G AOC (Active Optical Cable) or 25GAUI C2M AOC with FEC Wavelength : 850 nm OUI : 0x0002c9 Vendor : Mellanox Serial number : MT1653FT02008 Part number : MFA1A00-C003 Revision : AC Temperature [c] : 58 [-10..80] Digital Diagnostic Monitoring : YES Length [m] : 3 m [root@boxta ~]# QSFP+ ja QSFP28 on vastavalt 4*10G ja 4*25G kanalitega, mis tähendab, et suht loogiliselt saab neil kanaleid üksteisest eraldada ning 40G pordis saab lihtsalt 10G ning 100G pordis 25G ehk 50G. Lisaks kanali füüsilisele poolitamisele kaablitega, saab vajalist üleminekut erineva kanalijaotuse vahel korraldada ka erinevate adapteritega: https://mymellanox.force.com/mellanoxcommunity/s/article/all-about-qsa-adapter Siin testitud Mellanox AOC tundub kõige universaalsem olema, sest too võttis 50GBe lingi üles ka 50GBe-only kaartidega, aga 100GBe moodulid ei tahtnud midagi muudest kiirustest teada. 25GBe moodulite proovimine 10GBe adapteritega on tegemata, aga see võib jääda EEPROMi taha kinni, sest milleks muuks eraldi toodet teha?! PS: Ideeliselt peaks olema tehtav, et kui nüüd lingi osapooled ei saa interface kiirustes omavahel kaubale, siis oleks ethtool abiks: https://medium.com/@christina.jacob.koikara/useful-ethtool-commands-7f2b1bca55d1 Veidi 100G taustainfot: https://www.qsfptek.com/article/common-and-distinct-features-of-qsfp28-lr4-vs-cwdm4-vs-psm4 |
Kasutatud Mellanox kaarte leiab eBays (ka Dell, Lenovo, IBM, ... branditud)
mitmesuguseid, aga nende kaartide firmware ei pruugi olla uusim ning kaart ei toimi
nagu tahaks. Firmware vahetust on vaja! |
Mellanox 100GBe kaardid (ja vanemadki 10/25/40/50 mudelid) on suht korralikult toetatud ning draiverite poolelt ei tohiks suuremat muret olla, aga kyll on kysimus kaartide endi firmware ja konfimisega, mis on draiveritest soltumatu tegevus. Proovisin kaarti Windowsi 10 all toimima saada, aga selgus, et antud 2-port HP branded Mellanox ajab masinal pcie-v3 siini peal juhtme kokku - see sunnik ei taha kuidagi Windowsi yles bootida. Peale suuremat trikitamist panin kaardi fyysiliselt emaplaadi pcie-v2 siinile ning Windows 10 tuli ilusasti yles. Kuna kaart oli endiselt leitav, siis sai sel ka firmwaret vahetada. Mellanox kaartide firmwared: https://network.nvidia.com/support/firmware/firmware-downloads/ Muude brandide all olevad Mellanoxi firmwaresid tuleb veebist otsida, kuigi suures osas on need kaardid suht muutmata Mellanoxi kaardid ise ning miskite trikkidega saab neile originaal Mellanoxi firmwaredki peale lasta... HPE HOWTO firmware uuendamiseks: https://support.hpe.com/hpesc/public/swd/detail?swItemId=MTX_9c6b7ec3480c47ddb5654ab82a#tab3 C:\WINDOWS\system32>mst status MST devices: ------------ mt4115_pciconf0 C:\WINDOWS\system32>cd d:\840qsfp28-100gbe\hp\2port D:\840QSFP28-100gbe\hp\2port>dir Volume in drive D is KINGSTON Volume Serial Number is 1248-2AF9 Directory of D:\840QSFP28-100gbe\hp\2port 04/02/2022 16:31 DIR . 04/02/2022 16:31 DIR .. 15/09/2020 13:15 16,744,768 fw-ConnectX4-rel-12_28_2006-MCX456A-ECA_Ax-UEFI-14.21.17-FlexBoot-3.6.102.bin 1 File(s) 16,744,768 bytes 2 Dir(s) 26,937,278,464 bytes free D:\840QSFP28-100gbe\hp\2port>flint -d mt4115_pciconf0 -i fw-ConnectX4-rel-12_28_2006-MCX456A-ECA_Ax-UEFI-14.21.17-FlexBoot-3.6.102.bin burn Done.ng flash section: 100%←[2K Current FW version on flash: 12.14.0020 New FW version: 12.28.2006 Burning FW image without signatures - OK Restoring signature - OK -I- To load new FW run mlxfwreset or reboot machine. D:\840QSFP28-100gbe\hp\2port> Peale firmware vahetamist tõstsin selle uuesti pcie-v3 siini peale ning Windows 10 suutis end selle kaardiga koos bootida! |