Saturday, November 5, 2011

Installing NVIDIA Drivers On Debian squeeze

OK... So I'm setting up my new rig. I'm running Debian Squeeze and I purchased a ASUS ENGT430 This video card uses an NVIDIA 430 chip. So the install goes well, but I'm left with a 800x600 display. Yuck. To fix here's what I did:

1. From NVIDIA's web site download the NVIDIA drivers for the Gforce 430 for Linux x64
2. Boot the OS into recovery mode
3. Log on as root
4. Go to the download location and change the downloaded run file permission to allow execute.
5. Run the install.
6. I received a message that the driver was compiled with GCC 4.3. I have GCC 4.4. I ignored the message and proceeded.
7. Installation completed successfully.
8. Rebooted

All is well....

Thursday, October 27, 2011

Installing Citrix Receiver 12 under Debian Squeeze x64

Finally! Citrix makes a deb package for x64 OS's... But of course it doesn't work out of the chute. Here's what I had to go through to get it to work...

1. Download the package from here..
2. Run sudo dpkg -i icaclient_12.0.0_amd64.deb
3. Make a temp directory and run:
wget http://ftp.ubuntu.com/ubuntu/pool/multiverse/o/openmotif/libmotif3_2.2.3-2_i386.deb
4. Run sudo apt-get -f install. THis will fix errors.
5. Do NOT install this package, just extract the contents by running:
sudo dpkg -x libmotif3_2.2.3-2_i386.deb .
6. Copy the contents of ./usr/lib to /usr/lib32 by running:
sudo cp -r ./usr/lib/* /usr/lib32
7. Create a symbolic link between libXm.so.3 and libXm.so.4 by running:
sudo ln -s /usr/lib32/libXm.so.4 /usr/lib32/libXm.so.4

That should do it. Note that citrix get installed to /opt/Citrix... Also remember that if a certificate is required for the site to copy the X.509 cert into the keystore at /opt/Citrix/ICAClient/keystore/cacerts

Tuesday, March 8, 2011

Using Ubuntu 10.10 to Setup Inexpensive Network Storage

The cost of network storage can be reduced if many of the feature options offered by existing storage vendors are not required. For example if volume snapshots are not necessary. In this article, I will demonstrate how to setup a PC to act as an iscsi target to allow access to the systems storage from any designated system.



The first thing to consider when setting up a low cost storage solution is how much drive redundancy is required. Even if the end user tells you "It's no big deal if the data stored at this location gets lost," think twice about that. Ask yourself, is my company willing to risk data loss for an important file inadvertently saved in this location. Redundant Array of Inexpensive Disks (or RAID) has been a solution to single disk failures for many years. If drive redundancy is desired, do NOT implement a software based RAID solution. Many inexpensive motherboards exist on the market with RAID capabilities on-board. Additionally add-in hardware RAID controllers on todays market also very affordable. Both of these items make the decision to use a software RAID solution (when looking as robustness and performance) unsound.



All of this being said, let us assume that a system is available that has a Pentium Processor, 2GB of RAM, and a Array of hard disks. Onto this system install Ubuntu 10.10 server software. This can be obtained from their website. Once installed and patched follow the steps below


  1. Install the iscsi target software using the command

    sudo apt-get install iscsitarget

  2. Configure the storage location on the Target. The location can be a disk drive or a file:

    1. To configure the storage inside of a file, as root create the file at the desired location using the command:

      dd if=/dev/zero of=<fileloaction>/<filename> bs=1024k count=<number of 1M blocks>

    2. To configure storage as a drive, make certain that the drive is not mounted. Partition as necessary.


  3. Enable iscsitarget by editing /etc/default/iscsitarget and set the line

    ISCSITARGET_ENABLE=True

  4. Edit the ietd.conf in /etc/iet, enter the following lines

    Target iqn.<yyyy-mm>.<reversedomainname>:<global unique id>

    IncomingUser <username><secret>

    OutgoingUser <username><secret>

    Lun <#> Path=<path to drive or file>,Type=<Fileio or Blockio>

    :

  5. Edit the initiators.allow in /etc/iet, enter the following:

    Target iqn.<yyyy-mm>.<reversedomainname>:<global unique id> <IP of Initiator>

  6. Start the iscsitarget daemon by executing /etc/init.d/iscsitarget start




Review the startup messages by issuing dmesg to verify proper startup. Now configure the iscsi initiator from the client and all is good to go..


The meat of the configuration is in step 4 above. Lets look at this in more detail.


The first line identifies the target. This target name must be globally unique in the network. Typically the unique id could be configured with hostname.<some qualifier>. For example, assume a network called home.com exists. On this network an ISCSI Target host name exists called ISCT1. If this target was configured in March of 2010, we could set line 1 to:


Target iqn.2010-03.com.home:ISCT1.myid1


where myid1 is some random definition that is unique to the network.


Line 2 allows for specification of logon credentials to the device. Note that the intiators,allow setting s will limit access to the target from a specific initiator IP. If further access is restricted based on username, enter it here. If not required, enter no information after IncomingUser.


Line 3 allows for authentication of the Target to the initiator, if requried. If not enter no information after OutgoingUser.


Line 4 and on is the definition for each storage device in this target. Multiple LUNs can be defined. For example: if a entire partion (eg. /dev/sdh1) is to be presented to the initiator as well as 2 individual files (eg. /storage/lun5.img and /storage/lun6.img) The entries might appear as:


Lun 0 Path=/dev/sdh1.Type=Fileio


Lun 1 Path=/storage/lun5.img,Type=Fileio


Lun 2 Path=/storage/lun6.img,Type=Fileio


I've identified only some of the items the can be defined in the ietd.conf file. For complete information, refer to the ietd.conf man page


Finally, in step 5 above the initiators.allow file mapps the target name to the initiator IP. Thus only the IP of the specified initiator can access the Target.


Wednesday, February 2, 2011

Using Ubuntu 64 10.10 to connect to a Cisco VPN Endpoint

Linux supports cisco VPN client via the vpnc application. To install, execute

sudo apt-get install vpnc

This installs the open source vpn client. The installation creates a folder in /etc called vpnc. In this folder is a sample connection file. Then:

  1. As su, copy this file to another and name appropriately. Edit this file, remove the appropriate comments (#) and fill in the correct information.
  2. In your home folder, create a vpn-up file and enter the following
    sudo vpnc-connect --local-port 0 /etc/vpnc/.conf
  3. Change the attributes of this file to allow execution (chmod 770 vpn-up)
  4. In your home folder, create a vpn-down file and enter the following
    sudo vpnc-disconnect
  5. Change the attributes of this file to allow execution (chmod 770 vpn-down)
Now to create the connection, open a terminal session and execute ~/vpn-up to connect and ~/vpn-down to disconnect.

Tuesday, January 25, 2011

Moving AD Objects Via VBS

Sometimes in AD reorganization of objects needs to occur to ease management. With a high number of objects, it might be more convientient to do this programatically. Lucily Microsoft has mad this task some what painless with VB Scripting. The process involves essentially three steps:

1. Create a scripting object to the new OU in AD where this object is to move

2. Create a scripting object to the original AD object

3. Use the MoveHere method of the new OU object to move the original object to that location

Example:

Say a computer account exists under the OU tree OU=Desktops,OU=Company,dc=location,dc=local. Let us assume that this computer account is called MYPC. Additionally, it is desired to move this account to the OU tree defined at OU=NewOU,dc=location,dc=local. Here's a sample scripts to do this for you

-------

szNewLoc="OU=NewOU,dc=location,dc=local"

szOldObj="CN=MYPC,OU=Desktops,OU=Company,dc=location,dc=local"

set oNewOU=GetObject("LDAP://" & szNewLoc)

set oCpu=GetObject("LDAP://" & szOldObj)

oNewOU.MoveHere oCpu.ADsPath, oCpu.Name

---

That it. Now lets decipher the script.

Lines 1 and 2 set string variables to the new OU and the original object

Line 3: creates a scripting object identifying the new storage location

Line 4. Creates a scripting object identifying the original object

Line 5: This does the actual move of the object. The MoveHere method, moves the source object (identified by the oCpu.Name property) from the original path (identified by the ADsPath property) the the location of the object oNewOU.

Monday, January 3, 2011

Caveats when setting Internet Explorer Proxy Settings Via GPO

When configuring a proxy server to work in a windows domain, it is often convienient to set a GPO for IE8 to enforce the correct settings. However, there are time when certain web site access must bypass the proxy settings. For this reason, the GPO editor under User Configuration/Policies/Windows Settings/Internet Explorer Maintenance/Connections/Proxy Settings has a section to enter exceptions. Make careful note that when entering information in this section, there are NO [ / ] characters. Doing so will bypass the proxy for all web sites.