Category:I802 Firewalls and VPN IPSec: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mmartins (talk | contribs)
Mmartins (talk | contribs)
Line 200: Line 200:
no you should be able to connect local network computers and services.
no you should be able to connect local network computers and services.
'''NB! ping is not working with sshuttle'''
'''NB! ping is not working with sshuttle'''
you can read more here http://teohm.com/blog/using-sshuttle-in-daily-work/


====TODO====
====TODO====

Revision as of 22:11, 28 September 2016

Firewalls and VPN/IPSec

General information

ECTS: 4

Lecturer: Lauri Võsandi


Scenario

In this course we will attempt to set up a network similar to a corporate network with multiple offices, eg http://docplayer.it/docs-images/20/596222/images/25-0.png

We will use VPN software to connect subnets to each other and we will use VPN software to connect our personal computers to the intranet.


Setting up virtual machine hosts

For this course we have 3 Sun servers, each with 16GB of RAM. In each server we should be able to create 3 or more virtual machines. As host operating system we will install Ubuntu 16.04 server. On disks set up ext4 on mdraid set up in RAID1 configuration.

For virtualization let's use libvirt and virt-manager on your Ubuntu laptops, for Windows and Mac unfortunately there is no decent UI available instead installing web interface such as Kimchi is recommended.

To install libvirt on the server:

 apt install libvirt-bin qemu-kvm

Also add the primary user to the libvirt group:

 sudo gpasswd -a $USER libvirt

On your laptop first set up SSH keys between the laptop and server with ssh-keygen and ssh-copy-id. And then you can install virt-manager with:

 sudo apt install virt-manager

Copy CD ISO files into /var/lib/libvirt/images using scp or FileZilla.

Continue with creating a virtual machine for each service. For Windows 2012 server virtual machines use 2G of RAM and 50G of storage. For Ubuntu 16.04 server installations use 1G of memory and 50G storage. For Ubuntu 16.04 MATE desktop installations use 2G of RAM.


In order to set up virtual switch inside the server use Linux's built-in bridges, start with installing bridge-utils:

 apt install bridge-utils

Reconfigure your server's /etc/network/interfaces, replace X with number relevant to your server. Also replace eth0, eth1 and eth2 with the network interfaces available in your machine:

 # The loopback network interface
 auto lo
 iface lo inet loopback
 
 # Wide area network interface
 auto br-wan
 iface br-wan inet dhcp
   # Until we set up router in a VM we will use DHCP so we can have internet access in 417
   bridge_ports eth0
 
 # Local area network interface
 auto br-lan
 iface br-lan inet static
   address 172.16.X.1
   netmask 255.255.255.0
   bridge_ports eth1
 
 # Management interface
 auto eth2
 iface eth2 inet static
   address 192.168.12.1X
   netmask 255.255.255.0

When creating virtual machines, configure network as shown in the screenshot below:

This way your VM-s should be able to access the Internet as the physical machine can

Setting up router

On Wednesday 14. September we will configure OpenWrt as a router in a virtual machine. Download the OpenWrt image and uncompress it:

 cd /var/lib/libvirt/images/
 wget http://185.94.112.87/openwrt.org/chaos_calmer/15.05.1/x86/kvm_guest/openwrt-15.05.1-x86-kvm_guest-combined-ext4.img.gz
 gunzip openwrt-15.05.1-x86-kvm_guest-combined-ext4.img.gz

Add second network interface to your router's VM. Configure first NIC as connected to br-wan and second one connected to br-lan.

After that you should end up with topology similar to this:

To clarify: 'srv1.office' and 'srv2.office' are the Ubuntu 16.04 servers, you should have configured static IP addresses or set a static lease from the router. The 'router.office' refers to the OpenWrt router you just set up. The router serves IP addresses using DHCP to 'ubuntu-mate.office' Ubuntu MATE 16.04 workstation and 'windows.office' refers to Windows workstation. Your physical server 'host.office' can be accessed as well. The 'office' throughout the diagram refers to your domain name, use abbrevations such as hq, rnd, devops for that.

Offices

Headquarters

Gateway: 193.40.194.220

DNS: 193.40.0.12, 193.40.56.245

Public IP address (port no 0 = enp6s4f0): 193.40.194.160/24

Management network IP address (port no 1 = enp6s4f1), accessible from robotics club: 192.168.12.10

Internal IP address of the physical server (port no 2 = enp0s9): 172.16.1.1/24

Team members: Keijo, Anton, Mohanad, Etienne

Services:

  • BIND9 as public DNS server, also figure out what domain name we should/can use
  • domain controller, at this point primarily for user accounts (Keijo)
  • nginx web server, for company's homepage (Anton)
  • SMB/CIFS fileserver, join to domain (Etienne)
  • VPN server for other subnets, presumably OpenVPN (Mohanad Aly)

Research & development

Gateway: 193.40.194.220

DNS: 193.40.0.12, 193.40.56.245

Public IP address (port no 0 = enp6s4f0): 193.40.194.161/24

Management network IP address (port no 1 = enp6s4f1), accessible from robotics club: 192.168.12.11

Internal IP address of the physical server (port no 2 = enp0s9): 172.16.2.1/24

Team members: Marvin, Madis, Taavi, Berit, Joosep

Services:

Examples

Port forwarding example, we have 2 linux virtual machines, one forwarding to host local ip.

Network interface example file.

 auto lo
 iface lo inet loopback
 # The primary network interface
 #auto enp6s4f0
 #iface enp6s4f0 inet dhcp
 # This is an autoconfigured IPv6 interface
 #iface enp6s4f0 inet6 auto
 # Wide area network interface
 # 0 port
 auto br-wan
 iface br-wan inet manual
   # Until we set up router in a VM we will use DHCP so we can have internet access in 417
   bridge_ports enp6s4f0
 # Local area network interface
 # PORT 3 masinas
 auto br-lan
 iface br-lan inet static
   address 172.16.2.1
   gateway 172.16.2.254
   dns-nameserver 172.16.2.254
   netmask 255.255.255.0
   bridge_ports enp0s8
 # port 1 ruuter
 auto enp6s4f1
 iface enp6s4f1 inet static
   address 192.168.12.11
   netmask 255.255.255.0

Openwrt interface file working example /etc/config/network

 config interface 'lan'
       option ifname 'eth0'
       option type 'bridge'
       option proto 'static'
       option netmask '255.255.255.0'
       option ip6assign '60'
       option ipaddr '172.16.2.254'
 config interface 'wan'
       option ifname 'eth1'
       option proto 'static'
       option ipaddr '193.40.194.161'
       option gateway '193.40.194.220'
       option netmask '255.255.255.0'
       option dns '192.40.0.12 193.40.56.245'


To create poor man's vpn. Install on your computer

 apt install sshuttle

and connection.

 sshuttle --dns -HNvr username@server:port

no you should be able to connect local network computers and services. NB! ping is not working with sshuttle you can read more here http://teohm.com/blog/using-sshuttle-in-daily-work/

TODO

Devops

Gateway: 193.40.194.220

DNS: 193.40.0.12, 193.40.56.245

Public IP address (port no 0 = enp6s4f0): 193.40.194.162/24

Management network IP address (port no 1 = enp6s4f1), accessible from robotics club: 192.168.12.12

Internal IP address of the physical server (port no 2 = enp0s9): 172.16.3.1/24

Team members: Arti, Meelis Hass, Artur O, Sheela, Ilja (exchange)

Services:

  • IRC, for chatting
  • Etherpad for collaborating
  • Certificate management for roadwarriors, usecase number #1
  • Monitoring software of your choice to make sure that services are up and running, possibly use LDAP for authentication
  • E-mail for sending notifications from monitoring software at first
  • Later, in the beginning just monitor public services: OpenVPN connection to headquarters

Pentest

Find security issues in the deployed services.

Team members: Kustas, Ender, Indrek (?)

This category currently contains no pages or media.