Securing network communications : with a practical example of a firewall written in C++
The statistics that are quoted about user interactions with the Internet are hard to comprehend, a technology that didn’t exist m any real commercial way less than 20 years ago is now probably the singularly most dominant resource available today The growth of the Internet has taken place entirely in my lifetime and its evolvement from its early educational existence to its current presence is incredible When I started on this Masters in Computing I jumped at the chance of being able to do the module on Computer Networks followed a year later by the module on Telecommunications I had been for years using the Internet without a strong understanding of the principles behind its workings and saw these modules as a way to further improve my knowledge of this area After the first module I knew that my project on this Programme would have to, m some way, take into account network communications and so since 2000 I have been steadily learning more and more about network programming using C++ I originally planned to write an application that would allow a program to get down to the physical layer and I was successful in using a resource called Packet32 dll to achieve this However as Microsoft updated their operating systems from Windows NT to Windows 2000 and then onto Windows XP the ability to get down to the physical layer became extremely difficult In my research to build a project with C++ network programming, I came across a paper titled Beej's Guide to Network Programming using Internet Sockets (http //beei us/guide/bgnet/l The paper described how one can v program at the Transport Layer of the TCP/IP Layers This paper led me onto the whole area of using simple Internet sockets to control the flow of information over a network This Project shows how to design and build a simple Firewall that can protect a service/application being run by a company It is based on using the Internet sockets in C++ and shows how to manipulate data sent over the network The Firewall publishes a port number for an internal server’s application It will handle the communications between any outside clients trying to use this application, basically it will operate as the go-between between the client and server No other personal computer, not on the applications server’s network, can access the server directly without going through the firewall I originally started writing this project using Turbo C++ and have migrated along with Microsoft to Visual Studio 6 0 and then onto Visual Studio NET I have to admit that all attempts to put a visual front end on the application have proven too difficult and so as with most Microsoft Windows services I decided to opt for a INI file to hold the initialisation data My learning curve has shown me the power of these developing environments but I do admit to missing Turbo C++ The first part of this report stresses the need to Secure Network Communications It shows my research and understanding into the area of network security The second part is the documentation for a practical implementation of a Firewall in C++ It demonstrates the key principle of a firewall in its ability to act as safe go-between two networks In most cases this is the outside Internet and the mside private network VI This implementation is designed to handle TCP network protocols and the common ports they use like HTTP (80), FTP (21) and TELNET (23). It shows how one can write with relative ease using Internet sockets reliable and stable network applications. I will explain the code used in the application and give samples of the data that was sent to the Firewall, I will also show how the Firewall responded to this data by showing the results of simple tests.
The following license files are associated with this item: