Using FreeNAS’s CIFS Service To Allow Local Computers (e.g., Mac, Windows, Linux) To Share Data Within A Local Network

As I’m getting to know FreeNAS better, I begin to like it more than ever before.  FreeNAS has allowed me to set up CIFS share (Common Internet File System share) so I don’t have to rely on Pogoplug software to share data between my local computers.  Why is FreeNAS’s CIFS share is better than Pogoplug solution?  Well, I like how my data don’t have to travel through Pogoplug’s servers that host outside of my local network in order for me to be able to share data between my local computers.  With this piece of information, we can acknowledge that data travel locally are always faster (i.e., not making a trip to the Internet first and so save time and bandwidth) and more secure if the local network is being secured correctly.  Of course, I’m still going to use Pogoplug when I travel abroad, because Pogoplug is great in allowing you to connect to local computers without opening up any port within your router (this means you don’t have to sacrifice your network security when sharing files between local network and the Internet).  Still, you must trust Pogoplug’s network security in order for you to access your local computer through Pogoplug software, because ultimately your data will travel through Pogoplug’s network before they reach the devices that you use outside of your local network.

Steps to create CIFS Share in FreeNAS (the instructions at the bottom are tailored for FreeNAS 8).

  1. The first thing you want to set up a CIFS within FreeNAS is to go ahead and make sure you have created a ZFS Dataset.  What on earth is ZFS Dataset?  Within FreeNAS, you can create separate ZFS Datasets within a ZFS volume so each ZFS Dataset acts like a partition within a partition.  You can view each ZFS Dataset as a partition within a ZFS volume, but we know a ZFS volume can also be viewed as a partition itself.  Anyhow, why on earth one wants to create a partition within a partition?  Simple!  FreeNAS allows the creation of ZFS Datasets for one reason, and this reason is to enhance data security.  Each ZFS Dataset can be configured with specific permissions that not necessary to be the same as the global permissions of a particular ZFS volume.  This means if you have the access to a specific ZFS volume, you might not have access to a ZFS Dataset (i.e., partition) within — only the user who has correct permission can actually access to a specific ZFS Dataset.  In my case, I named my ZFS Dataset for CIFS Share as windows_share.  (Creating a ZFS Dataset by go to Storage > Create ZFS Dataset.)
  2. Now you need to go to Services and click on the wrench icon next to the on/off switch of CIFS label.  A CIFS settings window would pop up.  In this CIFS settings window, you might want to,
    •  enable Authentication Model for Local User (better security this way)
    • name NetBIOS Name to simply freenas
    • leave Workgroup as WORKGROUP
    • set log level to minimum (so your FreeNAS server/box won’t be overload with extremely large log files)
    • check the box which labels as Local Master
    • check the box which labels as Time Server for Domain
    • leave Guest account drop down box as nobody
    • do not check the box that labels as Allow guest access (for security purpose)
    • check the box that labels as Large RW support
    • check the box that labels as Send files with sendfile(2) (make Samba faster if Samba software/protocol has to be used to access this CIFS share)
    • check the box that labels as EA Support (to enable extended attributes support)
    • check the box that labels as Support DOS File Attributes
    • check the box that labels as Zeroconf share discovery (to allow Mac OS X clients to access CIFS share)
    • click OK button to save all the settings of CIFS settings
  3. Now, under Services again, switch the CIFS’s OFF button to ON.
  4. Click on Sharing > Windows > Add Windows Share.
    • Inside the Name’s text box, enter windows_share
    • For the path, try to either enter the path of the ZFS Dataset we had created earlier or just browse to it using the Browse button
    • Check the box that labels as Browsable to Network Clients
    • Enter the local IP addresses of local computers that you want to allow access to ZFS Dataset (i.e., CIFS share) into the text box which labels as Hosts Allow
    • Enter ALL into the text box which labels as Hosts Deny (to deny all other computers that don’t have the IP addresses that list inside the Hosts Allow text box)
    • Click OK button to save everything and exit this Windows Share window

Now you should be able to connect to this particular FreeNAS’s ZFS Dataset.  From a normal user’s standpoint who uses Mac or Linux or Windows to connect to this ZFS Dataset, all the user sees would be just another local network folder (or you can say local network destination).  Basically, any local computer which has permission to connect to this specific ZFS Dataset will see it as a Windows Share folder, therefore the data within this ZFS Dataset suddenly makes available to other Windows, Mac, and Linux machines.  How come Mac and Linux can see the data within CIFS Share folder (i.e., ZFS Dataset of CIFS Share)?  I think it’s that Mac and Linux are supporting the reading and writing to Windows file system.

Using a Windows computer to connect to FreeNAS Windows Share is easy!  All you have to do is to go to Computer > Network.  Once the Network locates FreeNAS Windows Share volume (i.e., ZFS Dataset of CIFS Share), you can browse to it and use it as if it’s just another network folder — allowing local computers to share the same data (i.e., read and write to the same data).

You can also use Mac machine to connect to FreeNAS Windows Share!  How?  Open up finder and go to Go > Connect to Server.  Inside Connect to Server box, enter cifs://192.168.0.101/ (please replace the local IP address to the one that runs your FreeNAS server).  Click Connect button to connect to FreeNAS windows share.  If it asks for user credential (i.e., username and password), please enter the username and the password that you allow to have access to this particular FreeNAS Windows Share (i.e., ZFS Dataset of CIFS share).  Once you can browse the FreeNAS Windows Share, you can read and write data to this ZFS Dataset, consequently allowing Windows computers to share data with Mac machines within a local network.

I’ve not used Linux to access FreeNAS Windows Share, therefore I don’t know the exact process of how doing it just yet.  You know?  Please share your knowledge on this in your comment.  Thank you!

Advertisements