Browse Source

Initial site

main
Abhas Abhinav 3 years ago
commit
3f5fcd568c
38 changed files with 915 additions and 0 deletions
  1. +5
    -0
      .gitignore
  2. +25
    -0
      404.html
  3. +30
    -0
      Gemfile
  4. +92
    -0
      Gemfile.lock
  5. +58
    -0
      _config.yml
  6. +206
    -0
      _layouts/default.html
  7. +29
    -0
      _posts/2021-02-25-welcome-to-jekyll.markdown
  8. +21
    -0
      _sass/custom/custom.scss
  9. +10
    -0
      about.markdown
  10. +7
    -0
      action.md
  11. BIN
      assets/firewalls.png
  12. BIN
      assets/identity.png
  13. BIN
      assets/security.png
  14. BIN
      assets/she-logo.png
  15. BIN
      assets/wireless.png
  16. +32
    -0
      benefits.md
  17. +7
    -0
      credits.md
  18. +1
    -0
      deploy.sh
  19. +22
    -0
      essential.md
  20. +9
    -0
      essential/communication.md
  21. +8
    -0
      essential/files.md
  22. +9
    -0
      essential/identity.md
  23. +8
    -0
      essential/lab-automation.md
  24. +8
    -0
      essential/request-tracking.md
  25. +8
    -0
      essential/source-code.md
  26. +8
    -0
      essential/virtualisation.md
  27. +11
    -0
      index.markdown
  28. +22
    -0
      network.md
  29. +9
    -0
      network/access-control.md
  30. +82
    -0
      network/firewalls.md
  31. +64
    -0
      network/security.md
  32. +9
    -0
      network/wireless.md
  33. +22
    -0
      overview.md
  34. +8
    -0
      overview/build-it-yourself.md
  35. +57
    -0
      overview/free-software.md
  36. +9
    -0
      overview/relevance.md
  37. +10
    -0
      overview/self-hosting.md
  38. +9
    -0
      overview/what.md

+ 5
- 0
.gitignore View File

@ -0,0 +1,5 @@
_site
.sass-cache
.jekyll-cache
.jekyll-metadata
vendor

+ 25
- 0
404.html View File

@ -0,0 +1,25 @@
---
permalink: /404.html
layout: default
---
<style type="text/css" media="screen">
.container {
margin: 10px auto;
max-width: 600px;
text-align: center;
}
h1 {
margin: 30px 0;
font-size: 4em;
line-height: 1;
letter-spacing: -1px;
}
</style>
<div class="container">
<h1>404</h1>
<p><strong>Page not found :(</strong></p>
<p>The requested page could not be found.</p>
</div>

+ 30
- 0
Gemfile View File

@ -0,0 +1,30 @@
source "https://rubygems.org"
# Hello! This is where you manage which Jekyll version is used to run.
# When you want to use a different version, change it below, save the
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
#
# bundle exec jekyll serve
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 4.0.1"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
# gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
end
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
# and associated library.
install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
gem "tzinfo", "~> 1.2"
gem "tzinfo-data"
end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.1", :install_if => Gem.win_platform?
gem "just-the-docs"

+ 92
- 0
Gemfile.lock View File

@ -0,0 +1,92 @@
GEM
remote: https://rubygems.org/
specs:
addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.8)
em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.14.2)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
i18n (1.8.9)
concurrent-ruby (~> 1.0)
jekyll (4.0.1)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (>= 0.9.5, < 2)
jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (~> 0.3.3)
pathutil (~> 0.9)
rouge (~> 3.0)
safe_yaml (~> 1.0)
terminal-table (~> 1.8)
jekyll-feed (0.15.1)
jekyll (>= 3.7, < 5.0)
jekyll-sass-converter (2.1.0)
sassc (> 2.0.1, < 3.0)
jekyll-seo-tag (2.7.1)
jekyll (>= 3.8, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
just-the-docs (0.3.3)
jekyll (>= 3.8.5)
jekyll-seo-tag (~> 2.0)
rake (>= 12.3.1, < 13.1.0)
kramdown (2.3.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.3)
listen (3.4.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mercenary (0.3.6)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (4.0.6)
rake (13.0.3)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
rouge (3.26.0)
safe_yaml (1.0.5)
sassc (2.4.0)
ffi (~> 1.9)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
tzinfo (1.2.9)
thread_safe (~> 0.1)
tzinfo-data (1.2021.1)
tzinfo (>= 1.0.0)
unicode-display_width (1.7.0)
wdm (0.1.1)
PLATFORMS
ruby
DEPENDENCIES
jekyll (~> 4.0.1)
jekyll-feed (~> 0.12)
just-the-docs
minima (~> 2.5)
tzinfo (~> 1.2)
tzinfo-data
wdm (~> 0.1.1)
BUNDLED WITH
2.1.4

+ 58
- 0
_config.yml View File

@ -0,0 +1,58 @@
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
#
# For technical reasons, this file is *NOT* reloaded automatically when you use
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
#
# If you need help with YAML syntax, here are some quick references for you:
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
# https://learnxinyminutes.com/docs/yaml/
#
# Site settings
# These are used to personalize your new site. If you look in the HTML files,
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
# You can create any custom variable you would like, and they will be accessible
# in the templates via {{ site.myvariable }}.
title: Self Hosted Education
email: abhas@abhas.io
description: >- # this means to ignore newlines until "baseurl:"
Write an awesome description for your new site here. You can edit this
line in _config.yml. It will appear in your document head meta (for
Google search results) and in your feed.xml site description.
baseurl: "" # the subpath of your site, e.g. /blog
url: "https://selfhosted.education" # the base hostname & protocol for your site, e.g. http://example.com
twitter_username: abhasabhinav
github_username: abhas
logo: "/assets/she-logo.png"
search_enabled: false
# Build settings
theme: "just-the-docs"
plugins:
- jekyll-feed
# Exclude from processing.
# The following items will not be processed, by default.
# Any item listed under the `exclude:` key here will be automatically added to
# the internal "default list".
#
# Excluded items can be processed by explicitly listing the directories or
# their entries' file path in the `include:` list.
#
# exclude:
# - .sass-cache/
# - .jekyll-cache/
# - gemfiles/
# - Gemfile
# - Gemfile.lock
# - node_modules/
# - vendor/bundle/
# - vendor/cache/
# - vendor/gems/
# - vendor/ruby/

+ 206
- 0
_layouts/default.html View File

@ -0,0 +1,206 @@
---
layout: table_wrappers
---
<!DOCTYPE html>
<html lang="{{ site.lang | default: 'en-US' }}">
{% include head.html %}
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="svg-link" viewBox="0 0 24 24">
<title>Link</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
</svg>
</symbol>
<symbol id="svg-search" viewBox="0 0 24 24">
<title>Search</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
</svg>
</symbol>
<symbol id="svg-menu" viewBox="0 0 24 24">
<title>Menu</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
<line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
</svg>
</symbol>
<symbol id="svg-arrow-right" viewBox="0 0 24 24">
<title>Expand</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
<polyline points="9 18 15 12 9 6"></polyline>
</svg>
</symbol>
<symbol id="svg-doc" viewBox="0 0 24 24">
<title>Document</title>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
</svg>
</symbol>
</svg>
<div class="side-bar">
<div class="site-header">
<a href="{{ '/' | absolute_url }}" class="site-title lh-tight">{% include title.html %}</a>
<a href="#" id="menu-button" class="site-button">
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
</a>
</div>
<nav role="navigation" aria-label="Main" id="site-nav" class="site-nav">
{% if site.just_the_docs.collections %}
{% assign collections_size = site.just_the_docs.collections | size %}
{% for collection_entry in site.just_the_docs.collections %}
{% assign collection_key = collection_entry[0] %}
{% assign collection_value = collection_entry[1] %}
{% assign collection = site[collection_key] %}
{% if collection_value.nav_exclude != true %}
{% if collections_size > 1 %}
<div class="nav-category">{{ collection_value.name }}</div>
{% endif %}
{% include nav.html pages=collection %}
{% endif %}
{% endfor %}
{% else %}
{% include nav.html pages=site.html_pages %}
{% endif %}
</nav>
<footer class="site-footer">
The "Self Hosted Education" initiative is a public service initiative
to encourage schools, colleges, universities etc. to use Free Software
for all aspects of their computing needs.
</footer>
</div>
<div class="main" id="top">
<div id="main-header" class="main-header">
{% if site.search_enabled != false %}
<div class="search">
<div class="search-input-wrap">
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search {{ site.title }}" aria-label="Search {{ site.title }}" autocomplete="off">
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
</div>
<div id="search-results" class="search-results"></div>
</div>
{% endif %}
{% include header_custom.html %}
{% if site.aux_links %}
<nav aria-label="Auxiliary" class="aux-nav">
<ul class="aux-nav-list">
{% for link in site.aux_links %}
<li class="aux-nav-list-item">
<a href="{{ link.last }}" class="site-button"
{% if site.aux_links_new_tab %}
target="_blank" rel="noopener noreferrer"
{% endif %}
>
{{ link.first }}
</a>
</li>
{% endfor %}
</ul>
</nav>
{% endif %}
</div>
<div id="main-content-wrap" class="main-content-wrap">
{% unless page.url == "/" %}
{% if page.parent %}
{%- for node in pages_list -%}
{%- if node.parent == nil -%}
{%- if page.parent == node.title or page.grand_parent == node.title -%}
{%- assign first_level_url = node.url | absolute_url -%}
{%- endif -%}
{%- if node.has_children -%}
{%- assign children_list = pages_list | where: "parent", node.title -%}
{%- for child in children_list -%}
{%- if page.url == child.url or page.parent == child.title -%}
{%- assign second_level_url = child.url | absolute_url -%}
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- endif -%}
{%- endfor -%}
<nav aria-label="Breadcrumb" class="breadcrumb-nav">
<ol class="breadcrumb-nav-list">
{% if page.grand_parent %}
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
<li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
{% else %}
<li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
{% endif %}
<li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
</ol>
</nav>
{% endif %}
{% endunless %}
<div id="main-content" class="main-content" role="main">
{% if site.heading_anchors != false %}
{% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %}
{% else %}
{{ content }}
{% endif %}
{% if page.has_children == true and page.has_toc != false %}
<hr>
<h2 class="text-delta">Table of contents</h2>
<ul>
{%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%}
{% for child in children_list %}
<li>
<a href="{{ child.url | absolute_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% capture footer_custom %}
{%- include footer_custom.html -%}
{% endcapture %}
{% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %}
<hr>
<footer>
{% if site.back_to_top %}
<p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p>
{% endif %}
{{ footer_custom }}
{% if site.last_edit_timestamp or site.gh_edit_link %}
<div class="d-flex mt-2">
{% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
<p class="text-small text-grey-dk-000 mb-0 mr-2">
Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
</p>
{% endif %}
{% if
site.gh_edit_link and
site.gh_edit_link_text and
site.gh_edit_repository and
site.gh_edit_branch and
site.gh_edit_view_mode
%}
<p class="text-small text-grey-dk-000 mb-0">
<a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
</p>
{% endif %}
</div>
{% endif %}
</footer>
{% endif %}
</div>
</div>
{% if site.search_enabled != false %}
{% if site.search.button %}
<a href="#" id="search-button" class="search-button">
<svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg>
</a>
{% endif %}
<div class="search-overlay"></div>
{% endif %}
</div>
</body>
</html>

+ 29
- 0
_posts/2021-02-25-welcome-to-jekyll.markdown View File

@ -0,0 +1,29 @@
---
layout: post
title: "Welcome to Jekyll!"
date: 2021-02-25 00:19:13 +0530
categories: jekyll update
---
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
Jekyll requires blog post files to be named according to the following format:
`YEAR-MONTH-DAY-title.MARKUP`
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
Jekyll also offers powerful support for code snippets:
{% highlight ruby %}
def print_hi(name)
puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.
{% endhighlight %}
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
[jekyll-docs]: https://jekyllrb.com/docs/home
[jekyll-gh]: https://github.com/jekyll/jekyll
[jekyll-talk]: https://talk.jekyllrb.com/

+ 21
- 0
_sass/custom/custom.scss View File

@ -0,0 +1,21 @@
body {
font-family: Iosevka;
font-weight: 400;
font-feature-settings: "kern" 1, "liga" 1;
font-optical-sizing: auto;
color: #010101;
}
.site-footer {
text-align: justify;
color: #4f4f4f;
font-weight: 500;
line-height: 1.2em;
font-size: 120%;
}
h1, h2 {
font-family: Iosevka;
color: #3771C9;
font-weight: 500;
}

+ 10
- 0
about.markdown View File

@ -0,0 +1,10 @@
---
layout: page
title: About
nav_order: 1
permalink: /about/
---
<img src="/assets/she-logo.png">

+ 7
- 0
action.md View File

@ -0,0 +1,7 @@
---
layout: default
title: Take Action
nav_order: 7
---
# Take Action

BIN
assets/firewalls.png View File

Before After
Width: 101  |  Height: 101  |  Size: 3.4 KiB

BIN
assets/identity.png View File

Before After
Width: 74  |  Height: 50  |  Size: 5.6 KiB

BIN
assets/security.png View File

Before After
Width: 165  |  Height: 165  |  Size: 12 KiB

BIN
assets/she-logo.png View File

Before After
Width: 478  |  Height: 151  |  Size: 26 KiB

BIN
assets/wireless.png View File

Before After
Width: 101  |  Height: 101  |  Size: 5.0 KiB

+ 32
- 0
benefits.md View File

@ -0,0 +1,32 @@
---
layout: default
title: Benefits for Students
nav_order: 5
---
# Benefits for Students
## Hands-on Experience
Students will gain complete hands-on experience on the tools that are regularly
used in industry and the FOSS community. Pro-actively building skills in such
tools will make it possible for them to contribute to FOSS and also pitch for
systems design and administration, research and software development
opportunities professionally.
## Awareness and Skills
Awareness of methods and practices used in industry or FOSS community: It is
not just tools that are essential – awareness and experience with established
and ad-hoc methods and practices will enable students to fit in easily and
quickly into global communities and participate effectively.
## Opportunity to learn and experiment safely
Opportunity to experiment and learn safely without affecting the production
deployment of services in the lab. Students should not just be users and
consumers of technology. By demonstrating the fact that such infrastructure can
be built effectively and affordably by choosing Self Hosting and Free Software,
we can enable them to also attempt to do the same and learn and build so much
more.

+ 7
- 0
credits.md View File

@ -0,0 +1,7 @@
---
layout: default
title: Credits
nav_order: 6
---
# Credits

+ 1
- 0
deploy.sh View File

@ -0,0 +1 @@
rsync -apv _site/* root@h0gvpn:/home/websites/selfhosted.education

+ 22
- 0
essential.md View File

@ -0,0 +1,22 @@
---
layout: default
title: Services and Solutions
nav_order: 4
has_children: true
---
# Essential Services &amp; Solutions
Presented here is an overview of solutions that are essential and
indispensable for any college campus or departmental network.
The goal of this note is to explain what these solutions are, how they
work, why they are useful and how they provide more value to everyone
while enabling us to become more effective in whatever we do.
There are three core ideologies which form the basis for our
discussion here:
* Free / Open Source Software,
* Self-Hosting, and
* Build-it-Yourself

+ 9
- 0
essential/communication.md View File

@ -0,0 +1,9 @@
---
layout: default
parent: Services and Solutions
nav_order: 3
title: Communication Tools
---
# Email, Communication & Collaboration

+ 8
- 0
essential/files.md View File

@ -0,0 +1,8 @@
---
layout: default
parent: Services and Solutions
nav_order: 5
title: File Sharing + Archival
---
# File Sharing, Collaboration and Media Archival

+ 9
- 0
essential/identity.md View File

@ -0,0 +1,9 @@
---
layout: default
parent: Services and Solutions
nav_order: 1
title: Identity Management
---
# Identity Management &amp; Centralised Authentication

+ 8
- 0
essential/lab-automation.md View File

@ -0,0 +1,8 @@
---
layout: default
parent: Services and Solutions
nav_order: 2
title: Lab Automation
---
# Lab Automation & Local Repository Mirrors

+ 8
- 0
essential/request-tracking.md View File

@ -0,0 +1,8 @@
---
layout: default
parent: Services and Solutions
nav_order: 4
title: Request Tracking
---
# Helpdesks & Request Tracking

+ 8
- 0
essential/source-code.md View File

@ -0,0 +1,8 @@
---
layout: default
parent: Services and Solutions
nav_order: 6
title: Source Code
---
# Source Code management, Versioning, Collaboration, Review, Release, Packaging, Documentation & Deployment.

+ 8
- 0
essential/virtualisation.md View File

@ -0,0 +1,8 @@
---
layout: default
parent: Services and Solutions
nav_order: 7
title: Virtualisation
---
# Virtualisation, Private Cloud & Infrastructure / Container / Platform as a Service

+ 11
- 0
index.markdown View File

@ -0,0 +1,11 @@
---
# Feel free to add content and custom Front Matter to this file.
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
layout: home
---
<img src="/assets/she-logo.png">
<h2> Free Software Solutions For Educational Institutions </h2> <h3 style="margin-top: -0.2em"> Technical Details, Common Problems and Benefits </h3>

+ 22
- 0
network.md View File

@ -0,0 +1,22 @@
---
layout: default
title: Network Solutions
nav_order: 3
has_children: true
---
# Network Solutions
Presented here is an overview of solutions that are essential and
indispensable for any college campus or departmental network.
The goal of this note is to explain what these solutions are, how they
work, why they are useful and how they provide more value to everyone
while enabling us to become more effective in whatever we do.
There are three core ideologies which form the basis for our
discussion here:
* Free / Open Source Software,
* Self-Hosting, and
* Build-it-Yourself

+ 9
- 0
network/access-control.md View File

@ -0,0 +1,9 @@
---
layout: default
parent: Network Solutions
nav_order: 4
title: Access Control
---
# Network Access Control, Captive Portal, BYOD Management, Centralised Wired and Wireless Management

+ 82
- 0
network/firewalls.md View File

@ -0,0 +1,82 @@
---
layout: default
parent: Network Solutions
nav_order: 1
title: Firewalls
---
# Firewalls, Bandwidth Management and Link Aggregation and Failover
<div style="text-align: center; width: 100%;">
<img src="/assets/firewalls.png">
</div>
## Overview
A firewall is a hardware + software solution that connects and shares
Internet bandwidth with your local network. It isolates and protects
the local network from the Internet and also allows you to securely
expose specific applications, services and servers on the local
network.
A bandwidth management solution helps you monitor your bandwidth usage
and then allows you to define bandwidth and Internet usage priorities
and policies.
A link aggregation and failover solution lets you connect multiple
Internet links to your firewall so that you can have more bandwidth
available to users on the local network. This also means that you
don’t rely on a single Internet link or ISP for your Internet
connectivity needs.
## Common Problems
* You have a firewall but you need to repeatedly call a service provider or
vendor to manage the rules for you.
* You have a lot of Internet bandwidth but your Internet usage and experience
is slow.
* When large or bulk files are repeatedly downloaded, it causes a slowdown for
other users.
* It is impossible to account for your bandwidth utilisation.
* When your main Internet link goes down, or is slow, it cuts off the entire
network from the Internet
* You are having to depend on third-party ISPs to provide high- speed and
unrestricted access to the Internet
* Even when you have multiple links to the Internet, you might not be able to
use them all at the same time. Or specify policies on who can use which one
at what time.
## Benefits
* No dependency on 3rd party for firewall management.
* No risk of usage data being sent to a firewall vendor's cloud setup for
analysis – thereby, ensuring better privacy for users
* Optimal utilisation of all the available Internet links simultaneously and
automatic failover
* Fair sharing of bandwidth amongst users so that prioritised traffic and users
always get the required bandwidth
* Actionable Internet utilisation reports
* Caching of frequently accessed content from the Internet saves bandwidth and
improves user experience
* Extended caching of bulk content like OS updates, Anti-Virus updates etc
* Granular Web Access controls depending on user, time of day, day of week,
content-type, request-type etc
* Logs can be retained for as long as required for data and trend analysis
* User identity and authentication is mapped from a singular, campus-wide
service that is used for all other applications as well

+ 64
- 0
network/security.md View File

@ -0,0 +1,64 @@
---
layout: default
parent: Network Solutions
nav_order: 2
title: Security
---
# Network Security and Intrusion / Malware Detection
## Overview
Keeping the network secure is as important as keeping it fully-
functional. The traditional approach of just using an equipment at the
gateway is not sufficient. The threats can emanate from inside the
networks as much as they come from the Internet.
A functional and up-to-date Intrusion Detection and Prevention System
(IDS/IPS) is an integral part of a secure network in addition to anti-
malware software. An IDS/IPS inspects all the traffic passing through
the network in real-time and matches them with pre-defined signatures
to generate alerts and/or block the malicious activities from outside
or inside the network.
A SIEM (Security Incident and Events Monitoring) system can collect
logs generated from various components like firewalls, servers,
IDS/IPS, network access controllers, DHCP Servers etc to provide a
holistic view of the security situation of the network.
## Common Problems
* There are infected machines in the network which are generating huge amount
of traffic affecting the whole network. These things can happen silently
without any outward symptoms till it begins to affect users in a negative way.
* There are Trojans installed in the machines which spread through the network
or can be part of a bigger attacks and are just waiting for a trigger from
“Command and Control” (CnC) server on the Internet
* You are not even aware that there are a lot of Intrusion or Denial-of-Service
(DoS) attacks are happening on your network which are eating system resources
of your gateway firewall
* Students could be trying to learn about security by attacking the servers
inside the college network (or on the Internet)
* Unauthorised access attempts to the servers or computers inside the network
are not noticed
## Benefits
* Visibility into malicious activity present in the network - originating from
either the Internet or within the local network
* Automatic blocking of the hosts generating such activities from the Internet
* Automatic isolation of the hosts generating malicious traffic from within the
network with the users and administrators get notified of the same
* Various vulnerabilities get highlighted on the SIEM which when fixed on time
save the network from catastrophic downtime
* The possibility of machines inside the network getting involved in large
scale attacks on the Internet gets minimised to a great extent

+ 9
- 0
network/wireless.md View File

@ -0,0 +1,9 @@
---
layout: default
parent: Network Solutions
nav_order: 3
title: Wireless
---
# Campus Wireless Networking and Access Points

+ 22
- 0
overview.md View File

@ -0,0 +1,22 @@
---
layout: default
title: Overview
nav_order: 2
has_children: true
---
# Overview
Presented here is an overview of solutions that are essential and
indispensable for any college campus or departmental network.
The goal of this note is to explain what these solutions are, how they
work, why they are useful and how they provide more value to everyone
while enabling us to become more effective in whatever we do.
There are three core ideologies which form the basis for our
discussion here:
* Free / Open Source Software,
* Self-Hosting, and
* Build-it-Yourself

+ 8
- 0
overview/build-it-yourself.md View File

@ -0,0 +1,8 @@
---
layout: default
parent: Overview
nav_order: 3
title: Build it yourself
---
# Build it yourself

+ 57
- 0
overview/free-software.md View File

@ -0,0 +1,57 @@
---
layout: default
parent: Overview
nav_order: 1
title: What is Free Software?
---
# What is Free/Libre/Open Source Software?
Free / Open Source Software is software that provides the following
four freedoms to us:
* Freedom to use the software for any purpose
* Freedom to study the source code of the software and learn from it
* Freedom to modify the software and make changes to it
* Freedom to share the software (in its original and modified form)
These freedoms are essential as they provide us with the essential
framework for learning and sharing knowledge.
The freedom to use software for any purpose ensures that anyone can
use the software for any endeavour (educational, personal, commercial,
non-profit, governmental, defence and more) and in any region. Free
Software does not discriminate.
> <em> For the purpose of this document, we use the terms “Free Software” and “Free
> / Open Source Software” interchangeably to refer to software that provides
> freedom to us. While “Free Software” is the original term that was used to
> describe such a body of software, the term “Open Source” has also gained a
> lot of popularity . We consider “Free Software” to be a more useful term
> since it captures the essence of this philosophy and does not dilute it for
> whatever pragmatic or marketing reasons. </em>
The availability of source code provides us an opportunity to study
and understand how something works. Without this freedom we would
never be able to learn from what others have done or apply that
learning to our own lives.
The freedom to modify the software enables to learn and gain
confidence by doing things. It allows us to extend the software, fix
bugs in it, translate or localise it and adapt it for other purposes.
Finally, the freedom to share a program (in its original or modified
form) allows us to help others while also providing subsequent users
with the same sort of freedom that we enjoy. It ensures that the
software remains free and provides every user, teacher and developer
equitable freedom.
Proprietary software (ie. software that is distributed only as a
binary and where we are restricted from accessing its source code or
modifying it or sharing it freely), on the other hand, does not
provide us with any opportunity to learn or understand how things work
or make changes to them to test and validate our understanding.

+ 9
- 0
overview/relevance.md View File

@ -0,0 +1,9 @@
---
layout: default
parent: Overview
nav_order: 4
title: Why is this relevant?
---
# Why is this relevant for us?

+ 10
- 0
overview/self-hosting.md View File

@ -0,0 +1,10 @@
---
layout: default
parent: Overview
nav_order: 2
title: Choosing Self Hosting
---
# Why choose self hosting?

+ 9
- 0
overview/what.md View File

@ -0,0 +1,9 @@
---
layout: default
parent: Overview
nav_order: 5
title: What can we build?
---
# What can we build?

Loading…
Cancel
Save