Installing Awstats On a Ubuntu Server

Awstats i think has lost the lime light in the last few years thanks to Google Analytics, but that dosent mean its useless. Its quick and unlike Google Analytics the latest stats are not a few days old, well they arent if your cron jobs run on regular basis anyhow. This post aims to show you how to get awstats up and running on your Ubuntu based server, with the stats of a virtual host pulled straight from the Apache log files.

First login in to your server via SSH and become root:

sudo su

Update your package list:

apt-get update

Install the awstats program:

apt-get install awstats

Create a new configuration file for the virtual host you would like to gather statistics on:

cp /etc/awstats/awstats.conf /etc/awstats/awstats.mydomain.tld.conf

You will need to create a separate configuration file for each virtual host you would like to gather statistics about. Of course when the virtual host is setup in Apache it will need its own log files.

To see where our visitors hail from we will also need to install a PERL GeoIP library:

apt-get install libnet-ip-perl libgeo-ipfree-perl

Now its actually time to edit the awstats file for you virtual host so it contains the appropriate settings, lines you may need to look at are:

Line 51 - This needs to point to the access log of the virtual host

Line 122 - Make sure the log type reflects the format Apache is writing

Line 153 - Change this to the domain name of your site

Line 168 - Aliases etc that can be used to access the virtual host

Line 329 - To protect access to the sites statistics

Line 340 - “”    “”    “”    “”    “”

Line 350 - “”    “”    “”    “”    “”

Line 362 -
Should Awstats create a directory for storing reports if it dosent already exist

Line 372 - Should Awstats use a text or XML file to build the stats database

Line 382- XHTML or HTML statistic reports

Line 413 - Should Awstats empty the access log after a parsing it can save having to worry about rolling it.

Line 428 - Tells Awstats if you would like to archive the logs which it has already parsed

Line 450 - The default name of the report file

Line 466 - Clients that should be skipped in the reports i.e your own IP address

Line 479 -
Skip certain user agents i.e wget etc

Line 497 - Dont count certain files on your site

Line 732 -
Turn on Awstats debugging for more verbose output

Line 1255 - If you want to enable extra toolips in your reports

Line 1271 -
Reverse lookups for IPV6 IP address’s

Line 1302 -
Use of a free GeoIP service for country to IP lookups

 

After the configuration is finished for our virtual host you will need to configure Apache so you can access your statistics.
Create a new file for Apache with:

pico /etc/apache2/conf.d/awstats

In this file put the content:

Alias /awstatsclasses “/usr/share/awstats/lib/”
Alias /awstats-icon/ “/usr/share/awstats/icon/”
Alias /awstatscss “/usr/share/doc/awstats/examples/css”
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch

Now restart the Apache service so you changes to the configuration take effect:

/etc/init.d/apache2 restart

Now add a line to your crontab to update your statistics every so often:

pico /etc/crontab

And add the following line to update your stats every 20 minutes:

*/20 * * * * root /usr/lib/cgi-bin/awstats.pl -config=mydomain.tld -update >/dev/null

Save the changes and just to be on the safe side try and update the stats drom the command line with:

/usr/lib/cgi-bin/awstats.pl -config=mydomain.tld -update

Note: If you get an error that looks like

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.
Setup (‘/etc/awstats/awstats.conf‘ file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in ‘docs’ directory).

Just delete the /etc/awstats/awstats.conf file and it will read the one you are trying to specify instead.

Now to see the statistics for the site you just generated type the hostname of your server into a browser followed by /awstats/awstats.pl?config=mydomain.tld i.e

http://www.myserver.com/awstats/awstats.pl?config=mycooldomain.com

With any luck you should now have access to a webpage with some pretty detailed statistics on your domain.

 

leave a comment

October 22nd, 2008 at 11:59 am

Posted in Uncategorized

Ruxcon Registration Open

Registration is open for Ruxcon 2008, Sydney’s premier security conference. Which is being held at UTS in the CDB on the Saturday 29th and Sunday the 30th of November. Admission is $60 which going by the site looks like it will be money well spent they have a great line up of talks and presentations.

leave a comment

October 21st, 2008 at 11:03 pm

Posted in Uncategorized

Performance Tuning your Drupal Install

Your site has been skinned, modules are installed for all the required functionality but your site is running slow, this post will run you through some things you can look at to speed up your Drupal install.

 

Devel Module

Download the Devel module for your version of Drupal, uncompress and upload to the modules directory of your site. Enable the Devel module in your sites administration section and on the modules configuration page activate the options “collect query info” and “display query log”. You may also want to turn on the “page generation timer” and the “display memory usage” option.

After activating the query log you will see all of the SQL queries that where executed in order to generate the page down the very bottom. Using this list you may like to disable any modules which are ineffiecient, but going through what the queries relate to.

The page generation timer is handy when making changes to benchmark what effect they are having on the speed of your site.

 

Block Cache Module

Another module you may want to look at to improve your site performance is Block Cache this module as the name suggests caches the blocks on a page, this module has been included in the Drupal Core as of version 6 but is available as a seperate download for 5.x versions of Drupal. In my case installing and enabling this module sliced around 100ms on average off my page generation time.

 

Boost

This module will cache your pages as static html files enabling huge performance increases for sites with large amounts of anonymous traffic. Each time the Drupal Cron file is executed the cached pages are discarded and recreated when the next visitor requests a page.

 

MySQL Query Cache Optimisation

MySQL query cache stores the results of a SQL query in memory, aftwerward if the results of a cached query is needed MySQL simply serves the result directly from memory without executing the query again. Fine tuning the query cache will have a massive effect on the speed of your site unfortunately this option is only available to those that have complete control of their server environment i.e not a shared hosting environment.

There are two ways you can go about tweaking the MySQL query cache, if you have SSH access to you server you can simply login via a terminal and edit the values for the query_cache_limit & query_cache_size options in the my.cnf e.g

pico /etc/mysql/my.cnf

Be sure to restart MySQL after making any changes to the configuration file.

The second way to tweak these values if you don’t have shell access but have local GUI access (Windows etc) on the server you can use the “MySQL Administrator” program to change the values for your query cache. If you don’t already have this program you can download it free of charge from the MySQL website.

Using the program to connect to the MySQL service, click on the “Startup Variables” option in the left hand column, then select the performance tab at the top of the screen. Then select the Cache Size check box to enable the setting, and enter your new value, then apply the changes and restart the MySQL service.
You may have to play around a bit with the query cache values to find something that works for you, as the cache size is going to be limited by how much memory you server has available to store query results.

Hopefully after install the modules to cache and playing around with the query cache for MySQL you will see some dramatic improvements in the speed of your Drupal site…. Good Luck !!!

 

leave a comment

October 21st, 2008 at 10:19 pm

Posted in Uncategorized

Typing Google Into Google Wont Break The Internet But Senator Conroy Sure Will

Seems the rules of the “Clean Feed” game changed this week when it was revealed although people can opt out of the planned mandatory filtered “child friendly” Internet. Everyone will still be subject subject to a filtered Internet, which is a very scary prospect indeed the details seem scarce and as proved true this week no one seems to be forthcoming with the truth on this filter and its application.

So lets look at what we do know so far about this filter:

  • The Government like everything else tells us its important to “protect the children” and stop the flow of kiddie porn. Tim Marshall, the media contact for Senator Conroy stated in an interview on the topic that is “reasonably emotive issue, and you know there’s a few lobby groups in the sector who are pretty keen to put there extreme view out there without perhaps having too much interest in the facts.”
  • It will cost lots, how much? Who knows everytime someone quotes a price it is different, rest assured though it will be a fair bit over 100 million.
  • The Trials in Tasmania shown accuracy is a hard nut to crack with all filters tested allowing between 2 – 13% of material through that should have been blocked whilst wrongly stopping access to 1.3 – 7.8% of sites tested.
  • It will slow down access to the Internet. In their Tasmanian trials only one of the filters had an acceptable level of performance loss (2%) as opposed to between a 21 and 86% slow down from the other filters. Tests showed the most accurate filters to cause the biggest drops in performance.
  • The filter will most likely be easy to bypass, making it useless for those that are determined to get unfiltered Internet.
  • The Government already spent 89 million providing free Internet filtering software for anyone worried about what content is available on computers in their household. Why should the rest of the country suffer because parents can not keep an eye on their children whilst using the Internet? Why is the “clean feed” and opt out system and not an opt in system after all children make up only 1/5 of the population.
  • The Government is remaining very tight lipped about what this other “inappropriate” content is they will be blocking, so we can assume it consists of anything they don’t like with minimal processes in place to appeal.

Australia is already laughed at due to the Government’s refusal to create a new rating for video games that are deemed to be above the MA15+ rating, do you really trust that they can do a better job with the Internet?

Links

Won’t someone think of the adults?

No Clean Feed

FaceBook Group – No To Australian Internet Censorship

FaceBook Group – Australian ISP Filtering Plan Is Stupid

FaceBook Group – Australians Against The National Filter Plan

Wikipedia – Internet Censorship In Australia

Netalert – Be Alarmed, Not Alert

Electronic Frontiers Australia

TIG Petition – Stop Internet Censorship In Oz

Somebody Think Of The Children

BroadBanned Revolution

Libertus – About Censorship & Freedom Of Speech

Videos

Aust Government To Save Children By Destroying The Internet


How To Fight Internet Cenorship In Australia


leave a comment

October 20th, 2008 at 7:24 pm

Posted in Uncategorized

IE Browser Testing

Testing your web site layouts in IE is still unfortunately an essential part of development. Depending on your OS it can be an inconvienance, needed to load a virtual machine or similar running Windows to test in IE and even then you are limited with the versions of IE you can test in.

Enter the IE NetRenderer, simply type in the URL of the site to test and it will show you what it looks like in Internet Explorer version 5.5 though to 8 beta 2!

Firefox eating Internet Explorer


leave a comment

September 19th, 2008 at 12:28 am

Posted in Uncategorized

Getting Baked With CakePHP

What Is CakePHP?

CakePHP is a PHP open source rapid development framework that was born in 2005, it is distributed under an MIT licence and has a very active community. So of its other features include:

  • Compatibility with PHP4 and PHP5
  • Integrated CRUD for database interaction and simplified queries
  • Model View Controller (MVC) Architecture
  • Request dispatcher with good looking, custom URLs
  • Built-in Validation
  • Fast and flexible templating (PHP syntax, with helpers)
  • View Helpers for AJAX, Javascript, HTML Forms and more
  • Security, Session, and Request Handling Components
  • Flexible access control lists
  • Data Sanitation
  • Flexible View Caching

In this post i will run the reader through the process of setting up CakePHP and then creating a simple notice board application to demonstrate the simplicity of writing an application with cake.

Installing CakePHP

Download the latest copy of CakePHP from www.CakePHP.org uncompress and place in the root directory of your web server. Check that the Apache <directory> option for the root directory contains the AllowOverride option and it is set to “ALL” i.e

<Directory /mypath/tocakephp/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>

You must also ensure that Apache is using the rewrite mod to enable this on my Ubuntu based server system i used the command a2enmod rewrite. After all your changes to the Apache configuration have been made restart the Apache service so the changes take affect.

Depending on how you configured Apache you may run into some trouble with the rewrite functionality, have a look at the web server URL in a browser, if the CakePHP page you see is missing its CSS and images something is amiss. You have two options with how you want to move forward from this point, you can uncomment line 40 of the CakePHP config file (app/config/core.php) which will work around the malfunctioning rewrite mod plugin. Or you can look at this page on the CakePHP site, which has some pointers on fixing the problem properly.

Also you must make sure Apache has write access to the app/tmp directory and its sub folders before. A new MySQL database named notice_board will have to be created using PHPmyadmin or similar to hold the data for our sample application.
After this is done the file app/config/database.php.default needs to be renamed to app/config/database.php. Using a text editor the database parameters in the file then need to be changed to match your MySQL setup and the changes saved.

CakePHP after initial setup

Baking Your First Application

Now the framework is installed we can start work on our first CakePHP application its going to be a simple notice board, it wont have all the bells and whistles but it will show you how quickly, and easily some tasks can be accomplished using cake.
First up you will need to make a table in the database you created earlier to hold our notices.

CREATE TABLE `notice_board`.`notices` (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`title` VARCHAR( 255 ) NOT NULL ,
`content` TEXT NOT NULL ,
`created` VARCHAR( 30 ) NOT NULL ,
`modified` VARCHAR( 30 ) NOT NULL ,
PRIMARY KEY ( `id` )
);

** Note: it is CakePHP convention to use plural names when naming database tables. All tables should also have a field named “id” as the primary key.

Creating The Model

In CakePHP each database table should have its own model, this model is basically just a class and is used to access and modify the data stored within the table. To create a model for the notices table create a file named notice.php in the app/models folder. In this file enter:

<?php
class Notice extends AppModel {
var $name=’Notice’;
}
?>

You can see from the code above the Entry calls extends the AppModel class, in CakePHP all models extend this class.

**Note: It is also a CakePHP convention that the model class its file name is a singular version of database table name.

Creating The Controller

The controller is a piece of code that decides what has to happen within an MVC application. Every model in an application needs an associated controller. Creating a controller for the notice board application is very similar to creating the model. Just create a new file named notices_controller.php in the app/controllers directory.

In this file enter the following code:

<?php
class NoticesController extends AppController {
var $name = ‘Notices’;
function index() {
$this->set(‘notices’, $this->Notice->findAll());
}
}
?>

The addition of the index function is a method to give our controller some functionality in this case to display all of the notices stored in the database.

**Note:
It is CakePHP convention that controller names are plurals of the model name.

 

Creating A View

We have a model, a database and a controller so now we need a view to display our hard work to the end user. Create a new directory  called notices in the folder named app/views. Now create a file within the newly created directory called index.thtml containing the following code:

<h2>Notice Board</h2>
<p><?PHP echo $HTML->link(‘Add New Notice’, ‘/notices/add’); ?></p>
<div style=”height: 10px;”></div>
<?PHP if(empty($notices)) : ?>
This notice board currently has no notices to display.
<?PHP
else:
foreach ($notices as $notice):
echo ‘<b>Title:</b> ‘ . $notice['Notice']['title'] . ‘<br>’;
echo $notice['Notice']['content'] . ‘<br>’;
echo ‘<b>Created: </b><i>’ . $notice['Notice']['created'] . ‘</i><br>’;
echo $HTML->link(‘Delete’, “/notices/delete/{$notice['Notice']['id']}”, null, ‘Are you sure?’  );
echo ‘<br><div style=”height: 10PX;”></div>’;
endforeach;
endif;
?>

**Note: The 1.2 version of CakePHP will use the file extension .ctp as opposed to the extension .thtml usedfor  “views” in the earlier versions.

Now if you aim your browser at your server’s url with the trailing name “notices” i.e http://mysever.com/notices, you should be able to now see that we are making some positive progress with our app.

Viewing The notices on the CakePHP app

Creating New Notices

Since we have laid out the ability to view notices its time to add some functionality to the controller so a user can actually post notices to the board. To achieve this you will need to edit the notices_controller.PHP and append an add function, so the files contents look like this:

<?PHP
class NoticesController extends AppController {
var $name = ‘Notices’;
function index() {
$this->set(‘notices’, $this->Notice->findAll());
}

function add() {
if (!empty($this->data)) {
if ($this->Notice->save($this->data)) {
$this->flash(‘Your notice has been posted.’,'/notices’);
}
}
}
}
?>

Now create a template named app/views/add.thtml with the code below for the user to enter the details of a new notice.

<h2>Create Notice</h2>
<form method=”post” action=”<?PHP echo $HTML->url(‘/notices/add’)?>”>
<div align=”center”>
<p>
Notice Title:
<?PHP echo $HTML->input(‘Notice/title’, array(’size’ => ‘40′))?>
<?PHP echo $HTML->tagErrorMsg(‘Notice/title’, ‘A notice title is required.’) ?>
</p>

<p>
Notice Body:
<?PHP echo $HTML->textarea(‘Notice/content’, array(‘rows’=>’10′)) ?>
<?PHP echo $HTML->tagErrorMsg(‘Notice/content’, ‘Your notice needs some content.’) ?>
</p>

<p>
<?PHP echo $HTML->submit(‘Create Notice’) ?>
</p>
</div>
</form>

Adding new notices to the CakePHP App

Form Validation

Since the application has a form to accept data from a user the entered data will have to be validated, one of CakePHP’s strong points is its built in validation functionality removing a lot of pain for developers.
To handle the validation of our new notice you need to go back and edit the entries model (app/models/notice.PHP) and append a validate array so the file looks like this:

<?PHP
class Notice extends AppModel {
var $name=’Notice’;
var $validate = array(
‘title’ => VALID_NOT_EMPTY,
‘body’ => VALID_NOT_EMPTY
);
}
?>

Deleting Existing Notices

Now notices can be added to the board, it makes sense to add functionality supporting the deletion of a notice. To achieve this we need to add a new function to our controller so the delete link on the index page works properly. Open the controller file back up and add a delete function so the file contents are the same as below:

<?PHP
class NoticesController extends AppController {
var $name = ‘Notices’;
function index() {
$this->set(‘notices’, $this->Notice->findAll());
}

function add() {
if (!empty($this->data)) {
if ($this->Notice->save($this->data)) {
$this->flash(‘Your notice has been posted.’,'/notices’);
}
}
}

function delete($id) {
$this->Notice->del($id);
$this->flash(‘The selected notice has been deleted.’, ‘/notices’);
}

}
?>

You should now be the proud owner of your first working CakePHP web application!

Notice Views CakePHP Notice Board

Further Reading

CakePHP (Official Site)
http://www.cakephp.org/

A Run Down On The Conventions In CakePHP
http://book.cakephp.org/view/22/CakePHP-Conventions

Understanding MVC (On the CakePHP site)
http://book.cakephp.org/view/11/Overview

Model View Controller – Background, History etc on Wikipedia
http://en.wikipedia.org/wiki/Model-view-controller

 

 

leave a comment

September 15th, 2008 at 10:46 pm

Posted in Uncategorized

Teaching Kids Networking

The Story Of Ping

Whilst browsing an online bookseller today i came across this childrens title, little Billy could be a certified CCNA in no time!

leave a comment

September 10th, 2008 at 9:54 pm

Posted in Uncategorized

Overclocking An Asus 701 eeepc

For a while i have wanted to play around with unlocking the full speed of my eeepc 701’s CPU, but have never found the time. Tthe other day i decided to change the standard Xandros eeepc operating system, to  something with a bit more flexabilty. I settled on eeeubuntu, and figured whilst it was a fresh install without anything i cared about on the system i may as well have a crack at overclocking it.
The process was fairly system and i documented the process should anyone else want to give it a crack. Be prewarned though these directions were what was involved in getting it working on the eeeubuntu distro, your mileage may vary depending on what your distro of choice is.

First up you need to create a  directory to download and build the kernel module:

cd ~/
mkdir tmp
wget http://eeepc-linux.googlecode.com/files/eeepc-linux-0.2.tar.gz
tar zxvf eeepc-linux-0.2.tar.gz
cd eeepc-linux/module
make

(Depending on what distro you are using you may have to install any missing build tools such as make to your system, before you can finish the above step, eeeUbuntu had them already to go)

sudo pico /etc/modprobe.d/blacklist
Comment out line 25 which reads “blacklist i2c_i801″ by placing a # character at the start of the line.
reboot
cd ~/tmp/eeepc-linux/module
sudo insmod eee.ko

After doing this you should now be able to see a new directory in the /proc folder called eee, which contains some new files which provide insight into the current state of your fsb, fan, cpu. The contents of these files can be easily examined with the cat command e.g cat fan_rpm will display the current fan speed. The contents of these files are as follows:

fan_manual – Controls if the fan speed is controlled automatically (0) or is manually controlled by the user (1)
fan_rpm – The current speed of the fan in revolutions per minute.
fan_speed – The fan speed setting in percent 0 being not moving, and 100% being flat out. Note that if the fan speed is automatically being set by the BIOS this will read 0, although the fan is going.

fsb – The front side bus settings – bus speed / MDivisor / CPU voltage mode.
pll - phase locked loop, it is used to generate the fsb on the eeepc
temperature – The current CPU temperature in degrees celcius.

To ensure the module created is still loaded when you next restart the machine copy it to:

sudo cp ~/tmp/eeepc-linux/module/eee.ko /lib/modules/(kernel name)/kernel/drivers/acpi/

To find out the name of your current kernel type the command uname -r at the command prompt and modify the path you are copying to, in my case its /lib/modules/2.6.24-16-generic/kernel/drivers/acpi/.

Now you have to register the module with the command:

sudo depmod -a

Then edit the modules file with:

sudo pico /etc/modules

And add the line “eee” to the bottom of it, when you next reboot the machine the module should be available from the get go.

Now down to the nitty gritty of changing the FSB speed

sudo sh -c ‘echo 85 24 1 > /proc/eee/fsb’

Changes the FSB speed to 85 mhz, changing straight to 100 mhz is likely to end with the system locking up so it is better to increase the bus speed in increments.

sudo sh -c ‘echo 100 24 1 > /proc/eee/fsb’

Then changes the bus speed to 100 mhz, easiest way to get some sort of basic benchmark on the change is run the command glxgears for about 30 seconds after every increment and note the frame per second increase.

For further reading on the process i suggest you check out:

http://beta.ivancover.com/wiki/index.php/Eee_PC_Linux
http://forum.eeeuser.com/viewtopic.php?pid=38541
http://wiki.eeeuser.com/howto:overclockfsb

leave a comment

August 20th, 2008 at 9:13 pm

Posted in Uncategorized

Mounting Remote File Systems Via SSH On Ubuntu

As a developer a lot of time is spent working with code located on remote servers, downloading files, and re-uploading changes gets tedious using ftp, or standard ssh clients. One solution to this dilemma is sshfs, it allows a remote file system to be mounted locally using the ssh protocol, making editing, creating and deleting files a breeze.

Getting sshfs working is pretty painless and following the instructions below should get you up and ready to go in less than 5 minutes.

First open a terminal window and install sshfs:

sudo apt-get install sshfs

Your user will then need to be added to the fuse group:

sudo adduser (YOUR USERNAME) fuse

After completing this step you will need to log out and back in again or just reboot for the addition to the fuse group to take affect.

Now you simply need to create a directory on your local system where you would like to mount your remote location. After creating a directory open a terminal and execute the command below to mount the remote location:

sshfs username@ipaddress:/remotedirectory /localdirectory

Now if you look in the local folder you created you should be able to see and interact with the directories and files on the remote server as if they where located on your local machine.

leave a comment

August 16th, 2008 at 6:56 pm

Posted in Uncategorized

Adding Greylisting To A FreeBSD Postfix Mail Server

Greylisting is an important tool in the war against spam, servers who connect to a mail server with  an active greylisting are given a 450 recipent address rejected error the first time they try to connect and will not be allowed to successfully connect for a predefined time frame (normally a couple of minutes). A 450 SMTP error is not a permanent error and an RFC compliant mail server will try and resend the email again a bit later on. On the other hand the tools spammers tend to use do not adhere to standards and will not bother to retry sending the message again.
Reasons why you should care? It saves system resources, since we are stopping its delivery in the first place, not so many resources (CPU cycles, memory etc) will be wasted trying to seperate the good mail from the bad as opposed to using other techniques such as bayesian analysis straight off the bat. The postgrey application is very easy to implement and all clients that have connected to the server in the past are remembered, and allowed to pass mail through without any delay reducing latency in the delivery of messages.

So how do we go about implementing this? stick with me and i will run you through the process although this article is based around FreeBSD, it is not much different to get greylisting working on other systems with minimal of changes.

First open a terminal and follow the instructions below:

cd /usr/ports/mail/postgrey/ && make install clean

Edit your /etc/rc/conf file and add the line:

postgrey_enable = “YES”

Also edit line 45 of the file /usr/local/etc/rc.d/postgrey.sh and change from

postgrey_enable=${postgrey_enable:-”NO”}

to

postgrey_enable=${postgrey_enable:-”YES”}

Open the file /usr/local/etc/postfix/main.cf and add the line (all on one line):

smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination,check_policy_service inet:172.0.0.1:10023

run the command

postfix check

From the command line to check we dont have any problems with the new configuration.

Start the postgrey deamon with:

/usr/local/etc/rc.d/postgrey.sh start

And restart postfix with the command so your changes to the configuration file becomes active:

postfix reload

Use the command:

tail -f /var/log/maillog

To check we dont have any errors showing up in the logs we should also see entries similar to:

Nov  7 12:08:29 mail postfix/smtpd[18682]: NOQUEUE: reject: RCPT from c9503c2d.bhz.virtua.com.br[201.80.60.45]: 450 <jb@mikesgroup.com>: Recipient address rejected: Greylisted for 300 seconds (see http://isg.ee.ethz.ch/tools/postgrey/help/sykesgroup.com.html); from=<deborahsmarks@buggywhipstudio.com> to=<jb@sykesgroup.com> proto=ESMTP helo=<acer-2e68c49b20.bhz.virtua.com.br>

Further reading material on the subject of greylisting can be found at:

http://en.wikipedia.org/wiki/Greylisting

http://isg.ee.ethz.ch/tools/postgrey/

http://www.greylisting.org/

http://projects.puremagic.com/greylisting/whitepaper.html

leave a comment

August 9th, 2008 at 10:50 am

Posted in Uncategorized

SEO Powered by Platinum SEO from Techblissonline