This is the download area for my Firewall-Piercing Tool Kit, as documented in my Firewall Piercing mini-HOWTO.
Many people have experienced problems downloading cotty.c.gz; however, THE FILE SERVED IS CORRECT: with lynx, wget, w3m, or any sensible browser, you'll download it correctly. The problem really is with Netscape and Internet Explorer! Netscape 4 is so dumb as to save the compressed file as cotty.c; just rename it back to cotty.c.gz and gunzip it. IE 5 will delegate file handling to WinZip if installed, but WinZip is unable to handle a .gz file (it only actually knows .tar.gz) and will confuse the issue. If you're experiencing these problems, just you stop using these evil proprietary buggy bloated browsers!
In case you're not sure you have downloaded a file correctly, here are MD5 checksums of the files (obtained with md5sum), together with description of their contents:
0113419b6f1744f4ae714748c629ded7 Firewall-Piercing.en.sgmlMy latest and probably last english version of the Firewall Piercing mini-HOWTO, v0.97. Hopefully, someone else will take it over.
It is the source I sent to the LDP. Compile it with
jade -t sgml -d /usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl Firewall-Piercing.en.html
a039627434bc13c5e291f51efde6f495 Firewall-Piercing.fr.sgmlMy latest french version of the Firewall Piercing mini-HOWTO, v0.4+.
It was lagged far far behind the english version,
and I do not intend to update it,
but at least it's here, in case anyone intends to take it over.
(Actually, ask
Edouard about his translation.)
ce857c509b86e5a98008454ef13cb61b fwprc-0.3e.gzThe firewall piercing script I used to use in an unnamed research center whose network was administrated by sissies.
The well commented code is the documentation.
Note that as as compared to the Firewall-Piercing mini-HOWTO,
it uses "local" for the client side, and "remote" for the server side.
9924a62e3f784b35d68cf6fe23eb90aa cotty-0.5.c.gzA small command-line utility to manage pseudo-terminals, used by fwprc. It allows users to run processes communicating with each other through their tty as opposed to files, pipes, or sockets.
Its original use was to build a VPN (virtual private|public network), as in
cotty -d -- pppd silent 192.168.0.1:192.168.0.2 \ -- ssh -t root@over.the.rainbow pppdbut it can be used to drive other programs that insist on being attached to a terminal, such as telnet or pptp.
On recent systems, it compiles with the nicer UNIX98 /dev/ptmx vs /dev/pts/XX API by default, although it supports the old BSD-style /dev/pty vs /dev/tty interface.
The well commented code is the documentation.
cotty is just a simple way to connect two programs; it is not designed for three-program interaction. For three-program interaction I recommend expect (for simple stuff, like logging into a terminal-based service), libexpect with a real language like ocaml for complex stuff (e.g. semi-automated nethack player), or maybe even rewriting a cleaner libexpect if it isn't enough, and emacs if one of the three programs is actually the human.
I consider cotty a tribute to the braindeadness of Unix:
a lot of complexity to do something basically trivial.
3867ef57aa140f6c8f512e46378a7500 getroute-1.2a.pl.gzA script to identify the current route to a host or network.
For use by /etc/ppp/ip-up when using a VPN over an IP connection, whereas the IP relay must still be routed, even though it is in a network the other hosts of which are routed through the VPN. One notable use, besides piercing a firewall, is when making a VPN into a network so as to gain access to services that are only accessible to inside hosts.
Relies on the Linux 2.x /proc/net/route interface.
No documentation except sample uses in the Firewall-Piercing mini-HOWTO. UTSL.