Архива за 'unix' категорију

Napredna paranoja OpenSSH servera

мај 8, 2008

Posle jedne od diskusija na linuxo.net forumima palo mi je na pamet da sastavim jedno malo uputstvo za povećanje bezbednosti OpenSSH servera. OpenSSH je odlična aplikacija za udaljeni pristup računarima jer omogućava kriptovanu vezu i potpuni osećaj rada u komandnoj liniji kao na lokalnoj mašini. OpenSSH je projekat, pazi ti to, OpenBSD ekipe. Dakle, postoji više načina da zaštitite svoj SSH pristup od radoznalaca i loših ljudi. Ja ću se ovde koncentrisati na jedan konkretan - sertifikati. Upotreba sertifikata za pristup udaljenoj mašini je jedan od boljih načina da se poveća sveukupna bezbednost servera. Sertifikati se obično koriste za tzv. pristup bez šifre. Naime, da ne biste pamtili stalno svoju šifru kreiraćete sertifikat koji nema šifru i pomoću njega pristupati sistemu. Ovo je loše jer ako neko dođe u posed vašeg sertifikata onda nastaju problemi. Za ovu priliku ću ipak koristiti seritifkat sa šifrom. Dakle, pređimo na posao. # local$ ssh-keygen -t rsa - obavezno unesite šifru u dijalogu za nju # local$ scp ~/.ssh/id_dsa.pub udaljena_masina # local$ ssh username@udaljena_masina # remote$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys # remote$ chmod 644 ~/.ssh/authorized_keys - obavezno ovo uradite jer u suprotnom sistem neće čitati sertifikat nego će tražiti šifru. To je to. Prekinete vezu sa udaljenom mašinom i kada pokušate ponovo da se nakačite dobićete nešto ovako: Enter passphrase for key ‘/home/nightweaver/.ssh/id_rsa’: Unesete šifru RSA ključa i bićete na sistemu. OK, idemo korak dalje. Ukoliko neko nema sertifikat biće prebačen na obično logovanje. Mi to ne želimo. Želimo da samo ljudi sa sertifikatom mogu da pristupe sistemu. Slede momenti napredne paranoje. Pre svega, napravimo korisnika koji ima neko neobično ime. Nešto što će biti teško povezati sa vama. Recimo, gatto. Dakle, imamo korisnika gatto. Prebacimo onaj sertifikat od malopre u home DIR korisnika gatto. Proverimo da li radi tako što ćemo uraditi: ssh gatto@udaljena_masina Ako se traži šifra sertifikata onda je sve OK. Idemo dalje. OpenSSH server ne mora slušati na podrazumevanom portu 22. To je port koji će razni skeneri prvo napadati. Prebacimo taj port na nešto visoko i nestandardno. Recimo: 7000. Ovo sve radim na OpenBSD mašini ali je procedura identična i za FreeBSD i GNU/Linux. Dakle: vim /etc/ssh/sshd_config Pri vrhu datoteke ćete videti liniju: Port 22. Izmenite to u 7000. Sačuvajte izmene i restartujte SSH server. Sada čete se na sistem kačiti na sledeći način: ssh -p 7000 gatto@udaljena_masina a sftp če raditi ovako: sftp -oPort=7000 gatto@udaljena_masina Proverite da li sve radi kako treba. Radi? Sjajno, idemo dalje. Kao što sam već naveo, ukoliko neko nema sertifikat bićemu tražena obična šifra. Ali mi želimo da ti "brute force" pokušaji unošenja šifre budu potpuno onemogućeni. Izmenimo sshd_config podatke da izgledaju ovako: LoginGraceTime 1m PermitRootLogin no StrictModes yes MaxAuthTries 3 AllowUsers gatto Ovako postižemo sledeće: korisnik ima 1m da unese svoju šifru, logovanje root korisnika direktno nije dozvoljeno a na raspolaganju će imati samo tri šanse da unese šifru. Poslednji red je veoma koristan. Samo korisnička imena koja se tu nalaze će uopše moći da priđu SSH serveru. Dakle, čak i da ne koristite sertifikate samo čete korisnikom gatto moći da se ulogujete. Lukavo, zar ne? Idemo dalje. Ukažimo sistemu gde mu se nalate RSA ključevi: RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys Isključimo sve ostalo: RhostsRSAAuthentication no HostbasedAuthentication no IgnoreRhosts yes Sledeći redovi su jako bitni. Stavite ovde NO samo ako ste prethodno testirali pristup RSA ključevima. Posto kada ovo prebacite u NO više neće biti moguće ući na sistem običnom šifrom. PasswordAuthentication no PermitEmptyPasswords no Dakle, sada samo korisnik gatto može pokušati da se uloguje i to ako i samo ako ima RSA sertifikat. No, ovo meni nije bilo dovoljno. Želeo sam da čak i ako neko uspe da uđe na sistem ne može tek tako doći do root naloga. Zato korisnika gatto nisam stavio u grupu wheel te samim tim komanda SU nije radila za njega. No, gatto se može prebaciti na nekog drugog korisnika. Napravio sam sebi radni nalog nightweaver koji je član grupe wheel i može postati root. Da vidimo sada malo skicirano kako izgleda ulaz na sistem: A nema sertifikat i ne zna dozvoljenog korisnika –> server - odbijen i pokušaj prilaska A ima sertifikat ali ne zna dozvoljenog korisnika –> server - odbijen i pokušaj prilaska A ima sertifikat, zna dozvoljenog korisnika ali ne za koji korisnik moze da radi SU –> ne može da napravi veliku štetu Putanja do sistema bi onda izgledala ovako: A mora imati sertifikat A mora znati koji korisnik koristi taj sertifikat i koja je šifra sertifikata A mora znati koji korisnik na serveru može da radi SU i koja je njegova šifra A se mora prebaciti na korisnika koji može raditi SU pa tek onda postati root Sve ovo može izgledati dosta komplikovano… verujte mi, nije. Probajte sami pa ćete videti. Kao neko ko se dosta dugo bavi bezbednošču računarskih mreža mogu vam reći da ni jedan sistem nikada neće biti najbezbedniji. Uz dovoljno truda i znanja svaka se zaštita može pre ili kasnije probiti. Ali zašto ne zakomplikovati put do sistema za one kojima tamo nije mesto?

Why I love strace

март 25, 2008

Strace is a tool that should be in a toolbox of every system administrator. Not only that it can help in troubleshooting simple problems (ie. missing libraries in newly created chroot, which ldd mysteriously misses to report) but it also helps in debugging very complex system problems and performance issues.

Recently I experienced a very strange problem with one of the RHEL 3 servers we’ve got. Problem manifested in a very strange way, SSH and su logins hanged, other daemons were also hanging during the startup, only way to reboot or shutdown the server was to physically press the restart/power off button, etc. All this could have been caused by problems on both software and hardware level. First suspicious was bad RAID controller, but after tests this proved to be a mislead. After more tests and brainstorms hardware problems were definitely excluded, so problem has to be on the software side. But what could be the problem?

After few more misleading steps I tried to trace system calls created by su command and found very interesting results.

$ strace -f -s 1024 -o /tmp/su.strace.out su - [– cut –] 3138 open(”/dev/audit”, O_RDWR) = 3 3138 fcntl64(3, F_GETFD) = 0 3138 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 3138 ioctl(3, 0×801c406f

And this is where the strace output ends and su command hangs. Audit device file is opened (file descriptor 3) and as soon as the first request is dispatched to this device (ioctl system call to file descriptor 3) command freezes. According to this I should just disable audit on the server and the problem will be gone. As a test, audit daemon was temporarily stopped and I tried to switch to another user and the problem was indeed gone.

After searching for similar problems with audit daemon I found an article in Red Hat knowledge base regarding the exactly same issue (http://kbase.redhat.com/faq/FAQ_79_6169.shtm). From the article:

When the free space in the filesystem holding the audit logs is less than 20%, the above notify command will error out and auditd will enter suspend mode. This causes all system calls to block.

So this behavior is not a bug but actual feature of the software. :o) From security point of view this is expected behaviour - attacker could fill up filesystem where audit logs are stored before the attack and audit will be disabled, meaning no logs of his activity, so better not to allow ANY activity on the system if audit is not able to write to its logs. But still, this kind of behaviour renders the system completely useless to legitimate users.

The topic of this post is not audit, so I will stop here. Important thing is that strace led us directly to the main source of the problem. Resolution of issues like this would be much more complex and time consuming without this great little tool. :)

OpenSolaris predavanje - utisci

децембар 14, 2007

Ono što sam najavio u prethodnom postu odigralo se danas. Za one koji nisu pročitali prethodni post, u pitanju je predavanje o OpenSolarisu.

Predavanje su održala dva developera iz Češke zaposlena u Sun-u (Tomas Dzik i Milan Jurik). Malo duže je trajalo nego što su najavili, ali su teme bile krajnje zanimljive (bar meni) tako da mi je i drago zbog toga. Pošto sam do sad imao jako malo dodira sa Solarisom (znam samo osnovne stvari) dosta novih stvari sam saznao. Teme o kojima je govoreno su napisane u prethodnom postu, a propraćene su live primerima.

Na kraju (kad je samo nas nekoliko ostalo) su podelili brisače šoferšajbne sa OpenSolaris logo-om uz rečenicu: “Wipe your windows!”

Drugi deo je možda i bio zanimljiviji jer je bio neoficijalan, a bilo je i piva . Dvojica predavača su došla u LUGoNS prostorije i u opuštenoj atmosferi su pričali o razmim IT temama. Na početku su uglavnom odgovarali na pitanja o OpenSolarisu, ali kasnije su se dotakli raznih tema. Jedna od zanimljivijih stvari koje sam saznao je kako je Eclipse (pomračenje sunca) dobio ime. Naime, IBM je bio kum, a ime je dato kao odgovor na ime firme koja je razvila Javu - Sun (sunce). I pre sam mislio da je Eclipse dobro ime, ali nikad se nisam potrudio da saznam zašto se tako zove.

Nisam ništa slikao (aparat mi je extremno star, a i nemam naviku), ali dreamerns jeste tako da možda okačim i koju sličicu ako se setim da tražim da mi pošalje.

Sve u svemu, odlično proveden dan.

OpenSolaris - informacije iz prve ruke

децембар 10, 2007

U četvrtak, 13. decembra 2007. godine na Fakultetu Tehničkih Nauka u Novom Sadu biće održano predavanje o OpenSolaris-u. Predavanje će biti na engleskom, a predavači su Tomas Dzik i Milan Jurik iz Sun Microsytems predstavništva iz Češke.

Teme koje će biti obrađene su:

OpenSolaris i OpenSolaris distribucije, kako učestvovati u razvoju. DTrace - novi alat za tracing + demo uživo. ZFS - novi 128-o bitni fajl sistem + demo uživo Solaris Zones i BrandZ - Linux virtuelizacija pod Solrisom + demo uživo

Predviđeno vreme trajanja manifestacije je sat i trideset minuta.

Ulaz je slobodan i predavanje nije ograničeno sam0 na studente i zaposlene na FTN-u.

Zombirana deca na sistemu…

септембар 26, 2007

Kada posmatrate aktivnost na UNIX ili UNIX sličnom sistemu videćete određen broj procesa od kojih su neki ativni a neki spavaju. Ponekad će vam se desiti da se na listi nađe i određen broj zombiranih procesa. Nije potrebno previše mašte da shvatite šta može biti zombi proces. Za one koji ne žele puno da maštaju na datu temu evo kratkog objašnjenja: kada određen proces završi ono što radi ali ostane u tabeli procesa on postaje nemrtav ili zombi. Dete proces je umrlo (died) ali još uvek ga Smrt nije pokupila(reaped). U normalnim okolnostima bi roditeljski proces (parent) trebalo da pročita izlaznu informaciju svog deteta (child) izvršavanjem sistemske komande wait pri čemu se zombi uklanja. Ukoliko sve ne ide po planu mali zombi ostaje u listi procesa. Ovo ponekad može biti poželjno ukliko roditeljski proces pravi nove procese koji ne bi trebalo da imaju iste ID kao prethodna deca. Opet, ovo ponekad može biti loše..posebno kada se zombirana deca prenamnože.

Evo kratkog ali slatkog uputstva kako da pobijete svu zalutalu decu…(divna terminologija, zar ne?)

Prvo pokrenite komandu ps aux da biste videli svu tu zalutalu decu. Izaberite bilo koje od njih (PID) pošto će ih biti podosta.

ps axo ppid -p <pid deteta> | grep -v PPID | sed 's/ //g'

Ovo će nam dati PID roditelja. Ukoliko nemate pojma koji je to program evo kako ćete saznati:

which `ps axo command -p <pid roditelja> | grep -v COMMAND | cut -d' ' -f1`

Ok, sad znamo ko je vudu vrač koji podiže sve te zombije. Šta ćete sa njim raditi je na vama. Prosto restartovanje programa će pobiti sve zombije. Ukoliko želite da vidite šta se to desilo možete uraditi sledeće:

gdb /putanja/do/programa PID-roditelja

Srećno ubijanje dece…zombija…zombirane dece:-)

Zombirana deca na sistemu…

септембар 26, 2007

Kada posmatrate aktivnost na UNIX ili UNIX sličnom sistemu videćete određen broj procesa od kojih su neki ativni a neki spavaju. Ponekad će vam se desiti da se na listi nađe i određen broj zombiranih procesa. Nije potrebno previše mašte da shvatite šta može biti zombi proces. Za one koji ne žele puno da maštaju na datu temu evo kratkog objašnjenja: kada određen proces završi ono što radi ali ostane u tabeli procesa on postaje nemrtav ili zombi. Dete proces je umrlo (died) ali još uvek ga Smrt nije pokupila(reaped). U normalnim okolnostima bi roditeljski proces (parent) trebalo da pročita izlaznu informaciju svog deteta (child) izvršavanjem sistemske komande wait pri čemu se zombi uklanja. Ukoliko sve ne ide po planu mali zombi ostaje u listi procesa. Ovo ponekad može biti poželjno ukliko roditeljski proces pravi nove procese koji ne bi trebalo da imaju iste ID kao prethodna deca. Opet, ovo ponekad može biti loše..posebno kada se zombirana deca prenamnože.

Evo kratkog ali slatkog uputstva kako da pobijete svu zalutalu decu…(divna terminologija, zar ne?)

Prvo pokrenite komandu ps aux da biste videli svu tu zalutalu decu. Izaberite bilo koje od njih (PID) pošto će ih biti podosta.

ps axo ppid -p <pid deteta> | grep -v PPID | sed 's/ //g'

Ovo će nam dati PID roditelja. Ukoliko nemate pojma koji je to program evo kako ćete saznati:

which `ps axo command -p <pid roditelja> | grep -v COMMAND | cut -d' ' -f1`

Ok, sad znamo ko je vudu vrač koji podiže sve te zombije. Šta ćete sa njim raditi je na vama. Prosto restartovanje programa će pobiti sve zombije. Ukoliko želite da vidite šta se to desilo možete uraditi sledeće:

gdb /putanja/do/programa PID-roditelja

Srećno ubijanje dece…zombija…zombirane dece:-)

Easy way to read MBR?

септембар 5, 2007

10$ question. Sometime ago you have created backup of your systems Master Boot Record (MBR). Now, after some change, you noticed you did a fatal mistake and your partition table is corrupted and you need to recover it from the backup you created, but you are not sure if it is the correct version. The question is, what is the easiest way to read partition table from the backup of your MBR? No, Hex editor is not the easiest way to do it (and it is bad for your eyes :)). I wonder how many of you said ‘file’ command? Yes, magical file command is able to read the data from the mbr dump and prints you the actual partition table. Here is an example from my laptop.

# file mbr.bin mbr.bin: x86 boot sector; partition 1: ID=0×83, active, starthead 1, startsector 63, 40949622 sectors; partition 2: ID=0×82, starthead 254, startsector 40949685, 2088450 sectors; partition 3: ID=0×8e, starthead 254, startsector 43038135, 74172105 sectors, code offset 0×48

As you can see I have only 3 partitions on the disk. First one has type 0×83, which is HEX id for ext3 type of partition and it is my / partition (you don’t see it here, but I know it :)). It is also active partition, it means that it is used for booting the system. You can also see the size of the partition in sectors. Knowing that one sector has length of 512 bytes you can easily find out the size of the partition.

# echo $(((40949622/2)/1024)) 19994 # df -k / Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 19833488 6504676 12305072 35% /

That’s it, correct. :)

Next partition is 0×82 which is swap partition. And last partition is 0×8e which is id for Linux LVM partition.

While I am here, I could also explain what is MBR and how it is used.

Main Boot Record resides in first 512 bytes of your bootable disk. Besides partition table it also holds bootloader and something called a magic number. As you can see on the picture, bootloader takes the biggest part of MBR, whole 446 bytes. During the boot process BIOS search for a bootable devices attached to your system and once it finds it it looks at the MBR and loads the bootloader, also called primary bootloader. Primary bootloader looks at the partition table inside MBR (next 64 bytes after the bootloader) and searches for an active partition. When it finds active partition it loads the secondary boot loader from that partitions boot record which, in turn, loads the kernel, and so on.

Magic number is used for sanity check of your MBR. It holds only 2 bytes and should be 0xAA55.

So, in short words, MBR is used to easily locate and load kernel from the correct device. (It is also used by your operating system to find the layout of the disk, but that is another story.)

PS: You can create a dump of your MBR by issuing next command:

# dd if=/dev/sda of=mbr.bin bs=512 count=1

Replace /dev/sda with the correct address to your disk.

PS 2: Sorry for bad quality of the MBR scheme, but I didn’t have much time to work on it and I am not a graphic designer. :D

HP-UX UNIX95 Compatibility

јул 26, 2007

HP-UX is well known for the ease of patch and product manipulation. These operations are done via software called Software Distributor (SD). Situations where SD fails are very rare but they can be very strange.

One of those weird situations happened to me last week. I downloaded patch bundle from HP site and tried to create a depot. Very simple action - untar the bundle, run the create_depot_hp-ux_11 script and the script and SD will do all the necessary things. But, here comes the weird part - checksum error for all patches in the bundle.

# create_depot_hp-ux_11 DEPOT: /var/depot BUNDLE: BUNDLE TITLE: Patch Bundle UNSHAR: y PSF: depot.psf Expanding patch shar files… x - PHCO_23651.text x - PHCO_23651.depot [compressed] ERROR: wc results of PHCO_23651.depot are 7082 23582 522240 should be 7082 18520 522240 x - PHKL_18543.text x - PHKL_18543.depot [compressed] ERROR: wc results of PHKL_18543.depot are 146386 592281 20377600 should be 146386 524212 20377600

I checked the checksum of the bundle itself and it seemed perfectly fine. What a puzzle, a?

Here is the story. HP-UX was supposed to be compatible with UNIX95 specification, but the problem is that, for some reason, this compatibility breaks SD. This compatibility is enforced by environment variable called UNIX95. So if you ever notice problem like this, check first if this variable is active on your server and if that is the case just simply unset it and your SD will be fully functional again.

# set|grep UNIX95 UNIX95=yes # unset UNIX95 # create_depot_hp-ux_11 DEPOT: /var/depot BUNDLE: BUNDLE TITLE: Patch Bundle UNSHAR: y PSF: depot.psf Expanding patch shar files… x - PHCO_23651.text x - PHCO_23651.depot [compressed] x - PHKL_18543.text x - PHKL_18543.depot [compressed]

Happy patching! :)

AIX 6 ready for download!

јул 12, 2007

Like I previously announced, IBM AIX 6 Beta will be openly available for free download and testing. This time has come and you can start downloading it right now from this page. More info here.

AIX 6 should bring a lot of new stuff especially when it comes to virtualization and high-availability issues. Some new features are ported directly from fault-tolerant systems which should provide even more stable and reliable systems. There will be no official support for Beta testing, but you can ask for help on one of the IBM forums.

Openness of IBM is a pretty new thing. This change in IBM policy is probably influenced by SUN’s opening of Solaris to the community. But even though some changes started, IBM is still far away from OpenSource and from opening code of it’s product to the OpenSource community. And that is a pity because I would really like to see the same usability features on some other UNIX operating systems. Sadly, even Linux is far behind AIX when it comes to usability.

32 * 2 = 16h

јул 8, 2007

Last week I had an interesting assignment, upgrading one AIX 5.2 server from 32bit to 64bit kernel. Process should be pretty straight forward and is very nicely explained in AIX documentation, but as usual, all actions that require application stopping have to be done after working hours - in this case after 9pm. Considering that all changes, system reboot and application start/stop sequence should not take more than 45 minutes this is not a big problem. As many times before, I didn’t count on good ol’ friend of all system administrators - Murphy.

But, let’s start from the start. First thing I did was to check if the server supports 64bit environment and what version of the kernel is currently running.

# bootinfo -y 64 # bootinfo -K 32

So, the hardware on this server is 64bit (as expected) and active kernel is 32bit. Now, let’s stop applications. Only important application on this server is a production Oracle database. We have to stop it before reboot. (Important thing to note at this moment is the version of database, it is old 8.1.7.4 release of Oracle.)

# su - oracle % sqlplus /nolog     SQL*Plus: Release 8.1.7.0.0 - Production on Wed Jul 4 21:01:20 2007     (c) Copyright 2000 Oracle Corporation. All rights reserved.     SQL> conn / as sysdba Connected.( SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 - Production JServer Release 8.1.7.4.0 - Production

In order to be able to execute 64bit binaries we must edit /etc/inittab so the syscall64 kernel extension is loaded during the boot.

# mkitab “load64bit:2:wait:/etc/methods/cfg64 >/dev/console 2>&1″

The switch to 64bit kernel is done by simply relinking paths to the kernel and modules, and updating boot image on the boot device. Followed by a reboot. Simple as that.

# ln -sf /usr/lib/boot/unix_64 /unix # ln -sf /usr/lib/boot/unix_64 /usr/lib/boot/unix # bosboot -a # shutdown -Fr

After the reboot, I checked the version of running kernel to see if the change actually took place.

# bootinfo -K 64

Perfect! so simple isn’t it. I just love when things go so smoothly. Now let’s start Oracle.

# su - oracle % sqlplus /nolog Could not load program sqlplus: Symbol resolution failed for sqlplus because: Symbol pw_post (number 272) is not exported from dependent module /unix. Symbol pw_wait (number 273) is not exported from dependent module /unix. Symbol pw_config (number 274) is not exported from dependent module /unix. Symbol aix_ora_pw_version3_required (number 275) is not exported from dependent module /unix. Examine .loader section symbols with the ‘dump -Tv’ command.

“Argh, this can’t be happening!” I was thinking, so I tried again. Surprisingly, that didn’t help. After the initial shock, I looked at the message more carefully and tried to figure out what the hell it meant. Kernel doesn’t support necessary Oracle symbols - so maybe the Oracle kernel extension is not loaded, let’s check.

# loadext -r     Oracle Kernel Extension Loader for AIX Copyright (c) 1998,1999 Oracle Corporation     sh: /usr/sbin/crash: not found No Kernel Extension is currently running.

I was on a right trail. But this is strange, Oracle kernel extension is loaded from /etc/inittab during the boot, it SHOULD be loaded. Maybe the inittab got corrupted.

# lsitab -a|grep ora orapw:2:wait:/etc/loadext -l /etc/pw-syscall

It is there. In the agony I thought maybe syscall64 extension was not loaded so it failed (although it should not matter).

# genkex|grep syscall 4635e70 390 /usr/lib/drivers/syscalls64.ext

It is there. Let’s try to call it manually, maybe it will work now.

# loadext -l /etc/pw-syscall     Oracle Kernel Extension Loader for AIX Copyright (c) 1998,1999 Oracle Corporation     Kernel Extension Version: 3 SYS_SINGLELOAD: Exec format error kmid: 0 (0×0) path: ‘/etc/pw-syscall’ libpath: ”

Maybe, this extension does not support 64bit environment?

# strings /etc/pw-syscall|head -3 Kernel Extension Version: 3 $Revision: 1.9 $ Supported Oracle Instances: 32-bit & 64-bit

Now I am puzzled even more.

At this point I felt stuck. Reverting back to 32bit kernel was not even an option as this was only one part of the big migration process on this server. But, on the other hand Oracle has to be up and running by morning - this is a very important production server. As I am not an Oracle guru and there was no one from DB team around to ask for advice, I asked Google for help. As many times before, it proved to be wise choice. People already had this problem and solved it by applying small patch for Oracle.

Important thing here is that Oracle version 8 does not support 64bit kernel on AIX. It requires patch number 2896876 in order to do so.

After applying this patch you get a new kernel extension which loads without complaining.

# genkex|grep syscall 466c850 1218 /etc/pw-syscall64 4641ec0 390 /usr/lib/drivers/syscalls64.ext

Now, let’s try to start Oracle.

# su - oracle % sqlplus /nolog     SQL*Plus: Release 8.1.7.0.0 - Production on Thu Jul 5 00:47:45 2007     (c) Copyright 2000 Oracle Corporation. All rights reserved.     SQL> conn / as sysdba Connected to an idle instance. SQL> startup ORACLE instance started.     Total System Global Area  178704276 bytes Fixed Size                    73620 bytes Variable Size             135630848 bytes Database Buffers           41943040 bytes Redo Buffers                1056768 bytes Database mounted. Database opened. SQL> exit Disconnected % ^D

Nice. :) Next thing is to change inittab to load new Oracle kernel extension,

# chitab “orapw:2:wait:/etc/loadext -l /etc/pw-syscall64″

stop oracle and reboot server again to see how it will behave after the reboot. Luckily everything works fine so at 01am I can finally go home. It was about time since I was there for almost 16 hours (hence the subject of the post.) Ah, the pleasures of being a system administrators are flexible working hours, isn’t it? :)

Usability… WTF is that?

јул 1, 2007

One of the very important things when it comes to software development is usability. Software should be user friendly and easy to use. Despite sustained opinion software for system administration should not be an exception. After all, system administrators are still humans (although some people don’t agree with that :). So it was always a mystery to me why some OS developers, or at least developers of user space tools, try to complicate it as much as they can.

Perfect example for this is Veritas Volume Manager. Other UNIX LVM technologies provide very logical and simple to use tools for LVM administration, but seems that VxVM has “the more confusing - the better” philosophy. Perfect example for this is simple activity of checking how much free space is left in Disk Group (Volume Groups are called Disk Groups in Veritas Volume Manager :)).

# vxdg -g rootdg free GROUP  DISK     DEVICE   TAG    OFFSET   LENGTH  FLAGS rootdg rootdisk c1t0d0s2 c1t0d0 46595904 96722880 -

Now, all fields are self explanatory, but WTF are Offset and Length?! Well, Offset is the number of the block where free space begins and Length is size of the free space in blocks. I agree this is very informative and useful output, but why naming fields like this? Why not use simple names like for example “Used space” and “Free space”? Hm, beats me.

But fun doesn’t end there. In case you don’t have free space in your Disk Group vxdg command will not inform you about that, it will just output the header and exit. Very user friendly, isn’t it? :)

Don’t get me wrong, I am not saying VxVM is a bad piece of software. I think it is very powerful and with features that many other Volume Manager software lacks. But, people at Symantec could really hire some usability expert to work on VxVM, it would be a challenge of a lifetime. :)

OpenSSH chroot paranoja

април 15, 2007

Kada je u pitanju administracija servera i bezbednost istih ni jedan stepen paranoje nije dovoljno visok. Posebno kada je u pitanju shell pristup koji ponekad jednostavno moramo dati svojim korisnicima iako to zaista ne želimo(BOFH). Najbolji način da se zaštitimo od potencijalnih nevolja koje taj shell pristup može da izazove jeste da ih nekako zatvorimo u neki virtuelni kavez iz kog ne mogu da pobegnu te da jedina šteta koju mogu da načine jeste šteta nad sopstvenim podacima(BOFH).

Uzmimo FreeBSD kao prvu žrtvu ovih paranoičnih izmena. Ovde je procedura donekle lakša. Prvo ćemo zameniti sistemski SSH server onim koji možete naći pod:

/usr/ports/security/openssh-portable/

U pitanju je port verzija OpenSSH servera koji možete naći kod OpenBSD-a. Lično, uvek koristim tu verziju. Kada počnete instalaciju dobićete mogućnost da podesite malo taj OpenSSH. Ukoliko instalacija odmah počne bez ikakvih ponuđenih opcija (desi se i to ponekad) sve što treba da uradite je da je prekinete i ukucate komandu:

make config

Stavka na listi koja nas zanima je OPENSSH_CHROOT. Onda se vratite starom dobrom make install clean i to je to. Sada je potrebno da ubijete sistemski SSH i da malo izmenite /etc/rc.conf:

sshd_enable="NO" # OpenSSH server openssh_enable="YES" # OpenBSD OpenSSH-portable

Sada će se pri pokretanju sistema startovati OpenBSD verzija OpenSSH servera. I sada to sve radi..malo sutra. Jedva sam našao kako to zapravo treba da se podesi.

OpenSSH koji se kompajlira sa OPENSSH_CHROOT zakrpom čita putanju do home DIR malo drugačije. Tačnije, čita ”.” u putanji tako što je za njega ona / sistema. Malo sam zakomplikovao ovu rečenicu? Moguće.:) Dakle, ako je putanja do korisničkog home DIR recimo ovako nešto:

/home/./jail/home/user

kada se korisnik uloguje na sistem i kuca “cd /” neće dobiti pravu root particiju već /jail i neće moći iz nje da izađe. Jako korisno, zar ne?

Problem nastaje što onda korisnik nema gotovo ništa od komandi..tačnije, ne može ni ući na sistem jer nema ni jedan shell. Ono ”/bin/csh” u njegovim podacima sada neće imati smisla. Šta sad? Napravimo mu onda “zatvor” koji ima neke od komandi.

cd /home/jail mkdir bin lib etc cp /bin/csh bin/

Vodite računa da programi i komande koje kopirate u ”/bin” imaju i sve potrebne biblioteke. To ćete učiniti tako što ćete kucati:

ldd /home/jail/bin/csh

Dobićete nešto ovako:

/bin/csh: libncurses.so.6 => /lib/libncurses.so.6 (0x280bd000) libcrypt.so.3 => /lib/libcrypt.so.3 (0x280fc000) libc.so.6 => /lib/libc.so.6 (0x28114000)

Aha, dakle potrebne su nam i neke biblioteke. Dobro, iskopirajte ih sve u naš “jailovan” /lib/” direktorijum. Sada će sve raditi kako treba.Šta sesve valja naći u “bin” direktorijum? To od vas zavisi. Ako korisniku date samo csh neće moći da radi ništa do da se uloguje na sistem. Korisno je dati mu komande: cd, ls,cp, mv, rm…odlučite već sami, ovo je samo predlog.

I to je to. Kada vaši korisnici uđu na sistem najdalje što će moći da odu jeste /jail. Ukoliko već imate korisnike koje želite da smestite u kavez:

chpass username

te izmenite samo putanju do /home/ direktorijuma. Putanju do shell-a ne dirajte. I to je to. NAPOMENA: Ovo ima smisla samo ako je korisnik na sistem ušao preko SSH veze…ukoliko ima fizički pristup mašini onda chroot ne radi.:)

OpenBSD zahteva za nijansu drugačije korake. Iako su rekli da je zakrpa koja omogućava chroot ubačena to nije tačno jer čitanje ”.” u putanji ne radi dok sami ne dodate zakrpu koja sledi. No, to nije teško. Pretpostavimo da imate najnoviji OpenBSD (4.0). Vreme je da stavimo novu verziju OpenSSH-a na njega. Svoj paket možete naći na http://www.openssh.org/openbsd.html Tamo ćete naći i uputstvo koje kaže sledeće:

cd /usr/src/usr.bin tar xvfz .../openssh-4.6.tar.gz cd ssh make obj make cleandir make depend make make install cp ssh_config sshd_config /etc/ssh

To je OK ako samo želite novu verziju SSH-a- Mi ćemo ovo uraditi malkice drugačije. Prva tri koraka su sasvim OK. Tu stanite. Ono što ćete uraditi jeste izmena datoteke session.c.

cp session.c session_backup.c vim session.c

I dodajte ispred funkcije do_setusercontext sledeći kod:

/* do chroot / void do_chroot(struct passwd *pw){ char *user_dir; char *new_root; user_dir = xstrdup(pw->pw_dir); new_root = user_dir + 1; while((new_root = strchr(new_root, '.')) != NULL) { new_root--; if(strncmp(new_root, "/./", 3) == 0) { *new_root = '\0'; new_root += 2; if(chroot(user_dir) != 0) fatal("Couldn't chroot to user directory %s", user_dir); pw->pw_dir = new_root; break; } new_root += 2; } } / do_chroot /

Zatim dodajte:

/ Set login name, uid, gid, and groups. / void do_setusercontext(struct passwd *pw) { / OVO DODAJETE / do_chroot(pw); / OVO DODAJETE */ if (getuid() 0 || geteuid() 0) { #ifdef HAVE_LOGIN_CAP

Naznačio sam vam šta tačno dodajete. Ono ispred i iznad mog komentara je tu da lakše nađete tačnu lokaciju za dodatnu funkciju.

I sad se vratite koracima za instalaciju OpenSSH-a. Sve bi trebalo da prođe OK. Restartujete OpenSSH server a ostatak je isti kao kod FreeBSD-a. Srećno zlostavljanje korisnika.:-)

OpenSSH chroot paranoja

април 15, 2007

Kada je u pitanju administracija servera i bezbednost istih ni jedan stepen paranoje nije dovoljno visok. Posebno kada je u pitanju shell pristup koji ponekad jednostavno moramo dati svojim korisnicima iako to zaista ne želimo(BOFH). Najbolji način da se zaštitimo od potencijalnih nevolja koje taj shell pristup može da izazove jeste da ih nekako zatvorimo u neki virtuelni kavez iz kog ne mogu da pobegnu te da jedina šteta koju mogu da načine jeste šteta nad sopstvenim podacima(BOFH).

Uzmimo FreeBSD kao prvu žrtvu ovih paranoičnih izmena. Ovde je procedura donekle lakša. Prvo ćemo zameniti sistemski SSH server onim koji možete naći pod:

/usr/ports/security/openssh-portable/

U pitanju je port verzija OpenSSH servera koji možete naći kod OpenBSD-a. Lično, uvek koristim tu verziju. Kada počnete instalaciju dobićete mogućnost da podesite malo taj OpenSSH. Ukoliko instalacija odmah počne bez ikakvih ponuđenih opcija (desi se i to ponekad) sve što treba da uradite je da je prekinete i ukucate komandu:

make config

Stavka na listi koja nas zanima je OPENSSH_CHROOT. Onda se vratite starom dobrom make install clean i to je to. Sada je potrebno da ubijete sistemski SSH i da malo izmenite /etc/rc.conf:

sshd_enable="NO" # OpenSSH server openssh_enable="YES" # OpenBSD OpenSSH-portable

Sada će se pri pokretanju sistema startovati OpenBSD verzija OpenSSH servera. I sada to sve radi..malo sutra. Jedva sam našao kako to zapravo treba da se podesi.

OpenSSH koji se kompajlira sa OPENSSH_CHROOT zakrpom čita putanju do home DIR malo drugačije. Tačnije, čita ”.” u putanji tako što je za njega ona / sistema. Malo sam zakomplikovao ovu rečenicu? Moguće.:) Dakle, ako je putanja do korisničkog home DIR recimo ovako nešto:

/home/./jail/home/user

kada se korisnik uloguje na sistem i kuca “cd /” neće dobiti pravu root particiju već /jail i neće moći iz nje da izađe. Jako korisno, zar ne?

Problem nastaje što onda korisnik nema gotovo ništa od komandi..tačnije, ne može ni ući na sistem jer nema ni jedan shell. Ono ”/bin/csh” u njegovim podacima sada neće imati smisla. Šta sad? Napravimo mu onda “zatvor” koji ima neke od komandi.

cd /home/jail mkdir bin lib etc cp /bin/csh bin/

Vodite računa da programi i komande koje kopirate u ”/bin” imaju i sve potrebne biblioteke. To ćete učiniti tako što ćete kucati:

ldd /home/jail/bin/csh

Dobićete nešto ovako:

/bin/csh: libncurses.so.6 => /lib/libncurses.so.6 (0x280bd000) libcrypt.so.3 => /lib/libcrypt.so.3 (0x280fc000) libc.so.6 => /lib/libc.so.6 (0x28114000)

Aha, dakle potrebne su nam i neke biblioteke. Dobro, iskopirajte ih sve u naš “jailovan” /lib/” direktorijum. Sada će sve raditi kako treba.Šta sesve valja naći u “bin” direktorijum? To od vas zavisi. Ako korisniku date samo csh neće moći da radi ništa do da se uloguje na sistem. Korisno je dati mu komande: cd, ls,cp, mv, rm…odlučite već sami, ovo je samo predlog.

I to je to. Kada vaši korisnici uđu na sistem najdalje što će moći da odu jeste /jail. Ukoliko već imate korisnike koje želite da smestite u kavez:

chpass username

te izmenite samo putanju do /home/ direktorijuma. Putanju do shell-a ne dirajte. I to je to. NAPOMENA: Ovo ima smisla samo ako je korisnik na sistem ušao preko SSH veze…ukoliko ima fizički pristup mašini onda chroot ne radi.:)

OpenBSD zahteva za nijansu drugačije korake. Iako su rekli da je zakrpa koja omogućava chroot ubačena to nije tačno jer čitanje ”.” u putanji ne radi dok sami ne dodate zakrpu koja sledi. No, to nije teško. Pretpostavimo da imate najnoviji OpenBSD (4.0). Vreme je da stavimo novu verziju OpenSSH-a na njega. Svoj paket možete naći na http://www.openssh.org/openbsd.html Tamo ćete naći i uputstvo koje kaže sledeće:

cd /usr/src/usr.bin tar xvfz .../openssh-4.6.tar.gz cd ssh make obj make cleandir make depend make make install cp ssh_config sshd_config /etc/ssh

To je OK ako samo želite novu verziju SSH-a- Mi ćemo ovo uraditi malkice drugačije. Prva tri koraka su sasvim OK. Tu stanite. Ono što ćete uraditi jeste izmena datoteke session.c.

cp session.c session_backup.c vim session.c

I dodajte ispred funkcije do_setusercontext sledeći kod:

/* do chroot / void do_chroot(struct passwd *pw){ char *user_dir; char *new_root; user_dir = xstrdup(pw->pw_dir); new_root = user_dir + 1; while((new_root = strchr(new_root, '.')) != NULL) { new_root--; if(strncmp(new_root, "/./", 3) == 0) { *new_root = '\0'; new_root += 2; if(chroot(user_dir) != 0) fatal("Couldn't chroot to user directory %s", user_dir); pw->pw_dir = new_root; break; } new_root += 2; } } / do_chroot /

Zatim dodajte:

/ Set login name, uid, gid, and groups. / void do_setusercontext(struct passwd *pw) { / OVO DODAJETE / do_chroot(pw); / OVO DODAJETE */ if (getuid() 0 || geteuid() 0) { #ifdef HAVE_LOGIN_CAP

Naznačio sam vam šta tačno dodajete. Ono ispred i iznad mog komentara je tu da lakše nađete tačnu lokaciju za dodatnu funkciju.

I sad se vratite koracima za instalaciju OpenSSH-a. Sve bi trebalo da prođe OK. Restartujete OpenSSH server a ostatak je isti kao kod FreeBSD-a. Srećno zlostavljanje korisnika.:-)

NFS+Windows klijenti

март 30, 2007

Network File System(NFS) je tehnologija koju je razvio Sun Microsystem 1985. i predstavlja prvi široko prihvaćen mrežni fajl sistem. Ovaj tekst nema za cilj da vas upozna sa istorijom NFS-a već da bude jako precizno uputstvo za upotrebu NFS-a na Windows mašinama. Pretpostavimo da imate omanju firmu gde deo korisnika ima neki UNIX-like OS a deo Windows OS. Jedan d načina da vaši korisnici nesmetano dele datoteke međusibno je verovatno FTP server. To i nije tako loše rešenje.Ipak, budimo iskreni…to rešenje je očajno. Daleko je lakše imati mogućnost da sena jedno mesto upisuju svi podaci a da korisnici ni ne znaju da to nije na njihovom računaru. Imaće još jednu particiju kojoj će pristupati kao bilo kojoj particiji na svom računaru. Pisati po njoj, brisati,čitati sa nje…sve ono što korisnici inače rade.

U te svrhe je daleko lakše postaviti NFS server koji će opsluživati čitavu firmu. Procedura će biti laka kada imamo homogenu UNIX-oliku mrežu sastavljenu od BSD, Solaris i Linux mašina. Ali šta činiti kada želimo da i Windows korisnici imaju pristup deljenim podacima? Možemo postaviti Samba server. No, Samba može biti naporna za podešavanje a nama je potrebno čisto i brzo rešenje.

NSF server

Prvo moramo podesiti mašinu koja će nam biti server i na koju će se podaci zaista smeštati. U mom slučaju to je FreeBSD 6.2. Evo uputstva u nekoliko koraka kako osposobiti NFS na BSD mašini:

1) U /etc/rc.conf dodajemo sledeće linije:

rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r"

Ovo će aktivirati tri neophodna servisa potrebna za rad NFS-a.

2) Pretpostavimo da želimo da korisnici upisuju u DIR /home/mod koji je particija od 200GB. Da bi ta lokacija postala dostupna korisnicima potrebno je da u datoteku /etc/exports dodamo jednu liniju:

/home/mod -alldirs -maproot=root 10.0.0.2 10.0.0.3

Ovo će omogućiti da korisnici sa navedenim IP adresama mogu da montiraju /home/mod particiju i da nad njom imaju “root” privilegije.Napomena: kada god dodajete nešto u /etc/exports potrebno je da mountd demonu kažete da ponovo učita tu datoteku. To ćete učiniti na dva načina:

kill -HUP `cat /var/run/mountd.pid`

ili

/etc/rc.d/mountd onereload

Naravno, uvek možete restartovati sistem i sva podešavanja koja smo upravo izveli će biti prihvaćena. Ali kakav je to server ako ga zbog ovako nečeg morate restartovati?:-) Umesto toga uradite sledeće:

rpcbind nfsd -u -t -n 4 mountd -r

I to je to. Vaš NFS server je spreman za upotrebu.

Windows kao NFS klijent

Zanimljivo je kako je malo resursa na Netu na ovu temu. Dosta ljudi mi je reklo da je to nemoguće. Valjda niko od njih nije probao te zato zaključuje da je nemoguće. Ali kako Marfi kaže: “Ukoliko želiš da otkriješ granice mogućeg probaj nemoguće”. Meni nije potrebno dva puta govoriti. Kako se ispostavilo procedura je neviđeno laka a svodi se na izor između dva softverska rešenja i nekoliko klikova.

Prvo softversko rešenje jeste ono koje nudi Micro$oft u vidu paketa koji se zove Windows Services for UNIX version 3.0. Kompletno uputsvo za instalaciju kao i sam paket možete naći na—> http://support.microsoft.com/kb/324055

Drugo predstavlja paket pod nazivom ProNFS i on je taj za koji sam se odlučio pri rešavanju ovog problema. Paket je znatno manji za preuzimanje od onog prvog I takođe jednostavan za instalaciju…4 klika.:-) ProNFS možete naći na: http://pronfs.com/

O otvorenosti i slobodi ova dva programska rešenja ovom prilikom neću govoriti.:-)

Kada instalirate ProNFS neće vam biti jasno zašto nema NFS-a nigde već ste u meniju dobili brdo nekih alatki. NFS je tu samo što se klijent ne instalira sam pri prvom instaliranju. ProNFS je zamišljen kao NFS server za Windows! Instalacija klijenta se nalazi unutar ProNFS direktorijuma u Program Files DIR:

Kada ga pokrenete nfssetup.exe sve bude završeno za par sekundi. Ovog puta restartujete računar jer ovaj OS nije tako napredan da dozvoljava igrarije kao UNIX-oliki sistemi.Kada se vaš sistem konačno podigne vreme je da dodate svoju NFS particiju Windowsu. To se može postići na dva načina. Prvi je da NFS particiju dodate kao Network place kroz My Network places. Drugi da je mapirate kao Network drive. Slede vizuelna uputstva:

Network place

Map network drive

I to bi bilo to. Kao što sam već napomenuo, rešenje je NEVIĐENO jednostavno. Sada Windows korisnici na mreži mogu da dele podatke sa ostalim kolegama na mreži…ukoliko im vi to dozvolite.:-)

NFS+Windows klijenti

март 30, 2007

Network File System(NFS) je tehnologija koju je razvio Sun Microsystem 1985. i predstavlja prvi široko prihvaćen mrežni fajl sistem. Ovaj tekst nema za cilj da vas upozna sa istorijom NFS-a već da bude jako precizno uputstvo za upotrebu NFS-a na Windows mašinama. Pretpostavimo da imate omanju firmu gde deo korisnika ima neki UNIX-like OS a deo Windows OS. Jedan d načina da vaši korisnici nesmetano dele datoteke međusibno je verovatno FTP server. To i nije tako loše rešenje.Ipak, budimo iskreni…to rešenje je očajno. Daleko je lakše imati mogućnost da sena jedno mesto upisuju svi podaci a da korisnici ni ne znaju da to nije na njihovom računaru. Imaće još jednu particiju kojoj će pristupati kao bilo kojoj particiji na svom računaru. Pisati po njoj, brisati,čitati sa nje…sve ono što korisnici inače rade.

U te svrhe je daleko lakše postaviti NFS server koji će opsluživati čitavu firmu. Procedura će biti laka kada imamo homogenu UNIX-oliku mrežu sastavljenu od BSD, Solaris i Linux mašina. Ali šta činiti kada želimo da i Windows korisnici imaju pristup deljenim podacima? Možemo postaviti Samba server. No, Samba može biti naporna za podešavanje a nama je potrebno čisto i brzo rešenje.

NSF server

Prvo moramo podesiti mašinu koja će nam biti server i na koju će se podaci zaista smeštati. U mom slučaju to je FreeBSD 6.2. Evo uputstva u nekoliko koraka kako osposobiti NFS na BSD mašini:

1) U /etc/rc.conf dodajemo sledeće linije:

rpcbind_enable="YES" nfs_server_enable="YES" mountd_flags="-r"

Ovo će aktivirati tri neophodna servisa potrebna za rad NFS-a.

2) Pretpostavimo da želimo da korisnici upisuju u DIR /home/mod koji je particija od 200GB. Da bi ta lokacija postala dostupna korisnicima potrebno je da u datoteku /etc/exports dodamo jednu liniju:

/home/mod -alldirs -maproot=root 10.0.0.2 10.0.0.3

Ovo će omogućiti da korisnici sa navedenim IP adresama mogu da montiraju /home/mod particiju i da nad njom imaju “root” privilegije.Napomena: kada god dodajete nešto u /etc/exports potrebno je da mountd demonu kažete da ponovo učita tu datoteku. To ćete učiniti na dva načina:

kill -HUP `cat /var/run/mountd.pid`

ili

/etc/rc.d/mountd onereload

Naravno, uvek možete restartovati sistem i sva podešavanja koja smo upravo izveli će biti prihvaćena. Ali kakav je to server ako ga zbog ovako nečeg morate restartovati?:-) Umesto toga uradite sledeće:

rpcbind nfsd -u -t -n 4 mountd -r

I to je to. Vaš NFS server je spreman za upotrebu.

Windows kao NFS klijent

Zanimljivo je kako je malo resursa na Netu na ovu temu. Dosta ljudi mi je reklo da je to nemoguće. Valjda niko od njih nije probao te zato zaključuje da je nemoguće. Ali kako Marfi kaže: “Ukoliko želiš da otkriješ granice mogućeg probaj nemoguće”. Meni nije potrebno dva puta govoriti. Kako se ispostavilo procedura je neviđeno laka a svodi se na izor između dva softverska rešenja i nekoliko klikova.

Prvo softversko rešenje jeste ono koje nudi Micro$oft u vidu paketa koji se zove Windows Services for UNIX version 3.0. Kompletno uputsvo za instalaciju kao i sam paket možete naći na—> http://support.microsoft.com/kb/324055

Drugo predstavlja paket pod nazivom ProNFS i on je taj za koji sam se odlučio pri rešavanju ovog problema. Paket je znatno manji za preuzimanje od onog prvog I takođe jednostavan za instalaciju…4 klika.:-) ProNFS možete naći na: http://pronfs.com/

O otvorenosti i slobodi ova dva programska rešenja ovom prilikom neću govoriti.:-)

Kada instalirate ProNFS neće vam biti jasno zašto nema NFS-a nigde već ste u meniju dobili brdo nekih alatki. NFS je tu samo što se klijent ne instalira sam pri prvom instaliranju. ProNFS je zamišljen kao NFS server za Windows! Instalacija klijenta se nalazi unutar ProNFS direktorijuma u Program Files DIR:

Kada ga pokrenete nfssetup.exe sve bude završeno za par sekundi. Ovog puta restartujete računar jer ovaj OS nije tako napredan da dozvoljava igrarije kao UNIX-oliki sistemi.Kada se vaš sistem konačno podigne vreme je da dodate svoju NFS particiju Windowsu. To se može postići na dva načina. Prvi je da NFS particiju dodate kao Network place kroz My Network places. Drugi da je mapirate kao Network drive. Slede vizuelna uputstva:

Network place

Map network drive

I to bi bilo to. Kao što sam već napomenuo, rešenje je NEVIĐENO jednostavno. Sada Windows korisnici na mreži mogu da dele podatke sa ostalim kolegama na mreži…ukoliko im vi to dozvolite.:-)

FreeBSD, CD-ROM(DVD) i običan korisnik

март 28, 2007

Opšte je poznato da BSD sistemi teže visokom stepenu sigurnosti koji ponekad prelazi u potpunu paranoju. No, kada se radi o serverima i administraciji istih ni jedan stepen paranoje nije dovoljno visok. Ipak, kada koristite FreeBSD kao desktop mašinu normalno je da vam ta paranoja smeta pri svakodnevnim aktivnostima. Jedna od takvih je i upotreba optičkih uređaja. Postoje dva načina da koristite svoj CD-ROM.

Prvi je da ga montirate kao root koristnik. To jako brzo dosadi. Drugi način je upotreba programa SUDO (/usr/ports/security/sudo). Sudo je sjajna aplikacija ukoliko svakog dana morate koristiti razne aplikacije kao root korisnik. Sudo, opet, možete koristiti na dva načina. Prvi način će od vas tražiti da stalno kucate svoju šifru i to ćete postići dodavanjem sledećeg reda u datoteku /usr/local/etc/sudoers:

nightweaver ALL=(ALL) ALL

Ukoliko pak želite da izbegnete kucanje šifre (potpuno suluda ideja ali dobro..ima nas raznih) taj red će izgledati ovako:

nightweaver ALL=(ALL) NOPASSWD: ALL

I sve je ovo smor…znam…zbog toga postoji strašno jednostavan način da sistemu kažete da dozvoli upotrebu CD-ROM-a običnom korisniku. Evo uputstva u četiri koraka:

1) edit /etc/sysctl.conf

vfs.usermount=1

2) edit /etc/devfs.conf

perm xpt0 0660 perm pass0 0660 perm cd0 0660 perm acd0 0660 link cd0 cdrom link acd0 dvd #(ukoliko posedujete DVD)

3) chown $username /cdrom && chmod 655 /cdrom (ili DIR u koji će običan korisnik montirati disk)

4) Dodate korisnika u grupu operator ili grupu koja je vlasnik uređaja /dev/cd0.

I to je to. Sada običan korisnik bez problema može u potpunosti da koristi optičke uređaje – montoranje, rezanje itd.

FreeBSD, CD-ROM(DVD) i običan korisnik

март 28, 2007

Opšte je poznato da BSD sistemi teže visokom stepenu sigurnosti koji ponekad prelazi u potpunu paranoju. No, kada se radi o serverima i administraciji istih ni jedan stepen paranoje nije dovoljno visok. Ipak, kada koristite FreeBSD kao desktop mašinu normalno je da vam ta paranoja smeta pri svakodnevnim aktivnostima. Jedna od takvih je i upotreba optičkih uređaja. Postoje dva načina da koristite svoj CD-ROM.

Prvi je da ga montirate kao root koristnik. To jako brzo dosadi. Drugi način je upotreba programa SUDO (/usr/ports/security/sudo). Sudo je sjajna aplikacija ukoliko svakog dana morate koristiti razne aplikacije kao root korisnik. Sudo, opet, možete koristiti na dva načina. Prvi način će od vas tražiti da stalno kucate svoju šifru i to ćete postići dodavanjem sledećeg reda u datoteku /usr/local/etc/sudoers:

nightweaver ALL=(ALL) ALL

Ukoliko pak želite da izbegnete kucanje šifre (potpuno suluda ideja ali dobro..ima nas raznih) taj red će izgledati ovako:

nightweaver ALL=(ALL) NOPASSWD: ALL

I sve je ovo smor…znam…zbog toga postoji strašno jednostavan način da sistemu kažete da dozvoli upotrebu CD-ROM-a običnom korisniku. Evo uputstva u četiri koraka:

1) edit /etc/sysctl.conf

vfs.usermount=1

2) edit /etc/devfs.conf

perm xpt0 0660 perm pass0 0660 perm cd0 0660 perm acd0 0660 link cd0 cdrom link acd0 dvd #(ukoliko posedujete DVD)

3) chown $username /cdrom && chmod 655 /cdrom (ili DIR u koji će običan korisnik montirati disk)

4) Dodate korisnika u grupu operator ili grupu koja je vlasnik uređaja /dev/cd0.

I to je to. Sada običan korisnik bez problema može u potpunosti da koristi optičke uređaje – montoranje, rezanje itd.

Бесплатна књига UNIX i Linux

септембар 11, 2006

Драган Плескоњић, аутор књиге Оперативни системи: Unix и Linux је понудио електронску верзију ове књиге за бесплатно преузимање, након попуњавања кратког упитника. (весић.орг

microsoft, serbia, unix