Difference between revisions of "Infrastructure"

From the Linux and Unix Users Group at Virginia Teck Wiki
Jump to: navigation, search
imported>Pew
(On the Network Architecture)
 
(40 intermediate revisions by 3 users not shown)
Line 1: Line 1:
This page documents VTLUUG's infrastructure post-[[CVL eviction]]. It is intended as a scratch pad of
+
This page documents VTLUUG's infrastructure post-[[CVL eviction]].
sorts for organizing infrastructure changes, since [[Infrastructure:Log]] is incredibly out of date, and
 
there are a lot of details which must be sorted out before major infrastructure changes can be made.
 
  
 
== Physical Infrastructure ==
 
== Physical Infrastructure ==
[[Infrastructure:Cyberdelia|Cyberdelia]] is the only connected physical machine right now,
+
=== NFS Hosts ===
besides [[Infrastructure:Temp88191|our router]]. It contains 48 GB of memory
+
* [[Infrastructure:Dirtycow|dirtycow]] - Primary NFS server, 8x2TB raidz2 array
with 4 ethernet interfaces; only eth4 is connected and is attached to br0. All hosts are on our own 1-gbit port with
+
* [[Infrastructure:Cyberdelia|cyberdelia]] - OFF, 7x1TB raidz2 array, sitting on shelf instead of shelf
[[Infrastructure:Temp88191|temp88191]], a gateway featuring ARP proxying, and partial NDP proxying.
+
 
For global DNS changes under ece.vt.edu, server room access, and getting hosts added to the ARP proxy,
+
=== VM Hosts ===
contact [mailto:jkh@vt.edu John Harris] or [mailto:rdehart@vt.edu Roddy Dehart].
+
* [[Infrastructure:Meltdown|meltdown]] - Primary VM/docker host
 +
* [[Infrastructure:Spectre|spectre]] - Secondary VM/docker host, for example user VMs
 +
 
 +
=== Router ===
 +
* [[Infrastructure:Shellshock|shellshock]] - 3 disk RAID1 array
 +
 
 +
All hosts are on our own 1 Gb/s port with [[Infrastructure:Shellshock|shellshock]], a gateway featuring ARP proxying, and full delegation of the 2607:b400:6:cc80/64 prefix.
  
 
Virginia Tech has started blocking inbound ports 22 and 3389 and outbound port 25 at the campus border, in a move
 
Virginia Tech has started blocking inbound ports 22 and 3389 and outbound port 25 at the campus border, in a move
 
[[User:echarlie|echarlie]] is calling [[gp:Cyber Auschwitz|Cyber Auschwitz]]. Contact itso-g@vt.edu for firewall exceptions.
 
[[User:echarlie|echarlie]] is calling [[gp:Cyber Auschwitz|Cyber Auschwitz]]. Contact itso-g@vt.edu for firewall exceptions.
When deploying new hosts, make ssh listen on both 2222 and 22. [[Infrastructure:Acidburn|Acidburn]] currently listens on 443 as well.
+
When deploying new hosts, make ssh listen on both 2222 and 22. [[Infrastructure:Acidburn|Acidburn]] currently listens on 3128 as well.
  
All other VTLUUG-owned servers are currently stored in [[user:pew|pew]]'s apartment, with the exception of [[infrastructure:sunway|sunway]]
+
=== Other hosts ===
and a SuperMicro server, which were all transferred to WUVT. The list of these machines includes [[Infrastructure:Wood|Wood]],
+
* [[Infrastructure:Joey|joey]] used to be the router, but is no longer in use due to a failure of the single drive
and a variety of other servers, including our old LXC hosts and the old mirror.
+
* [[Infrastructure:Wood|Wood]] is sitting in our rack turned off because we don't have a use for it currently. It is in a 4U case capable of fitting several GPUs.
 +
* [[Infrastructure:Sunway|sunway]] and a SuperMicro server were all transferred to WUVT. Older hosts have either been thrown out or given to members.
  
See [[Goals]] for things we plan to do in the future.
+
See [[VTLUUG:Strategic_plan]] for things we plan to do in the future.
  
 
== On the Network Architecture ==
 
== On the Network Architecture ==
''Further Information: [[Infrastructure:Networking]]''
+
''Further Information: [[Infrastructure:Networking]] and [[Infrastructure:Network]]''
  
[[File:Infra2016-network.png|thumb|500px|A simple network diagram by [[user:mjh|mjh]]]]
+
[[File:Infra2019-network.png|thumb|500px|A simple network diagram by [[user:pew|pew]]. '''Update June 2021: Joey is dead, long live Joey. Shellshock is the new router. Cyberdelia is off.]]
  
Because VTLUUG infra no longer has IPv6 access, we are limited by the IP addresses assigned to us, and what we
+
 
can get through DHCP from ECE. As a consequence, all services which do not need to have a global IP should move
+
We currently have some services with public IPv4 address, and all hosts have an internal IPv4 address on the 10.98.x.x/16 subnet and an IPv6 address assigned via SLAAC.
to the internal network on the 10.99.x.x/16 subnet. In the future, it may be wise to bridge this network to an
+
In the future, [[Infrastructure:IPsec|VPN]]/[[Iodine]] should be used.
ethernet port on cyberdelia, so that a switch can be used to network our other services. When we have rackspace
 
to do so, [[Infrastructure:IPsec|VPN]]/[[Iodine]] access to the internal network will be necessary.
 
  
 
In theory, services can be provided via a hidden service such as [[w:Tor|Tor]], but that introduces other complications.
 
In theory, services can be provided via a hidden service such as [[w:Tor|Tor]], but that introduces other complications.
Alternately, services can require use of the [[Infrastructure:IPsec|VPN]] on [[Infrastructure:acidburn|acidburn]],
+
Alternately, services can require use of the [[Infrastructure:IPsec|VPN]] on [[Infrastructure:Acidburn|acidburn]],
 
[[Iodine]], or [[Secure Shell|ssh tunnelling]], although all of these limit usage to members with a shell account.
 
[[Iodine]], or [[Secure Shell|ssh tunnelling]], although all of these limit usage to members with a shell account.
 
All of these have the benefit of NAT transversal, however.
 
All of these have the benefit of NAT transversal, however.
 
{{:Infrastructure:Network}}
 
  
 
== Services ==
 
== Services ==
 +
''Further information: [[:Category:Services]]''
  
=== Critical ===
+
* [[Infrastructure:Acidburn|acidburn]]
 
 
* [[Infrastructure:Acidburn|Acidburn]]
 
 
** Shell server
 
** Shell server
 
** [[Email]]
 
** [[Email]]
 
** [[Wadsworth]]
 
** [[Wadsworth]]
* [[Infrastructure:Razor|Razor]]
+
** [[Iodine]]
** LDAP
+
* [[Infrastructure:Chimera|chimera]]
 +
** FreeIPA
 
* [[Infrastructure:Sczi|Sczi]]
 
* [[Infrastructure:Sczi|Sczi]]
 
** Website
 
** Website
*** Wiki
+
*** [https://hokieprivacy.org hokieprivacy]
*** Main Page
+
*** [https://bash.vtluug.org vtbash]
*** linx
+
*** [https://vtluug.org Main Site]
*** [[vtbash]]
+
*** This wiki and [[gp:Main Page|Gobblerpedia]]
* [[Infrastructure:Cyberdelia|Cyberdelia]]
+
*** dex, for authing with the wikis
** All the above services
+
*** https://vtluug.org/users/~$user - User homepages
** VMs for projects
+
*** [https://search.vtluug.org 4get] a metasearch engine
** Tank
+
*** [https://git.vtluug.org Gitea] a Github-esque git server with dex/LUUG OpenID auth
*** NFS
+
*** [https://element.vtluug.org element], a Matrix client
 +
* [[Infrastructure:Nikonwormhole|nikonwormhole]]
 +
** AdGuard DNS blackhole
 +
* [[Infrastructure:Dirtycow|dirtycow]]
 +
** Storage for all primary services
 +
** NFS - ZFS pool name is cistern
 +
* [[Infrastructure:Meltdown|meltdown]]
 +
** VM host for above services
  
[[Infrastructure:Acidburn|Acidburn]] and the website ''must'' be accessible through real services, and it is preferable that [[Infrastructure:Cyberdelia|Cyberdelia]] is too. This means we must use our public IPv4 Addresses allotted by ECE.
+
[[Infrastructure:Acidburn|acidburn]] and the website ''must'' be accessible through real services, and it is preferable other hosts are too. This means we must use our public IPv4 & IPv6 Addresses allotted by ECE.
  
 
== Website details ==
 
== Website details ==
 
=== Current Setup ===
 
=== Current Setup ===
 
 
All vtluug websites are run on nginx on [[Infrastructure:Sczi|sczi]]. These sites are currently functional:
 
All vtluug websites are run on nginx on [[Infrastructure:Sczi|sczi]]. These sites are currently functional:
 
* gobblerpedia.org
 
* gobblerpedia.org
 
* hokieprivacy.org
 
* hokieprivacy.org
* linx.vtluug.org
 
 
* vtluug.org
 
* vtluug.org
* wiki.vtluug.org (this redirects to vtluug.org/wiki/)
+
* wiki.vtluug.org (redirects to vtluug.org/wiki/)
 
* bash.vtluug.org
 
* bash.vtluug.org
 +
* vtluug.org/users/~$user
  
 
All of these sites exclusively allow for the use of TLS connections. All services use automatically updated
 
All of these sites exclusively allow for the use of TLS connections. All services use automatically updated
Line 78: Line 85:
  
 
==== Main Page ====
 
==== Main Page ====
The main VTLUUG page was scraped from the [[Internet Archive]] and added created as a github page at
+
The main VTLUUG page was scraped from the [[w:Internet Archive|Internet Archive]] and added created as a github page at
[https://vtluug.github.io vtluug.github.io], and is reverse-proxied through sczi.
+
[https://vtluug.github.io vtluug.github.io], and is reverse-proxied through [[Infrastructure:Sczi|sczi]].
  
 
==== Wiki ====
 
==== Wiki ====
 
+
The wiki currently runs fully on MediaWiki hosted on nginx using a [https://github.com/vtluug/mediawiki-docker modified version of the official mediawiki docker image]. You can auth with the admin account, [[User:wiki-admin|wiki-admin]] or a Google account. See note on [[Main_page]] about why LDAP isn't working yet.
The wiki currently runs fully on MediaWiki hosted on nginx. Postgres is used for the database and authentication
 
is through LDAP. MediaWiki is running the current stable version as of March 2017, courtesy hard work by
 
[[user:pew|pew]].
 
  
 
===== Gobblerpedia =====
 
===== Gobblerpedia =====
 +
Runs on the same Mediawiki instance as this wiki. Similarly to LUUGWiki, only Google accounts or the admin user are supported logins.
  
Runs on the same Mediawiki instance as this wiki, with its schema in the same Postgres database. Currently, you can auth
+
=== Needs Restoration ===
with LDAP, pre-existing accounts, or a Google account in the VT hosted domain.
 
 
 
==== Linx ====
 
 
 
Uses [[User:andreim|aam]]'s [https://github.com/andreimarcu/linx-server linx], and is an identical implementation to his site
 
[https://linx.li linx.li]. One of the few sites with a complete startup script. The maintenance is currently the responsibility
 
of aam, however this is subject to change, pending his retaining root access on sczi.
 
 
 
=== Historically ===
 
 
 
Beyond these, we have data and nginx configurations for these (deprecated) sites, which
 
were previously hosted on milton:
 
 
 
==== Needs Restoration ====
 
 
These are VTLUUG services that haven't yet been properly restored:
 
These are VTLUUG services that haven't yet been properly restored:
 
* [https://github.com/mutantmonkey/foodforus foodfor.vtluug.org] - For [[Wadsworth]]'s .pickfood and .foodvote commands. This is [[User:Timelord|jpo's]] fault.
 
* [https://github.com/mutantmonkey/foodforus foodfor.vtluug.org] - For [[Wadsworth]]'s .pickfood and .foodvote commands. This is [[User:Timelord|jpo's]] fault.
Line 109: Line 100:
 
* git.vtluug.org - git hosting; previously a redirect to gitweb with gitosis as the SSH backend
 
* git.vtluug.org - git hosting; previously a redirect to gitweb with gitosis as the SSH backend
 
* gitweb.vtluug.org - git hosting; previously gitweb
 
* gitweb.vtluug.org - git hosting; previously gitweb
* map.vtluug.org - [[Openstreetmap|OSM]] (gobblerpedia still relies on this)
+
* [https://github.com/vtluug/campusmap map.vtluug.org] - [[Openstreetmap|OSM]] based map of VT
* users.vtluug.org - member hosting of acidburn home directories
 
  
==== Deprecated ====
+
=== Historically ===
These are no longer needed but we should preserve the data/config:
 
* ccdc.vtluug.org - website used for the [[Collegiate Cyber Defense Competition]] in the spring of 2011.
 
* nagios.vtluug.org - was used for monitoring for a period but not kept up-to-date; the primary issue was that infrastructure, being hosted on the same server, tended to fail all at once
 
* uniluug.org - deprecated project [[uniluug]]
 
* security.ece.vt.edu - REDACTED
 
* wargame.vtluug.org - vtluug's wargame pre-vtcsec
 
* munin.vtluug.org - former attempt at monitoring
 
* webchat.vtluug.org - channel webchat; version of the service still runs on the vtluug website as an embeded frame from freenode's website. This should be disabled.
 
* cdn.vtluug.org - member website
 
* randynance.info - member website
 
* jessicaandchristopher.net - member website
 
* vtcybersecurity.org - member website from pre-csec days
 
 
 
Prior to the current site, which was written in Python using Django starting in 2010 and deployed in 2011, the VTLUUG website was a
 
WordPress instance. The files for this still exist. Much of the original django deployment was highly dynamic, with an identi.ca
 
feed, automatic calendar updates, and other features.
 
 
 
Additional files and configuration data exist for multiple versions of dokuwiki and mediawiki. There are also files for a NewsBlur installation which was never functional, and "bitcoin," the purpose of which is unknown.
 
 
 
A static version of vtbash.org is hosted at [https://vtluug.org/bash/index.html https://vtluug.org/bash/index.html].
 
 
 
Until recently, VTLUUG ran a Gopher server on Milton, with a small welcome page and access to /files. Git hosting was also provided; authenticated access was over SSH with [https://github.com/tv42/gitosis gitosis] and public access was via Gitweb and the insecure Git protocol.
 
 
 
vtluug.org/public/$user/ was previously a source directory of files placed in a user's $HOME/public directory on NFS.
 
<!--When? I thought it was always users.vtluug.org? -- I don't think it matters. the point is that this ''was'' a feature-->
 
 
 
VTLUUG members also ran '''mirror.ece.vt.edu''', although it was never an official VTLUUG project. The IPv4 allocation for this domain is still available.
 
 
 
PostgreSQL tables exist on milton for foodforus, jandc, mediawiki, mewsblu, sharedwiki, uniluug, vtluug_wiki, and wargame_bbs. More
 
research is necessary to determine what these are for. There are also a collection of mySQL databases on milton which may
 
be desirable to archive and store.
 
  
 +
See [[Dead_projects]] for historic information
  
See [[Goals#Web_Services]] for future goals involving web services
+
=== Goals ===
 +
See [[VTLUUG:Strategic_plan#Web_Services]] for future goals involving web services
  
 
== Addressing ==
 
== Addressing ==
''Main article: [[Infrastructure:Network]]''
+
VTLUUG currently has DNS with gandi.net. Message officers for access (please don't be scared :D).
 
 
VTLUUG currently has DNS with namecheap, however all domains have been re-registered with gandi under
 
vtluug's own account, to replace the mixture of mutantmonkey-holdings and vtluug-held domains on multiple
 
different registrars.
 
  
 
We currently hold the IPv6 prefix <code>2001:470:8:6d9::/64</code> from HE's allocation due to our tunnel.
 
We currently hold the IPv6 prefix <code>2001:470:8:6d9::/64</code> from HE's allocation due to our tunnel.
Line 159: Line 116:
 
which is VT's largest allocation.
 
which is VT's largest allocation.
  
An important limitation of the HE tunnel is that they block port 25 by default.
+
{{:Infrastructure:Network}}
 
 
https://linx.vtluug.org/ips1.txt
 
 
 
== Deprecated IPs ==
 
IPs we were using at some point (by reclaiming CVL IPs, etc), or are mentioned in /etc/exports on Cyberdelia
 
* 128.173.88.161 (security.ece.vt.edu) - was once milton's IP until luug IPs got routed behind router.ece.vt.edu.
 
* 128.173.88.145 (cvl05.ece.vt.edu) - was once snapfeed's IP, reclaimed by bmckagen.
 
* 128.173.88.131 (dog.ece.vt.edu) - we have a Sun box labeled "dog.ece.vt.edu" but the IP appears to be in use now for VMware ESXi. It can be arped from cyberdelia.
 
 
 
  
 
[[Category:Infrastructure]]
 
[[Category:Infrastructure]]
 
[[Category:VTLUUG:Projects]]
 
[[Category:VTLUUG:Projects]]
[[Category:2016]][[Category:2017]]
 
 
[[Category:Featured content]]
 
[[Category:Featured content]]

Latest revision as of 20:41, 5 November 2024

This page documents VTLUUG's infrastructure post-CVL eviction.

Physical Infrastructure

NFS Hosts

  • dirtycow - Primary NFS server, 8x2TB raidz2 array
  • cyberdelia - OFF, 7x1TB raidz2 array, sitting on shelf instead of shelf

VM Hosts

  • meltdown - Primary VM/docker host
  • spectre - Secondary VM/docker host, for example user VMs

Router

All hosts are on our own 1 Gb/s port with shellshock, a gateway featuring ARP proxying, and full delegation of the 2607:b400:6:cc80/64 prefix.

Virginia Tech has started blocking inbound ports 22 and 3389 and outbound port 25 at the campus border, in a move echarlie is calling Cyber Auschwitz. Contact itso-g@vt.edu for firewall exceptions. When deploying new hosts, make ssh listen on both 2222 and 22. Acidburn currently listens on 3128 as well.

Other hosts

  • joey used to be the router, but is no longer in use due to a failure of the single drive
  • Wood is sitting in our rack turned off because we don't have a use for it currently. It is in a 4U case capable of fitting several GPUs.
  • sunway and a SuperMicro server were all transferred to WUVT. Older hosts have either been thrown out or given to members.

See VTLUUG:Strategic_plan for things we plan to do in the future.

On the Network Architecture

Further Information: Infrastructure:Networking and Infrastructure:Network

A simple network diagram by pew. Update June 2021: Joey is dead, long live Joey. Shellshock is the new router. Cyberdelia is off.


We currently have some services with public IPv4 address, and all hosts have an internal IPv4 address on the 10.98.x.x/16 subnet and an IPv6 address assigned via SLAAC. In the future, VPN/Iodine should be used.

In theory, services can be provided via a hidden service such as Tor, but that introduces other complications. Alternately, services can require use of the VPN on acidburn, Iodine, or ssh tunnelling, although all of these limit usage to members with a shell account. All of these have the benefit of NAT transversal, however.

Services

Further information: Category:Services

acidburn and the website must be accessible through real services, and it is preferable other hosts are too. This means we must use our public IPv4 & IPv6 Addresses allotted by ECE.

Website details

Current Setup

All vtluug websites are run on nginx on sczi. These sites are currently functional:

  • gobblerpedia.org
  • hokieprivacy.org
  • vtluug.org
  • wiki.vtluug.org (redirects to vtluug.org/wiki/)
  • bash.vtluug.org
  • vtluug.org/users/~$user

All of these sites exclusively allow for the use of TLS connections. All services use automatically updated letsencrypt certs.

Main Page

The main VTLUUG page was scraped from the Internet Archive and added created as a github page at vtluug.github.io, and is reverse-proxied through sczi.

Wiki

The wiki currently runs fully on MediaWiki hosted on nginx using a modified version of the official mediawiki docker image. You can auth with the admin account, wiki-admin or a Google account. See note on Main_page about why LDAP isn't working yet.

Gobblerpedia

Runs on the same Mediawiki instance as this wiki. Similarly to LUUGWiki, only Google accounts or the admin user are supported logins.

Needs Restoration

These are VTLUUG services that haven't yet been properly restored:

  • foodfor.vtluug.org - For Wadsworth's .pickfood and .foodvote commands. This is jpo's fault.
  • tahoe.vtluug.org - mhazinsk's Tahoe-LAFS grid
  • git.vtluug.org - git hosting; previously a redirect to gitweb with gitosis as the SSH backend
  • gitweb.vtluug.org - git hosting; previously gitweb
  • map.vtluug.org - OSM based map of VT

Historically

See Dead_projects for historic information

Goals

See VTLUUG:Strategic_plan#Web_Services for future goals involving web services

Addressing

VTLUUG currently has DNS with gandi.net. Message officers for access (please don't be scared :D).

We currently hold the IPv6 prefix 2001:470:8:6d9::/64 from HE's allocation due to our tunnel. When CNS finally sets up prefix-delegation, we might be able to get something from 2607:b400::/32, which is VT's largest allocation.

IF YOU CHANGE/ADD/REMOVE SOMETHING HERE CHANGE IT IN Inventory AND/OR Deprecated_Inventory TOO

This page describes specifics about VTLUUG's current network. For an overview, see Infrastructure:Networking

Addresses

ECE DNS VTLUUG DNS IPv4 Private Internal IPv4 IPv6
luug.ece.vt.edu sczi.vtluug.org 128.173.88.78 10.98.0.11 2607:b400:6:cc80:0:aff:fe62:b
luug0.ece.vt.edu dirtycow.vtluug.org 128.173.89.244 10.98.0.7 2607:b400:6:cc80:21e:c9ff:feef:13f8
luug1.ece.vt.edu acidburn.vtluug.org 128.173.89.245 10.98.0.12 2607:b400:6:cc80:0:aff:fe62:c
luug2.ece.vt.edu meltdown.vtluug.org 128.173.89.246 10.98.0.3 2607:b400:6:cc80:0:aff:fe62:3
luug3.ece.vt.edu chimera.vtluug.org 128.173.89.247 10.98.0.10 2607:b400:6:cc80:0:aff:fe62:a
luug4.ece.vt.edu mjh.ece.vt.edu 128.173.88.104 10.98.0.254 2607:b400:0006:cc80:0230:48ff:fe7e:28da
luug5.ece.vt.edu router.vtluug.org 128.173.88.191 10.98.0.1 2001:468:c80:6103:211:43ff:fe30:a72
N/A nikonwormhole.vtluug.org 128.173.88.135 10.98.0.21 2607:b400:6:cc80:0:aff:fe62:e
mirror.ece.vt.edu N/A *Not sure if we can actually use this IP* 128.173.88.82 N/A N/A
N/A switch.private.vtluug.org (Internal v4 only) N/A 10.98.0.2 N/A
N/A spectre.vtluug.org N/A 10.98.0.4 2607:b400:6:cc80:0:aff:fe62:4
N/A cyberdelia.vtluug.org N/A 10.98.0.6 2607:b400:0006:cc80:0215:17ff:fe12:7670
N/A shellshock.vtluug.org N/A 10.98.0.8 2607:b400:6:cc80:215:17ff:fe12:7670

See Deprecated_Network for historical information.

VTLUUG

Addresses

IPv6
  • SLAAC on 2607:b400:0006:cc80::/64
IPv4
  • 10.98.0.0/16: internal NAT
    • Static IPs: 10.98.0.0/24
    • DHCP: 10.98.1.0 - 10.98.1.150
    • Iodine: 10.98.10.0/24
  • 128.173.88.1/22: publicly accessible hosts

All hosts have an internal address (static or DHCP) and some hosts also have a globally accessible address.

DNS

Shellshock also functions as DNS server for internal hosts

  • 10.99.0.1
  • 2607:b400:0006:cc80::1

VT's DNS

CNS maintains a few DNS servers on campus

  • yardbird.cns.vt.edu, 2001:468:c80:2101:0:100:0:22, 198.82.247.34
  • jeru.cns.vt.edu, 2001:468:c80:4101:0:100:0:42, 198.82.247.66
  • milo.cns.vt.edu, 2001:468:c80:6101:0:100:0:62, 198.82.247.98

See Also