blob: 0494f0c3a52ee93305e374e7eea06f2c630a7947 [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
Brian O'Connor37f0cc72014-06-06 20:03:05 -070028
Brian O'Connor24512552014-08-11 23:22:14 -070029# -------------- Offline content -------------
30sudo apt-get install -y python-pip
31sudo pip install grip
32
33git clone https://github.com/mininet/mininet.wiki.git
34cd mininet.wiki
35grip --gfm --export Bufferbloat.md
36grip --gfm --export Dhcp-masquerade-attack.md
Brian O'Connor46332cd2014-08-15 04:54:02 -070037grip --gfm --export BGP-Path-Hijacking-Attack-Demo.md
Brian O'Connor24512552014-08-11 23:22:14 -070038
Brian O'Connor37f0cc72014-06-06 20:03:05 -070039# -------------- Setup Desktop ----------------
40sudo apt-get install -y xorg lxde
41
Brian O'Connor518043e2014-08-15 06:00:11 -070042# DHCP dependencies
43cd cs144-dhcp
44sudo python -c "import dhcp; dhcp.checkRequired()"
45cd ~
46
Brian O'Connor37f0cc72014-06-06 20:03:05 -070047#TODO: add backgrounds folder
Brian O'Connor46332cd2014-08-15 04:54:02 -070048sudo mkdir /usr/share/backgrounds
Brian O'Connor37f0cc72014-06-06 20:03:05 -070049#TODO: change background
Brian O'Connor4c074f42014-08-12 13:39:34 -070050# Remove wallpaper, change background color
Brian O'Connor37f0cc72014-06-06 20:03:05 -070051sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
52sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
Brian O'Connor37f0cc72014-06-06 20:03:05 -070053
Brian O'Connor46332cd2014-08-15 04:54:02 -070054# Automatically start LXDE on login
55echo '[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx' >> ~/.bashrc
56
57# Automatically log into the VM
Brian O'Connor518043e2014-08-15 06:00:11 -070058#sudo sed -i 's/exec /sbin/getty -8 38400 tty1//g' /etc/init/tty1.conf
59#sudo sed -i '$ d' /etc/init/tty1.conf
60#echo 'exec /bin/login -f bob < /dev/tty1 > /dev/tty1 2>&1' | sudo tee -a /etc/init/tty1.conf
Brian O'Connor46332cd2014-08-15 04:54:02 -070061
Brian O'Connor4c074f42014-08-12 13:39:34 -070062# Disable screensaver
Brian O'Connor46332cd2014-08-15 04:54:02 -070063sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
Brian O'Connor4c074f42014-08-12 13:39:34 -070064cat > ${USER_HOME}/.xsessionrc << EOF
65# disable screensaver
66xset s off
67# disable dpms (standby)
68xset -dpms
69EOF
70
71# Change LXTerminal default colors
Brian O'Connor46332cd2014-08-15 04:54:02 -070072#sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
73#sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
74sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' /usr/share/lxterminal/lxterminal.conf
75sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' /usr/share/lxterminal/lxterminal.conf
Brian O'Connor4c074f42014-08-12 13:39:34 -070076
77DESKTOP=${USER_HOME}/Desktop
78OFFLINE="${DESKTOP}/Offline Exercises"
Brian O'Connor37f0cc72014-06-06 20:03:05 -070079
80mkdir -p ${DESKTOP}
Brian O'Connor4c074f42014-08-12 13:39:34 -070081mkdir -p "${OFFLINE}"
Brian O'Connor37f0cc72014-06-06 20:03:05 -070082
83cat > ${DESKTOP}/Terminal << EOF
84[Desktop Entry]
85Encoding=UTF-8
86Type=Application
87Name=Terminal
88Name[en_US]=Terminal
89Icon=konsole
90Exec=/usr/bin/x-terminal-emulator
91Comment[en_US]=
92EOF
93
Brian O'Connor4c074f42014-08-12 13:39:34 -070094cat > ${DESKTOP}/Mininet << EOF
Brian O'Connor37f0cc72014-06-06 20:03:05 -070095[Desktop Entry]
96Encoding=UTF-8
97Type=Application
Brian O'Connor4c074f42014-08-12 13:39:34 -070098Name=Teaching with Mininet
99Name[en_US]=Teaching with Mininet
Brian O'Connor37f0cc72014-06-06 20:03:05 -0700100Icon=internet-web-browser
Brian O'Connor4c074f42014-08-12 13:39:34 -0700101Exec=/usr/bin/chromium-browser http://teaching.mininet.org
Brian O'Connor37f0cc72014-06-06 20:03:05 -0700102Comment[en_US]=
103EOF
104
105cat > ${DESKTOP}/Wireshark << EOF
106[Desktop Entry]
107Encoding=UTF-8
108Type=Application
109Name=Wireshark
110Name[en_US]=Wireshark
111Icon=wireshark
112Exec=/usr/bin/wireshark
113Comment[en_US]=
114EOF
115
Brian O'Connor4c074f42014-08-12 13:39:34 -0700116cat > "${OFFLINE}/Bufferbloat" << EOF
117[Desktop Entry]
118Encoding=UTF-8
119Type=Application
120Name=Bufferbloat
121Name[en_US]=Bufferbloat
122Icon=internet-web-browser
123Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Bufferbloat.html
124Comment[en_US]=
125EOF
126
Brian O'Connor46332cd2014-08-15 04:54:02 -0700127cat > "${OFFLINE}/DHCP Attack" << EOF
128[Desktop Entry]
129Encoding=UTF-8
130Type=Application
131Name=DHCP Attack
132Name[en_US]=DHCP Attack
133Icon=internet-web-browser
134Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Dhcp-masquerade-attack.html
135Comment[en_US]=
136EOF
137
138cat > "${OFFLINE}/BGP Hijacking" << EOF
139[Desktop Entry]
140Encoding=UTF-8
141Type=Application
142Name=BGP Hijacking
143Name[en_US]=BGP Hijacking
144Icon=internet-web-browser
145Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/BGP-Path-Hijacking-Attack-Demo.html
146Comment[en_US]=
147EOF
148
Brian O'Connor37f0cc72014-06-06 20:03:05 -0700149# ------------- Install Other Tools -------------
150sudo apt-get install -y wireshark
151# Enable root-less wireshark and add mininet
152echo "Enabling wireshark group"
153echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
154sudo dpkg-reconfigure -f noninteractive wireshark-common
155sudo usermod -a -G wireshark mininet
156
Brian O'Connor4c074f42014-08-12 13:39:34 -0700157echo "Installing VirtualBox Guest Additions"
158sudo apt-get install -y virtualbox-guest-x11
159
Brian O'Connor40a238d2014-08-11 20:30:16 -0700160# ------------- Zero Unused Blocks -------------
161#TODO investigate zerofree
162echo "Zeroing unused blocks"
Brian O'Connor4c074f42014-08-12 13:39:34 -0700163sync
Brian O'Connor40a238d2014-08-11 20:30:16 -0700164dd if=/dev/zero of=tmp-zeros
165sync
166rm tmp-zeros
Brian O'Connor4c074f42014-08-12 13:39:34 -0700167sync