Goed nieuws voor de VMware gebruikers met minder goed ondersteunde besturingssystemen. VMware heeft de broncode van VMware tools vrijgegeven! Hierdoor is het bijvoorbeeld mogelijk om de VMware tools te updaten door middel van de repositories van jouw favoriete distributie.
Ik kan persoonlijk niet wachten voor ik mijn eerste 'emerge open-vm-tools' opdracht kan geven op een virtuele Gentoo installatie. :-)
Zie voor meer informatie de website van Open Virtual Machine Tools.
Update 7 januari 2008: De open-vm-tools ebuild is volgens de release notes beschikbaar vanaf 22 december 2007.
vrijdag 14 september 2007
woensdag 12 september 2007
Grootte NTFS volume wijzigen met Diskpart
Tijdens de VMware cursus die ik een tijdje terug heb gevolgd werd ik getipt over een standaard windows utility (Windows 2000 en hoger) waarmee je de grootte van een NTFS volume kunt wijzigen.
Hou er goed rekening mee dat deze utility niet werkt op systeem of boot volumes en volumes waar een pagefile op staat. Eigenlijk alleen data volumes dus. ;-)
De onderstaande documentatie heb ik schaamteloos gekopieerd van de Microsoft knowledgebase.
Hou er goed rekening mee dat deze utility niet werkt op systeem of boot volumes en volumes waar een pagefile op staat. Eigenlijk alleen data volumes dus. ;-)
De onderstaande documentatie heb ik schaamteloos gekopieerd van de Microsoft knowledgebase.
- Typ diskpart.exe bij een opdrachtprompt.
- Typ list volume om de bestaande volumes op de computer weer te geven.
- Typ Select volume volumenummer, waarbij volumenummer het nummer is van het volume dat u wilt uitbreiden.
- Typ extend [size=n] [disk=n] [noerr] . Hieronder worden de parameters beschreven:
size=n
De ruimte, in megabytes (MB), die moet worden toegevoegd aan de huidige partitie. Als u geen grootte opgeeft, wordt de schijf uitgebreid tot deze alle aaneengesloten niet-toegewezen ruimte inneemt.
disk=n
De dynamische schijf waarop u het volume wilt uitbreiden. Ruimte die gelijk is aan size=n wordt toegewezen op de schijf. Als er geen schijf wordt opgegeven, wordt het volume uitgebreid op de huidige schijf.
noerr
Alleen voor het uitvoeren van scripts. Als een foutbericht wordt geretourneerd, geeft deze parameter aan dat Diskpart verdergaat met het verwerken van opdrachten alsof de fout niet is opgetreden. Zonder de parameter noerr, zorgt een fout dat Diskpart wordt afgesloten met een foutbericht. - Typ exit om Diskpart.exe te sluiten.
dinsdag 19 juni 2007
Wijzigen locatie tnsnames.ora
Gelukkig was het antwoord op deze vraag 'bijna', maar er bleken toch nog wat dingen op mijn lokale schijfje te zwerven. Dit bleek ook geen probleem te zijn aangezien een collega met PLD Linux deze data wist te redden door deze met scp naar een andere machine te kopiëren.
Onder de geredde data bevond zich ook mijn tnsnames.ora bestand. Omdat ik het onzin vond dat dit bestand op mijn lokale schijf stond heb ik eens nagevraagd bij een andere deskundige collega. En wat blijkt, met het toevoegen van een omgevingsvariabele TNS_ADMIN is deze locatie eenvoudig aan te passen.
Normaal zullen bestanden als sqlnet.ora en tnsnames.ora worden gezocht in de volgende locaties.
UNIX:
1. $HOME voor verborgen bestanden (bijv., .sqlnet.ora en .tnsnames.ora)
2. $TNS_ADMIN
3. $HOME
4. /etc or /var/opt/oracle (wisselt per platform)
5. $ORACLE_HOME/network/admin
Windows:
1. huidig pad (van gebruikte client applicatie)
2. Sessie environment variable TNS_ADMIN
3. System environment variable TNS_ADMIN
4. Windows Registry Key TNS_ADMIN
5. %ORACLE_HOME%\network\admin
donderdag 31 mei 2007
Restoren van 'in use' MSSQL database
Mocht je net zoals ik geregeld een SQL database moeten restoren, dan ken je wellicht het verschijnsel dat deze actie stopt met de volgende foutmelding: "Exclusive access could not be obtained because the database is in use".
Mijn standaard reactie op deze melding was het opvragen van de actieve users met sp_who en deze met het kill commando van de server trappen. Er zijn echter alternatieven om dit slimmer en sneller te doen.
Mijn eerste gedachte was om de systeem tabel sysprocesses op te vragen en vervolgens met een loopje de actieve processen te killen.Echter na enig zoekwerk op Google naar alternatieven kwam ik een betere oplossing tegen, namelijk het in single user mode zetten van de database. Hierdoor worden alle actieve users uitgelogd en kan de restore zonder problemen gestart worden. Helaas is deze oplossing pas beschikbaar vanaf SQL server 2000, maar eerdere versies zijn gelukkig een snel uitstervend ras.
De T-SQL opdracht gebruik ik voor het in single user mode zetten van een database:
Mijn standaard reactie op deze melding was het opvragen van de actieve users met sp_who en deze met het kill commando van de server trappen. Er zijn echter alternatieven om dit slimmer en sneller te doen.
Mijn eerste gedachte was om de systeem tabel sysprocesses op te vragen en vervolgens met een loopje de actieve processen te killen.Echter na enig zoekwerk op Google naar alternatieven kwam ik een betere oplossing tegen, namelijk het in single user mode zetten van de database. Hierdoor worden alle actieve users uitgelogd en kan de restore zonder problemen gestart worden. Helaas is deze oplossing pas beschikbaar vanaf SQL server 2000, maar eerdere versies zijn gelukkig een snel uitstervend ras.
De T-SQL opdracht gebruik ik voor het in single user mode zetten van een database:
ALTER DATABASE DbName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
woensdag 23 mei 2007
Windows builtin groups gebruiken voor SQL server login
Zou je binnen SQL server een builtin group rechten willen geven om in te loggen, dan werkt dit niet via de Enterprise Manager. Je selecteert de groep en ziet in het venster MachineNaam\GroepNaam staan. Zodra je op OK klikt zul je de volgende foutmelding krijgen: "Windows NT user or group 'MachineNaam\GroepNaam' not found. Check the name again. (Microsoft SQL Server, Error: 15401)".
Dit blijkt een bug te zijn in de Enterprise Manager. Voor builtin groups kun je dus beter een sp_grantlogin opdracht geven in de Query Analyzer. De syntax voor deze opdracht is:
Dit blijkt een bug te zijn in de Enterprise Manager. Voor builtin groups kun je dus beter een sp_grantlogin opdracht geven in de Query Analyzer. De syntax voor deze opdracht is:
EXEC sp_grantlogin 'Builtin\GroepNaam'.
dinsdag 20 maart 2007
Remote desktop - text style
Windows gebruikers kennen ondertussen ongetwijfeld de remote desktop functionaliteit die vanaf Windows 2000 server standaard aanwezig is. Maar hoe kun je in UNIX een shell disconnecten en later weer oppakken? Het antwoord is screen.
In FreeBSD kun je deze software vinden onder sysutils/screen. Zodra screen is geïnstalleerd kun je door middel van de opdracht 'screen' (hoe verrassend!) een sessie starten.
Disconnecten doe je door eerst de toetsencombinatie CTRL+a en direct daarna d. Om een ge-disconnecte sessie weer op te pakken typ je 'screen -r'. Dit werkt ook als je SSH sessie onverwachts wegvalt en dat is wel zo lekker als je middenin een build zit.
Als je je net zoals ik gruwelijk irriteert aan de licentie / versie informatie die je standaard bij het opstarten van screen te zien krijgt, kun je dit voorkomen door de volgende regel op te nemen in de .screenrc file in je home directory: 'startup_message off'. Doe deze wijziging in de file /usr/local/etc/screenrc om dit voor alle gebruikers op je systeem in te stellen.
In FreeBSD kun je deze software vinden onder sysutils/screen. Zodra screen is geïnstalleerd kun je door middel van de opdracht 'screen' (hoe verrassend!) een sessie starten.
Disconnecten doe je door eerst de toetsencombinatie CTRL+a en direct daarna d. Om een ge-disconnecte sessie weer op te pakken typ je 'screen -r'. Dit werkt ook als je SSH sessie onverwachts wegvalt en dat is wel zo lekker als je middenin een build zit.
Als je je net zoals ik gruwelijk irriteert aan de licentie / versie informatie die je standaard bij het opstarten van screen te zien krijgt, kun je dit voorkomen door de volgende regel op te nemen in de .screenrc file in je home directory: 'startup_message off'. Doe deze wijziging in de file /usr/local/etc/screenrc om dit voor alle gebruikers op je systeem in te stellen.
donderdag 10 augustus 2006
Start en stop TCP connecties monitoren
Als je een netwerk sniffer als tcpdump of ethereal start zonder te filteren, dan zul je overweldigd worden door de grote hoeveelheid berichtjes die opvangt. Een filter is dus ten zeerste aan te raden. Maar hoe kun je het beste filteren? Ik vond een artikeltje van Danilo Lujambio dat ik zelf erg handig vond en 1 op 1 heb overgenomen.
.... We zullen hier enkele expressies geven die als filters kunnen fungeren waardoor de hoeveelheid gegenereerde gegevens behapbaar blijft.
Om deze expressies te kunnen begrijpen laten we hier eerst het formaat van een TCP-pakketje zien.
TCP (RFC793)
We zien dat het 13de byte de vlaggen bevat die het type pakketje bepaalt (SYN, FIN etc.). Met deze kennis en het gebruik van de AND-operatie (&) kunnen we vervolgens bits maskeren en daarmee expressies opbouwen als:
Waardoor alleen nog pakketjes worden doorgelaten waarvan het R, S of F-bit actief is (het masker is hier 00000111) en die de machine 192.168.255.20 als bestemming hebben.
Met de volgende expressie:
detecteren we FIN-pakketten (het masker is 00000001). Dit kan handig zijn om te detecteren of nmap actief is met de optie -sF. En met:
krijgen we alleen pakketten met het SYN-bit actief, om zo te achterhalen of iemand met de optie - sS aan het snuffelen is.
Voor deze laatste variant (optie -sS) zijn er speciale detectieprogramma's verkrijgbaar.
OmniPeek
Mocht je nu gebruik maken van Omnipeek, dan kun je dezelfde informatie verkrijgen door een expert filter te maken met de volgende criteria:
Of je kunt natuurlijk ook gewoon even mijn filter importeren. Deze kun je downloaden door deze link te gebruiken.
Dit filter werkt exact hetzelfde als de tcpdump variant. Er wordt namelijk binnen TCP pakketten gekeken naar een bepaalde positie welke door middel van de offset wordt aangegeven. Daarna worden de bits gemaskeerd die interessant zijn. Hierdoor worden alleen de laatste 3 bitjes van de tcp control byte gefilterd. En de waarde hiervan mag niet 0 zijn. Zo bereik je hetzelfde resultaat.
.... We zullen hier enkele expressies geven die als filters kunnen fungeren waardoor de hoeveelheid gegenereerde gegevens behapbaar blijft.
Om deze expressies te kunnen begrijpen laten we hier eerst het formaat van een TCP-pakketje zien.
TCP (RFC793)
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgement Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Offset | Reserved |U|A|P|R|S|F| Window |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
We zien dat het 13de byte de vlaggen bevat die het type pakketje bepaalt (SYN, FIN etc.). Met deze kennis en het gebruik van de AND-operatie (&) kunnen we vervolgens bits maskeren en daarmee expressies opbouwen als:
$ tcpdump ' tcp[13] & 7 != 0 and dst 192.168.255.20 ' >/tmp/out7Waardoor alleen nog pakketjes worden doorgelaten waarvan het R, S of F-bit actief is (het masker is hier 00000111) en die de machine 192.168.255.20 als bestemming hebben.
Met de volgende expressie:
$ tcpdump ' tcp[13] & 1 != 0 and dst 192.168.255.20 ' >/tmp/out1 detecteren we FIN-pakketten (het masker is 00000001). Dit kan handig zijn om te detecteren of nmap actief is met de optie -sF. En met:
$ tcpdump ' tcp[13] & 2 != 0 and dst 192.168.255.20 ' >/tmp/out2krijgen we alleen pakketten met het SYN-bit actief, om zo te achterhalen of iemand met de optie - sS aan het snuffelen is.
Voor deze laatste variant (optie -sS) zijn er speciale detectieprogramma's verkrijgbaar.
OmniPeek
Mocht je nu gebruik maken van Omnipeek, dan kun je dezelfde informatie verkrijgen door een expert filter te maken met de volgende criteria:
Protocol Filter
Protocol: TCP
AND
Value Filter
Length : 1 byte
Offset : 47
Mask : 0x07
Signed : not checked
Network byte order : not checked
Operator : !=
Value : 0
Of je kunt natuurlijk ook gewoon even mijn filter importeren. Deze kun je downloaden door deze link te gebruiken.
Dit filter werkt exact hetzelfde als de tcpdump variant. Er wordt namelijk binnen TCP pakketten gekeken naar een bepaalde positie welke door middel van de offset wordt aangegeven. Daarna worden de bits gemaskeerd die interessant zijn. Hierdoor worden alleen de laatste 3 bitjes van de tcp control byte gefilterd. En de waarde hiervan mag niet 0 zijn. Zo bereik je hetzelfde resultaat.
Abonneren op:
Reacties (Atom)