summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRefik Hadzialic2011-10-26 17:50:42 +0200
committerRefik Hadzialic2011-10-26 17:50:42 +0200
commit0334390858dd796b3a7116b6e472af419aefb911 (patch)
treed720833f9663d8f97fd5940c5584c1d361aab6d6
parentReport writing (diff)
downloadgsm-selftest-0334390858dd796b3a7116b6e472af419aefb911.tar.gz
gsm-selftest-0334390858dd796b3a7116b6e472af419aefb911.tar.xz
gsm-selftest-0334390858dd796b3a7116b6e472af419aefb911.zip
Report writing
-rw-r--r--notFinishedCode/Report/controllerclass.pngbin0 -> 21699 bytes
-rw-r--r--notFinishedCode/Report/initTestClass.pngbin0 -> 10627 bytes
-rw-r--r--notFinishedCode/Report/test.aux66
-rw-r--r--notFinishedCode/Report/test.log84
-rw-r--r--notFinishedCode/Report/test.pdfbin1496675 -> 1537076 bytes
-rw-r--r--notFinishedCode/Report/test.tex88
-rw-r--r--notFinishedCode/Report/test.tex.backup94
-rw-r--r--notFinishedCode/Report/test.tex~90
-rw-r--r--notFinishedCode/Report/test.toc40
-rw-r--r--notFinishedCode/Report/trueTable.pngbin6926 -> 6534 bytes
10 files changed, 353 insertions, 109 deletions
diff --git a/notFinishedCode/Report/controllerclass.png b/notFinishedCode/Report/controllerclass.png
new file mode 100644
index 0000000..62573b4
--- /dev/null
+++ b/notFinishedCode/Report/controllerclass.png
Binary files differ
diff --git a/notFinishedCode/Report/initTestClass.png b/notFinishedCode/Report/initTestClass.png
new file mode 100644
index 0000000..d5ce6eb
--- /dev/null
+++ b/notFinishedCode/Report/initTestClass.png
Binary files differ
diff --git a/notFinishedCode/Report/test.aux b/notFinishedCode/Report/test.aux
index 8eaff1b..dab62eb 100644
--- a/notFinishedCode/Report/test.aux
+++ b/notFinishedCode/Report/test.aux
@@ -47,11 +47,13 @@
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8}Truth table class}{17}}
\@writefile{lof}{\contentsline {figure}{\numberline {15}{\ignorespaces }}{17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.9}Init Test class}{17}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces }}{18}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.10}Controller class}{18}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces }}{18}}
\citation{beagleDataSheet}
\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware design}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}BeagleBoard}{19}}
-\@writefile{lof}{\contentsline {figure}{\numberline {16}{\ignorespaces }}{19}}
+\@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces }}{19}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Cell phones}{20}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Cables for the cell phones}{20}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Server}{20}}
@@ -60,46 +62,47 @@
\citation{spin}
\citation{spin}
\citation{wiki}
-\@writefile{lof}{\contentsline {figure}{\numberline {17}{\ignorespaces }}{22}}
-\@writefile{lof}{\contentsline {figure}{\numberline {18}{\ignorespaces }}{22}}
+\@writefile{lof}{\contentsline {figure}{\numberline {19}{\ignorespaces }}{22}}
+\@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces }}{22}}
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Verification of the protocol}{22}}
-\@writefile{lof}{\contentsline {figure}{\numberline {19}{\ignorespaces }}{23}}
+\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces }}{23}}
\citation{sshTunnel}
\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{25}}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{25}}
-\@writefile{lof}{\contentsline {figure}{\numberline {20}{\ignorespaces }}{25}}
+\@writefile{lof}{\contentsline {figure}{\numberline {22}{\ignorespaces }}{25}}
\citation{https}
\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{26}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Configuring the http secure protocol https}{26}}
\citation{https}
\citation{https}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Password protecting the web site using .htaccess}{29}}
-\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{30}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{30}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{30}}
+\citation{htaccess}
+\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{31}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{31}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{31}}
\citation{pChart}
-\@writefile{lof}{\contentsline {figure}{\numberline {21}{\ignorespaces }}{31}}
-\@writefile{toc}{\contentsline {section}{\numberline {9}Employing the test software system}{32}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Required software and libraries}{32}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.1}Python installation}{32}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.2}Apache Web server installation}{32}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.3}SSH}{32}}
+\@writefile{lof}{\contentsline {figure}{\numberline {23}{\ignorespaces }}{32}}
+\@writefile{toc}{\contentsline {section}{\numberline {9}Employing the test software system}{33}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.1}Required software and libraries}{33}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.1}Python installation}{33}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.2}Apache Web server installation}{33}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.3}SSH}{33}}
\citation{pjsip}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.4}MySQL database and MySQLdb library}{33}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.5}Serial port library}{33}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.6}PJSUA library}{33}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.4}MySQL database and MySQLdb library}{34}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.5}Serial port library}{34}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.6}PJSUA library}{34}}
\citation{wiki}
\citation{pChart}
\citation{proctitle}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.7}pChart library}{34}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.8}proctitle library}{34}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Configuring hardware}{34}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}Location of the files}{35}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.4}Setting up the parameters}{35}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.5}Test descriptions}{35}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.6}Using the software}{35}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {9.7}Error description}{35}}
-\@writefile{toc}{\contentsline {section}{\numberline {10}Conclusion}{36}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.7}pChart library}{35}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {9.1.8}proctitle library}{35}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.2}Configuring hardware}{35}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.3}Location of the files}{36}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.4}Setting up the parameters}{36}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.5}Test descriptions}{36}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.6}Using the software}{36}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {9.7}Error description}{36}}
+\@writefile{toc}{\contentsline {section}{\numberline {10}Conclusion}{37}}
\bibcite{network}{1}
\bibcite{python}{2}
\bibcite{mysqlManual}{3}
@@ -108,8 +111,9 @@
\bibcite{spin}{6}
\bibcite{sshTunnel}{7}
\bibcite{https}{8}
-\bibcite{pChart}{9}
-\bibcite{beagleDataSheet}{10}
-\bibcite{proctitle}{11}
-\bibcite{pjsip}{12}
-\newlabel{LastPage}{{}{37}}
+\bibcite{htaccess}{9}
+\bibcite{pChart}{10}
+\bibcite{beagleDataSheet}{11}
+\bibcite{proctitle}{12}
+\bibcite{pjsip}{13}
+\newlabel{LastPage}{{}{38}}
diff --git a/notFinishedCode/Report/test.log b/notFinishedCode/Report/test.log
index 2dc8a05..47ba9b0 100644
--- a/notFinishedCode/Report/test.log
+++ b/notFinishedCode/Report/test.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 26 OCT 2011 16:38
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 26 OCT 2011 17:50
entering extended mode
%&-line parsing enabled.
**test.tex
@@ -378,69 +378,81 @@ File: usbDetectClass.png Graphic file (type png)
<use usbDetectClass.png> [16 <./ping.png (PNG copy)> <./logging.png (PNG copy)>
<./sshTunnelClass.png (PNG copy)>]
-<trueTable.png, id=86, 328.22626pt x 109.40875pt>
+<trueTable.png, id=86, 329.23pt x 111.41624pt>
File: trueTable.png Graphic file (type png)
- <use trueTable.png> [17 <./usbDetectClass.png (PNG copy)> <./trueTable.png (PN
-G copy)>] [18]
-<bb.jpg, id=93, 521.95pt x 516.93124pt>
+ <use trueTable.png>
+<initTestClass.png, id=87, 422.57875pt x 162.6075pt>
+File: initTestClass.png Graphic file (type png)
+ <use initTestClass.png>
+<controllerclass.png, id=88, 377.41pt x 401.5pt>
+File: controllerclass.png Graphic file (type png)
+ <use controllerclass.png>
+[17 <./usbDetectClass.png (PNG copy)> <./trueTable.png (PNG copy)>] [18 <./init
+TestClass.png (PNG copy)> <./controllerclass.png (PNG copy)>]
+<bb.jpg, id=95, 521.95pt x 516.93124pt>
File: bb.jpg Graphic file (type jpg)
<use bb.jpg> [19
<./bb.jpg>] [20]
[21
-] <protocolCommunicationHandler.png, id=105, 2486.93823pt x 792.13588pt>
+] <protocolCommunicationHandler.png, id=107, 2486.93823pt x 792.13588pt>
File: protocolCommunicationHandler.png Graphic file (type png)
<use protocolCommunicationHandler.png>
-<protocolCommunicationcControllerReceiver.png, id=106, 1808.16705pt x 766.62883
+<protocolCommunicationcControllerReceiver.png, id=108, 1808.16705pt x 766.62883
pt>
File: protocolCommunicationcControllerReceiver.png Graphic file (type png)
<use protocolCommunicationcControllerReceiver.png>
-<protocolCommunicationcControllerCaller.png, id=107, 1808.16705pt x 766.62883pt
+<protocolCommunicationcControllerCaller.png, id=109, 1808.16705pt x 766.62883pt
>
File: protocolCommunicationcControllerCaller.png Graphic file (type png)
<use protocolCommunicationcControllerCaller.png> [22 <./protocolCommunicationH
andler.png (PNG copy)> <./protocolCommunicationcControllerReceiver.png (PNG cop
y)>] [23 <./protocolCommunicationcControllerCaller.png (PNG copy)>] [24]
-<sshTunnel.png, id=118, 696.6025pt x 152.57pt>
+<sshTunnel.png, id=120, 696.6025pt x 152.57pt>
File: sshTunnel.png Graphic file (type png)
<use sshTunnel.png> [25
<./sshTunnel.png (PNG copy)>] [26] [27]
LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <9> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 650.
- [28] [29] [30]
-<resultsImage.png, id=138, 702.625pt x 431.6125pt>
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 669.
+ [28] [29]
+Overfull \hbox (34.59474pt too wide) in paragraph at lines 762--766
+\T1/cmr/m/n/10.95 You can test it now by open-ing a new browser tab and nav-i-g
+at-ing to \T1/cmr/m/it/10.95 https://localhost/testsoftware
+ []
+
+[30] [31] <resultsImage.png, id=144, 702.625pt x 431.6125pt>
File: resultsImage.png Graphic file (type png)
- <use resultsImage.png>
-[31 <./resultsImage.png (PNG copy)>] [32] [33] [34] [35] [36]
-AED: lastpage setting LastPage [37] (./test.aux) )
+
+<use resultsImage.png> [32 <./resultsImage.png (PNG copy)>] [33] [34] [35]
+[36] [37] AED: lastpage setting LastPage [38] (./test.aux) )
Here is how much of TeX's memory you used:
- 4965 strings out of 495061
- 69112 string characters out of 1182621
- 255290 words of memory out of 3000000
- 8068 multiletter control sequences out of 15000+50000
+ 4976 strings out of 495061
+ 69340 string characters out of 1182621
+ 257295 words of memory out of 3000000
+ 8077 multiletter control sequences out of 15000+50000
17720 words of font info for 42 fonts, out of 3000000 for 9000
28 hyphenation exceptions out of 8191
36i,11n,45p,760b,1090s stack positions out of 5000i,500n,10000p,200000b,50000s
- </home/refik/.texmf-var/font
-s/pk/ljfour/jknappen/ec/ecrm0900.600pk> </home/refik/.texmf-var/fonts/pk/ljfour
-/jknappen/ec/ecrm0600.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/e
-c/ecrm0800.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ectt1095.
-600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecti1095.600pk> </ho
-me/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1200.600pk> </home/refik/.t
-exmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1095.600pk> </home/refik/.texmf-var/fo
-nts/pk/ljfour/jknappen/ec/ecsx1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfo
-ur/jknappen/ec/ecsx1440.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen
-/ec/ecsl1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm120
-0.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1728.600pk></u
-sr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/te
-xmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texmf-texlive
-/fonts/type1/public/amsfonts/cm/cmsy9.pfb>
-Output written on test.pdf (37 pages, 1496675 bytes).
+ </home/refik/.texm
+f-var/fonts/pk/ljfour/jknappen/ec/ecrm0900.600pk> </home/refik/.texmf-var/fonts
+/pk/ljfour/jknappen/ec/ecrm0600.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/
+jknappen/ec/ecrm0800.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec
+/ectt1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecti1095.6
+00pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1200.600pk> </hom
+e/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1095.600pk> </home/refik/.te
+xmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1095.600pk> </home/refik/.texmf-var/fon
+ts/pk/ljfour/jknappen/ec/ecsx1440.600pk> </home/refik/.texmf-var/fonts/pk/ljfou
+r/jknappen/ec/ecsl1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/
+ec/ecrm1200.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1728
+.600pk></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmmi10.pfb></us
+r/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/tex
+mf-texlive/fonts/type1/public/amsfonts/cm/cmsy9.pfb>
+Output written on test.pdf (38 pages, 1537076 bytes).
PDF statistics:
- 756 PDF objects out of 1000 (max. 8388607)
+ 770 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
- 111 words of extra memory for PDF output out of 10000 (max. 10000000)
+ 121 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/notFinishedCode/Report/test.pdf b/notFinishedCode/Report/test.pdf
index db0abeb..721bef5 100644
--- a/notFinishedCode/Report/test.pdf
+++ b/notFinishedCode/Report/test.pdf
Binary files differ
diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex
index c4562f4..d71b14c 100644
--- a/notFinishedCode/Report/test.tex
+++ b/notFinishedCode/Report/test.tex
@@ -347,6 +347,11 @@ All the test results are stored in a list and can be easily read by calling the
The main purpose of the class is to get device data from the database and to process it.
The processed data get forwarded to the controller class and in the end the class
fetches the results from the test. This class contains the \emph{smart test} functionality.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{initTestClass.png}
+ \caption[]{Init test class}
+\end{figure}
It selects automatically the important tests to perform. In the next step it
tries to identify the problem in the network.
More details can be found in the \emph{smart test} description.
@@ -354,6 +359,11 @@ More details can be found in the \emph{smart test} description.
The controller class is used to assign jobs to handlers (in other words, which one is
going to be the caller and callee). Simultaneously, it defines the port addresses for
the communication between the handlers and the main test software (controller).
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{controllerclass.png}
+ \caption[]{Controller class}
+\end{figure}
If the callee or the caller are nanoBTS control boxes (i.e. BeagleBoards outside
the Rechenzentrum), it will first create an SSH connection to make a tunnel before
the local socket connection is created. Then the controller class sends all the
@@ -631,7 +641,9 @@ refik@ubuntu:/etc/apache2/sites-available$ sudo cp default-ssl default-ssl_origi
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
\par Only the beginning of the file is listed here and we have modified the line starting with \emph{DocumentRoot}
-from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl} (i.e. we had to redefine the location of our SSL directory).
+and \emph{<Directory /var/www/>} from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl}
+and from \emph{<Directory /var/www/>} to \emph{<Directory /var/www-ssl/>}
+(i.e. we had to redefine the location of our SSL directory).
\begin{lstlisting}
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
@@ -642,7 +654,14 @@ from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl} (i.e. we h
Options FollowSymLinks
AllowOverride None
</Directory>
+ <Directory /var/www-ssl/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ </Directory>
\end{lstlisting}
+Also change
\par One should keep in mind that the port 443 should be free for Apache to use it. In the proceeding step we had to ensure that Apache listens on the given port for a \emph{https} connection.
One could test that by going into the \emph{/etc/apache2/ports.conf}.
\begin{lstlisting}
@@ -660,7 +679,6 @@ In our last configuration step we had to edit \emph{default-ssl} file to define
\begin{lstlisting}
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
-\newpage
\par The following part of the file had to be found and modified according to our locations:
\begin{lstlisting}
SSLEngine on
@@ -685,9 +703,66 @@ refik@ubuntu:/etc/apache2/sites-available$
\end{lstlisting}
\subsubsection{Password protecting the web site using .htaccess}
Aside from using a secure communication protocol on the web, \emph{https}, it is important
-to ensure that only privileged users have access to the web site.
-
-
+to ensure that only permissioned users gain access to the web site. We had achieved it using
+the \emph{.htaccess} file. However, to enable the use of Apache \emph{.htaccess} files,
+we will have to reconfigure the Apache configuration files again. \emph{root} access will
+be required. First we have to edit the \emph{/etc/apache2/sites-available/default-ssl} file.
+Find the following lines and modify the \emph{AllowOverride None} to \emph{AllowOverride All}
+like in the given configuration segment:
+\begin{lstlisting}
+ <Directory /var/www-ssl/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ allow from all
+ </Directory>
+\end{lstlisting}
+This will tell Apache web server that it is okay to allow \emph{.htaccess} files
+to over-ride previous directives. We must reload the Apache web server before the
+changes can take effect. We can do it by typing:
+\begin{lstlisting}
+sudo /etc/init.d/apache2 reload
+\end{lstlisting}
+The next step is to go to the directory where our test software web page is located
+(e.g. \emph{/var/www-ssl/testsoftware}) and to create a file called \emph{.htaccess}.
+Please insert the following code segment inside the created \emph{.htaccess} file where
+\emph{/var/www-ssl/testsoftware/.htpasswd} is your full path address to \emph{.htpasswd}:
+\begin{lstlisting}
+AuthUserFile /var/www-ssl/testsoftware/.htpasswd
+AuthName "Authorization Required"
+AuthType Basic
+require valid-user
+\end{lstlisting}
+Then in the next step, create another file called \emph{.htpasswd}. After you have created it,
+we will add the usernames that should have access to the web site. We do that by typing the
+following command, where you can replace \emph{konrad} with any other combination of letters
+which will represent your username:
+\begin{lstlisting}
+refik@ubuntu:/var/www-ssl/testsoftware$ sudo htpasswd -c .htpasswd konrad
+\end{lstlisting}
+Afterwards, you will be required to type twice the same password for the username
+you want to create, in this case \emph{konrad}. ``The -c flag is used only when you
+are creating a new file. After the first time, you will omit the -c flag,
+when you are adding new users to an already-existing password file. Otherwise you
+will overwrite the file!'' \cite{htaccess}. You can add as many users as you wish,
+do not forget to remove the -c flag when you do it.
+In the last step, we have to modify the \emph{/etc/apache2/apache2.conf} file and
+to add at the end of it the following code segment where \emph{/vaw/www-ssl/testsoftware}
+is the full path to your web page directory where you put the \emph{.htpasswd} file:
+\begin{lstlisting}
+<Directory /vaw/www-ssl/testsoftware>
+AllowOverride All
+</Directory>
+\end{lstlisting}
+We are done with editing. All we have to do now is to restart the Apache web server. We
+can do that by typing:
+\begin{lstlisting}
+sudo /etc/init.d/apache2 restart
+\end{lstlisting}
+You can test it now by opening a new browser tab and navigating to \emph{https://localhost/testsoftware}
+(keep in mind to replace \emph{testsoftware} with your name of the folder where the web page
+is located). If you configured everything properly, you should get a dialog where you can
+enter your created username and password and try to login.
\newpage
\section{Web page}
@@ -952,6 +1027,9 @@ Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5,
\bibitem{https} P. Bramscher, \emph{Creating Certificate Authorities and self-signed SSL certificates}, accessed on 05.09.2011, available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
+\bibitem{htaccess} \emph{EnablingUseOfApacheHtaccessFiles}, accessed on 18.08.2011, available at
+\url{https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles}.
+
\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
\url{http://www.pchart.net/}.
diff --git a/notFinishedCode/Report/test.tex.backup b/notFinishedCode/Report/test.tex.backup
index 019c415..b94282d 100644
--- a/notFinishedCode/Report/test.tex.backup
+++ b/notFinishedCode/Report/test.tex.backup
@@ -323,7 +323,7 @@ One of the problems we had to deal with was assigning the right cell phone
\begin{figure}[ht!]
\centering
\includegraphics[width=60mm]{usbDetectClass.png}
- \caption[]{USB cable detection class class}
+ \caption[]{USB cable detection class}
\end{figure}
The operating system randomly assigned the port names after every reboot.
We were looking for a solution to prevent this misaddressing of the devices.
@@ -333,6 +333,11 @@ More details can be found on our project wiki page \cite{wiki}.
\subsection{Truth table class}
The truth table class was built to identify the broken and working parts of the system.
It requires the list with test results to be present to be operable.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{trueTable.png}
+ \caption[]{Truth table class}
+\end{figure}
Then the class tries to identify the broken parts of our telecommunication network.
The class can easily identify how many nanoBTSs are installed in the network and
derive a decision which part of the network is broken.
@@ -342,6 +347,11 @@ All the test results are stored in a list and can be easily read by calling the
The main purpose of the class is to get device data from the database and to process it.
The processed data get forwarded to the controller class and in the end the class
fetches the results from the test. This class contains the \emph{smart test} functionality.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{initTestClass.png}
+ \caption[]{Init test class}
+\end{figure}
It selects automatically the important tests to perform. In the next step it
tries to identify the problem in the network.
More details can be found in the \emph{smart test} description.
@@ -349,6 +359,11 @@ More details can be found in the \emph{smart test} description.
The controller class is used to assign jobs to handlers (in other words, which one is
going to be the caller and callee). Simultaneously, it defines the port addresses for
the communication between the handlers and the main test software (controller).
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{controllerclass.png}
+ \caption[]{Controller class}
+\end{figure}
If the callee or the caller are nanoBTS control boxes (i.e. BeagleBoards outside
the Rechenzentrum), it will first create an SSH connection to make a tunnel before
the local socket connection is created. Then the controller class sends all the
@@ -527,13 +542,13 @@ One has to create first the private and public keys on the local machine(i.e. se
\begin{lstlisting}
refik@ubuntu:$ [Note: You are on local-host here]
-refik@ubuntu$ ssh-keygen
+refik@ubuntu:$ ssh-keygen
Generating public/private rsa key pair.
-Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
+Enter file in which to save the key (/home/refik/.ssh/id_rsa):[Enter key]
Enter passphrase (empty for no passphrase): [Press enter key]
Enter same passphrase again: [Press enter key]
-Your identification has been saved in /home/jsmith/.ssh/id_rsa.
-Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
+Your identification has been saved in /home/refik/.ssh/id_rsa.
+Your public key has been saved in /home/refik/.ssh/id_rsa.pub.
The key fingerprint is:
33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 refik@ubuntu
\end{lstlisting}
@@ -541,8 +556,8 @@ The key fingerprint is:
Then one needs to copy the public key to the remote machine (BeagleBoard) using ssh-copy-id:
\begin{lstlisting}
-refik@ubuntu$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
-jsmith@remote-host's password:
+refik@ubuntu:$ ssh-copy-id -i ~/.ssh/id_rsa.pub remote-host
+refik@remote-host's password:
Now try logging into the machine, with "ssh 'remote-host'", and check in:
.ssh/authorized_keys
@@ -553,11 +568,11 @@ to make sure we haven't added extra keys that you weren't expecting.
After we have created the public and private keys, and coppied the public key on the machine to which we want to connect, we can test if we can make an SSH connection to the remote machine:
\begin{lstlisting}
-refik@ubuntu$ ssh remote-host
+refik@ubuntu:$ ssh remote-host
Last login: Sun Nov 16 17:22:33 2008 from 192.168.1.2
[Note: SSH did not ask for password.]
-jsmith@remote-host$ [Note: You are on remote-host here]
+refik@remote-host:$ [Note: You are on remote-host here]
\end{lstlisting}
The test was successful. We tested it with our SSH Tunnel port forwarding class and it worked perfectly.
\subsection{Security on the web site}
@@ -626,7 +641,9 @@ refik@ubuntu:/etc/apache2/sites-available$ sudo cp default-ssl default-ssl_origi
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
\par Only the beginning of the file is listed here and we have modified the line starting with \emph{DocumentRoot}
-from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl} (i.e. we had to redefine the location of our SSL directory).
+and \emph{<Directory /var/www/>} from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl}
+and from \emph{<Directory /var/www/>} to \emph{<Directory /var/www-ssl/>}
+(i.e. we had to redefine the location of our SSL directory).
\begin{lstlisting}
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
@@ -637,7 +654,14 @@ from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl} (i.e. we h
Options FollowSymLinks
AllowOverride None
</Directory>
+ <Directory /var/www-ssl/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ </Directory>
\end{lstlisting}
+Also change
\par One should keep in mind that the port 443 should be free for Apache to use it. In the proceeding step we had to ensure that Apache listens on the given port for a \emph{https} connection.
One could test that by going into the \emph{/etc/apache2/ports.conf}.
\begin{lstlisting}
@@ -655,7 +679,6 @@ In our last configuration step we had to edit \emph{default-ssl} file to define
\begin{lstlisting}
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
-\newpage
\par The following part of the file had to be found and modified according to our locations:
\begin{lstlisting}
SSLEngine on
@@ -679,6 +702,51 @@ refik@ubuntu:/etc/apache2/sites-available$ sudo /etc/init.d/apache2 restart
refik@ubuntu:/etc/apache2/sites-available$
\end{lstlisting}
\subsubsection{Password protecting the web site using .htaccess}
+Aside from using a secure communication protocol on the web, \emph{https}, it is important
+to ensure that only permissioned users gain access to the web site. We had achieved it using
+the \emph{.htaccess} file. However, to enable the use of Apache \emph{.htaccess} files,
+we will have to reconfigure the Apache configuration files again. \emph{root} access will
+be required. First we have to edit the \emph{/etc/apache2/sites-available/default-ssl} file.
+Find the following lines and modify the \emph{AllowOverride None} to \emph{AllowOverride All}
+like in the given configuration segment:
+\begin{lstlisting}
+ <Directory /var/www-ssl/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ allow from all
+ </Directory>
+\end{lstlisting}
+This will tell Apache web server that it is okay to allow \emph{.htaccess} files
+to over-ride previous directives. We must reload the Apache web server before the
+changes can take effect. We can do it by typing:
+\begin{lstlisting}
+sudo /etc/init.d/apache2 reload
+\end{lstlisting}
+The next step is to go to the directory where our test software web page is located
+(e.g. \emph{/var/www-ssl/testsoftware}) and to create a file called \emph{.htaccess}.
+Please insert the following code segment inside the created \emph{.htaccess} file:
+\begin{lstlisting}
+AuthUserFile /var/www-ssl/testsoftware/.htpasswd
+AuthName "Authorization Required"
+AuthType Basic
+require valid-user
+\end{lstlisting}
+Then in the next step, create another file called \emph{.htpasswd}. After you have created it,
+we will add the usernames that should have access to the web site. We do that by typing the
+following command, where you can replace \emph{konrad} with any other combination of letters
+which will represent your username:
+\begin{lstlisting}
+refik@ubuntu:/var/www-ssl/testsoftware$ sudo htpasswd -c .htpasswd konrad
+\end{lstlisting}
+Afterwards, you will be required to type twice the same password for the username
+you want to create, in this case \emph{konrad}. ``The -c flag is used only when you
+are creating a new file. After the first time, you will omit the -c flag,
+when you are adding new users to an already-existing password file. Otherwise you
+will overwrite the file!'' \cite{htaccess}.
+
+
+
@@ -898,6 +966,7 @@ and one for our internal GSM BST). The only limitation of the automatic cell pho
is that it only supports cell phones where we could read out the number using the \emph{AT Modem}
commands since some cell phone manufacturers do not use the standardized \emph{AT Modem} commands.
\subsection{Location of the files}
+\subsection{Setting up the parameters}
\subsection{Test descriptions}
\subsection{Using the software}
\subsection{Error description}
@@ -945,6 +1014,9 @@ Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5,
\bibitem{https} P. Bramscher, \emph{Creating Certificate Authorities and self-signed SSL certificates}, accessed on 05.09.2011, available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
+\bibitem{htaccess} \emph{EnablingUseOfApacheHtaccessFiles}, accessed on 18.08.2011, available at
+\url{https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles}.
+
\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
\url{http://www.pchart.net/}.
diff --git a/notFinishedCode/Report/test.tex~ b/notFinishedCode/Report/test.tex~
index b128f38..171ab81 100644
--- a/notFinishedCode/Report/test.tex~
+++ b/notFinishedCode/Report/test.tex~
@@ -335,7 +335,7 @@ The truth table class was built to identify the broken and working parts of the
It requires the list with test results to be present to be operable.
\begin{figure}[ht!]
\centering
- \includegraphics[width=120mm]{trueTable.png}
+ \includegraphics[width=60mm]{trueTable.png}
\caption[]{Truth table class}
\end{figure}
Then the class tries to identify the broken parts of our telecommunication network.
@@ -347,6 +347,11 @@ All the test results are stored in a list and can be easily read by calling the
The main purpose of the class is to get device data from the database and to process it.
The processed data get forwarded to the controller class and in the end the class
fetches the results from the test. This class contains the \emph{smart test} functionality.
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{initTestClass.png}
+ \caption[]{Init test class}
+\end{figure}
It selects automatically the important tests to perform. In the next step it
tries to identify the problem in the network.
More details can be found in the \emph{smart test} description.
@@ -354,6 +359,11 @@ More details can be found in the \emph{smart test} description.
The controller class is used to assign jobs to handlers (in other words, which one is
going to be the caller and callee). Simultaneously, it defines the port addresses for
the communication between the handlers and the main test software (controller).
+\begin{figure}[ht!]
+ \centering
+ \includegraphics[width=60mm]{controllerclass.png}
+ \caption[]{Controller class}
+\end{figure}
If the callee or the caller are nanoBTS control boxes (i.e. BeagleBoards outside
the Rechenzentrum), it will first create an SSH connection to make a tunnel before
the local socket connection is created. Then the controller class sends all the
@@ -631,7 +641,9 @@ refik@ubuntu:/etc/apache2/sites-available$ sudo cp default-ssl default-ssl_origi
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
\par Only the beginning of the file is listed here and we have modified the line starting with \emph{DocumentRoot}
-from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl} (i.e. we had to redefine the location of our SSL directory).
+and \emph{<Directory /var/www/>} from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl}
+and from \emph{<Directory /var/www/>} to \emph{<Directory /var/www-ssl/>}
+(i.e. we had to redefine the location of our SSL directory).
\begin{lstlisting}
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
@@ -642,7 +654,14 @@ from \emph{DocumentRoot /var/www} to \emph{DocumentRoot /var/www-ssl} (i.e. we h
Options FollowSymLinks
AllowOverride None
</Directory>
+ <Directory /var/www-ssl/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride None
+ Order allow,deny
+ allow from all
+ </Directory>
\end{lstlisting}
+Also change
\par One should keep in mind that the port 443 should be free for Apache to use it. In the proceeding step we had to ensure that Apache listens on the given port for a \emph{https} connection.
One could test that by going into the \emph{/etc/apache2/ports.conf}.
\begin{lstlisting}
@@ -660,7 +679,6 @@ In our last configuration step we had to edit \emph{default-ssl} file to define
\begin{lstlisting}
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
-\newpage
\par The following part of the file had to be found and modified according to our locations:
\begin{lstlisting}
SSLEngine on
@@ -685,9 +703,66 @@ refik@ubuntu:/etc/apache2/sites-available$
\end{lstlisting}
\subsubsection{Password protecting the web site using .htaccess}
Aside from using a secure communication protocol on the web, \emph{https}, it is important
-to ensure that only privileged users have access to the web site.
-
-
+to ensure that only permissioned users gain access to the web site. We had achieved it using
+the \emph{.htaccess} file. However, to enable the use of Apache \emph{.htaccess} files,
+we will have to reconfigure the Apache configuration files again. \emph{root} access will
+be required. First we have to edit the \emph{/etc/apache2/sites-available/default-ssl} file.
+Find the following lines and modify the \emph{AllowOverride None} to \emph{AllowOverride All}
+like in the given configuration segment:
+\begin{lstlisting}
+ <Directory /var/www-ssl/>
+ Options Indexes FollowSymLinks MultiViews
+ AllowOverride All
+ Order allow,deny
+ allow from all
+ </Directory>
+\end{lstlisting}
+This will tell Apache web server that it is okay to allow \emph{.htaccess} files
+to over-ride previous directives. We must reload the Apache web server before the
+changes can take effect. We can do it by typing:
+\begin{lstlisting}
+sudo /etc/init.d/apache2 reload
+\end{lstlisting}
+The next step is to go to the directory where our test software web page is located
+(e.g. \emph{/var/www-ssl/testsoftware}) and to create a file called \emph{.htaccess}.
+Please insert the following code segment inside the created \emph{.htaccess} file where
+\emph{/var/www-ssl/testsoftware/.htpasswd} is your full path address to \emph{.htpasswd}:
+\begin{lstlisting}
+AuthUserFile /var/www-ssl/testsoftware/.htpasswd
+AuthName "Authorization Required"
+AuthType Basic
+require valid-user
+\end{lstlisting}
+Then in the next step, create another file called \emph{.htpasswd}. After you have created it,
+we will add the usernames that should have access to the web site. We do that by typing the
+following command, where you can replace \emph{konrad} with any other combination of letters
+which will represent your username:
+\begin{lstlisting}
+refik@ubuntu:/var/www-ssl/testsoftware$ sudo htpasswd -c .htpasswd konrad
+\end{lstlisting}
+Afterwards, you will be required to type twice the same password for the username
+you want to create, in this case \emph{konrad}. ``The -c flag is used only when you
+are creating a new file. After the first time, you will omit the -c flag,
+when you are adding new users to an already-existing password file. Otherwise you
+will overwrite the file!'' \cite{htaccess}. You can add as many users as you wish,
+do not forget to remove the -c flag when you do it.
+In the last step, we have to modify the \emph{/etc/apache2/apache2.conf} file and
+to add at the end of it the following code segment where \emph{/vaw/www-ssl/testsoftware}
+is the full path to your web page directory where you put the \emph{.htpasswd} file:
+\begin{lstlisting}
+<Directory /vaw/www-ssl/testsoftware>
+AllowOverride All
+</Directory>
+\end{lstlisting}
+We are done with editing. All we have to do now is to restart the Apache web server. We
+can do that by typing:
+\begin{lstlisting}
+sudo /etc/init.d/apache2 restart
+\end{lstlisting}
+You can test it now by opening a new browser tab and navigating to \emph{https://localhost/testsoftware}
+(keep in mind to replace \emph{testsoftware} with your name of the folder where the web page
+is located). If you configured everything properly, you should get a dialog where you can
+try to login with your created username and password.
\newpage
\section{Web page}
@@ -952,6 +1027,9 @@ Springer Verlag, Weizmann Institute of Science, Israel, ISBN: 978-1-84628-769-5,
\bibitem{https} P. Bramscher, \emph{Creating Certificate Authorities and self-signed SSL certificates}, accessed on 05.09.2011, available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
+\bibitem{htaccess} \emph{EnablingUseOfApacheHtaccessFiles}, accessed on 18.08.2011, available at
+\url{https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles}.
+
\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
\url{http://www.pchart.net/}.
diff --git a/notFinishedCode/Report/test.toc b/notFinishedCode/Report/test.toc
index 47fc561..8b1d661 100644
--- a/notFinishedCode/Report/test.toc
+++ b/notFinishedCode/Report/test.toc
@@ -29,23 +29,23 @@
\contentsline {subsection}{\numberline {7.2}Security on the web site}{26}
\contentsline {subsubsection}{\numberline {7.2.1}Configuring the http secure protocol https}{26}
\contentsline {subsubsection}{\numberline {7.2.2}Password protecting the web site using .htaccess}{29}
-\contentsline {section}{\numberline {8}Web page}{30}
-\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{30}
-\contentsline {subsection}{\numberline {8.2}Results on the web page}{30}
-\contentsline {section}{\numberline {9}Employing the test software system}{32}
-\contentsline {subsection}{\numberline {9.1}Required software and libraries}{32}
-\contentsline {subsubsection}{\numberline {9.1.1}Python installation}{32}
-\contentsline {subsubsection}{\numberline {9.1.2}Apache Web server installation}{32}
-\contentsline {subsubsection}{\numberline {9.1.3}SSH}{32}
-\contentsline {subsubsection}{\numberline {9.1.4}MySQL database and MySQLdb library}{33}
-\contentsline {subsubsection}{\numberline {9.1.5}Serial port library}{33}
-\contentsline {subsubsection}{\numberline {9.1.6}PJSUA library}{33}
-\contentsline {subsubsection}{\numberline {9.1.7}pChart library}{34}
-\contentsline {subsubsection}{\numberline {9.1.8}proctitle library}{34}
-\contentsline {subsection}{\numberline {9.2}Configuring hardware}{34}
-\contentsline {subsection}{\numberline {9.3}Location of the files}{35}
-\contentsline {subsection}{\numberline {9.4}Setting up the parameters}{35}
-\contentsline {subsection}{\numberline {9.5}Test descriptions}{35}
-\contentsline {subsection}{\numberline {9.6}Using the software}{35}
-\contentsline {subsection}{\numberline {9.7}Error description}{35}
-\contentsline {section}{\numberline {10}Conclusion}{36}
+\contentsline {section}{\numberline {8}Web page}{31}
+\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{31}
+\contentsline {subsection}{\numberline {8.2}Results on the web page}{31}
+\contentsline {section}{\numberline {9}Employing the test software system}{33}
+\contentsline {subsection}{\numberline {9.1}Required software and libraries}{33}
+\contentsline {subsubsection}{\numberline {9.1.1}Python installation}{33}
+\contentsline {subsubsection}{\numberline {9.1.2}Apache Web server installation}{33}
+\contentsline {subsubsection}{\numberline {9.1.3}SSH}{33}
+\contentsline {subsubsection}{\numberline {9.1.4}MySQL database and MySQLdb library}{34}
+\contentsline {subsubsection}{\numberline {9.1.5}Serial port library}{34}
+\contentsline {subsubsection}{\numberline {9.1.6}PJSUA library}{34}
+\contentsline {subsubsection}{\numberline {9.1.7}pChart library}{35}
+\contentsline {subsubsection}{\numberline {9.1.8}proctitle library}{35}
+\contentsline {subsection}{\numberline {9.2}Configuring hardware}{35}
+\contentsline {subsection}{\numberline {9.3}Location of the files}{36}
+\contentsline {subsection}{\numberline {9.4}Setting up the parameters}{36}
+\contentsline {subsection}{\numberline {9.5}Test descriptions}{36}
+\contentsline {subsection}{\numberline {9.6}Using the software}{36}
+\contentsline {subsection}{\numberline {9.7}Error description}{36}
+\contentsline {section}{\numberline {10}Conclusion}{37}
diff --git a/notFinishedCode/Report/trueTable.png b/notFinishedCode/Report/trueTable.png
index 85b5953..4753844 100644
--- a/notFinishedCode/Report/trueTable.png
+++ b/notFinishedCode/Report/trueTable.png
Binary files differ