WELCOME TO OUR BLOGGER

Wednesday, December 28, 2011

Tutorial Mikrotik VPN : Point to Point Tunnel Protocol (PPTP)

0 comments
Summary
PPTP (Point to Point Tunnel Protocol) supports encrypted tunnels over IP. The MikroTik RouterOS implementation includes support fot PPTP client and server.
General applications of PPTP tunnels:
* For secure router-to-router tunnels over the Internet
* To link (bridge) local Intranets or LANs (when EoIP is also used)
* For mobile or remote clients to remotely access an Intranet/LAN of a company (see PPTP setup for Windows for more information)
Each PPTP connection is composed of a server and a client. The MikroTik RouterOS may function as a server or client – or, for various configurations, it may be the server for some connections and client for other connections. For example, the client created below could connect to a Windows 2000 server, another MikroTik Router, or another router which supports a PPTP server.
Description
PPTP is a secure tunnel for transporting IP traffic using PPP. PPTP encapsulates PPP in virtual lines that run over IP. PPTP incorporates PPP and MPPE (Microsoft Point to Point Encryption) to make encrypted links. The purpose of this protocol is to make well-managed secure connections between routers as well as between routers and PPTP clients (clients are available for and/or included in almost all OSs including Windows).
PPTP includes PPP authentication and accounting for each PPTP connection. Full authentication and accounting of each connection may be done through a RADIUS client or locally.
MPPE 40bit RC4 and MPPE 128bit RC4 encryption are supported.
PPTP traffic uses TCP port 1723 and IP protocol GRE (Generic Routing Encapsulation, IP protocol ID 47), as assigned by the Internet Assigned Numbers Authority (IANA). PPTP can be used with most firewalls and routers by enabling traffic destined for TCP port 1723 and protocol 47 traffic to be routed through the firewall or router.
PPTP connections may be limited or impossible to setup though a masqueraded/NAT IP connection. Please see the Microsoft and RFC links at the end of this section for more information.
PPTP Client Setup
Submenu level : /interface pptp-client
Property Description
name (name; default: pptp-out1) – interface name for reference
mtu (integer; default: 1460) – Maximum Transmit Unit. The optimal value is the MTU of the interface the tunnel is working over decreased by 40 (so, for 1500-byte ethernet link, set the MTU to 1460 to avoid fragmentation of packets)
mru (integer; default: 1460) – Maximum Receive Unit. The optimal value is the MTU of the interface the tunnel is working over decreased by 40 (so, for 1500-byte ethernet link, set the MRU to 1460 to avoid fragmentation of packets)
connect-to (IP address)- the IP address of the PPTP server to connect to
user (string)- user name to use when logging on to the remote server
password (string; default: “”)- user password to use when logging to the remote server
profile (name; default: default) – profile to use when connecting to the remote server
add-default-route (yes | no; default: no) – whether to use the server which this client is connected to as its default router (gateway)
Example
To set up PPTP client named test2 using username john with password john to connect to the 10.1.1.12 PPTP server and use it as the default gateway:
[admin@MikroTik] interface pptp-client> add name=test2 connect-to=10.1.1.12 \
\… user=john add-default-route=yes password=john
[admin@MikroTik] interface pptp-client> print
Flags: X – disabled, R – running
0 X name=”test2″ mtu=1460 mru=1460 connect-to=10.1.1.12 user=”john”
password=”john” profile=default add-default-route=yes
[admin@MikroTik] interface pptp-client> enable 0
Monitoring PPTP Client
Command name : /interface pptp-client monitor
Property Description
Statistics:
uptime (time) – connection time displayed in days, hours, minutes, and seconds
encoding (string) – encryption and encoding (if asymmetric, separated with ‘/’) being used in this connection
status (string) – status of the client:
# Dialing – attempting to make a connection
# Verifying password… – connection has been established to the server, password verification in progress
# Connected – self-explanatory
# Terminated – interface is not enabled or the other side will not establish a connection
Example
Example of an established connection:
[admin@MikroTik] interface pptp-client> monitor test2
uptime: 4h35s
encoding: MPPE 128 bit, stateless
status: Connected
[admin@MikroTik] interface pptp-client>
PPTP Server Setup
Submenu level : /interface pptp-server server
[admin@MikroTik] interface pptp-server server> print
enabled: no
mtu: 1460
mru: 1460
authentication: mschap2
default-profile: default
[admin@MikroTik] interface pptp-server server>
Description
The PPTP server supports unlimited connections from clients. For each current connection, a dynamic interface is created.
Property Description
enabled (yes | no; default: no) – defines whether PPTP server is enabled or not
mtu (integer; default: 1460) – Maximum Transmit Unit. The optimal value is the MTU of the interface the tunnel is working over decreased by 40 (so, for 1500-byte ethernet link, set the MTU to 1460 to avoid fragmentation of packets)
mru (integer; default: 1460) – Maximum Receive Unit. The optimal value is the MTU of the interface the tunnel is working over decreased by 40 (so, for 1500-byte ethernet link, set the MTU to 1460 to avoid fragmentation of packets)
authentication (multiple choice: pap | chap | mschap1 | mschap2; default: mschap2) – authentication algorithm
default-profile (name; default: default) – default profile to use
Example
To enable PPTP server:
[admin@MikroTik] interface pptp-server server> set enabled=yes
[admin@MikroTik] interface pptp-server server> print
enabled: yes
mtu: 1460
mru: 1460
authentication: mschap2
default-profile: default
[admin@MikroTik] interface pptp-server server>
PPTP Server Users
Submenu level : /interface pptp-server
Description
There are two types of items in PPTP server configuration – static users and dynamic connections. A dynamic connection can be established if the user database or the default-profile has its local-address and remote-address set correctly. When static users are added, the default profile may be left with its default values and only P2P user (in /ppp secret) should be configured. Note that in both cases P2P users must be configured properly.
Property Description
name – interface name
user – the name of the user that is configured statically or added dynamically
Statistics:
mtu – shows (cannot be set here) client’s MTU
client-address – shows (cannot be set here) the IP of the connected client
uptime – shows how long the client is connected
encoding (string) – encryption and encoding (if asymmetric, separated with ‘/’) being used in this connection
Example
To add a static entry for ex1 user:
[admin@MikroTik] interface pptp-server> add user=ex1
[admin@MikroTik] interface pptp-server> print
Flags: X – disabled, D – dynamic, R – running
# NAME USER MTU CLIENT-ADDRESS UPTIME ENC…
0 DR ex 1460 10.0.0.202 6m32s none
1 pptp-in1 ex1
[admin@MikroTik] interface pptp-server>
In this example an already connected user ex is shown besides the one we just added.
PPTP Router-to-Router Secure Tunnel Example
The following is an example of connecting two Intranets using an encrypted PPTP tunnel over the Internet.
There are two routers in this example:
* [HomeOffice]
Interface LocalHomeOffice 10.150.2.254/24
Interface ToInternet 192.168.80.1/24
* [RemoteOffice]
Interface ToInternet 192.168.81.1/24
Interface LocalRemoteOffice 10.150.1.254/24
Each router is connected to a different ISP. One router can access another router through the Internet.
On the PPTP server a user must be set up for the client:
[admin@HomeOffice] ppp secret> add name=ex service=pptp password=lkjrht
local-address=10.0.103.1 remote-address=10.0.103.2
[admin@HomeOffice] ppp secret> print detail
Flags: X – disabled
0 name=”ex” service=pptp caller-id=”" password=”lkjrht” profile=default
local-address=10.0.103.1 remote-address=10.0.103.2 routes==”"
[admin@HomeOffice] ppp secret>
Then the user should be added in the PPTP server list:
[admin@HomeOffice] interface pptp-server> add user=ex
[admin@HomeOffice] interface pptp-server> print
Flags: X – disabled, D – dynamic, R – running
# NAME USER MTU CLIENT-ADDRESS UPTIME ENC…
0 pptp-in1 ex
[admin@HomeOffice] interface pptp-server>
And finally, the server must be enabled:
[admin@HomeOffice] interface pptp-server server> set enabled=yes
[admin@HomeOffice] interface pptp-server server> print
enabled: yes
mtu: 1460
mru: 1460
authentication: mschap2
default-profile: default
[admin@HomeOffice] interface pptp-server server>
Add a PPTP client to the RemoteOffice router:
[admin@RemoteOffice] interface pptp-client> add connect-to=192.168.80.1 user=ex \
\… password=lkjrht disabled=no
[admin@RemoteOffice] interface pptp-client> print
Flags: X – disabled, R – running
0 R name=”pptp-out1″ mtu=1460 mru=1460 connect-to=192.168.80.1 user=”ex”
password=”lkjrht” profile=default add-default-route=no
[admin@RemoteOffice] interface pptp-client>
Thus, a PPTP tunnel is created between the routers. This tunnel is like an Ethernet point-to-point connection between the routers with IP addresses 10.0.103.1 and 10.0.103.2 at each router. It enables ‘direct’ communication between the routers over third party networks.
To route the local Intranets over the PPTP tunnel – add these routes:
[admin@HomeOffice] > ip route add dst-address 10.150.1.0/24 gateway 10.0.103.2
[admin@RemoteOffice] > ip route add dst-address 10.150.2.0/24 gateway 10.0.103.1
On the PPTP server it can alternatively be done using routes parameter of the user configuration:
[admin@HomeOffice] ppp secret> print detail
Flags: X – disabled
0 name=”ex” service=pptp caller-id=”" password=”lkjrht” profile=default
local-address=10.0.103.1 remote-address=10.0.103.2 routes==”"
[admin@HomeOffice] ppp secret> set 0 routes=”10.150.1.0/24 10.0.103.2 1″
[admin@HomeOffice] ppp secret> print detail
Flags: X – disabled
0 name=”ex” service=pptp caller-id=”" password=”lkjrht” profile=default
local-address=10.0.103.1 remote-address=10.0.103.2
routes=”10.150.1.0/24 10.0.103.2 1″
[admin@HomeOffice] ppp secret>
Test the PPTP tunnel connection:
[admin@RemoteOffice]> /ping 10.0.103.1
10.0.103.1 pong: ttl=255 time=3 ms
10.0.103.1 pong: ttl=255 time=3 ms
10.0.103.1 pong: ttl=255 time=3 ms
ping interrupted
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3/3.0/3 ms
Test the connection through the PPTP tunnel to the LocalHomeOffice interface:
[admin@RemoteOffice]> /ping 10.150.2.254
10.150.2.254 pong: ttl=255 time=3 ms
10.150.2.254 pong: ttl=255 time=3 ms
10.150.2.254 pong: ttl=255 time=3 ms
ping interrupted
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 3/3.0/3 ms
To bridge a LAN over this secure tunnel, please see the example in the ‘EoIP’ section of the manual. To set the maximum speed for traffic over this tunnel, please consult the ‘Queues’ section.
Connecting a Remote Client via PPTP Tunnel
The following example shows how to connect a computer to a remote office network over PPTP encrypted tunnel giving that computer an IP address from the same network as the remote office has (without need of bridging over eoip tunnels)
Please, consult the respective manual on how to set up a PPTP client with the software You are using.
The router in this example:
* [RemoteOffice]
Interface ToInternet 192.168.81.1/24
Interface Office 10.150.1.254/24
The client computer can access the router through the Internet.
On the PPTP server a user must be set up for the client:
[admin@RemoteOffice] ppp secret> add name=ex service=pptp password=lkjrht
local-address=10.150.1.254 remote-address=10.150.1.2
[admin@RemoteOffice] ppp secret> print detail
Flags: X – disabled
0 name=”ex” service=pptp caller-id=”" password=”lkjrht” profile=default
local-address=10.150.1.254 remote-address=10.150.1.2 routes==”"
[admin@RemoteOffice] ppp secret>
Then the user should be added in the PPTP server list:
[admin@RemoteOffice] interface pptp-server> add name=FromLaptop user=ex
[admin@RemoteOffice] interface pptp-server> print
Flags: X – disabled, D – dynamic, R – running
# NAME USER MTU CLIENT-ADDRESS UPTIME ENC…
0 FromLaptop ex
[admin@RemoteOffice] interface pptp-server>
And the server must be enabled:
[admin@RemoteOffice] interface pptp-server server> set enabled=yes
[admin@RemoteOffice] interface pptp-server server> print
enabled: yes
mtu: 1460
mru: 1460
authentication: mschap2
default-profile: default
[admin@RemoteOffice] interface pptp-server server>
Finally, the proxy APR must be enabled on the ‘Office’ interface:
[admin@RemoteOffice] interface ethernet> set Office arp=proxy-arp
[admin@RemoteOffice] interface ethernet> print
Flags: X – disabled, R – running
# NAME MTU MAC-ADDRESS ARP
0 R ToInternet 1500 00:30:4F:0B:7B:C1 enabled
1 R Office 1500 00:30:4F:06:62:12 proxy-arp
[admin@RemoteOffice] interface ethernet>

Make a Joomla 1.7 Template

1 comments

Joomla 1.7 Template Tutorial

There are many tutorials online which explain how to make an fully working HTML template. I however find these tutorials tend to over-complicate what is in fact a relatively simple task, providing you have a good understanding of xHTML and CSS.
With this tutorial I intend to create a step by step guide on how to convert your web site, or any other template into a fully working Joomla 1.7 Template.

Before You Begin


- Download the above source files.
- Template conversion can be done on request, just contact me
Download Source Files

Step 1


The majority of web designers should use a template which they designed on their own. At this point I am assuming you have already designed your template, and coded it up using CSS and xHTML, ready to go as a static web page. Your template does not require any content, purely because Joomla 1.7 will populate your web site for you.

Step 2


Next you must download the following files which has a pre-defined Joomla 1.7 Template layout included, you will use this file in order to create your template.

Step 3


Next you must open your html editor, I use Dreamweaver. Open the following files:
From your template:
  • your main layout page, usually index.html
  • your main css stylesheet
From the pre-made Joomla 1.7 blank template:
  • index.php
  • css/template.css

Step 4
From your main layout page (index.html), select all of the content from inside the body tags. Below is the example text I took from BarryFlood.com when it was in development.

Next you must paste your copied text in between the body tags of the index.php file which you downloaded earlier.

Step 5


You must now open your CSS stylesheet and copy all of its content. Next paste all of its content into the css/template.php file.

Step 6


Congratulations, you have now created a working Joomla 1.7 template, however. You are not finished yet, you now have to assign positions.
Now open your index.php file from the Joomla 1.7 template.
You must find where you are going to place the main navigation menu and insert the following line where it should be. (the below line indicates a module position)
<jdoc:include type="modules" name="navigation" style="raw" />
you must also decide where the start of your many content body should be located, once you find it, insert the following two lines of code.
<jdoc:include type="message" />
<jdoc:include type="component" />
you may also have secondary positions for inserting modules to your web site, for example a footer. In order to do this insert the following line of code and replace "INSERT NAME HERE" with the name of your position, e.g. footer.
<jdoc:include type="modules" name="INSERT NAME HERE" style="xhtml" />
to enable your secondary name to appear in the list, you must open templateDetails.xml in your html editor. Scroll to the bottom and under <position>mainmenu</position>create a new line called
<position>INSERT NAME HERE</position>
You can do this as many times as required, for as many positions as required, these will be accessible when setting up modules in Joomla 1.7.

**PLEASE NOTE - IF YOU HAVE CREATED MORE FOLDERS, E.G. SUB FOLDERS INSIDE THE IMAGES DIRECTORY, YOU MUST LIST THESE IN THE TEMPLATEDETAILS.XML FILE ALSO, OTHERWISE THE TEMPLATE WILL NOT INSTALL CORRECTLY**

Step 7


Now this is another simple step, take all of the images from your original folder, and copy/paste them into the images folder in the Joomla 1.7 template file you downloaded. Please ensure all your image links in your css and html files are set up correctly.

Step 8


Make the entire site folder a .zip file, and use the extensions manager within Joomla administrator to install the zip. Your template is now created, dont forget to set it as the default template!

Tuesday, December 27, 2011

create a bootable USB key for Norton Ghost faq602-6675

0 comments
 
1)  Format your USB Key with FAT32 (your Ghost.exe wont run on NTFS)

2)  Format a floppy disk in Windows XP with the "Create MS-DOS startup disk" switch

3)  Download usb_format (do a Google search for it.) Once you got it, run it, select Create a DOS Bootable disk (using "DOS system files located at" your floppy drive)

4)  Once your key has been formated, go back to the floppy drive and copy the entire floppy disk to your USB key.

5) Copy your ghost.exe to the USB key.

Now you can boot to the USB key, it will come up as a C: drive when you boot but your hard drive will be accessible once you start Ghost.

Assuming your Ghost image is bigger than your USB key you can boot your key to a network share and put the image files there. To create the USB drive bootable to a network share for Ghost continue with the following instructions:

6)Download Networkboot Disk from http://www.netbootdisk.com

7) Unzip the file and edit your MakeDisk.bat by right clicking on it and select Edit. Change the A in the line " drv=A:" to your USB drive letter. For instance, my USB key is drive letter F so the line should like "drv=F:"

8) Double click the MakeDisk.bat and follow the instructions.

9) Now you are ready to boot to a network share from the USB key. When you boot to the key you will get to a point where you enter your network information, enter an Admin network login, password and the NetBios name for your network or enter in the workgroup then in the login script area type: net use g: \\pcsharename\sharefolder (you'll need a copy of ghost.exe in this shared directory.)

10)Press escape to continue the boot

11) When it gets to your prompt type G: and hit enter, this will take you to your network share and you can start ghost your normal way, just type ghost.exe.
 

Put Ubuntu on Flash Drive using Windows

0 comments

Create an Ubuntu Live USB Flash Drive from Windows: In the following tutorial, we show you an easy way to put Ubuntu 10.04.*/10.10 on a USB Flash Drive using Windows. Once finished, you should be able to run Ubuntu directly from your Flash Drive, just as it does from a Live CD. Ubuntu's  casper-rw feature is also utilized for persistently saving and restoring your changes on subsequent boots. 

Screenshot of Ubuntu

Ubuntu 10.04 Desktop Screenshot
Distribution Home Page: ubuntu.com
Minimum Flash Drive Capacity: 2GB
Persistent Feature: Yes

How to install Joomla on Ubuntu 10.04 LTS

0 comments
Joomla is an open source CMS (Content Management System) that can be easily used to be professional looking dynamic websites.  It is a little more advanced than WordPress ; however, once you learn how to use the interface and search for plugins in the Joomla Extensions Directory, you will be cranking out websites in no time at all.  When most people install Ubuntu they do it via a “1-click install” method from their webhost such as Dreamhost of Hostgator. The first time I ever installed Joomla on a web server it was from this method and I must say it was quite painless. However, if you do not want to pay for hosting, or want to install it on your home webserver or local machine, there are a few steps that are not easily defined in the installation manual. The main problem I had with the installation of Joomla 1.5.17 on my home web server was file permissions.
Prerequisites:
1. Ubuntu 10.04 LTS Server or Desktop (Download it for free from here.)
2. LAMP Package  (You can find info in this here)
3. Joomla Installation Package (make sure to get the latest in tar.gz format)
4. Basic understand of Linux command line interface
Before you start the installation you should create a MYSQL database for your Joomla installation to use. Refer to the link in Prerequisite 2 for details on how to do this.
Once you have the package downloaded, you can either place the installation file in your /var/www directory or you can make a subdirectory by typing mkdir /var/www/joomla at the command prompt. If you choose to make a subdirecotry make sure to put the proper permission on it with chmod 755  joomla
After the directory is made copy the code below into an editor

#!/bin/bash


# Created May 20, 2010
# Written by: Ron Messana
# change variable below to the install package being used
JOOMLA="Joomla_1.5.17-Stable-Full_Package.tar.gz"
tar -vxpzf $JOOMLA
chmod -c 777 administrator/backups/
chmod -c 777 administrator/components/
chmod -c 777 administrator/language/
chmod -c 777 administrator/language/en-GB/
chmod -c 777 administrator/modules/
chmod -c 777 administrator/templates/
chmod -c 777 components/
chmod -c 777 images/
chmod -c 777 images/banners/
chmod -c 777 images/stories/
chmod -c 777 language/
chmod -c 777 language/en-GB/
chmod -c 777 language/pdf_fonts/
chmod -c 777 media/
chmod -c 777 modules/
chmod -c 777 plugins/
chmod -c 777 plugins/content/
chmod -c 777 plugins/editors/
chmod -c 777 plugins/editors-xtd/
chmod -c 777 plugins/search/
chmod -c 777 plugins/system/
chmod -c 777 plugins/user/
chmod -c 777 plugins/xmlrpc/
chmod -c 777 templates/
chmod -c 777 cache/
chmod -c 777 administrator/cache/
chmod -c 777 logs/
chmod -c 777 tmp/
echo ""
echo "creating configuration.php"
echo ""
touch configuration.php
echo "making configuration.php writable"
chmod 666 configuration.php
echo ""
echo ""
echo "fin"

**** Make sure to change the JOOMLA variable to list the name of the current package you are trying to install ***
Once you have that code save it to a filename you can remember such as joomlainstall.sh  and place it into the same directory you have your joomla installation tar.gz file. You then want to make that script executable with chmod +x joomlainstall.sh
You now have a script that you can use to unpack Joomla , create a writable configuration.php file and  prepare the necessary directories for installation.
Execute the script  by typing .  joomlainstall.sh
You will now see all of the files unpack and directories change to permission 777
By changing the directory permission to 777 you will avoid the issue of not being able to install plugins/modules.
Now navigate your web browser to the directory you unpacked the files to and the installation will begin.
The installation will now begin. Be sure to read  the Licensing Agreement and and proceed past it. When asked for the Database information choose MYSQL and enter your database usernmame, password and database name. You should be able to use ‘localhost’ for the location of the database.
Once the install finished you will be forced to delete the /installation directory. Once the directory is deleted you can then use Joomla!
If this is just a development/test installation that has no access from the outside world you can leave your file permissions at 777 for those directories.  If this install goes into production on the web you will want to change the permissions back to 755 for security. You can use the script below to do that.



#!/bin/bash
chmod -c 755 administrator/backups/
chmod -c 755 administrator/components/
chmod -c 755 administrator/language/
chmod -c 755 administrator/language/en-GB/
chmod -c 755 administrator/modules/
chmod -c 755 administrator/templates/
chmod -c 755 components/
chmod -c 755 images/
chmod -c 755 images/banners/
chmod -c 755 images/stories/
chmod -c 755 language/
chmod -c 755 language/en-GB/
chmod -c 755 language/pdf_fonts/
chmod -c 755 media/
chmod -c 755 modules/
chmod -c 755 plugins/
chmod -c 755 plugins/content/
chmod -c 755 plugins/editors/
chmod -c 755 plugins/editors-xtd/
chmod -c 755 plugins/search/
chmod -c 755 plugins/system/
chmod -c 755 plugins/user/
chmod -c 755 plugins/xmlrpc/
chmod -c 755 templates/
chmod -c 755 cache/
chmod -c 755 administrator/cache/
chmod -c 755 logs/
chmod -c 755 tmp/

Saturday, December 24, 2011

The SEO Tutorial: Link Building

0 comments




Search engines have always been the primary way of finding information on the internet. And once upon a time, these search engines were many and had names like Lycos, Altavista, and Hotbot. Furthermore, these engines all worked very similarly, listing their results based mostly on website content and keyword use. Of course, this made the results fairly easy to manipulate -- you only had to stuff more keywords in your meta tags and on your webpage. Then one day, a new search engine arose, one with the curious name of Google. Google decided that the current way of finding the best results was lacking. So they focused on a new technique: they began looking at the links that came into your website. Each link, they figured, was a "vote" for your site; the more people that "voted" for your site, the more likely it was that your site was useful and should be listed high in the results for the keywords that linked to it. Thus began the rise of Google, as webmasters tried a multiplicity of ways to get links to their site. A few years back, many sites could manipulate this new link aspect simply by trading links with hundreds of others. But as all smart companies do, Google adapted and nowadays, all links to your site are analyzed to find out what quality of "vote" each link is. In other words, the more quality links you get to your site, the better your site does. So with that in mind, let's consider two points: first, what makes a quality link, and second, how you get these links.


What makes a quality link
Here are a few key aspects of a good inbound link. Some of these aspects are out of your control, but you can still improve how people choose to link to you:

    Good Anchor Text - This is the text that is used in linking to you. It is far better for someone to link to this site with the phrase Freelance Blog or Making Online Income rather than Wake Up Later. Remember, it's the text in the link that helps search engines determine what the destination page is really about. Variety of Anchor Text - You also want variety in your inbound links. If all the links to your site use the phrase Freelance Blog, the search engines could assume that either the phrase is simply your website's title and or that you "campaigned" for people to link to you all the same way. Therefore, you want the links you get to be natural, with one site linking to you as Great Freelance Blog, another using Blog With Online Income Tips, and so on. Authority of Linking Site - Although search engines count links to your site as "votes," not all votes are created equal. A link from Wikipedia.com carries a lot more authority than a link from Free-Links-And-More.com Relevancy of Linking Site - Just as authority of the linking site counts, so does relevancy. The best links to this site will come from other design/development or internet marketing sites. Links from personal blogs or free directories, not so much. Destination of Link - Just as you want the anchor text of links to be natural and diverse, you also want the destination of inbound links to vary. If you're truly producing great content, then you should be getting links to not only your homepage, but a multiplicity of inside pages as well. And when this happens, the search engines will smile upon you.

How to get quality links
So how do you get sites to link to you? Or rather, how do you get quality sites to link to you?

  • Directory Links - This is the easiest way to get links, but perhaps the worst. Do not submit your site to 200 directories -- those links are usually worthless and associate your site with low-quality sites. However, submitting your site to a few quality directories is advised (you can sort of determine a site's quality by their Alexa rating). Directories like JoeAnt.com and BlogCatalog.com fall into this category of "free high-quality directories."
  • Social Links - When you think you have a great piece of content, submit it to the socialsphere -- sites like Digg, Reddit, del.icio.us, StumpleUpon, and any smaller social sites you know of. Don't bank on hitting it big, but you never know, and furthermore, you will still get a little traffic. Also, on any forums or blogs you are active on, make sure your signature file has a link. Just don't become a forum/blog/comment spammer. It doesn't work, makes you and your site look bad, and takes away time from building good links.
  • Ask for Links - If you have friends online (and most people do), why not ask for a link? Most people are kind enough to do so and it's rather easy. It gets a bit tougher when asking strangers for links, but if you have some sort of "social link" (members of the same forum, similar website focus, etc.), write a quick email asking for a link. If they like your content, they might link to you -- just don't ask them more than once and stay transparent (anything else is usually insulting).
  • Pay for Links - In recent years, this has become a popular mode of link-building, although Google frowns upon it (and in a recent Page Rank update, has punished various websites for participating). So proceed with caution, but know that many people use this option. You just have to search for "paid text links" to find a slew of services and information. (There are exceptions to this rule: sites like Best of the Web and Yahoo provide paid listing/reviews that actually do help you in SEO.)
  • Link Bait - The current buzzword of link-building, "link bait" is any content that gives people reason to link to you. What makes good link bait? Contests, free stuff, great articles (like "101 ways to _______"), or anything else people find worth linking to. Of course, make sure your great idea gets in front of people by utilizing the social websites and any contacts you might have in the industry.

Search

Blogroll