Search This Blog

Wednesday, July 22, 2009

MattRach

Now this guy is awesome, stumbled onto him on youtube…. He has a load of different videos including a live jimi hedrix session at the hard rock cafe, which is amazing. Check him out below (its my favourite video, I think he was 15 (2007!) and at his website and youtube channel.

MATTRACH

Youtube channel -http://www.youtube.com/user/mattrach

Myspace - http://www.myspace.com/mattrachguitar

Website - http://mattrach.com/


Share/Bookmark

Tuesday, July 21, 2009

Part 5 – CentOS setting up VNC server

Setting up VNC Server, including firewall configuration.

If you followed my previous posting (Parts 1 –3) you would have selected the options Server and Server GUI in the CentOS installation wizard. In doing this you would have installed VNC server. VNC server provides a remote desktop capability for the server. Although it is installed we need to configure some elements before we can connect to it. I will assume you have read part 3 SSH, I will assume you can connect using putty and SSH as the root user.

To get VNC server up and running the way I want (replicate a desktop environment remotely) we need to do 3 things

  1. setup vncserver
  2. edit the firewall to allow vnc connections.

edit config file /etc/sysconfig/vncservers

The vncserver configuration file is located in the /etc/sysconfig directory. From the SSH terminal session run our favourite editor vi, (see part 2, section proxy environment variables, for more details on the editor and commands), to edit the vncservers file

vi /etc/sysconfig/vncservers

Once inside this file find the following two lines

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"

Uncomment these lines (remove the #), now we want to change the myusername to the username of the user you want to allow to have access to vnc. In this case I will use root and change the two lines to.

VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 800x600 -depth 16"

So lets look at these two lines, the first line sets up the user (in this case root) and the second line defines the resolution of the desktop (800x600) and the color depth (16bit). The 2: that appears referencing the user apart from referencing the user the number is helps dictate what tcp port the VNC server listens on. VNC server listens on 5900 + the user user number (each user has a port defined), so in our case the port will be 5902 (5900 + 2).

Note:

If you want to set up multiple users you can do that as follows. be aware that the root user will be port 5901 and linuxuser on 5902.

VNCSERVERS="1:root 2:linuxuser"
VNCSERVERARGS[1]="-geometry 1280x960 -depth 16"
VNCSERVERARGS[2]="-geometry 1024x768 -depth 16"

Once you have finished editing your file save and quit vi :wq.

create / edit xstartup scripts and set vncpassword

We now have to assign a password to each vnc session and configure the xstartup scripts for each user.

Login with each user assigned in the vncservers file. Once logged in, run the vncpasswd program and set the password. Below I show a screenshot of my terminal session logged in as root and running the vncpasswd program.

 imageIn addition to setting the password, the vncpasswd program creates a .vnc folder in the users home folder

~/.vnc/ 

Once all users have had their passwords assigned we need to create the xstartupfile in each .vnc folder. We do this by logging in as root and restarting the vncserver service.

service vncserver stop
service vncserver start

Now at this stage we should be able to connect to the vncserver (apart from the firewall config), however if you could connect at this time you will notice that the desktop is very basic and does not show the Gnome desktop. The interface you would see is the basic windows handler called X11. You should be able to do most things from here but thats not what i was after, I wanted a Gnome desktop. So there is 1 thing left to do.

Now earlier we created the xstartup scripts but did nothing with them. We need to edit these files.

vi ~/.vnc/xstartup

uncomment the following two lines (remove the #).

# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

Save and quit the file, remember to do this for each user.

Restart the vncserver

service vncserver stop
service vncserver start

Ok, we should be good to go in so far as vnc is concerned however we still need to configure the firewall, this is detailed further below. 

edit the firewall to allow vnc connections.

Connected via SSH login as root and edit the following file

/etc/sysconfig/iptables

This file contains the setup for the firewall. We are going to add one line to this file. find the following line

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

and insert the following line above it.

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901:5902 -j ACCEPT

the last line in the firewall list should always be the REJECT rule, this is to ensure that if nothing matches a rule in the listing that it will always be rejected.

That should now be it. We need to reboot the server so type

shutdown -r now

(this will reboot the server immediately).

Once you have rebooted the server, fire up your vnc client (viewer) and try and connect to the server. I show a screenshot of the Ultra VNC viewer (on the windows machine)  I use to connect to the servers.

image

Other parts in this series

Share/Bookmark

Part 4 – CentOS SSH – Secure Shelling

SSH – Secure Shelling

Now being a windows guy my method of remoting to another machine was RDPing to it. This gave me a machine desktop on a remote machine. I wanted something similar for CentOS, I found VNC however in finding that I also found SSH. So before delving into how to configure VNC, I want to go into SSH a little. Then in my VNC part of the series I will use SSH to configure VNC.

So what is SSH, SSH is similar to telnet however SSH is encrypted where as telnet is not. By default SSH is installed and is running on the CentOS box. If you followed my previous postings on installation then this should be the case. SSH on CentOS is looked after by a daemon called sshd.

So what do we need to connect via SSH to the CentOS box. I connect from a windows machine so found a client called Puttytray (http://haanstra.eu/putty/). It is based on a client called Putty. There is no install it is just an executable.

Run up the client.

image

SSH usually runs over port 22. Enter the machine IP you want to connect to, ensure connection type is SSH. Now you can also type in a session name and save it, this will allow you to quickly connect in the future. In the screenshot above I have saved 3 sessions for connecting to 3 different CentOS machines.

Note: when you  first connect to a machine you will be prompted like below, this is a warning just telling you that the servers certificate is not in your cache (this is the same as the windows trusted cache). I click yes here, as i don’t want to be prompted each time I connect to the machine.

image

image

Once past the certificate warning you should be shown the above window, prompting for a logon name for this example lets use root.

image

Once you have entered the user and password, you should be presented with a command prompt. This should look like the prompt we saw in the previous part of this series. It has placed you in the users home directory (~, this is actually the physical folder /home/<username>). The # indicates you are logged in as root, a normal user is presented with a $.

That is pretty much it, what we have now is a remote command line terminal. So in the next part I will use this remote SSH connection to configure VNC.

Other parts in this series

Share/Bookmark

Named Anchors in Windows Live Writer (using plug-in)

This post will show how to use a plug-in (DynamicTemplate) to add functionality to the WYSIWYG interface in Windows Live Writer (WLW).

This functionality is not built into WLW, I was helpfully pointed at a plug-in for WLW. The plug-in is called DynamicTemplate.

http://www.joecheng.com/code/DynamicTemplate/

and from my initial looks at it it seems pretty powerful to me. I downloaded it and installed (the install in windows was straight forward, so I won’t cover that). Once installed fire up WLW and you should see in the Insert menu a new option labelled Template.

image

I have used a blog posting of mine as an example, and shown how to create a template with the plug-in for inserting named anchors. The template I have created when selected will prompt for the name you want to call the anchor.

Please view the video below for a run through.

Notes before watching the video are

_selection : is a special variable for DynamicTemplate and will insert whatever is selected in WLW into the template. In the example video I have no selection, but I include it in the template code so you can wrap the named anchor around some existing object in your post (if for some strange reason you want to do that :o) ).


Share/Bookmark

Monday, July 20, 2009

Part 3 - CentOS Proxy Configuration

CentOS Proxy Configuration

It took me a while to figure this out, being used to Windows and having IE generally used as a central repository for proxy settings, I was looking for something similar in CentOS. I am afraid in this case, as far as I can make out, proxy settings are mostly application specific. That said I believe there are locations that are apparently meant to be used for central proxy configuration and programs should try to get the proxy info from them. The central locations are split between GUI programs and command line programs.

So in this post I show how to configure the proxy settings in 4 locations, 2 of which are “apparently” central locations for other programs to use and the other 2 are program specific (as they seem to ignore the central settings). The 4 locations are

  1. Gnome Proxy (used by GUI programs)
  2. Proxy Environment Variables (used by command line programs)
  3. YUM (Software updater and installer)
  4. Firefox (Web browser)
Gnome Proxy setting

The Gnome desktop interface provides proxy configuration settings and apparently a lot of GUI programs will use this settings. This said, I am afraid these settings need to be changed for each user. (I can’t remember where I cam across this information and if it wrong maybe someone can let me know and I will update this.)

Gnome-Desktop proxy settings can be changed from a GUI tool or you can edit the file directly. The image below shows where to find the GUI tool under

System –> Preferences –> Network Proxy

image You can edit the proxy settings here. I have a proxy configuration file available so I have set the automatic proxy config setting, however you can set the proxy manually here as well. The advanced tab allows you to specifically define addresses to ignore the proxy for (i.e. the local subnet).

imageWhen using this GUI tool Gnome stores the proxy config settings in the following folders and files. ~ indicates the users home directory and the . hides the folder or file(see notes below for further explanation)

~/.gconf/system/proxy/%gconf.xml (used for the manual and advanced settings)
~/.gconf/system/http_proxy/%gconf.xml (used for the automatic settings)

I can’t tell you why it is split into two files but it appears to be so.

Proxy Environment Variables

Like the Gnome proxy settings above, the Environment variables are apparently for Command Line programs to provide a central area that these programs can look to for proxy config.

There are a number of proxy environment variables but I will concentrate on just 3 that apply to my network setup. These are

  1. http_proxy
  2. https_proxy
  3. ftp_proxy

I think these are pretty self explanatory.

To set these there is no GUI (that I am aware of), so we have to go to the command line. We need to fire up Terminal this is found in

Applications–> Accessories –> Terminal

image

The terminal should start in the users home folder ~ (see notes), you should see a prompt like this

[<username>@<machine_name> ~]#

or 

[<username>@<machine_name> ~]$

<username> should be the logged on user
<machine_name> should be the computer name you are on.
The # or the $ is dependent on whether you are logged in as a user or root. # indicates root, $ indicates normal user.

We can set the environment variables at the command prompt by typing

http_proxy=”http://<proxyserver>:<proxyport>”

Now the same applies to the other environment variables. However at the moment these environment variables are only valid within this particular Terminal session. If we were to fire up another program or terminal session theses environment variables would not exist in their scope. So to make the environment variables global we need to export them, this is done using the export command. We can export any number of variables by separating them with a space.

export http_proxy https_proxy ftp_proxy

Another issue here is that this is not a permanent change, if we reboot these variables will be lost. So to get around that we need to change a log on script called profile. The script is found here

/etc/profile

OK, so how do we edit a file? I am going to give a brief introduction to vi (mainly because I have only just got my head into it) and some basic bash commands.

So in the terminal window change directory to /etc/.

To get to this directory use the following bash commands

CD / (will take you to the root directory)

CD etc (will take you into the /etc directory)

Now we are in this folder, we can use the following command to list the contents..

ls

In the list of files and folders you should see the file profile listed.

OK now type

vi profile

This puts us into the vi editor, a command line text editor. Now I found this a bit weird a first but I am gradually getting the hang of it. The editor opens up in a mode called command mode. It will allow you to scroll up and down, but not allow you to modify text. This is where you have to change modes, in this case we want to go to insert mode. This can be achieved by hitting the escape key and then i or a

<esc> a/i

You should see at the bottom of the terminal window that – INSERT – appears, to indicate you are in INSERT mode. You can now modify the file. To quit out of this mode hit <esc> at anytime (—INSERT –) should disappear from the bottom of the terminal window.

OK so now we need to enter some the commands to set the variables. So somewhere in the profile file enter the following.

http_proxy=http://<proxyserver>:<proxyport>
https_proxy=$http_proxy
ftp_proxy=$http_proxy

export http_proxy https_proxy ftp_proxy

In my case the same proxy handles http, https and ftp. My script therefore sets the http_proxy variable and then sets the others to the http_proxy value. If you have different settings for https and ftp get rid of the $http_proxy and replace with the direct setting (as with the http_proxy above). Once these have been set I then export the variables to make them global.

OK so we need to save the file by issuing the write command. Hit escape and enter :w <enter>

<esc> :w <enter>

The bottom line should change to show something like

"profile" 60L, 1062C written

Now we have saved the file, we need to quit the editor. The quit command is

<esc> :q <enter>

While using the editor you may find you want to quit without saving, although you have made changes. Now if you just issue the command above it will complain that there are unsaved changes. so to quit without saving changes you can force it by typing

<esc> :q! <enter>

In addition you can combine commands, so to quit and save type

<esc> :wq <enter>

You should now reboot.

You can test that the changes have worked by firing up the terminal (as above) and typing the following command

echo $http_proxy

You should get the value you set in the profile file. The same applies to the other variables if you want to check them.

YUM - Software Updater and Add/remove Software - Proxy Setting

There are two locations within CentOS GUI to run software update tools (software updates and software installations). These are

  • Applications –> System Tools –> Software Updater
  • Applications –> Add/Remove Software

image  image

They both run the same underlying command line application YUM (Yellowdog Updater, Modified) but the Software updater allows for installed software (packages) to be updated, where as the Add/Remove Software option will allow you to add and remove software (packages) from defined repositories. (Repositories are locations on the web/network that software packages can be downloaded/updated from, CentOS comes with a set of predefined repositories but you can add custom repositories when needed).

Now the proxy setting for YUM cannot be configured within any of the GUIs, it has to be done within the configuration files. I will quickly go through this, but it will involve using the vi editor, I will not explain the commands here please see the previous section on environment variables for more details on the each command.

The YUM configuration is yum.conf and is found in /etc/

/etc/yum.conf

Enter the vi editor

vi /etc/yum.conf

enter insert mode

<esc> i

find the line that says proxy= and change it to your proxy server settings, if your file does not contain this setting just add it in the first clear line in the [main] section.

proxy=http://<proxyserver>:<proxyport>

Quit and save vi.

<esc> :wq

Now fire up either the Software updater or the Add/Remove Software. You should find that both tools are able to connect to the defined repositories. you can install any updates you require.

Firefox – Proxy Settings

Now I talked about GUI programs respecting the Gnome proxy settings and I believe Firefox does. I really only include this here as a FYI (I messed with the settings when I was trying to work out what was going on with all the proxies). It appears that the default for the proxy settings in Firefox is to “Use System Proxy settings” which means it looks for the Gnome settings. So if you make the changes above you should not have to worry about this.

image

Open up Firefox and select preferences

Edit –> Preferences

image

In the advanced section, under the network tab, click settings

image

image

Once in Connection settings you can change the your proxy settings.

Notes

  1. The folder ~ is actually a shortcut referring to the logged on users home folder (you can see why the setting must be configured for each user). The physical user home folder can be located here /home/<username>.
  2. The . on the beginning of the file or folder name is a way to hide the file or folder from normal folder browsing.
Other parts in this series

Share/Bookmark

Advertise on the moon?

Not sure if this is real but it is a little worrying, don’t want my moon spoiled with some Coca cola,Pepsi,Google…etc.. logo thanks. Although my name on it might be good… ;o)

http://www.moonpublicity.com/


Share/Bookmark

Sunday, July 19, 2009

Part 2 – CentOS initial configuration

After the initial installation has completed there are some small configuration settings the installation wizard takes you through.

image Click Forward.

image The Firewall page allows you to some basic rules quickly to the CentOS firewall (also known as iptables). Select the rules you want to allow in the drop down. As I want to use windows networking I have selected Samba here (samba is the Linux component that enables Linux to participate in a windows network. You also want to allow SSH, as we will use SSH to connect remotely to the Linux box.

image

The text on the SElinux page explains what this does, I have left it as Enforcing. I believe this is recommended unless you really know that you have to disable it. By leaving it as Enforcing I have not encountered any problems caused by this. It worth remembering this is on along with the firewall incase you need to do any troubleshooting with, you can at least disable these to isolate/rule out these components as the cause of problems.

image

I never engaged this but my guess is its similar to good ole Dr Watson.

imageDate and Time page pretty much self explanatory, set it. Ensure you get this as near as you can to the windows server times. Now if you have an internal NTP server you could set it to use this service to set the date and time. I had issues with this so I disalbed the NTP and set the time manually. I might come back and get this working as Windows networking (authentication) can start having issues if the times are out by more than 5 minutes.

image

image
The create user page allows you create a standard user for use on your linux machine. This user will be a local standard linux user.

image I had no desire for sound in my machine so I didnot test this and Clicked “Forward”.

image
I skipped this screen

image
OK, initial installation and configuration has been completed. Type in root (remember this is the super user account in the linux world). Enter the root password..

image
You should be presented with the CentOS desktop.

Other parts in this series

Share/Bookmark