Introduction
This chapter describes how to configure a small Internet
Service Provider (ISP) accesable through the telephone line.
In this chapter, the computer holding the ISP is named the
server
and the computer that want to make use
of such services is named the client
. We assume
that both server and client computers have been installed with
&TCD; (release 5.5).
In this configuration, both client and server computers use
modems to transmit data in form of sound through the telephone
lines system. The dial-up connection described in this chapter
could be a choise when the only communication medium you have
access to is the telephone lines system.
This configuration emerged from the need of sharing
information with my friends in a country where Internet access
is limitted to statal organizations and controlled therein
with an increasing crazy-obsession. However, in this
environment, the telephone lines system provides an
alternative platform to interchange information in a
point-to-point fashion. It can be used to create small social
groups that can share ideas safetly (e.g., by using encrypted
point-to-point connections). To be more specific, the goal of
this work would be to provide public access to an ISP where
people can express themselves freely and develop their
personal projects (e.g., through mailing list).
Even this configuration tries to reduce the lack of
communication, there are limitations around it that we cannot
take off, yet. The following list shows what these limitations
are:
Only one connection (of 15 minutes) is possible at a time.
More than 3 consecutive connections from the same phone number
in a time range of 60 minutes means that that number is
attacking the ISP to provoke a Denying of
Service
(DoS) attacks. In such cases, the phone number
originating the phone call will be denyed from realizing
further phone calls onto the ISP in the next 15 minutes. If
after 15 mintes, 3 new consecutive connections are detected
from the same phone number than before, the delay time will be
duplicated on each consecutive interval (e.g., 15*1 for the
first time, 15*2 for the second time, 15*3 for the third time,
and so on).
In order to achieve an acceptable degree of efficiency when
controlling consecutive connections from the same phone
number, it is required that both the client's phone number and
connection time be registered somehow in the server (e.g., Is
it on pppd's log file?). Without such information it would be
very difficult to achieve any prevention against DoS attacks
originated from incoming calls.
The ISP is isolated from Internet, so it is not possible to
provide Internet access through the ISP. For example, don't
ever think you will be able to send international e-mail to
Gmail or Yahoo, nor visit web sites like Google or Wikipedia.
I really would like to provide such accesses, but without a
link to Internet I don't have where to send your requests.
The information generated inside the ISP is jailed to it. This
way, it will be available to people registered inside the ISP
only (e.g., through the web interface).
The implementation of services that required persistent
connections (e.g., chats) will not
be considered as a practical offer. Instead, only
asynchronous services (e.g.,
e-mail) will be supported. This
restriction is required to reduce the connection effective
times. For example, consider an environment where you connect
the ISP to send/receive e-mails only and then quickly
disconnect from ISP to release the line for others to use.
There is no need for you to be connected at the same time
someone else sends you an e-mail, this in order for you to
receive it. E-mail messages sent to you will be available in
your mailbox the next time you establish a point-to-point
connection with the ISP and use your mail client to send and
receive new messages. Likewise, you don't need to be connected
to the ISP in order to write your e-mail messages. You can
write your messages off-line and then establish connection to
send it whe it be ready.
Your user profile will be automatically removed from the ISP
when no effective point-to-point connection be established by
you in a period greater than 7 days since the last effective
point-to-point connection you established to the ISP. When
your user profile is removed, you will need to get registered
again (i.e., create a new user profile) using the web
interface provided by the ISP.
When a user receive messages, the user's e-mail client must be
configure to move the e-mail messages from server to client.
This is forced in the ISP computer by denying user's from
accessing the IMAP service. Only POP service will be
available. This restriction is required to save disk space on
ISP computer.
I'm very sorry about these limitations, but this is the best I
can offer with one PC, one modem, and one single telephone
line. If you think this configuration can be improved somehow,
please send me an e-mail to al@example.com.
Notice that, for any mail to reach my mailbox, you should be
registered inside the ISP first and used the ISP mail server
to send the mail. I don't answer phone calls personally, the
phone is very busy answering point-to-point connections ;).
In order for you to share information with others, it is
required that both you and the person you want to share
information with, have an e-mail address registered inside
ISP. This registration process is realized through a secured
web interface accessable through an encrypted connection. The
web interface provided should permit everyone to update or
delete their personal profiles. All actions realized through
this web interface must be simple enough to be achieved in
less than 15 minutes (the time you have before the
point-to-point connection be closed by the ISP).
Inside the ISP, user information is stored inside an LDAP
server. The web application manipulates LDAP records and all
related files inside the operating system that make possible a
user to establish a point-to-point connection to the ISP, as
well as registering, updating or deleting its profile inside
the ISP. Care should be taken to prevent one user to
modify/delete profiles from other users. The user's profile
administration is individual to each user using the user's
identity as reference. The user's identity is determined by a
username (e.g., the e-mail address) and a password. The LDAP
server will be available for everyone to consult from their
mail clients. Inside the web application, verifications must
be included to avoid duplicated values, invalid characters and
similar stuff.
Inside the ISP, all related subsystems (e.g., Postix,
Cyrus-Imapd and Saslauthd) must retrive user information from
LDAP server. Likewise, the mailbox administration must be
automated based on the users in the LDAP server. The web
application must be able to be aware of all files related
inside the infrastructure in a way that administration tasks
can be automated and presented friendly to end users (this
will required the web application to run some program that
needs root privileges =:-|). The whole process would be as
follows:
Establish a point-to-point connection to ISP, as described in
.
Register a new user profile through the web application
provided by the ISP.
Configure your workstation using the information provided as
result of a successful registration in order to start using
the services provided by the ISP you recently get registered
in.
In case some kind of force intend to confiscate me the
computer where the ISP is installed in, it should be noticed
that the whole ISP filesystem is encrypted in a way that it
would be very difficult to get any valid data from it, once it
be physically compromised. The encryption feature is applied
before the operating system starts. In this configuration a
password is required to decrypt the operating system
filesystem in order to be able of booting it up as expected.
If the password is not provided (or is incorrectly provided),
the only thing you get is a prompt to enter a password :-).
With this action I pretend to protect my work from the Cuban
political system. Presently (Oct 1, 2011), legal resolutions
related to Information Technologies (ITs) have been only
specified to Cuban State's organizations in a very
contradictory and restrictive way (see resolution 149 from
MIT). There is no public resolution covering management of
ITs at a level of natural citizens. The legal conception, as
far as I can see, is that no one can be independent from the
Cuban State (i.e., you need to work for it somehow and be
limitted to its working conditions). If you decide to work
for your own (i.e., based on a philosophy of life different
from that followed by the Cuban State) you will be considered
a dissident and will be rejected by a highly oppressed and
armless society. Because Cuban natural citizens don't count
with a legal definition about how to use ITs individually from
the Cuban State's point of view, it is very difficult to be
sure about the ground we are putting our feet on (e.g., the
State could use its force to affect our creation based on its
idea of appropriate usage
, national
security
, etc.). This way, dramatic measures like
encryption need to be considered in order to protect our
natural freedom of sharing our creation in whatever way we
decide to do it.
Another important matter to be aware of is about the ISP's
policy. In order to keep freedom, it is required to define
the boundaries of that freedom so you can determine and judge
it. Absolute freedom would end up in total destruction and
absolute restriction would suppress the natural freedom of
human beings to express themselves individually. So a middle
point will be used. For example, if you think you have the
freedom to abuse the ISP I provide (e.g., by spamming it, or
by provoking denying of service attacks) you probably do, but
consider that I will make use of my freedom to immediatly
banish you for trying to destroy my work. On the other hand,
if you show yourself as an educated and good-will person with
solid ideas and reasons to share, you'll be totally welcome to
stay.