FAQforge provides answers for frequently asked questions for the Linux-, MAC and Windows operating systems.
Install postfix with MySQL support on CentOS 5.3 (64Bit)
The following article explains the steps to compile postfix MTA with MySQL support on CentOS 5.3 as e.g. needed for ISPConfig 3.
Remove the postfix package from CentOS which does not has MySQL support:
/etc/init.d/postfix stop
rpm -e –nodeps postfix
Download the postfix source RPM and install it:
cd /tmp
wget http://mirror.rackspace.com/CentOS/5.3/os/SRPMS/postfix-2.3.3-2.1.el5_2.src.rpm
rpm -i postfix-2.3.3-2.1.el5_2.src.rpm
Edit the spec file to enable MySQL support.
vi /usr/src/redhat/SPECS/postfix.spec
and change the line:
%define MYSQL 0
to:
%define MYSQL 1
Install a few prerequisites before we build the new postfix RPM package
yum install pcre-devel mysql-devel
Build the postfix RPM with MySQL support:
rpmbuild -ba /usr/src/redhat/SPECS/postfix.spec
and install it.
cd /usr/src/redhat/RPMS/x86_64
rpm -i postfix-2.3.3-2.1.x86_64.rpm
Start postfix and configure it to be started at boot time:
/etc/init.d/postfix start
chkconfig –levels 235 postfix on
Change the language of webalizer statistics on Debian and Ubuntu Linux
The language of the generated webslizer statistics is statically compiled into the webalizer binary. To change the language, webalizer has to be recompiled. In the following example, I will recompile webalizer to change the language to german.
Uninstall webalizer and install the GD library:
apt-get remove webalizer
apt-get install libgd2-xpm-dev
Download the latest webalizer sources and uncompress the tar archive:
cd /tmp
wget http://archive.mgm51.com/mirrors/webalizer-files/webalizer-2.01-10-src.tgz
tar xzf webalizer-2.01-10-src.tgz
cd webalizer-2.01-10
Reconfigure and compile webalizer
./configure –with-language=german
make
make install
Create a symlink so that other applications find the webalizer binary in the common place
ln -s /usr/local/bin/webalizer /usr/bin/webalizer
Cleanup
rm -f /tmp/webalizer-2.01-10-src.tgz
rm -rf /tmp/webalizer-2.01-10
Thanks to planet_fox for this FAQ.
Shutdown Windows XP immediately
If you shutdown windows XP with the button in the start menu, it often takes minutes until the computer is finally stopped as Windows runs several tasks before it shuts down the computer. If you need to shutdown the computer immediately, you can use this command:
C:\windows\system32\shutdown.exe -s -t 00
Activating the Keyboard Viewer for Special Characters
Use the keyboard viewer if you are looking for special or foreign chars or if you just forgot where to find the backslash e.g.
1.: Choose Apple menu -> System Preferences and click International
2.: Click Input Menu, then toggle the checkbox next to Keyboard Viewer
3.: Toggle the language whose keyboard layout you want to use
4.: Choose Show Keyboard Viewer from the Input menu (international symbol) on the right side of the menu bar (to the left of the Time)
So you get this… very useful:

Keyboard Viewer
How to prevent the automatic restart after a Windows update?
One solution is to stop the windows update service to prevent that Windows XP restarts the computer after an update. The update service will be started again after the next boot.
Click on “Start” > “Run” and enter the command:
net stop wuauserv
pure-ftpd does not show more then 2000 files on Debian and Ubuntu
The pure-ftp daemon by default has a recursion limit of 2000 files, this prevents the server from showing more then 2000 files when you browse a directory with a FTP client. To expand this Limit to e.g 5000 files, create or edit the file /etc/pure-ftpd/conf/LimitRecursion and add a line “5000 500″:
echo “5000 500″ > /etc/pure-ftpd/conf/LimitRecursion
and then restart pureftpd:
/etc/init.d/pure-ftpd-mysql restart
How to enable DKIM email signatures in amavisd-new and ISPConfig 3
DKIM is a system to verify the sender and integrity of emails. ISPConfig 3 uses amavisd-new as content filter for spam and virus scanning and amavisd-new is also able to sign messages with DKIM. The next steps explain how to configure amavisd-new to sign messages for a domain named “example.com” with DKIM. The steps below should work with any amavisd-new setup even if you do not use ISPConfig.
1) Create the domain key:
mkdir /var/db/dkim/
amavisd genrsa /var/db/dkim/example-foo.key.pem
2) Configure amavisd to use this key for the domain example.com. Edit the amavisd configuration file
vi /etc/amavisd/amavisd.conf
and add the following lines:
$enable_dkim_verification = 1;
$enable_dkim_signing = 1;
dkim_key(‘example.com’, ‘foo’, ‘/var/db/dkim/example-foo.key.pem’);
@dkim_signature_options_bysender_maps = (
{ ‘.’ => { ttl => 21*24*3600, c => ‘relaxed/simple’ } } );
@mynetworks = qw(0.0.0.0/8 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12
192.168.0.0/16); # list your internal networks
3) Run the command:
amavisd showkeys
to get the public key that has to be added as TXT record in the DNS server of the example.com DNS server.
4) Thest the setup with the command:
amavisd testkeys
and if it works properly, restart amavisd:
/etc/init.d/amavis restart
Here is a more detailed description in the amavisd-new manual on how to setup DKIM in amavisd-new:
http://www.ijs.si/software/amavisd/amavisd-new-docs.html#dkim
How to convert filenames or text to lowercase on the shell
There is no simple tolower command on the bash, but with a little shell script you can convert uppercase characters to lowercase. The script uses the tr command internally for converting the chars.
Create a shell script with the name tolower:
vi /usr/local/bin/tolower
and enter the following content:
#!/bin/sh
echo $1 | tr ‘[:upper:]‘ ‘[:lower:]‘
Then make the script executable:
chmod +x /usr/local/bin/tolower
An test it by executing this command on the shell:
tolower “Thats a Test”
will convert the string to lowercase and show the result on the shell:
thats a test
Blocking .exe attachments with postfix or amavisd-new and ISPConfig 3
If you use postfix and / or amavisd-new on the mail server, you can use the following recipes to block emails with executable (exe, bat, scr) attachments.
Block the attachments with a postfix header filter
In ISPConfig, click on “Email in the upper menu, then on “Content filter” in the left menu and click on the “Add new content filter” button. Enter the following details:
Filter:
MIME-Header Filter
Regexp. Pattern:
/^Content-(Disposition|Type).*name\s*=\s*”?(.*\.(bat|exe|scr))(\?=)?”?\s*(;|$)/x
Data:
File extension is blacklisted on this server
Action:
DISCARD
Use amavisd-new to block the emails with executable attachments.
Edit the amavisd configuration file (/etc/amavisd.conf or /etc/amavisd/amavisd.conf)
vi /etc/amavisd/amavisd.conf
and add the following lines:
$banned_filename_re = new_RE(
qr’.\.(bat|exe|scr)$’i,
qr’^\.(exe|zip|lha|tnef)$’i,
);
then restart amavisd-new:
/etc/init.d/amavis restart
How to access a namebased website without a DNS record
If you want to access a namebased website that you created e.g. in ISPConfig before the DNS records are setup, edit the hosts file on your workstation computer and add a line like this:
192.168.0.100 www.mydomain.com
Replace the IP address with the IP of your server and www.mydomain.com with the domain name of the website.
The hosts file on linux and MAC systems is /etc/hosts, on Windows systems the hosts file is C:\Windows\system32\drivers\etc\hosts
The above trick also works if you want to run a website in your internal network (intranet) without having a DNS server availalble for local dns resolving.