-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathtutorial_mnsec.html
More file actions
103 lines (90 loc) · 5.88 KB
/
tutorial_mnsec.html
File metadata and controls
103 lines (90 loc) · 5.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Tutorial de Instalação do Kytos</title>
<link rel="stylesheet" href="/assets/css/mnsec.css">
<link rel="icon" href="/assets/img/favicon.ico">
<meta property="og:title" content="Infraestrutura programável de testbed para experimentação e capacitação em redes e segurança"/>
<meta property="og:description" content="HackInSDN é um framework escalável, flexível e programável para experimentação e capacitação em segurança e redes utilizando infraestruturas de testbed."/>
<meta property="og:url" content="https://hackinsdn.ufba.br"/>
<meta property="og:image"content="/assets/img/preview.png"/>
</head>
<body>
<header>
<div class="logo-group">
<div class="logo">
<img src="/assets/img/1.png" alt="Logotipo HackInSDN">
</div>
</div>
<nav>
<ul>
<li><a href="/">Início</a></li>
<li><a href="/sobre.html">Sobre Nós</a></li>
<li><a href="/tutoriais.html">Tutoriais</a></li>
<li><a href="/publicacoes.html">Publicações</a></li>
<li><a href="/dashboard">Dashboard</a></li>
</ul>
</nav>
<nav class="menu-idiomas">
<ul class="menu-idiomas">
<li>
</li>
<li>
<a href="en/tutorial_mnsec.html" class="en ativo">
<img src="/assets/img/us.png" alt="English" class="bandeira">
</a>
</li>
</ul>
</nav>
</header>
<div class="container">
<section class="tutorial-content">
<h1>ATIVAÇÃO DO MININET-SEC</h1>
<p>Se você encontrar a mensagem de erro “No module called Mininet” durante o processo de instalação, mesmo com o Mininet já instalado em seu sistema, execute os seguintes comandos para resolver o problema:</p>
<pre><code>sudo -i
cd ~
git clone https://github.com/mininet/mininet.git
export PYTHONPATH=$PYTHONPATH:$HOME/mininet</code></pre>
<p>O Kytos-ng é o controlador SDN que será usado junto com o mnsec para criar e gerenciar conexões entre componentes de rede, além de realizar outras funções. Ele pode ser ativado de diferentes formas. Cada um dos processos descritos abaixo deve ser executado em terminais separados.</p>
<p>⚠️ Os passos 1 e 3 não são necessários se o usuário utilizar a topologia definida no arquivo firewall.py. Eles são necessários para ativar o Kytos-ng e permitir seu uso como controlador remoto e estabelecer conexões entre componentes de rede (ativação do NOS) no caso de usar uma topologia personalizada.</p>
<h2>1. Ativar o Kytos;</h2>
<pre><code>source test_env/bin/activate
cd teste
cd kytos
sudo ./docker/scripts/add-etc-hosts.sh
export MONGO_USERNAME=mymongouser
export MONGO_PASSWORD=mymongopass
docker compose up -d
docker ps
kytosd -f --database mongodb</code></pre>
<h2>2. Iniciar o mnsec;</h2>
<p>É importante usar o modo root ao executar esses comandos. O mnsec pode ser usado com topologias predefinidas, por exemplo:</p>
<pre><code>cd mininet-sec
cd examples
python3 firewall.py</code></pre>
<p>Nesta topologia, temos 3 hosts internos (h1, h2, h3), 1 servidor externo (o1), 2 servidores (srv1, srv2), 3 switches (s1, s2, nettap1) e um firewall (fw0).</p>
<p>Esta é a rede estabelecida:</p>
<pre><code>fw0 fw0-eth0:s1-eth4 fw0-eth1:s2-eth3 fw0-eth2:nettap1-eth1
h1 h1-eth0:s1-eth1
h2 h2-eth0:s1-eth2
h3 h3-eth0:s1-eth3
o1 o1-eth0:nettap1-eth2
srv1 srv1-eth0:s2-eth1
srv2 srv2-eth0:s2-eth2</code></pre>
<p>O Nettap1 é um switch que promove a conexão entre os componentes internos da rede e a internet através da interface fw0-eth2 do firewall. Ele também usa a interface nettap1-eth2 para conectar-se ao host o1. Além disso, existem interfaces que promovem a conexão do firewall com a internet:</p>
<ul>
<li>nettap1-ethmonA: Conexão com a internet, facilita o encaminhamento de tráfego do firewall para a internet.</li>
<li>nettap1-ethmonB: Conexão com a internet, facilita o encaminhamento de tráfego da internet para o firewall.</li>
</ul>
<p>mnsec --topo linear,3 --apps h3:ssh:port=22,h3:http:port=80,h3:ldap,h3:smtp,h3:imap,h3:pop3 --controller=remote,ip=127.0.0.1</p>
<p>Neste caso, estamos criando uma topologia linear com 3 hosts (h1, h2, h3), e o h3 tem algumas portas importantes definidas como abertas para testar ataques.</p>
<h2>3. Ativação do NOS;</h2>
<pre><code>for sw in $(curl -s http://127.0.0.1:8181/api/kytos/topology/v3/switches | jq -r '.switches[].id'); do curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/kytos/topology/v3/switches/$sw/enable; curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/kytos/topology/v3/interfaces/switch/$sw/enable; done
for l in $(curl -s http://127.0.0.1:8181/api/kytos/topology/v3/links | jq -r '.links[].id'); do curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/kytos/topology/v3/links/$l/enable; done
curl -H 'Content-type: application/json' -X POST http://127.0.0.1:8181/api/kytos/mef_eline/v2/evc/ -d '{"name": "my evc1", "dynamic_backup_path":'</code></pre>
</section>
</div>
</body>
</html>