This is a free Linux
shell server, which accepts donations to the Bitcoin address
below!
System
- Instant
account creation after you win a text pong game. Takes
6 to 12 minutes. See Account Creation below.
- IRC and background processes
are allowed.
- IP
addresses: Most reliable: 2001:470:1f11:209::13 and France
IP 92.222.41.125 . User contributed domain blinuxshell.ir also.
- Bandwidth is limited. Think of
not using more than 12KB/sec average, but higher burst is
okay. That is to say, please don't set up a
proxy and then stream media through it all day even
when you are not home to listen to it.
- You have 128MiB of disk space, and 6000 files max.
- $50 cash reward if you exploit root and shut the system down securely.
- 95% network uptime.
Server usually runs for months with several reboots in between.
- There's a limit of 100 processes.
- Outgoing mail port 25 is
blocked.
- The test and guest accounts
have a single space for the password and can be used by anyone but
they are blocked from network access.
- Accounts are not
deleted until necessary to free up space. If you
haven't logged in for a long time (months), the more
disk space you are using puts closer to the head of
the line of accounts that have to be erased. You may
want to not leave unpacked sources from programs
which you have compiled sitting taking up space.
Account
Creation
telnet
bitcoinshell.mooo.com
2015. Windows users can download
Dave's Telnet. It's just a .zip and doesn't need
admin rights to use. Click Connect then
Remote System... Set Host: bitcoinshell.mooo.com,
Port: 2015, Protocol:
Telnet TERM: xterm then press OK. You can also use the
Windows telnet program. You can't make multiple
accounts from the same IP address. Non
windows users can use netcat: $ nc
bitcoinshell.mooo.com 2016, but line buffering may be
a problem with the game. You
can change your password to something better once
you've logged in securely through ssh.*
Connecting
ssh
or telnet to your account name at bitcoinshell.mooo.com
(or 92.222.41.125 / 2001:470:1f11:209::13). If
your Internet connection is crippled, Port 443 can be used! If
you're using Windows, download
PuTTY
and run it. Set Host Name to bitcoinshell.mooo.com
and select SSH. FTP is
available. You can put
ftp://username:password@bitcoinshell.mooo.com/ in Windows
explorer and access all your files easily, but remember
that your password will probably be sent in the clear.
News!
Early in 2019 Bitcoinshells was reinstalled because the server was suspected to be rooted. A memory dump was collected of the old system just after booting up. Maybe there is something interesting to find in it. The root kit would likely be encryped in memory and only decrypted by a small stub of code just before use. It could also have been hiding somewhere else like in video memory and not gotten dumped. Here is the compressed dump file of the 3840MiB of usable RAM address space.
Download it here
Using your account
- screen can be used to keep a program running after you
logout, and then get back to it with screen -r. Press Ctrl+A
then ? for screen help.
- VNC! Run vncserver to start a
virtual X server, start your GUI applications, then connect
to it with vncviewer or a compatible viewer remotely as
needed. It's the same concept as using screen or tumx and
text only applications. Ask about it and questions like what
$DISPLAY= should be in the IRC channel.
- eggdrop can be
installed by running eggdrop-installer
<botname>. The eggdrop files are symlinked in to
$HOME/.eggdrop/botname. You can move, rename and make copies
of that directory. If you install your own bot, it's best to
run multiple instance the same eggdrop executable in
the same directory using a different
configuration file, such as ./eggdrop -m bot1.conf. The file
paths for log files and such in the eggdrop configuration
files should be different for each bot. If you copy your
whole eggdrop directory for each bot you end up wasting disk
space. You can also make additional eggdrop directories and
symlink all the required files in to it from your primary
eggdrop directory, as eggdrop-installer does.
- You can compile your own software. Since this is Gentoo
Linux, most development software is installed.
- You are the administrator of your user group, which has
the same name as your user name. This allows you to add
other users to it for sharing access to files. If you
created two accounts, this could be useful.
- /var/www/localhost/htdocs/users/ contains
directories where you can put files on the HTTP
server. Executables ending in .cgi
or .fcg will
run as CGI or FastCGI scripts. If you get an Internal
Server Error, check for permissions which are too
permissive, and $ tail /var/log/apache2/suexec_log.
- If you run too many processes and prevent yourself from
logging in to your account, you can fix it using the user
account creation shell.
- To delete your account, just rm -rf ~ to delete
all the files, then "$ touch DELETE_ME" (make an
empty file). Do $ cp /etc/skel/.* ~ to put the
default files back if you want to use it again.
- If you're running *nix, or OS X, or Cygwin in Windows,
graphical X11 programs can connect to your local X11 display
over the Internet, so long as they use accelerated X11
functions do not contain any animated graphics. This
includes most simple GUI applications. Just $ xhost
+bitcoinshell.mooo.com on your computer, make sure
your port TCP port 6000 is open and your X server is
configured to listen for remote connections, and then on the
shell do: $ DISPLAY="yourIPaddress:0.0" xcalc" to
test. You may explore other more advanced things like using
X11 with compression and possibly security enabled.
- If your running processes consume a lot of virtual memory,
they may get terminated. It's best to free() memory that is
no longer needed. Memory that is allocated but is not used
still counts as used virtual memory. Many programs take
advantage of Linux's lazy memory allocation and allocate
more than they need, since it doesn't actually use up memory
until it is written to.
Using your account - Installing programs on your own
Many users are used to installing
programs system wide as root, by either installing to the
usual default /usr/local/ directory or by using a system
package manager. This is one reason why VPS services are
popular. But it's not necessary to have a high maintenance
and resource inefficient VPS just to install a few programs.
For most C/C++ programs, just download
the package to your home directory and unpack it with tar
-xvjf or tar -xvzf or similar. For most
packages, you run ./configure --prefix=$HOME.
./configure --help gives you a list of package
options. The CFLAGS variable should be set for you already,
so your package will be optimally compiled. Next run make,
and then make install to install it to where you
specified with --prefix=. Some packages are more complicated
and require you to run things like autoconf and automake
first.
Often you will need to install a shared
library for your package. The instructions for installing a
library in to your home directory are basically the same,
but you have to configure your programs to look in the
directory where you installed it, else it will never be
loaded. You do this with the LD_LIBRARY_PATH environmental
variable. Type export LD_LIBRARY_PATH=$HOME/lib if
you installed your library in /home/yourname/lib. Once
that's working add that line to your .bash_profile so it
will be set automatically. If you are having trouble getting
an executable to load, you can type ldd ./yourprogram
to list all the libraries which it needs, and which ones
could not be found. If you are compiling a program which
uses the shared library, you will also have to add -I and -L
options to the CFLAGS and/or CXXFLAGS variables so that the
compiler can find the shared library's header files (.h) and
shared objects (.so). For example: export
CFLAGS="${CFLAGS} -I${HOME}/include -L${HOME}/lib". You may need to put -L in LDFLAGS too.
Nearly everything can be made to install
and run in your home directory, but it often takes a bit of
knowledge of the programming language that it is written it.
Libraries or modules for Perl & python programs can be
installed in your home directory as well. But I don't know
enough about these languages to explain how to do it.
See below about software installation
requests. If it exists in the gentoo package manager, then I
can install it for you.
Things to with your account (the
programs mentioned have been installed)
- Connect to IRC with irssi, weechat-curses,
bitchx or set up bnc, psybnc, and znc.
- Test software developing with Linux
gcc, perl and python
- Play dopewars and moon-buggy
(with extra lag)
- Troubleshoot your own IPv4 or IPv6
network from the outside.
- Connect to region aware websites
from an IP in France.
- Compile and install your own
programs, or download 32-bit Linux binaries.
- Run a game server for a classic game
or one that isn't a resource hog, such as freeciv.
- In addition to running X11 graphical
programs over the Internet, you can install a VNC server,
have your graphical programs connect locally, and then
connect remotely as needed to check up on them, similar to
how you can leave irssi running in screen. VNC is uses
lossy graphical transmission of the whole virtual screen,
and so it's more tolerant to programs with animated
graphics and such. Ask about it in the chatroom.
- I don't know how to do everything.
If you have an idea, ask about it. It can probably be set
up and instructions can be made for everyone.
- Run DOS programs virtualized
with vm86 in dosemu
at full speed, like a windowed DOS program on 32-bit
Windows.
Requests and software installation
You can see what
software is available on Gentoo Linux by running eix. eix
<name> searches for packages containing that string.
eix -S <string> searches the description of the
package. Adding -I only matches packages which are already
installed. eix -C net-irc lists all packages in the
net-irc category.
Send comments and requests to axx01
on the lavabit.com email provider. I don't mind
installing programs and answering questions. IRC: /server
oldnode.mooo.com /join #bitcoinshells. Moving away from freenode
IRC because the new management Klines IP addresses
whever they feel like it or whetever another IRC server
is mentioned. Email
axx01@nomad.ignorelist.com instead. Lavabit.com has
suspended operations.
Donate with Bitcoin!
If you leave background
processes running, and you're got money to spare, you can
donate 0.002 BTC or $1 worth each month. You can set the
last digits of the 8 decimal places to your user ID, and
sent it to 15xVQHE6Z23QuS8yiU9K3erxzZi3WYz89e . That way
in the future you may get priority above other non
donating users. Type id to see what your UID is. For UID
2222, you would send 0.00202222 BTC.
Rules
- Don't make multiple accounts to
get around resource limits, or to get a different ident
name. There is no reason to make a second account just
to run another instance of your IRC bot or similar
program. It uses twice as much disk space, and more
memory since the executable must be loaded twice. Please
check to see if the program you need is already
installed or request it to be installed if it can be, so
that all users can use a program which is loaded in to
memory only once.
- Keep in mind that running an
open proxy on standard proxy ports causes problems with
IRC.
- You can make another account if
it is needed for security or educational reasons.
- Accounts created from
suspicious (proxy) IP address may be removed with no
warning.
- Don't do anything that you
wouldn't do on your own Internet connection in France!
Abuse complaints
- Query identd to try to determine the
owner of the network socket that is causing the problem.
- You can make your own account to try
to find out which user is causing the problem.
- Then send an email to
axx01@nomad.ignorelist.com.
Why isn't HTTPS offered on the website?
Because I'm using port 443 for the alternate SSH access port. Also, I didn't think there was much need and it makes people tend to take security for granted. gmail and yahoo almost certainly share all the user's data with the government, and both of them use HTTPS. People don't care because it doesn't affect them directly (at least not that they know of). In other words, if you have something that is private, think twice about storing it on a cloud storage system. After all, this system could get cracked and the attacker could gain access to everything.
Usage examples for common tasks
This part still needs to be written!
Answers to questions may go here.
To set your account time to your local time, you need to put
something like: export TZ='/usr/share/zoneinfo/Asia/Kuala_Lumpur'
in your .bashrc file. TZ may be needed in crontab for your cron
jobs too.
To not allow others to see your .htpasswd file, do this:
$ chmod 640 .htpasswd && setfacl -m u:apache:r .htpasswd
To use mail, type mail and enter the number of the message you want to read. This is a bare bones client. You can run mutt to have a somewhat better text mail interface. You should make a basic .muttrc in your $HOME like this:
set from="\"USERNAME LASTNAME\" <USERNAME@bitcoinshell.mooo.com>"
set envelope_from=yes
To make programs start automatically when the server is rebooted:
Type $ crontab -e to open the crontab editor program. For example put '@reboot znc' on a line all by itself to make znc tart up automatically. Commands are run by a shell so anything you normally type in your shell can be put after @reboot. Press ctrl+x and then Y to exit and save from nano. Your cron entry should now be installed. $ crontab -l shows you what you have in your crontab. See $ man 5 crontab for more advanced features.
To make a command run automatically at a later time, use the 'at' command to schedule it. Type $ date to see the current date, and then $ at 18:45 . Then type in your commands followed by control+D. Those commands will run at 18h45 and any output will get sent to your local email.
mcedit (or mc) needs to be run with -x to force xterm mode. Else everyting looks blue and no text shows.
To install python packages with pip in your home directory, use --user like this: pip install --user youtube-dl. That'll put it in $HOME/.local/bin/
To fix the problem where eggdrop + tcl can't find http, make sure
eggdrop is compiled with the latest libtcl. It's tcl8.6 not tcl8.5.
eggdrop's configure incorrectly finds libtcl8.5.so. Edit the
Makefile after running configure and change libtcl8.5 to libtcl8.6
or similar. There should be three lines to edit. You can run ldd
on eggdrop to see which version of libtcl it is linked agaist.
Other shell services:
- blinkenshell.org
Not all of the others listed have been tested. They just seem good.
- http://hashbang.sh
- http://weedbox.net May have IPv6 only networking. May have false claims about supporting PHP, difficult registration, and little support.
- http://orcs.biz/offers.html ssh orc@orcs.biz will give you a
restricted shell as of 2016-7-1. The password was very easy to
guess. Someone may have changed it.
-
- shells.red-pill.eu
- Free shell accounts! A site that lists many different
places that offer, or at one point did offer, free shell
accounts.
View counter image for this
page's listing:
* sshd doesn't have a -L/path/to/create_account_program
like telnetd does. There is no way to configure an unmodified
sshd to only run a single program that I know of. Setting the
program to the shell on a password less account requires using
setuid root or sudo so it is too complicated and/or insecure.