From e3337475e016e11ca761c791a24b66933ed9064e Mon Sep 17 00:00:00 2001 From: Vasco Date: Sun, 19 Apr 2026 21:38:12 +0100 Subject: [PATCH] assignmet2 --- DMZ.sh => assignment1/DMZ.sh | 0 INTERNAL.sh => assignment1/INTERNAL.sh | 0 INTERNET.sh => assignment1/INTERNET.sh | 0 .../Practical Assignment 1.pdf | Bin ROUTER.sh => assignment1/ROUTER.sh | 0 entrega.zip => assignment1/entrega.zip | Bin .../entrega.zip.asc | 0 assignment1/relatorio.aux | 13 + assignment1/relatorio.log | 244 ++++++++++++++++++ assignment1/relatorio.pdf | Bin 0 -> 78451 bytes assignment1/relatorio.tex | 126 +++++++++ assignment1/relatorio.toc | 8 + suricata.rules => assignment1/suricata.rules | 0 suricata.yaml => assignment1/suricata.yaml | 0 rogerio.txt => chave-pgp-do-rogerio.txt | 0 practical-assignment-2.pdf | Bin 0 -> 213039 bytes relatorio.aux | 9 +- relatorio.log | 232 ++++++++--------- relatorio.pdf | Bin 78451 -> 44498 bytes relatorio.tex | 93 +------ relatorio.toc | 7 +- 21 files changed, 508 insertions(+), 224 deletions(-) rename DMZ.sh => assignment1/DMZ.sh (100%) rename INTERNAL.sh => assignment1/INTERNAL.sh (100%) rename INTERNET.sh => assignment1/INTERNET.sh (100%) rename Practical Assignment 1.pdf => assignment1/Practical Assignment 1.pdf (100%) rename ROUTER.sh => assignment1/ROUTER.sh (100%) rename entrega.zip => assignment1/entrega.zip (100%) rename entrega.zip.asc => assignment1/entrega.zip.asc (100%) create mode 100644 assignment1/relatorio.aux create mode 100644 assignment1/relatorio.log create mode 100644 assignment1/relatorio.pdf create mode 100644 assignment1/relatorio.tex create mode 100644 assignment1/relatorio.toc rename suricata.rules => assignment1/suricata.rules (100%) rename suricata.yaml => assignment1/suricata.yaml (100%) rename rogerio.txt => chave-pgp-do-rogerio.txt (100%) create mode 100644 practical-assignment-2.pdf diff --git a/DMZ.sh b/assignment1/DMZ.sh similarity index 100% rename from DMZ.sh rename to assignment1/DMZ.sh diff --git a/INTERNAL.sh b/assignment1/INTERNAL.sh similarity index 100% rename from INTERNAL.sh rename to assignment1/INTERNAL.sh diff --git a/INTERNET.sh b/assignment1/INTERNET.sh similarity index 100% rename from INTERNET.sh rename to assignment1/INTERNET.sh diff --git a/Practical Assignment 1.pdf b/assignment1/Practical Assignment 1.pdf similarity index 100% rename from Practical Assignment 1.pdf rename to assignment1/Practical Assignment 1.pdf diff --git a/ROUTER.sh b/assignment1/ROUTER.sh similarity index 100% rename from ROUTER.sh rename to assignment1/ROUTER.sh diff --git a/entrega.zip b/assignment1/entrega.zip similarity index 100% rename from entrega.zip rename to assignment1/entrega.zip diff --git a/entrega.zip.asc b/assignment1/entrega.zip.asc similarity index 100% rename from entrega.zip.asc rename to assignment1/entrega.zip.asc diff --git a/assignment1/relatorio.aux b/assignment1/relatorio.aux new file mode 100644 index 0000000..8bb0df4 --- /dev/null +++ b/assignment1/relatorio.aux @@ -0,0 +1,13 @@ +\relax +\providecommand \babel@aux [2]{\global \let \babel@toc \@gobbletwo } +\@nameuse{bbl@beforestart} +\catcode `"\active +\babel@aux{portuguese}{} +\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {2}Firewall}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Packet fileter without NAT}{2}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Packet filtering with NAT}{3}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Intrusion Detection}{4}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Tests utilizados}{5}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Conclusion}{5}{}\protected@file@percent } +\gdef \@abspage@last{5} diff --git a/assignment1/relatorio.log b/assignment1/relatorio.log new file mode 100644 index 0000000..25be7ed --- /dev/null +++ b/assignment1/relatorio.log @@ -0,0 +1,244 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2026/dev/Arch Linux) (preloaded format=pdflatex 2026.1.17) 22 MAR 2026 22:27 +entering extended mode + \write18 enabled. + %&-line parsing enabled. +**/home/vasco/EngenhariaInformatica/3ano/sem2/fsi/trabalho/relatorio +(/home/vasco/EngenhariaInformatica/3ano/sem2/fsi/trabalho/relatorio.tex +LaTeX2e <2024-11-01> patch level 2 +L3 programming layer <2025-01-18> +(/usr/share/texmf-dist/tex/latex/base/article.cls +Document Class: article 2024/06/29 v1.4n Standard LaTeX document class +(/usr/share/texmf-dist/tex/latex/base/size12.clo +File: size12.clo 2024/06/29 v1.4n Standard LaTeX file (size option) +) +\c@part=\count196 +\c@section=\count197 +\c@subsection=\count198 +\c@subsubsection=\count199 +\c@paragraph=\count266 +\c@subparagraph=\count267 +\c@figure=\count268 +\c@table=\count269 +\abovecaptionskip=\skip49 +\belowcaptionskip=\skip50 +\bibindent=\dimen141 +) +(/usr/share/texmf-dist/tex/generic/babel/babel.sty +Package: babel 2025/02/14 v25.4 The multilingual framework for pdfLaTeX, LuaLaT +eX and XeLaTeX +\babel@savecnt=\count270 +\U@D=\dimen142 +\l@unhyphenated=\language33 + +(/usr/share/texmf-dist/tex/generic/babel/txtbabel.def) +\bbl@readstream=\read2 +\bbl@dirlevel=\count271 + +(/usr/share/texmf-dist/tex/generic/babel-portuges/portuguese.ldf +Language: portuges 2021/07/09 v1.2t Portuguese support from the babel system +Package babel Info: Making " an active character on input line 143. +)) +(/usr/share/texmf-dist/tex/generic/babel/locale/pt/babel-portuguese.tex +Package babel Info: Importing font and identification data for portuguese +(babel) from babel-pt.ini. Reported on input line 11. +) +(/usr/share/texmf-dist/tex/latex/ebgaramond/ebgaramond.sty +Package: ebgaramond 2024/04/23 (Bob Tennent and autoinst) Style file for EB Gar +amond fonts. + +(/usr/share/texmf-dist/tex/generic/iftex/ifxetex.sty +Package: ifxetex 2019/10/25 v0.7 ifxetex legacy package. Use iftex instead. + +(/usr/share/texmf-dist/tex/generic/iftex/iftex.sty +Package: iftex 2024/12/12 v1.0g TeX engine tests +)) +(/usr/share/texmf-dist/tex/generic/iftex/ifluatex.sty +Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead. +) +(/usr/share/texmf-dist/tex/latex/xkeyval/xkeyval.sty +Package: xkeyval 2022/06/16 v2.9 package option processing (HA) + +(/usr/share/texmf-dist/tex/generic/xkeyval/xkeyval.tex +(/usr/share/texmf-dist/tex/generic/xkeyval/xkvutils.tex +\XKV@toks=\toks17 +\XKV@tempa@toks=\toks18 + +(/usr/share/texmf-dist/tex/generic/xkeyval/keyval.tex)) +\XKV@depth=\count272 +File: xkeyval.tex 2014/12/03 v2.7a key=value parser (HA) +)) +(/usr/share/texmf-dist/tex/latex/base/textcomp.sty +Package: textcomp 2024/04/24 v2.1b Standard LaTeX package +) +(/usr/share/texmf-dist/tex/latex/base/fontenc.sty +Package: fontenc 2021/04/29 v2.0v Standard LaTeX package +) +(/usr/share/texmf-dist/tex/latex/fontaxes/fontaxes.sty +Package: fontaxes 2020/07/21 v1.0e Font selection axes +LaTeX Info: Redefining \upshape on input line 29. +LaTeX Info: Redefining \itshape on input line 31. +LaTeX Info: Redefining \slshape on input line 33. +LaTeX Info: Redefining \swshape on input line 35. +LaTeX Info: Redefining \scshape on input line 37. +LaTeX Info: Redefining \sscshape on input line 39. +LaTeX Info: Redefining \ulcshape on input line 41. +LaTeX Info: Redefining \textsw on input line 47. +LaTeX Info: Redefining \textssc on input line 48. +LaTeX Info: Redefining \textulc on input line 49. +) +LaTeX Info: Redefining \oldstylenums on input line 163. +LaTeX Info: Redefining \textsw on input line 173. +) +(/usr/share/texmf-dist/tex/latex/listings/listings.sty +\lst@mode=\count273 +\lst@gtempboxa=\box52 +\lst@token=\toks19 +\lst@length=\count274 +\lst@currlwidth=\dimen143 +\lst@column=\count275 +\lst@pos=\count276 +\lst@lostspace=\dimen144 +\lst@width=\dimen145 +\lst@newlines=\count277 +\lst@lineno=\count278 +\lst@maxwidth=\dimen146 + +(/usr/share/texmf-dist/tex/latex/listings/lstpatch.sty +File: lstpatch.sty 2024/09/23 1.10c (Carsten Heinz) +) +(/usr/share/texmf-dist/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2024/09/23 1.10c (Carsten Heinz) +\c@lstnumber=\count279 +\lst@skipnumbers=\count280 +\lst@framebox=\box53 +) +(/usr/share/texmf-dist/tex/latex/listings/listings.cfg +File: listings.cfg 2024/09/23 1.10c listings configuration +)) +Package: listings 2024/09/23 1.10c (Carsten Heinz) +LaTeX Font Info: Trying to load font information for OT1+EBGaramond-LF on in +put line 28. + +(/usr/share/texmf-dist/tex/latex/ebgaramond/OT1EBGaramond-LF.fd +File: OT1EBGaramond-LF.fd 2023/03/19 (autoinst) Font definitions for OT1/EBGara +mond-LF. +) +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/m/n' will be +(Font) scaled to size 12.0pt on input line 28. + +(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2024-05-08 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count281 +\l__pdf_internal_box=\box54 +) +(/home/vasco/EngenhariaInformatica/3ano/sem2/fsi/trabalho/relatorio.aux) +\openout1 = `relatorio.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 28. +LaTeX Font Info: ... okay on input line 28. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 28. +LaTeX Font Info: ... okay on input line 28. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 28. +LaTeX Font Info: ... okay on input line 28. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 28. +LaTeX Font Info: ... okay on input line 28. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 28. +LaTeX Font Info: ... okay on input line 28. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 28. +LaTeX Font Info: ... okay on input line 28. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 28. +LaTeX Font Info: ... okay on input line 28. +\c@mv@tabular=\count282 +\c@mv@boldtabular=\count283 +\c@lstlisting=\count284 +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/m/n' will be +(Font) scaled to size 20.74pt on input line 29. +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/m/n' will be +(Font) scaled to size 14.4pt on input line 29. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <14.4> on input line 29. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <7> on input line 29. +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/m/n' will be +(Font) scaled to size 17.28pt on input line 30. +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/b/n' will be +(Font) scaled to size 17.28pt on input line 30. + +(/home/vasco/EngenhariaInformatica/3ano/sem2/fsi/trabalho/relatorio.toc +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/b/n' will be +(Font) scaled to size 12.0pt on input line 2. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <12> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <8> on input line 4. +LaTeX Font Info: External font `cmex10' loaded for size +(Font) <6> on input line 4. +) +\tf@toc=\write3 +\openout3 = `relatorio.toc'. + + + +[1 + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}{/usr/share/texmf-dist/fonts +/enc/dvips/ebgaramond/ebg_dacnth.enc}] +(/usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2024/09/23 1.10c listings language file +) +(/usr/share/texmf-dist/tex/latex/listings/lstlang1.sty +File: lstlang1.sty 2024/09/23 1.10c listings language file +) +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/m/n' will be +(Font) scaled to size 10.0pt on input line 37. + +Overfull \hbox (7.49481pt too wide) in paragraph at lines 42--44 +\OT1/EBGaramond-LF/m/n/12 As tr[]es re-des tem va-rios servi[]os, o DMZ tem dns +(23.214.219.130), mail(23.214.219.134), + [] + +LaTeX Font Info: Font shape `OT1/EBGaramond-LF/b/n' will be +(Font) scaled to size 14.4pt on input line 45. + + +[2] + +[3] +LaTeX Font Info: Font shape `OT1/cmtt/bx/n' in size <10> not available +(Font) Font shape `OT1/cmtt/m/n' tried instead on input line 93. + + +[4{/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.enc}] +Overfull \hbox (23.24622pt too wide) in paragraph at lines 125--126 +\OT1/EBGaramond-LF/m/n/12 Ao realizar-mos este pro-jeto apren-de-mos so-bre a c +ria[][]ao de sce-na-rios em VMs, a configura[][]ao + [] + + + +[5] (/home/vasco/EngenhariaInformatica/3ano/sem2/fsi/trabalho/relatorio.aux) + *********** +LaTeX2e <2024-11-01> patch level 2 +L3 programming layer <2025-01-18> + *********** + ) +Here is how much of TeX's memory you used: + 4439 strings out of 474546 + 72779 string characters out of 5749982 + 968296 words of memory out of 5000000 + 27469 multiletter control sequences out of 15000+600000 + 573916 words of font info for 59 fonts, out of 8000000 for 9000 + 352 hyphenation exceptions out of 8191 + 57i,7n,99p,546b,1693s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on /home/vasco/EngenhariaInformatica/3ano/sem2/fsi/trabalho/rela +torio.pdf (5 pages, 78451 bytes). +PDF statistics: + 42 PDF objects out of 1000 (max. 8388607) + 26 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/assignment1/relatorio.pdf b/assignment1/relatorio.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dac6d690187aacbd3fb8b917621f312afcdce66a GIT binary patch literal 78451 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