Skip to content

Instantly share code, notes, and snippets.

@ciscoo
Created April 14, 2016 16:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ciscoo/d2ff065bd05126e6769ff3a4a3dfbc16 to your computer and use it in GitHub Desktop.
Save ciscoo/d2ff065bd05126e6769ff3a4a3dfbc16 to your computer and use it in GitHub Desktop.
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\usepackage{titling}
\usepackage{vhistory}
\usepackage{url}
\usepackage{graphicx}
\usepackage{tabularx}
\usepackage{placeins}
\usepackage{listings}
\pagenumbering{arabic}
\setlength{\droptitle}{11em}
\title{\huge \textbf{Network Architect} \\ \large Design Specification \\ \large 1.0.0}
\author{
Daniel Koch\\
\texttt{koch0017@rangers.uwp.edu}
\and
Francisco Mateo\\
\texttt{mateo001@rangers.uwp.edu}
}
\date{}
\begin{document}
\maketitle
\thispagestyle{empty}
\newpage
\setcounter{page}{1}
\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\footrulewidth}{1pt}
\lhead{Network Architect}
\lfoot{Design Specification}
\rfoot{\thepage}
\newpage
\tableofcontents
\newpage
\section{Introduction}
The Design Document is to provide documentation which will be used to aid in the development and deployment of this \textbf{network} and its components. The document provides in detail how each component shall be built.
\subsection{Purpose}
The purpose of this document is to provide a detailed description of the design of the system and each of its components. The document aims to provide an understanding of what is to be built and how it is to be built. This document provides a description for the \textbf{network} and its components to be built. This document is to serve as a guideline for a team of network engineers to implement the \textbf{network}.
\subsection{Scope}
The \textbf{network} shall allow the \textbf{users} to access \textbf{data} on the \textbf{network} and any other \textbf{systems} on the \textbf{network}. The \textbf{network} shall support \textbf{Internet Protocol version 4} (\textbf{IPv4}) and \textbf{IPv6}.
\subsection{Overview}
The following sections will outline the \textbf{network} and its components. This document is written according to the standards for Design Documentation as set forth by the Institute of Electrical and Electronics Engineers (\textbf{IEEE}). We will begin by giving an overall view of the system as a whole. Next we will provide in detail the systems architecture. Finally we will provide details how each component is implemented.
% Define "fancy" terms since Heather is playing dumb client
% Abc order
\subsection{Definition and Acronyms}
\label{subsec:defin}
\begin{description}
\item[CentOS] \hfill \\
A community enterprise operating system that is a Linux distribution that attempts to provide a free, enterprise-class, community-supported computing platform which aims to be functionally compatible with its upstream source.
\item[Data] \hfill \\
The \textbf{data} is any arbitrary file (excluding system files) that can be accessed on the \textbf{network}.
\item[Internet Protocol] \hfill \\
From Wikipedia: The principal communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
\item[IPv(x)] \hfill \\
A specific version of the \textbf{Internet Protocol}, see definition of \textbf{Internet Protocol}.
\item[Network] \hfill \\
The \textbf{network} is the \textbf{local area network} (\textbf{LAN}).
\item[OS] \hfill \\
See \textbf{operating system}
\item[Operating System] \hfill \\
From Wikipedia: a system software that manages computer hardware and software resources and provides common services for computer programs.
\item[Users] \hfill \\
The \textbf{users} are the people are have access or are on the \textbf{network}.
\item[Router] \hfill \\
From Wikipedia: a networking device that forwards data packets between computer networks.
\end{description}
\section{Network Overview}
The \textbf{network} and its components were developed to aid the research company 190.5. The goal is to create a \textbf{network} that will help build a secure and well maintained network to protect valuable trade secrets, to maintain a high level of accessibility, and to allow collaboration with scientists in other locations.
\section{Network Architecture}
The following section will give an in broad view of how each component of the system should work.
\subsection{Architectural Design}
The \textbf{network} as a whole is divided into three parts:
\begin{enumerate}
\item \textbf{Router}
\item \textbf{Firewall}
\item \textbf{Switch}
\end{enumerate}
\subsection{Design Rationale}
This section shall discuss the rational for selecting the \textbf{networks} architecture.
\subsubsection{Router}
This \textbf{router} is a glorified desktop computer that uses \textbf{CentOS} 7 as it's \textbf{OS}. We are a professionally amateur company whose employees are not that educated with enterprise equipment and/or software.
\subsubsection{Firewall}
The \textbf{firewall} is built in from the \textbf{Linux kernel}. The \textbf{firewall} is configured using \textbf{iptables} The script used to configure the firewall is as follows:
\begin{lstlisting}
#!/bin/bash
# Flush all current rules from iptables
iptables -F
# Allow SSH connections on tcp port 22
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Block null packets
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# Reject syn-flood attacks
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Block XMAS packets
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# Set default policies for INPUT, FORWARD and OUTPUT chains
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# Set access for localhost
iptables -A INPUT -i lo -j ACCEPT
# Accept packets belonging to established and related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
# Allow OpenVPN
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 943 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 1194 -j ACCEPT
# Vicent's request
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
# Save settings
/sbin/service iptables save
\end{lstlisting}
As you can see from the script, we block off any/all ports we are not using and open up any we need.
\subsubsection{Switch}
The \textbf{switch} is will connect all computers to a \textbf{LAN}. A neccessary component of almost all \textbf{networks}.
\begin{figure}[htp]
\center
\includegraphics[width=11cm]{nd}
\caption{Network Diagram}
\label{fig:nd}
\end{figure}
\section{Network Design}
\end{document}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment