FTP with Resume

January 4th, 2009 Category: General, Linux Server

You often transfer huge files over FTP and are annoyed because the connection is sometimes interrupted and file transfer starts from zero? Especially when transferring over a mobile connection with UMTS/HSDPA this might get really really annoying.

To avoid this resume/restart should be enabled in your FTP server, in my case this is proftpd running on Debian Etch. To do this add the following two lines in /etc/proftpd/modules.conf:

AllowStoreRestart on
AllowRetrieveRestart on

And restart proftpd “/etc/init.d/proftpd restart”.

Next we need a FTP client which supports resume/restart. I found CoreFTP for Windows is doing a good job here. It remembers every file transfer in a queue so no downloads are lost after a disconnect of your connection. Also it resumes the transfer.

And: The Core FTP Lite version is free for personal, educational and evaluation use.

coreftple.gif

Linux Network Traffic Monitoring

December 30th, 2008 Category: Linux Server

You are running a Linux server and have no possibility to monitor your traffic monthly, daily, weekly etc? Then you really should try vnstat. I like it because it’s:

  • easy to install
  • easy to use
  • collects long term traffic statistics
  • doesn’t generate much CPU load

For people who don’t like the shell check out the vnstat PHP frontend.

Installation is esay using Debian Etch:

apt-get install vnstat
vnstat -u -i eth0

For certain virtual servers you have to use a different ethernet interface than “eth0″, e.g. “venet0″:

vnstat -u -i venet0

That’s all. vnstat will now be executed periodically from cron. Some time passed you can check your traffic, like in the example below.

host:~# vnstat -m
eth0  /  monthly
 month         rx      |      tx      |   total
-----------------------+--------------+--------------------------------------
Jan '08     252.40 GB  |     4.17 TB  |     4.41 TB   %:::::::::::
Feb '08     140.07 GB  |     3.96 TB  |     4.10 TB   :::::::::::
Mar '08     152.46 GB  |     4.21 TB  |     4.36 TB   ::::::::::::
Apr '08     150.35 GB  |     4.11 TB  |     4.26 TB   ::::::::::::
May '08     118.78 GB  |     3.53 TB  |     3.65 TB   ::::::::::
Jun '08     144.95 GB  |     4.54 TB  |     4.68 TB   :::::::::::::
Jul '08     157.09 GB  |     4.91 TB  |     5.06 TB   ::::::::::::::
Aug '08     160.96 GB  |     5.01 TB  |     5.17 TB   :::::::::::::::
Sep '08     172.33 GB  |     5.43 TB  |     5.60 TB   ::::::::::::::::
Oct '08     189.69 GB  |     6.12 TB  |     6.31 TB   %:::::::::::::::::
Nov '08     190.89 GB  |     6.52 TB  |     6.71 TB   %::::::::::::::::::
Dec '08     209.59 GB  |     7.35 TB  |     7.55 TB   %:::::::::::::::::::::
-----------------------+--------------+--------------------------------------
estimated   219.94 GB  |     7.71 TB  |     7.93 TB

Defending Againt SSH Attacks

December 30th, 2008 Category: Linux Server

As soon as you put a server online you will recognize many many attempts accessing the SSH port like these one:
Dec 28 06:48:11 hostname sshd[12258]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=somehost.somewhere
Dec 28 06:48:12 hostname sshd[12256]: error: PAM: User not known to the underlying authentication module for illegal user saman from somehost.somewhere
Dec 28 06:48:13 hostname sshd[12256]: Failed keyboard-interactive/pam for invalid user saman from xx.xxx.xx.xxx port 27751 ssh2

Annoying script kids… An easy method to protect at least a little bit against such attacks is a tool called denyhosts. I use it on all my servers because it’s easy to install. denyhosts automatically blocks ssh attacks by adding entries to /etc/hosts.deny.

Using debian Etch installation is really simple:

apt-get install denyhosts

Next edit /etc/denyhosts.conf and change:

PURGE_DENY = 1w
PURGE_THRESHOLD = 0

and start the daemon:

/etc/init.d/denyhosts start

That’s all. Sure it’s not a perfect solution which helps for everything, but nevertheless it will increase your security.

All you have to to now is wait and check the /etc/hosts.deny Depending on your configuration denyhosts will automatically delete expired entries.