blob: 22d79e1917d1362b95507f313221ab63b968b3a8 [file] [log] [blame]
Brian O'Connor5abe3db2014-08-05 02:08:34 -07001#!/bin/bash
Brian O'Connor37f0cc72014-06-06 20:03:05 -07002# vm-setup.sh
3#
4# This script installs ONOS dependencies and installs a desktop environment on a Miniet VM.
5
Brian O'Connor4c074f42014-08-12 13:39:34 -07006USER=mininet
7USER_HOME=/home/${USER}
Brian O'Connor37f0cc72014-06-06 20:03:05 -07008
Brian O'Connor37f0cc72014-06-06 20:03:05 -07009sudo apt-get update
10
Brian O'Connor3ca84022014-08-11 19:46:54 -070011# -------------- Bufferbloat Install ----------
Brian O'Connor10d941e2014-06-12 19:55:09 -070012
Brian O'Connor3ca84022014-08-11 19:46:54 -070013cd ~
14git clone https://bitbucket.org/huangty/cs144_bufferbloat.git
15sudo apt-get -y install screen
16sudo apt-get -y install python-matplotlib
Brian O'Connor10d941e2014-06-12 19:55:09 -070017
Brian O'Connor3ca84022014-08-11 19:46:54 -070018# -------------- BGP-attack Install -----------
Brian O'Connor10d941e2014-06-12 19:55:09 -070019
Brian O'Connor3ca84022014-08-11 19:46:54 -070020git clone https://bitbucket.org/jvimal/bgp.git
21cd bgp
22./install.sh
23cd ~
24
25# ------------- DHCP demo Install ------------
26
27git clone https://bitbucket.org/lantz/cs144-dhcp.git
28cd cs144-dhcp
Brian O'Connor46332cd2014-08-15 04:54:02 -070029sudo python -c "import dhcp; dhcp.checkRequired()"
Brian O'Connor3ca84022014-08-11 19:46:54 -070030cd ~
Brian O'Connor37f0cc72014-06-06 20:03:05 -070031
Brian O'Connor24512552014-08-11 23:22:14 -070032# -------------- Offline content -------------
33sudo apt-get install -y python-pip
34sudo pip install grip
35
36git clone https://github.com/mininet/mininet.wiki.git
37cd mininet.wiki
38grip --gfm --export Bufferbloat.md
39grip --gfm --export Dhcp-masquerade-attack.md
Brian O'Connor46332cd2014-08-15 04:54:02 -070040grip --gfm --export BGP-Path-Hijacking-Attack-Demo.md
Brian O'Connor24512552014-08-11 23:22:14 -070041
Brian O'Connor37f0cc72014-06-06 20:03:05 -070042# -------------- Setup Desktop ----------------
43sudo apt-get install -y xorg lxde
44
45#TODO: add backgrounds folder
Brian O'Connor46332cd2014-08-15 04:54:02 -070046sudo mkdir /usr/share/backgrounds
Brian O'Connor37f0cc72014-06-06 20:03:05 -070047#TODO: change background
Brian O'Connor4c074f42014-08-12 13:39:34 -070048# Remove wallpaper, change background color
Brian O'Connor37f0cc72014-06-06 20:03:05 -070049sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
50sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
Brian O'Connor37f0cc72014-06-06 20:03:05 -070051
Brian O'Connor46332cd2014-08-15 04:54:02 -070052# Automatically start LXDE on login
53echo '[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx' >> ~/.bashrc
54
55# Automatically log into the VM
56sudo sed -i 's/exec /sbin/getty -8 38400 tty1//g' /etc/init/tty1.conf
57echo 'exec /bin/login -f bob < /dev/tty1 > /dev/tty1 2>&1' | sudo tee -a /etc/init/tty1.conf
58
Brian O'Connor4c074f42014-08-12 13:39:34 -070059# Disable screensaver
Brian O'Connor46332cd2014-08-15 04:54:02 -070060sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
Brian O'Connor4c074f42014-08-12 13:39:34 -070061cat > ${USER_HOME}/.xsessionrc << EOF
62# disable screensaver
63xset s off
64# disable dpms (standby)
65xset -dpms
66EOF
67
68# Change LXTerminal default colors
Brian O'Connor46332cd2014-08-15 04:54:02 -070069#sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
70#sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
71sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' /usr/share/lxterminal/lxterminal.conf
72sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' /usr/share/lxterminal/lxterminal.conf
Brian O'Connor4c074f42014-08-12 13:39:34 -070073
74DESKTOP=${USER_HOME}/Desktop
75OFFLINE="${DESKTOP}/Offline Exercises"
Brian O'Connor37f0cc72014-06-06 20:03:05 -070076
77mkdir -p ${DESKTOP}
Brian O'Connor4c074f42014-08-12 13:39:34 -070078mkdir -p "${OFFLINE}"
Brian O'Connor37f0cc72014-06-06 20:03:05 -070079
80cat > ${DESKTOP}/Terminal << EOF
81[Desktop Entry]
82Encoding=UTF-8
83Type=Application
84Name=Terminal
85Name[en_US]=Terminal
86Icon=konsole
87Exec=/usr/bin/x-terminal-emulator
88Comment[en_US]=
89EOF
90
Brian O'Connor4c074f42014-08-12 13:39:34 -070091cat > ${DESKTOP}/Mininet << EOF
Brian O'Connor37f0cc72014-06-06 20:03:05 -070092[Desktop Entry]
93Encoding=UTF-8
94Type=Application
Brian O'Connor4c074f42014-08-12 13:39:34 -070095Name=Teaching with Mininet
96Name[en_US]=Teaching with Mininet
Brian O'Connor37f0cc72014-06-06 20:03:05 -070097Icon=internet-web-browser
Brian O'Connor4c074f42014-08-12 13:39:34 -070098Exec=/usr/bin/chromium-browser http://teaching.mininet.org
Brian O'Connor37f0cc72014-06-06 20:03:05 -070099Comment[en_US]=
100EOF
101
102cat > ${DESKTOP}/Wireshark << EOF
103[Desktop Entry]
104Encoding=UTF-8
105Type=Application
106Name=Wireshark
107Name[en_US]=Wireshark
108Icon=wireshark
109Exec=/usr/bin/wireshark
110Comment[en_US]=
111EOF
112
Brian O'Connor4c074f42014-08-12 13:39:34 -0700113cat > "${OFFLINE}/Bufferbloat" << EOF
114[Desktop Entry]
115Encoding=UTF-8
116Type=Application
117Name=Bufferbloat
118Name[en_US]=Bufferbloat
119Icon=internet-web-browser
120Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Bufferbloat.html
121Comment[en_US]=
122EOF
123
Brian O'Connor46332cd2014-08-15 04:54:02 -0700124cat > "${OFFLINE}/DHCP Attack" << EOF
125[Desktop Entry]
126Encoding=UTF-8
127Type=Application
128Name=DHCP Attack
129Name[en_US]=DHCP Attack
130Icon=internet-web-browser
131Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Dhcp-masquerade-attack.html
132Comment[en_US]=
133EOF
134
135cat > "${OFFLINE}/BGP Hijacking" << EOF
136[Desktop Entry]
137Encoding=UTF-8
138Type=Application
139Name=BGP Hijacking
140Name[en_US]=BGP Hijacking
141Icon=internet-web-browser
142Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/BGP-Path-Hijacking-Attack-Demo.html
143Comment[en_US]=
144EOF
145
Brian O'Connor37f0cc72014-06-06 20:03:05 -0700146# ------------- Install Other Tools -------------
147sudo apt-get install -y wireshark
148# Enable root-less wireshark and add mininet
149echo "Enabling wireshark group"
150echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
151sudo dpkg-reconfigure -f noninteractive wireshark-common
152sudo usermod -a -G wireshark mininet
153
Brian O'Connor4c074f42014-08-12 13:39:34 -0700154echo "Installing VirtualBox Guest Additions"
155sudo apt-get install -y virtualbox-guest-x11
156
Brian O'Connor40a238d2014-08-11 20:30:16 -0700157# ------------- Zero Unused Blocks -------------
158#TODO investigate zerofree
159echo "Zeroing unused blocks"
Brian O'Connor4c074f42014-08-12 13:39:34 -0700160sync
Brian O'Connor40a238d2014-08-11 20:30:16 -0700161dd if=/dev/zero of=tmp-zeros
162sync
163rm tmp-zeros
Brian O'Connor4c074f42014-08-12 13:39:34 -0700164sync