fsxNet Wiki

BBS Development & Resources

User Tools

Site Tools


tutorials:crystal_bbs:part_zero

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

tutorials:crystal_bbs:part_zero [2017/03/18 20:15]
sardaukar
tutorials:crystal_bbs:part_zero [2018/03/29 01:58]
Line 1: Line 1:
-===== Crystal BBS - Part Zero ===== 
  
-===== Intro the the Telnet protocol ===== 
- 
-This is by no means an exhaustive intro to Telnet, but a few basic notions are needed. The reason we're going into Telnet at all is because at the time this is being written (March 2017) dial-up is not really a thing anymore, and of the remaining BBSs, the large majority is accessible via Telnet, with some featuring SSH as an option. ​ 
- 
-Now, a robust BBS package would be written in a way that decouples the transport interface from the rest of the system, so you can just add new transports and maintain functionality (you may want to add SSH and a Web transport in the future, for example) but since this is an entry-level tutorial, we'll focus on Telnet and not worry too much about architecture. 
- 
-Telnet is these days an obsolete protocol, since it's insecure and bound to a set of archaic notions by today'​s standards. The initial purpose of Telnet was to allow "​virtual terminal"​ access to remote systems, and it was wildly successful. First mentioned in [[http://​www.rfcreader.com/#​rfc97|RFC 97]] all the way back in February 1971, it would be formalized in [[http://​www.rfcreader.com/#​rfc854|RFC 854]] published in May 1983, along with some follow-up RFCs describing protocol extensions and negotiation options. Being a product of the 70s, security was not of huge importance to its design (same problem as SMTP and others). Bear this in mind - Telnet is *not* secure and quite vulnerable to so called "​man-in-the-middle"​ attacks, and has no provision to safeguard against it.  
- 
-So, the basic idea is that we get a character by character interface, just like a local Linux terminal emulator. ​ Think of it as a shared text interface that is constructed by the server as a result of your inputs. Our inputs are sent to the server, and we get an update of the virtual terminal'​s layout sent back (or not, in case the keystroke does not change the state of the terminal). ​ 
- 
-Along with these keystrokes and character updates being sent to/from the server, there are some special messages we can send to the server (and receive from the server) to set //special features and modes of the terminal// being simulated on our client. Negotiating these capabilities was necessary as many different terminals, with different features, were prominent in the 1970s and 80s. Examples are the VT100 and VT220 terminals by DEC. 
- 
-You can see these messages for yourself when connecting to a Mystic BBS. Let's try this connecting to the main fsxNet hub, Agency BBS. Instead of connecting directly to the BBS, start ''​telnet''​ by itself: 
- 
-<​code>​ 
-$ telnet 
-telnet> ​ 
-</​code>​ 
- 
-On the ''​telnet>''​ prompt, type: 
- 
-<​code>​ 
-telnet> toggle options 
-</​code>​ 
- 
-You should now see ''​Will show option processing.''​ as a result. This means that the normally suppressed feature negotiation messages will be shown on screen. Oh, and by the way, whenever you want to exit a Telnet connection that is hung or somehow unusable, press ''​Ctrl-5''​ to get a telnet client prompt, and then you can just type ''​quit''​ to exit. Now, on to the Agency BBS: 
- 
-<​code>​ 
-telnet> open agency.bbs.geek.nz 
-</​code>​ 
- 
-You should see: 
- 
-<​code>​ 
-Trying 219.89.83.33... 
-Connected to agency.bbs.geek.nz. 
-Escape character is '​^]'​. 
-SENT DO SUPPRESS GO AHEAD 
-SENT WILL TERMINAL TYPE 
-SENT WILL NAWS 
-SENT WILL TSPEED 
-SENT WILL LFLOW 
-SENT WILL LINEMODE 
-SENT WILL NEW-ENVIRON 
-SENT DO STATUS 
-SENT WILL XDISPLOC 
-RCVD WILL ECHO 
-SENT DO ECHO 
-RCVD WILL SUPPRESS GO AHEAD 
-RCVD DO TERMINAL TYPE 
-RCVD DO BINARY 
-SENT WILL BINARY 
-RCVD IAC SB TERMINAL-TYPE SEND 
-SENT IAC SB TERMINAL-TYPE IS "​XTERM-256COLOR"​ 
-RCVD DONT NAWS 
-RCVD DONT TSPEED 
-RCVD DONT LFLOW 
-RCVD DONT LINEMODE 
-RCVD DONT NEW-ENVIRON 
-RCVD WONT STATUS 
-RCVD DONT XDISPLOC 
- 
-Mystic BBS v1.12 A31 for Windows Node 1 
-Copyright (C) 1997-2016 By James Coyle 
- 
-Detecting terminal emulation: ANSI detected. 
-</​code>​ 
- 
-and then the BBS's main login screen. ​ 
tutorials/crystal_bbs/part_zero.txt ยท Last modified: 2018/03/29 01:58 (external edit)