Difference between revisions of "Infrastructure"

From the Linux and Unix Users Group at Virginia Teck Wiki
Jump to: navigation, search
imported>Echarlie
(Website details)
 
(170 intermediate revisions by 8 users not shown)
Line 2: Line 2:
  
 
== Physical Infrastructure ==
 
== Physical Infrastructure ==
[[Infrastructure:Cyberdelia|Cyberdelia]] is the only connected physical machine right now. It contains 48 GB of memory with 4 ethernet interfaces; only eth4 is connected and is attached to br0. All hosts are on the ECE network behind router.ece.vt.edu, a gateway featuring ARP proxying but no IPv6. For global DNS changes under ece.vt.edu, server room access, and getting hosts added to the ARP proxy, contact Branden McKagen.
+
=== NFS Hosts ===
 +
* [[Infrastructure:Dirtycow|dirtycow]] - Primary NFS server, 8x2TB raidz2 array
 +
* [[Infrastructure:Cyberdelia|cyberdelia]] - OFF, 7x1TB raidz2 array, sitting on shelf instead of shelf
  
Virginia Tech has started blocking inbound ports 22 and 3389 and outbound port 25 at the campus border, in a move some are 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. Acidburn currently listens on 443 as well.
+
=== VM Hosts ===
 +
* [[Infrastructure:Meltdown|meltdown]] - Primary VM/docker host
 +
* [[Infrastructure:Spectre|spectre]] - Secondary VM/docker host, for example user VMs
  
Most other VTLUUG-owned servers are currently stored in Ali's basement, with the exception of [[infrastructure:sunway|sunway]] and a SuperMicro server, which were all transferred to WUVT.
+
=== 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
 +
[[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 3128 as well.
 +
 
 +
=== Other hosts ===
 +
* [[Infrastructure:Joey|joey]] used to be the router, but is no longer in use due to a failure of the single drive
 +
* [[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 [[VTLUUG:Strategic_plan]] for things we plan to do in the future.
  
 
== On the Network Architecture ==
 
== On the Network Architecture ==
 +
''Further Information: [[Infrastructure:Networking]] and [[Infrastructure:Network]]''
  
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 to the internal network on the 10.99.x.x/24 subnet. In the future, it may be wise to bridge this network to an ethernet port on cyberdelia, so that a switch can be used to network our other services. When we have rackspace to do so, VPN/[[Iodine]] access to the internal network will be necessary.
+
[[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.]]
 +
 
 +
 
 +
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, [[Infrastructure:IPsec|VPN]]/[[Iodine]] should be used.
 +
 
 +
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]],
 +
[[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.
  
 
== Services ==
 
== Services ==
=== Critical ===
+
''Further information: [[:Category:Services]]''
* Acidburn
+
 
 +
* [[Infrastructure:Acidburn|acidburn]]
 
** Shell server
 
** Shell server
 
** [[Email]]
 
** [[Email]]
 
** [[Wadsworth]]
 
** [[Wadsworth]]
* Razor
+
** [[Iodine]]
** Ldap
+
* [[Infrastructure:Chimera|chimera]]
* Milton/Sczi
+
** FreeIPA
 +
* [[Infrastructure:Sczi|Sczi]]
 
** Website
 
** Website
*** Wiki
+
*** [https://hokieprivacy.org hokieprivacy]
*** Main Page
+
*** [https://bash.vtluug.org vtbash]
*** snapfeed
+
*** [https://vtluug.org Main Site]
*** linx
+
*** This wiki and [[gp:Main Page|Gobblerpedia]]
*** public file shares
+
*** dex, for authing with the wikis
** git
+
*** https://vtluug.org/users/~$user - User homepages
* Cyberdelia
+
*** [https://search.vtluug.org 4get] a metasearch engine
** VMs for projects
+
*** [https://git.vtluug.org Gitea] a Github-esque git server with dex/LUUG OpenID auth
** other services
+
*** [https://element.vtluug.org element], a Matrix client
** Tank
+
* [[Infrastructure:Nikonwormhole|nikonwormhole]]
*** NFS
+
** AdGuard DNS blackhole
*** milton_srv (website files)
+
* [[Infrastructure:Dirtycow|dirtycow]]
 +
** Storage for all primary services
 +
** NFS - ZFS pool name is cistern
 +
* [[Infrastructure:Meltdown|meltdown]]
 +
** VM host for above services
  
=== Other (not all functional) ===
+
[[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.
* LAFS - Tahoe
 
* Jitsi Meet
 
* User websites
 
* Diaspora*
 
  
 
== 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 milton. These sites are currently functional:
 
 
* gobblerpedia.org
 
* gobblerpedia.org
 
* hokieprivacy.org
 
* hokieprivacy.org
* linx.vtluug.org
 
* snapchat.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
 +
* vtluug.org/users/~$user
  
All of these sites exclusively allow for the use of tls connections. Hokie Privacy has a cert from letsencrypt,
+
All of these sites exclusively allow for the use of TLS connections. All services use automatically updated
while all other services are verified by StartCom.
+
letsencrypt certs.
 
 
Currently, milton has '''no startup script''' for the website. If things go down, someone has to run
 
<pre>root@milton:/srv/http/vtluug.org# sudo -u www-data uwsgi --yaml uwsgi.yml</pre>
 
in a tmux session, to restart uwsgi.
 
  
 
==== Main Page ====
 
==== Main Page ====
 
+
The main VTLUUG page was scraped from the [[w:Internet Archive|Internet Archive]] and added created as a github page at
It currently appears that the main vtluug page (mostly written in php), is or was managed from [https://vtluug.org/atrium Drupal] as a
+
[https://vtluug.github.io vtluug.github.io], and is reverse-proxied through [[Infrastructure:Sczi|sczi]].
backend, but for that to function, mysql needs to be running.
 
 
 
uwsgi and php make up most of the important features of the website in unknown ways. This was configured by [[user:mutantmonkey|James]]
 
at some point, we presume, but he is not available to provide more information on the setup.
 
  
 
==== 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 (as opposed to the default include of apache2, demanded by the Debian package).
+
===== Gobblerpedia =====
Postgres is used for the database management, AFAIK, and authentication is through LDAP.
+
Runs on the same Mediawiki instance as this wiki. Similarly to LUUGWiki, only Google accounts or the admin user are supported logins.
 
 
==== Gobblerpedia ====
 
 
 
All but disabled currently, due to spam. Runs on MediaWiki
 
 
 
==== 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].
 
 
 
=== HIstorically ===
 
 
 
Beyond these, we have data and nginx configurations for these (deprecated) sites, which
 
were previously hosted on milton:
 
* ccdc.vtluug.org
 
* foodfor.vtluug.org
 
* jessicaandchristopher.net
 
* nagios.vtluug.org
 
* tahoe.vtluug.org
 
* vtcybersecurity.org
 
* cdn.vtluug.org
 
* git.vtluug.org
 
* randynance.info
 
* uniluug.org
 
* map.vtluug.org
 
* security.ece.vt.edu
 
* users.vtluug.org
 
* wargame.vtluug.org
 
* munin.vtluug.org
 
* vtbash.org
 
* webchat.vtluug.org
 
 
 
Further, we have server data for multiple versions of dokuwiki and mediawiki, a wordpress instance, "newsblur", and "bitcoin",
 
and for a time had a static version of vtbash.org hosted at bash.vtluug.org.
 
 
 
VTLUUG previously supported gopher protocol over Milton, with a static version of the website available, and ran git and cvs servers,
 
with git presumably being world-access through [https://github.com/tv42/gitosis gitosis].
 
 
 
vtluug.org/public/$user/ was previously a source directory of files placed in a user's $HOME/public directory on NFS.
 
 
 
VTLUUG was also previously responsible for mirror.ece.vt.edu, and still has the ip allocation for that DNS entry.
 
 
 
=== Considerations for the future ===
 
 
 
It would be preferable to keep all existing sites functional. [[user:andreim|Aam]] suggested the use of [https://caddyserver.com/ caddy]
 
to replace nginx, especially on static sites, because it provides automatic letsencrypt.
 
 
 
It is also important to ensure there are '''startup scripts''' for sczi, so that a reboot of it doesn't result in a 10-hour website outage.
 
 
 
==== Encryption ====
 
All sites should move to automatic letsencrypt certificates within the next few months. letsencrypt is still in beta, but it provides fully functional
 
and low-hassle 3-month certificates. They will have integration for nginx soon, which will decrease the complexity of getting certs.
 
 
 
It may also be of interest to the club to revive [[monkeysphere]] signing on the servers.
 
  
==== Project Hosting ====
+
=== Needs Restoration ===
 +
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.
 +
* tahoe.vtluug.org - [[user:mjh|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
 +
* [https://github.com/vtluug/campusmap map.vtluug.org] - [[Openstreetmap|OSM]] based map of VT
  
Most vtluug internal projects (e.g. HokiePrivacy) are currently hosted on git repositories on milton. How to move forwards with these is still
+
=== Historically ===
indeterminate.
 
  
For public hosting, there has been some conversation about using [https://github.com/gogits/gogs Go Git Service (gogs)], for public,
+
See [[Dead_projects]] for historic information
www-viewable git repositories.
 
  
==== Gobblerpedia ====
+
=== Goals ===
 
+
See [[VTLUUG:Strategic_plan#Web_Services]] for future goals involving web services
[[gp:Main page|Gobblerpedia]] is effectively non-functional currently, because account creation was disabled, to prevent spam. This needs to be addressed by adding captchas which are blacksburg-specific, limiting account creation access to local IP addresses, or enabling some form of
 
LUUG-managed account creation. One suggestion was using CAS/Login services to authenticate, however that makes it difficult for Blacksburg
 
residents to add content, and has other disadvantages.
 
 
 
==== VTLUUG Main Page ====
 
 
 
This needs to be kept up-to-date, and have some way of adding calendar information.
 
 
 
==== VTLUUG Wiki ====
 
 
 
Meeting creation script needs to be re-implemented.
 
  
 
== Addressing ==
 
== Addressing ==
 +
VTLUUG currently has DNS with gandi.net. Message officers for access (please don't be scared :D).
  
https://linx.vtluug.org/ips1.txt
+
We currently hold the IPv6 prefix <code>2001:470:8:6d9::/64</code> from HE's allocation due to our tunnel.
 
+
When CNS finally sets up prefix-delegation, we might be able to get something from <code>2607:b400::/32</code>,
{| class="wikitable"
+
which is VT's largest allocation.
!globally addressable
 
!ECE DNS
 
!Name
 
!fucntion
 
!internal address
 
|-
 
| 128.173.88.78
 
| luug.ece.vt.edu.
 
| [[Infrastructure:sczi|sczi]]
 
| New webserver
 
| 10.99.0.27?? (Currently DHCP)
 
|-
 
| 128.173.89.244
 
| luug0.ece.vt.edu
 
| [[Infrastructure:cyberdelia|cyberdelia]]
 
| VM Host
 
| 10.99.0.1
 
|-
 
|128.173.89.245
 
| luug1.ece.vt.edu.     
 
| [[Infrastructure:acidburn|acidburn]]
 
| shell server
 
| 10.99.0.4
 
|-
 
| 128.173.89.246
 
| luug2.ece.vt.edu.
 
| [[Infrastructure:milton|milton]]
 
| Old webserver
 
|
 
|-
 
| 128.173.89.247
 
| luug3.ece.vt.edu.
 
| [[Infrastructure:razor|razor]]
 
| LDAP
 
|
 
|-
 
| 128.173.88.104
 
| luug4.ece.vt.edu.
 
| <s>akhaten</s>
 
| currently pfsense (global v4 subject to change)
 
| 10.99.0.104
 
|-
 
| 128.173.88.36
 
| mirror.ece.vt.edu.
 
| mirror
 
| not in use
 
|
 
|-
 
| 128.173.88.191
 
| luug5.ece.vt.edu.
 
| [[Infrastructure:Temp88191|router]]
 
| not in use
 
|
 
|-
 
|
 
| 172.xx.xx.xx
 
| snapfeed
 
| REDACTED
 
|
 
|-
 
| pfsense/443
 
| jitsi.vtluug.org
 
| jitsi
 
| [[Jitsi]]
 
| 10.99.0.101 (static lease)
 
|-
 
|None
 
| 172.16.10.13
 
| archiveteam-warrior
 
| [http://archiveteam.org/index.php?title=ArchiveTeam_Warrior Archive Team Warrior]
 
|
 
|}
 
 
 
== Other IPs ==
 
IPs we had at some point (by reclaiming CVL IPs, etc), or are mentioned in /etc/exports on Cyberdelia
 
* 128.173.235.22 (Something for WUVT) (IP currently in use)
 
* 128.173.88.161 (security.ece.vt.edu)
 
* 128.173.88.145 (cvl05.ece.vt.edu)
 
* 128.173.88.131 (dog.ece.vt.edu) (IP currently in use)
 
 
 
== Network Diagram ==
 
  
This is the projected diagram of our network, once sczi is fully deployed and milton is phased out. At this time, razor may also lose its global v4 address.
+
{{:Infrastructure:Network}}
[[File:Infra2016-network.png]]
 
  
 
[[Category:Infrastructure]]
 
[[Category:Infrastructure]]
[[Category:VTLUUG Projects]]
+
[[Category:VTLUUG:Projects]]
[[Category:2016]]
 
 
[[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