Free Mac FTP Server

PureFTPd is a very nice replacement for the somewhat limited FTP server for Mac that comes with OSX. It is a free (BSD), secure, production-quality and standard-conformant FTP server. It focuses on efficiency and ease of use and has unique useful features for personal users as well as hosting providers.

A binary installer is available for both Panther and Jaguar.

To manage the ftp server Mac PureFTP Manager provides a GUI to the PureFTP server. It will ease the creation of users, viewing log files and monitoring the status of the server. PureFTP Manager is also free.

The installation of both these products were very easy, and all told, I had my Mac FTP server setup in less than 10 mintues.

Setting up a SFTP Server on Windows

I recently had to create an SFTP server on our work development system, and after doing a fair bit of Googling on the topic found a good solution. The solution is a combination of research done at different sites. It is this solution I am sharing in hopes that it will help someone else.

This tutorial will help you turn your Windows based system into a SecureFTP server.

Background

Secure Shell (SSH) is a program that lets you log into another computer over a network, to execute commands in a remote machine, and to move files from one machine to another. It provides strong authentication and secure communications over insecure channels. When using ssh, the entire login session, including transmission of password, is encrypted and therefore is very secure.

You may have noticed that many webhosts allow ssh access. This means that you can login to their webserver and execute many UNIX commands (the ones they allow you access to) on your account. Not only can you connect to other computers that provide SSH access, but you can also allow others to connect to your computer using SSH.

To take this one step further, you can also turn your Windows PC into a Secure FTP (SFTP) server. SFTP is a program that uses SSH to transfer files. Unlike standard FTP, it encrypts both commands and data, preventing passwords and sensitive information from being transmitted in clear text over the Internet. It is similar to FTP, but because it uses a different protocol, you must use a FTP client that supports SFTP (more about that later). To determine if you want a SFTP server windows 2012, or another version keep reading.

Installing SSH on Windows

Most UNIX based systems (Linux and OSX) come with SSH preinstalled, so connecting to a remote host is very easy. However, if you run a Windows system, you need to download some additional software to make the SSH programs available to you. Fortunately a free open-source project called SSHWindows, provides a nice Windows installer that will setup the SSH client and Server on your system.

Your first step will be to download the Binary Installer Release from SSHWindows. Once downloaded, run the installer and be sure to install both the client and server components.

Configure the SSH Server

In this next step, I have summarized the information that is included with the readme.txt that is included with SSHWindows (it can be found in c:\program files\openssh\docs)

Your first configuration step is to set up the passwd file. You will need to set up the passwd file before any logins can take place.

Passwd creation is relatively easy and can be done using two programs that are included with SSHWindows – mkgroup and mkpasswd. Both of these programs are located in the c:\program files\openssh\bin directory.

To begin creating the group and passwd files, open a command prompt window and navigate to the c:\program files\openssh directory.

You must first create a group file. To add all local groups on your computer to the group file, type the command as shown below:

mkgroup -l >> ..\etc\group

You will now need to create a passwd file. Any users in the passwd file will be able to log on with SSH. For this reason, it is recommended that you add users individually with the -u switch. To add a user to the passwd file type the command shown below:

mkpasswd -l -u username >> ..\etc\passwd

NOTE: the username specified above must be an existing windows login account.

Creating Home Directories for you Users

In the passwd file, you will notice that the user’s home directory is set as /home/username, with username being the name of the account. In the default install, the /home directory is set to the default profile directory for all users. This is usually c:\documents and settings.

If you want to change this location you will need to edit the passwd file. The passwd file is in plain text and can be edited in Notepad or any text editor. The last two entries for each user are safe to edit by hand. The second to last entry (/home/username) can be replaced with any other directory to act as that user’s home directory. It’s worth noting that when you run SSH on windows, you are actually running SSH in a scaled down version of cygwin, which is a Unix emulator for Windows. So, if you will be placing the user somewhere outside the default directory for their Windows profile, you will need to use the cygdrive notation.

To access any folder on any drive letter, add /cygdrive/DRIVELETTER/ at the beginning of the folder path. As an example, to access the winnt\system32 directory on the *c:* drive you would use the path:

*/cygdrive/c/winnt/system32*

Connecting to your SFTP Server

To connect to your new SFTP server, you will need to download an FTP client that supports SFTP. I use Filezilla which is a nice free FTP and SFTP client. You might also try WinSCP which is another free SFTP client. It is important that the server you wanted to connect to is running SSH.

To test if your server is running, create a new connection in your client and specify SFTP as the server type, 22 as the port, and localhost or 127.0.0.1 as the server name. You will also need to provide the user account and password for any account that you added to your passwd file. Now connect to the server. If all went well, you should see a directory listing where you pointed the home folder to. If not, there are a couple of things to check. Make sure your Windows firewall is set to allow traffic over port 22 and finally double check your passwd file to make sure that the account you added is actually there.

Security

Because SSH allows access to only Windows user accounts, you can restrict access based upon NTFS file permissions. As such, SFTP does not provide for chroot jails (a Unix method for locking a user to his/her home directory). Simply lock down your filesystem for that user, and SFTP will respect that.

Summary

In the end, setting up an SFTP server turned out to be a very effortless task. With a couple of open source programs and a couple of command-line commands, you can up and running in no time at all! Try this link for info on a free mail server on Windows.

I’m aware that a certain percentage of people who get to this page don’t find the info they need. I don’t consider Digital Media Minute an overly commercial site, but I’ve decided to include a link to a product that will help some of those people.

ADDITIONAL READING:
1. Common SSH Commands
2. Open SSH

If you are interested in setting up a secure web server and/or self-hosting, including installing and configuring either IIS, Apache or PWS, router configuration. etc., Click Here.  (Updated: March 02 2012)

Free Windows Mail Server

MailEnable is a high perfomance POP3 and SMTP free mail server for the Windows platform. It is free and contains some nice features like spam filtering, SMTP authentication, highly customized relaying options, and a built in list server.

I can’t say I’ve done an exhaustive search for the very best free Windows mail server available on the market but I looked through the list of features contained in MailEnable and it seems to have just about everything you would want in 2005. There is an online demo and plenty of video tutorials available on their site to help you get yourself up to speed and make it useful for you.

[link via Matt Woodward]

SSH Tutorial

Here’s an easy to follow SSH Tutorial for Windows, from the site of Rochester Institute of Technology. Admittedly this site has probably gotten a little thin of late relative to posts that offer tips and tutorials on server infrastructure, but if this topic interests you, Digital Media Minute has done quite a few other posts in this area, on a free SSH server for Windows, Configuring OpenSSH for public key authentication, as well as a lengthy, comprehensive article from four years ago on setting up an sftp server on windows. If you could suggest resources that have helped you with SSH, please let me know in the feedback area below.

Free SSH/sFTP Server

freeSSHd is a free SSH Server for Windows that is unique in the fact that it provides a GUI to manage the SSH Server.  Once the SSH Server is up and running, you can use it to create a Secure FTP server!  It’s easy to use and possibly the best way to turn you Windows system into a rock solid and secure FTP server. I’ve run across many free solutions for establishing a Windows SSH server but I have never seen a graphic user interface that makes it so easy to manage it once it’s set up. For a lot of people the learning curve in accomplishing this is prohibitively high but again, freeSSHd  is a way to accelerate the process for you.

The Free NAS Server

FreeNAS is a Free Network Attached Storage (NAS) server that will turn an old PC into a NAS server complete with a web based administration console. FreeNAS is a scaled down FreeBSD distribution and supports Samba, FTP, NFS protocols, and Software RAID (0,1,5). FreeNAS takes less than 16MB once installed on Compact Flash, hard drive or USB key. If you ever want to play around with the Free Network Attached Storage  server this is your chance because most people have access to an old PC that they aren’t using much anymore; consider this a chance to make use of it and probably learn something in the process.

Printing SQL Server Database Schema

I’ve been working with SQL Server 2000 for about 2 months now, and it completely frustrates me that I cannot print table schema from Microsoft’s Enterprise Manager. I’m one of those people who like to have printouts of the table’s I’m working with as it makes it easier for me to generate my SQL statements.

Doing some searching on Google, I found a couple of tools that will print schema, but they wanted at least $59US! So I decided to write my own script and offer it up for free.

The script uses ASP classic, so it will need to run on an IIS server. You will need to modify the script and specify data source/ip address of your SQL Server, choose an Initial Catalog/Database”, and supply a *username and password. When you first run the script in your web browser, you will see a navigation bar along the left side of the page that lists the tables for your selected database. When you click on a table name, the schema for that table will appear. The action of clicking on a table name invokes an xmlhttprequest object to display the table schema. This means that the table list is not being regenerated with each request. It also means that you can click on multiple tables to stack them up! To remove a table from the display, simple click on the table name and it is removed from the DOM.

The Hide Table List link that appears above the list of tables is simply there to hide the table navigation bar when you want to print your table schema. Once you hide the list, you must refresh the browser to bring it back.

So, here is the file. Help yourself and I look forward to any feedback!