Casa

I think every computer enthusiast has built a number of systems to be used at home for study, pleasure, business or all these things together. Casa is the name of my last creation in this area.

Casa

As the name implies (Casa is the italian for House, Home) it is a system designed to be my little domestic server. This doesn’t mean it does not apply to professional environments. Indeed, possibly suited in a fanless industrial case, it is finding a good local success in specialized applications. The first assumptions of the project are:
  • Built-in router and firewall to the Internet: in fact I did not want to be forced to use an external router, and I wanted to concentrate in Casa all the functions of networking/packet filtering/traffic shaping
  • Telephone exchange with Asterisk
  • All those services on Linux we are used to have, such as file serving, proxy, etc.

The hardware I chose is a barebone from Foxconn, which features an Intel Atom dual-core processor, 4 gigabytes of RAM, a notebook SSD hard disk. The system is connected via USB to an ADSL modem (the gray box with three green lights on top). This device causes Casa to have an internal ADSL interface, thus realizing the first of the conditions described above. In the picture you can see on the left a low power switch, and above it the antenna of a mobile DECT Siemens C450IP. Casa right now manages these services:

  • router ADSL-Ethernet
  • Firewall
  • VoIP phone exchange
  • DHCP server
  • DNS server
  • NTP server
  • VPN concentrator with IPSec e OpenVPN
  • Radius server
  • Access-Point with hostapd (you can see the antenna sticking out from Casa on the back side)
  • Web server
  • server SMB/CIFS with Samba, mainly used for backup
  • mail server with antivirus/antispam
  • eMule client with amule
  • bittorrent client
Casa is based on CentOS6, integrated with my repository Lux and Frank. These days I am conducting experiments with Arduino to make Casa handle some’home automation. In particular I am focusing on programming the Arduino to handle degenerate cases in which either Casa is unavailable or off, so not able to give input to Arduino itself. Casa, possibly modified,  has been used successfully as a network appliance where additional services were required in addition to “normal” routing and firewalling. Its relatively high computational power, when compared with other network appliances, and the peculiar exploitability being an open system, make it a very flexible and interesting platform.