Author Archive

Exim: Clearing the internal eximstats database (cPanel)

Clearing the eximstats database isn’t something difficult to do via phpMyAdmin or a similar web-based database management application, and shouldn’t harm anything in your system.
However, if you run into any issues, or just want to re-initialize the database and re-create the tables structures manually via SSH, here’s what you should do:

mysqladmin drop eximstats ; mysqladmin create eximstats ; mysql eximstats < /usr/local/cpanel/etc/eximstats_db.sql


If for any reason you do not have your default eximstats .sql file (which includes the database structure), you can copy it from the block below.
Just make sure you save it as /usr/local/cpanel/etc/eximstats_db.sql (pay close attention to the path).

— Host: localhost Database: eximstats
— ——————————————————

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;
/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;
/*!40101 SET @[email protected]@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @[email protected]@TIME_ZONE */;
/*!40103 SET TIME_ZONE=’+00:00′ */;
/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE=’NO_AUTO_VALUE_ON_ZERO’ */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;


— Table structure for table `defers`

DROP TABLE IF EXISTS `defers`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `defers` (
`mailtime` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
`msgid` char(16) NOT NULL DEFAULT ”,
`email` char(255) NOT NULL DEFAULT ”,
`transport_method` char(45) DEFAULT ‘remote_smtp’,
`host` char(240) DEFAULT NULL,
`ip` char(60) DEFAULT NULL,
`message` char(240) DEFAULT NULL,
`router` char(65) DEFAULT ”,
`deliveryuser` char(30) NOT NULL DEFAULT ”,
`deliverydomain` char(255) NOT NULL DEFAULT ”,
PRIMARY KEY (`mailtime`,`msgid`,`email`),
KEY `email_mailtime_index` (`email`,`mailtime`),
KEY `msgid_mailtime_index` (`msgid`,`mailtime`),
KEY `deliverydomain_mailtime_index` (`deliverydomain`,`mailtime`),
KEY `deliveryuser_mailtime_index` (`deliveryuser`,`mailtime`),
KEY `email_deliveryuser_mailtime_index` (`email`,`deliveryuser`,`mailtime`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;


— Table structure for table `failures`

DROP TABLE IF EXISTS `failures`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `failures` (
`mailtime` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
`msgid` char(16) NOT NULL DEFAULT ”,
`email` char(255) NOT NULL DEFAULT ”,
`transport_method` char(45) DEFAULT ‘remote_smtp’,
`host` char(240) DEFAULT NULL,
`ip` char(60) DEFAULT NULL,
`message` char(240) DEFAULT NULL,
`router` char(65) DEFAULT ”,
`deliveryuser` char(30) NOT NULL DEFAULT ”,
`deliverydomain` char(255) NOT NULL DEFAULT ”,
PRIMARY KEY (`mailtime`,`msgid`,`email`),
KEY `email_mailtime_index` (`email`,`mailtime`),
KEY `deliverydomain_mailtime_index` (`deliverydomain`,`mailtime`),
KEY `deliveryuser_mailtime_index` (`deliveryuser`,`mailtime`),
KEY `email_deliveryuser_mailtime_index` (`email`,`deliveryuser`,`mailtime`),
KEY `msgid_mailtime_index` (`msgid`,`mailtime`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;


— Table structure for table `sends`

DROP TABLE IF EXISTS `sends`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `sends` (
`mailtime` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
`msgid` char(16) NOT NULL DEFAULT ”,
`email` char(255) NOT NULL DEFAULT ”,
`processed` int(11) DEFAULT NULL,
`user` char(30) NOT NULL DEFAULT ”,
`size` int(11) DEFAULT NULL,
`ip` char(60) DEFAULT NULL,
`auth` char(30) DEFAULT NULL,
`host` char(240) DEFAULT NULL,
`domain` char(255) NOT NULL DEFAULT ”,
`localsender` int(1) DEFAULT ‘1’,
`spamscore` double DEFAULT NULL,
PRIMARY KEY (`mailtime`,`msgid`,`email`),
KEY `mailtime_domain_user_msgid_index` (`mailtime`,`domain`,`user`,`msgid`),
KEY `user_mailtime_index` (`user`,`mailtime`),
KEY `msgid_user_index` (`msgid`,`user`),
KEY `domain_user_mailtime_index` (`domain`,`user`,`mailtime`),
KEY `email_mailtime_user_index` (`email`,`mailtime`,`user`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;


— Table structure for table `smtp`

DROP TABLE IF EXISTS `smtp`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `smtp` (
`mailtime` datetime NOT NULL DEFAULT ‘0000-00-00 00:00:00’,
`msgid` char(16) NOT NULL DEFAULT ”,
`email` char(255) NOT NULL DEFAULT ”,
`processed` int(2) NOT NULL DEFAULT ‘0’,
`transport_method` char(45) DEFAULT ‘remote_smtp’,
`transport_is_remote` int(1) NOT NULL DEFAULT ‘1’,
`host` char(240) DEFAULT NULL,
`ip` char(60) DEFAULT NULL,
`deliveredto` char(255) NOT NULL DEFAULT ”,
`router` char(65) NOT NULL DEFAULT ”,
`deliveryuser` char(30) NOT NULL DEFAULT ”,
`deliverydomain` char(255) NOT NULL DEFAULT ”,
`counteddomain` char(255) DEFAULT NULL,
`countedtime` datetime DEFAULT NULL,
`countedhour` datetime DEFAULT NULL,
PRIMARY KEY (`mailtime`,`msgid`,`email`,`deliveredto`,`router`),
KEY `msgid_index` (`msgid`),
KEY `deliverydomain_mailtime_index` (`deliverydomain`,`mailtime`),
KEY `deliveryuser_mailtime_index` (`deliveryuser`,`mailtime`),
KEY `email_mailtime_index` (`email`,`mailtime`),
KEY `email_deliveryuser_mailtime_index` (`email`,`deliveryuser`,`mailtime`),
KEY `processed_transport_is_remote_index` (`processed`,`transport_is_remote`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;
/*!40103 SET [email protected]_TIME_ZONE */;

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
/*!40111 SET [email protected]_SQL_NOTES */;

That’s about it. 🙂

WordPress: Password-Protected pages not working on folders within WordPress’ directory (Error 404)

Symptoms: You add password-protected directories to folders within your WordPress installation, but instead of showing a password-protection prompt, your browser will show a 404 page instead

This appears to be a common issue for users that try to password-protect folders within an installation of WordPress.
This happens because you did not define a 401/403 (depending on the situation) error page in your main .htaccess file.

In order to correct this, you will need to add the 401 error page to your WordPress’ .htaccess file.
Example of a WordPress .htaccess file:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

In order to correct this issue, simply create a 401 and 403 error page (on this example I’m using errors/401.html) and add it to .htaccess:

ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

And that’s it, save .htaccess and your password-protected folders should work now.

cPanel: RoundCube not working (Error 500)

Symptom: When you log into WebMail and select RoundCube, you will get an Error 500.

The first thing to try is to force an update for RoundCube by issuing the following command via SSH:

/usr/local/cpanel/bin/update-roundcube –force

If the reason for RoundCube not to work is its configuration files, this command will do the trick.
Now, if you get a MySQL Database error while updating it, it’s possible that your “roundcube” database is either corrupt, or you might have the InnoDB scheme disabled (RoundCube requires InnoDB).
In order to check if InnoDB is enabled on your server, simply issue the following command through SSH:

mysqladmin var |grep have_innodb

The command output should be similar to this:

| have_innodb                             | YES                                               |

If by any reason you get a “NO”, it means InnoDB is disabled, and you have to enable it to make RoundCube (and it’s update script) work.
The first thing to look out for is your MySQL master configuration file at /etc/my.cnf. Make sure you’re not using the “skip-innodb” command in it.

To make it easy, just run the following command:

grep skip-innodb /etc/my.cnf

If the skip-innodb command is found on the file, make sure you remove it.

NOTE: From this line on, I’m assuming you are NOT using the InnoDB schema for any of your databases. Please note that the procedure below may (most likely will) render any databases using the InnoDB schema corrupt. Do not proceed unless you’re 100% certain of what you’re doing.

If it’s not found, and you’re still having problems getting InnoDB to work, try the following batch of commands (just paste the full line in your command prompt and press Enter):

service mysql stop; cd /var/lib/mysql/; mv ibdata1 ibdata1.bak; mv ib_logfile0 ib_logfile0.bak; mv ib_logfile1 ib_logfile1.bak; service mysql start

The line above will stop the MySQL Server, change the working directory to “/var/lib/mysql/” where it then renames a few files and start the MySQL Server again. It’s important to shut it down before renaming any files.
Once the MySQL Daemon is started, the files will be generated again. Once the process is complete, check for InnoDB again using:

mysqladmin var |grep have_innodb

If it is showing as enabled, try to update RoundCube again:

/usr/local/cpanel/bin/update-roundcube –force

If you’re still getting a MySQL Database error after this, it’s most likely due to your RoundCube database being corrupted.
The solution on that case is to delete the database via phpMyAdmin (remove the database with the name “roundcube”), or you can also do it via SSH by logging into the MySQL Server (just type “mysql” in SSH) and issuing the following command:

drop database roundcube;

Now try to run the update script again (it should work this time):

/usr/local/cpanel/bin/update-roundcube –force

 

Connecting your Samsung TV to stream videos directly from a computer / server

I have had difficulties getting this to work as I wanted to, so I thought it would be good something to write about.

I am using a Samsung LED TV from the 7 Series, but you should be able to use this on other series, just as long as your Samsung TV is able to connect to your home network using either a wired or wireless connection.

 

Your first step should be to get the TV’s MAC address and whitelist it in your router’s firewall. You may skip this if you are not using a firewall.

To get the MAC Address for your TV, press the “menu” button on your remote controller, and navigate through:

Setup –> Network –> Network Test

The MAC address will be displayed as the Network Test starts.

Once you’ve whitelisted the MAC address, download Samsung PC Share Manager.

I have no idea why, but the software is extremely hard to find online, even though it’s free and it’s bundled with most Series 6 and Series 7 TVs, so for that reason I have made it available for download. Click here to get it.

 

Install PC Share Manager and start the application.

Navigate through:

Share –> Set Device Policy

Select your TV’s IP Address (it will be listed as a TV) and click toggle the Policy button to Accept. You can then close that menu and return to the main screen.

 

Then, navigate through:

Share –> Share Folder

Select the folder you want to share with the TV and close the menu box by clicking on the Accept button. Repeat the process for all the folders you want to have available on your TV.

(You cannot share individual files)

 

Once you have added all the folders you want to share on the TV, navigate through:

Server –> Server: On

You will have enable or disable the server. Select “On” to connect to the TV. You may also want to make sure the option “Run Digital Media Server when Windows Starts” if you want to share the folders on a permanent basis (for media servers),

 

Finally click on:

Share –> Refresh DB

The database will now synchronize. This will take a while.

Once the process is complete, you should be able to browse your videos through your TV.

Why your backup attempts fail in cPanel and other control panel systems – your files can be the problem.

I’ve had the idea to write about this subject a few months ago, and left it on a post it on my desk. Luckily, I have just seen it and didn’t want to throw it away without posting something about it.

In these days, every single web host promises you that your data is safe and that they will backup your site every X days. While this is true, it’s not 100% sure.

Backup systems can fail (they do fail). What if? What if it fails for you?
What if your blog gets hacked, and there’s no backup to restore it from?

Did you even think about that scenario? It happens to hundreds of people. Why shouldn’t it happen to you?

No one is special in technology. It can fail for everyone (look at NASA for example, technology fails for them too). If you care about your website (and your email) you should back it up at least once a month, or once a week if you update it too often.

Most control panels out there will offer you an easy and convenient way of generating/downloading full backups for your website. This should be a 20 minute operation (between the generation and downloading).
Now here’s the tricky part  -  and also why many webmasters do not download a backup of their site every month or every week:

Your site is too large!

I have been a consultant in this industry for a long time, and I know for a fact that most websites do not use over 500M to run, in any circumstances. The problem here is, that webmasters neglect the “file sharing” problem.

You’re given 5GB or 10GB to host files, so you intend to use them for file storage. After all, it’s what you’re paying for, right? Not really.

It’s complicated to talk about it. Web hosts offer that to compete with each other. It’s a normal marketing strategy. A responsible webmaster will not use nowhere near that because having 10GB in files on a site will ruin any self-backup attempt by the website owner.

There are other ways of storing your files online. Let’s say you are a Disc Jockey and want to share your “sets” with everyone. Your main web hosting account is certainly not the best place to upload your files to.

Sure, it’s nice to have a link attached to your set such as djrocknroll.com/setxxx.mp3 but this will add inconveniences to you, such as not being able to generate a backup without a headache, or without having to wait 6 hours for it.

I rarely point at a problem without providing an option to evade it, so here’s what I recommend:

If you need to host files (large files), setup a separate hosting account and use a subdomain for it. For example, files.yoursite.com. Your web host will know how to do this for you. That way, you can separately backup both your files and your site, without having one interfering with the other.

Please note that I am not referring to subdomains. A Subdomain is usually hosted within the same user home directory, so this will not do any good. Ideally, a separate account is recommended.

If you have a reseller or a multi-site account, you can take advantage of it by creating a new account just for the purpose of storing your files. If you do not have this possibility and cannot afford a new account at your current host, you can always find a cheaper web host just to deal with your “downloadable” files. Assuming that your email and website content is more important than your files, you should always make sure that your main hosting account is clean. Never use more room than you need to.

That way, you will be able to generate/download backups every time, with no delays or hiccups. This is valid for almost every control panel system. Whether it’s cPanel, Plesk, DirectAdmin or anything else… if your account is flooded with files, the instant backups will not work as you expect.

Using Windows’ “hosts” file to avoid downtime when switching web hosts

I do have a lot of people asking me what’s the best way to transfer their website from a web host to another without any downtime. While I think this is almost impossible (at least coherently and without anyone noticing it), there are a few tricks that you can use to minimize the downtime.

One of them is to use the Windows HOSTS file to prepare everything at the new web host.
The HOSTS file, is a basic text file that allows you to override your DNS server settings. By having a web address in there, you will make your PC ignore any DNS Resolution (it won’t even try to resolve the address) – Instead, it will use the IP Address you supply in the HOSTS file.

Think of that file as a “God Mode” in DNS.
Whatever you wrote there, will be the absolute path for a given domain name.

So, when you’re moving to a new web host this becomes handy, because you can simply make your PC resolve your URL to the new web hosts’ IP address, without having to change your domains’ nameservers. The advantage here is that you will be able to preview your site *exactly* as it will be functioning at the new location without risking a DNS change; along with its side-effects if it goes wrong (having to change it back to the previous host because it’s not working as expected, etc).

 

So let’s say you’re moving from WEBHOST1 to WEBHOST2.
The very first thing you must do is to find out your website’s new IP address.

This is an information that is usually sent to you by the new web hosting provider through a “Welcome Email” along with other useful technical notes about the new account. If this isn’t the case, simply ask your web host (WEBHOST2) what your IP address will be.

Once you have that information, you can move on to the next step – editing the HOSTS file.
By default, on a standard setup; the HOSTS file is located at the following location:

Windows 95, Windows 98 and Windows ME: C:\Windows\Hosts
Windows NT/2000: C:\WINNT\system32\drivers\etc\hosts
Windows XP: C:\Windows\system32\drivers\etc\hosts
Windows Vista and Windows 7: C:\Windows\System32\drivers\etc **

 

** Under Windows Vista and Windows 7, you will need to open this file using the option “Run as Administrator” in order to prevent issues when saving your file. (you won’t be able to save the modified file if you do not use this option)

Since this file has no extension, you will most likely be asked which program to use to deal with the file. Select NOTEPAD or WORDPAD as an alternative.
Once you open it, you should have the following (or at least similar) text:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host
 
127.0.0.1 localhost

 

On Windows Vista/Windows 7, you might be missing the 127.0.0.1 entry.
This is because both Operating Systems do not need such line there, the localhost entry is handled by the DNS client directly.

You will instead see a few extra lines replacing the first entry, such as:

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

Moving on, let’s say your domain name is “myblog.com” and your new web hosting IP address is 74.74.74.74 – where is the entries you would need to add to this file:

 

74.74.74.74 myblog.com

74.74.74.74 www.myblog.com

So, to summarize, you would have a file similar to this one:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a ‘#’ symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

74.74.74.74 myblog.com

74.74.74.74 www.myblog.com

This will order your PC to not even try to resolve the domain name, but to use the IP you specified instead. Once you save this file, your domain should start to point to the new IP immediately. If you want to make sure it’s happening, a good way to do it is by performing a PING test on your domain.

To do so, just open a new Command Prompt window (by going to Programs/All Programs –> Accessories –> Command Prompt), and typing the following command:

ping www.myblog.com

Then wait for the output. If you get the new IP address, that means you’re ready.
Upload your website to the new host, restore any databases you need to have working and test it on your PC. The best part is that no one will notice any flaws on the new host – only you will be able to see them, as the rest of the world will still be using the current/old host to retrieve your content.

Once you’re fully satisfied with what you see on your domain, you can safely change your nameservers (pointing them to the ones you have been provided by WEBHOST2) without risking anything – because you have tested it all beforehand.

IMPORTANT NOTE:  Once you are satisfied with the results and are ready to change the nameservers, make sure you remove those 2 lines from your HOSTS file. You will no longer need them, and having them there can cause problems in the future (for example if for any reason your web host has to change your IP address… This seems unlikely but it isn’t. There are many valid reasons to change your IP, such as installing a SSL Certificate!)

cPanel: Error when creating a new package

Symptom: When creating a new package in cPanel you get the following error:

[an error occurred while processing this directive] 

This is usually due to cPanel’s memory limits. (It’s basically trying to create the package for you but there’s not enough memory left for the process to complete).

To fix this, log into WebHost Manager as root, navigate to Server Configuration » Tweak Settings and increase the value for “Max cPanel process memory” to 512M or higher if needed. (The default setting is 256M)

Save your changes and try to add the package again.

D-Link DIR-600 Quick Setup Guide and Micro Review

 

Alright,

Today I decided to review one of my latest routers, the D-Link DIR-600.
The DIR-600 is a small and nice-looking router.

But the looks are not everything.
Just like most of the home-network routers (a.k.a. cheap routers), you will find annoying bugs on it and probably complain about reliability (you will).

Let’s look at its packaging.

Main Box

Box Set

The DIR-600 is bundled with a regular 2M CAT5E ethernet cable (up to 100mb/s).
The box pictures are of my own, and as you can see I haven’t even untied the cable.
This is because my home is fully wired with CAT6 cable, which allows up to 1 Gb/s.

D-Link DIR-600 Inside

Inside the box, below the manuals

Make no mistake, though. This router does NOT allow you to reach such speed.
I only recommend wiring with CAT5E if you have a (very) tiny budget.

CAT6 is the future and it is backwards compatible so it makes sense to do this, as you might get a CAT6 router in the near future. (You can already get one for less than $100)

Moving on: setting up the D-Link DIR-600 is pretty straight forward.

  1. Connect your xDSL or Cable Modem to the WAN port on the router (skip this if you are going to use it as an Access Point)
  2. Using the supplied (or not) ethernet cable, connect your computer to the router’s LAN1 port.
  3. Run the installation CD and follow the On-Screen instructions.

After the installation/setup completes, you will be able to log into the router’s administration panel by pointing your browser to http://192.168.0.1/.
By default, your username is “admin” and no password is assigned, so just leave the password field blank and click on the “Log In” button.


Advanced Setup

I rarely recommend you to keep the basic settings, so here’s what I recommend you to do:

  1. Log into the router by pointing your browser to http://192.168.0.1/ (again, the username is admin and the password should be blank by default)
  2. Click on “Manual Internet Connection Setup” (see screenshot below)
  3. This will bring you to the Internet Connection options page.
    Try to replicate the settings below.

    D-Link DIR-600 Internet Options

    Internet Connection Options

    The main changes you will be doing are:

    » Adding a Hostname (I used DIR-600 but you can use anything else)
    » Using Google’s Public DNS Servers (this is totally optional but I do recommend it)

    After that, Save your settings by clicking on the “Save Settings” button.

  4. Click on the “LAN Setup” link in the left sidebar. Scroll the page down until you find the “DHCP Server Settings” section.
    Make sure that your DHCP Server is enabled, and set the DHCP Lease Time to 14400 (at least).Now here comes a scary part for rookies. Find out your MAC address.
    This is actually easy, just follow these instructions (the Windows XP instructions also work on Windows Vista/Windows 7).
  5. Now that you have your computer’s MAC Address, scroll down the “LAN Setup” page.
    Under “DHCP Reservation”, enter your computer name, select an IP for it (an example would be 192.168.0.2) and the MAC Address.IMPORTANT: Make sure you check the no-label/no-name checkbox. This is actually the box to enable that specific rule.
    Repeat this for all your computers (or at least the ones you intend to connect-to the most).Save your settings.
  6. Click on “Wireless Setup”. If you do not intend to use WPS, I suggest disabling it.
    Try replicating the settings below.

    D-Link DIR-600 Wireless Setup

    Wireless Setup

    I recommend hiding your SSID, just like you see on the screenshot. In terms of security this is technically useless,  but at least it won’t broadcast your network name and basic settings to everyone in your street with a good wireless card.

    Make sure you select a good WPA key.
    If you need to generate a network key, I recommend using Wireless Key Generator.

    Make sure you print your password and store it in a safe and easy to remember place.
    Or, just save it as an encrypted text file on your computer.

    You will need this key everytime you need to attach a new wireless device to your network, so forgetting or losing the password will inevitably force you to reset the WPA key on the router (which in turn means you will have to reconfigure every device all over again to use the new key).

    Save your settings and configure your Wireless Devices with your WPA Key.

  7. Do not forget to pay a visit to the Time Settings. Make sure everything’s correct to avoid issues in the future – and start browsing!

This should cover the basics.
I have been using this router on my home, together with an ASUS WL-520GU (acting as an access point amd print server).

So far, the issues aren’t overwhelming but I reckon this router could be better.
Here’s the list of small (but annoying) issues that I have had with it:

  1. DNS Timeouts when using the DNS Relay option (resolved by using Google’s Public DNS Servers)
  2. DHCP Server Timeouts when connecting or requesting a new IP address (Resolved by using Static IPs)
  3. For some reason my PS3 does not like this router. It would never get an IP from DHCP when connected via Ethernet. (Resolved by setting up a Manual IP on XMB)

Apart from those issues, the router works pretty well and it does handle traffic smoothly.
Still, I cannot recommend it for the “regular joe”; because the issues I have had would have been literally a nightmare for new and inexperienced users (I can see most of them just returning it).