|
Die Benutzung von OpenSSL als Client ist wesentlich komfortabler und einfacher.
Für eine Anleitung siehe bitte die andere Antwort
Ahoi!
uucp.bawue.de bietet --- für UUCP über TCP/IP --- neben dem normalen
UUCP auf Port 540 auf Port 988 ein SSL-geschützes UUCP an.
Ich möchte hier kurz beschreiben, wie man stunnel (eine freie
SSL-Software) und UUCP dafür konfiguriert. Diese Beschreibung bezieht
sich auf RedHat Linux 7.2. Es dürfte aber höchstens minimale
Unterschiede zu anderen Linux-Distributionen geben und die
Unterschiede zu anderen Unix-Varianten dürften auch nicht sehr groß
sein.
RedHat 7.2 enthält bereits stunnel. Falls es bei Deiner Distribution
nicht enthalten ist, bekommst Du es unter http://www.stunnel.org/, wo Du
auch Dokumentation findest.
Weitere Rahmenbedingungen dieser Beschreibung sind:
* Mein UUCP-System heißt dwarf und mein UUCP-Login ist Udwarf
* Ich bin Ex-Eisbaer-User, deshalb erscheint uucp.bawue.de
für mich unter dem Namen eisbaer. Für User, die von anderen Sites
(Luva, Nadia, Camelott, etc.) kommen, meldet sich uucp.bawue.de
entsprechend anders.
Die wesentliche Idee der Benutzung von stunnel ist, daß uucico an einen
freien Port auf Deinem lokalen Rechner bindet. Auf diesem lokalen Port
lauscht stunnel, verschlüsselt die Daten und leitet sie an Port 988 auf
uucp.bawue.de weiter. Dort lauscht ebenfalls ein stunnel, der die Daten
wieder entschlüsselt und an den localen uucico weiterleitet.
Der erste Konfigurationsschritt besteht darin,stunnel zu konfigurieren,
so daß es auf dem lokalen Port lauscht und die Daten an uucp.bawue.de
weiterleitet.
Dafür gibt es prinzipiell zwei Möglichkeiten: entweder man startet
stunnel als Daemon beim booten, oder man konfiguriert (x)inetd so, daß
stunnel automagisch gestartet wird, sobald eine Verbindung auf dem
stunnel-Port gestartet wird. Der Betrieb von stunnel als Daemon hat
den Nachteil, daß stunnel beim Start die Gegenseite (also
uucp.bawue.de) kontaktiert, um Verbindungsdaten auszutauschen. Es muß
beim Start von stunnel also eine Netzwerkverbindung vorhanden sein.
Ich bevorzuge deshalb den automagischen Start über (x)inetd. Das hat
zwar den kleinen Nachteil, daß dadurch ein kleiner Overhead entsteht,
aber auf einem modernen System merkt man das nur, wenn mans weiß.
Also, auf meinem System lasse ich stunnel auf Port 11112 lauschen.
Zunächst muss man dazu einen Eintrag in /etc/services hinzufuegen:
---------------
stunnel-uucp 11112/tcp # stunnel
---------------
Als nächstes muß man (x)inetd konfigurieren, dass stunnel fuer diesen
Port gestartet wird. RedHat verwendet den xinetd und ich habe ein
Konfigurationsfile "stunnel" in /etc/xinetd.d abgelegt:
-----------------
service stunnel-uucp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/stunnel
server_args = -c -v 2 -a /usr/share/ssl/certs/trusted/ -r uucp.bawue.de:988
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
bind = 127.0.0.1
}
-------------------
Der Eintrag in /etc/inetd.conf für Systeme mit inetd sieht analog aus.
Damit die Konfigurationsänderung wirksam wird, muß man (x)inetd neu starten:
-----------
killall -HUP xinetd
-----------
oder -- ganz neumodisch -- mit:
---------
service xinetd restart
---------
Die Optionen für stunnel in der Konfiguration oben besagen:
* Überprüfe das Zertifikat der Gegenseite (das ist sinnvoll,
damit nicht jemand einfach einen anderen Server unterschieben kann.
* Spezielle Zertifikate liegen in /usr/share/ssl/certs/trusted
* Leite die Daten zu Port 988 von Host uucp.bawue.de weiter.
Der letzte Schritt, damit stunnel funktioniert, ist die Installation des
Zertifikats von uucp.bawue.de in /usr/share/ssl/certs/trusted. Dazu
mußt Du die folgenden Zeilen in einer Datei mit namen "8a833e70.0"
speichern:
-----BEGIN CERTIFICATE-----
MIIF2TCCBUKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCCAVIxCzAJBgNVBAYTAkRF
MRswGQYDVQQIExJCYWRlbi1XdWVydHRlbWJlcmcxEjAQBgNVBAcTCVN0dXR0Z2Fy
dDEXMBUGA1UEChMOYmF3dWUubmV0IGUuVi4xIDAeBgNVBAsTF3NpbWFwIHNwb3Az
IHN1dWNwIHNzbXRwMRUwEwYDVQQDEwxwb3AuYmF3dWUuZGUxFjAUBgNVBAMTDXBv
cDMuYmF3dWUuZGUxFjAUBgNVBAMTDWltYXAuYmF3dWUuZGUxFzAVBgNVBAMTDmlt
YXBzLmJhd3VlLmRlMRYwFAYDVQQDEw1wb3BzLmJhd3VlLmRlMRgwFgYDVQQDEw9i
ZW5kZXIuYmF3dWUuZGUxFjAUBgNVBAMTDXV1Y3AuYmF3dWUuZGUxFjAUBgNVBAMT
DW1haWwuYmF3dWUuZGUxFTATBgNVBAMTDDE5My4xOTcuMTMuMTAeFw0wMzA5Mjcx
MzUwMzFaFw0wNDA5MjYxMzUwMzFaMIIBUjELMAkGA1UEBhMCREUxGzAZBgNVBAgT
EkJhZGVuLVd1ZXJ0dGVtYmVyZzESMBAGA1UEBxMJU3R1dHRnYXJ0MRcwFQYDVQQK
Ew5iYXd1ZS5uZXQgZS5WLjEgMB4GA1UECxMXc2ltYXAgc3BvcDMgc3V1Y3Agc3Nt
dHAxFTATBgNVBAMTDHBvcC5iYXd1ZS5kZTEWMBQGA1UEAxMNcG9wMy5iYXd1ZS5k
ZTEWMBQGA1UEAxMNaW1hcC5iYXd1ZS5kZTEXMBUGA1UEAxMOaW1hcHMuYmF3dWUu
ZGUxFjAUBgNVBAMTDXBvcHMuYmF3dWUuZGUxGDAWBgNVBAMTD2JlbmRlci5iYXd1
ZS5kZTEWMBQGA1UEAxMNdXVjcC5iYXd1ZS5kZTEWMBQGA1UEAxMNbWFpbC5iYXd1
ZS5kZTEVMBMGA1UEAxMMMTkzLjE5Ny4xMy4xMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQDRM+wmubLdLj2aANuTka4tiTd7bn6Hi4DljiP+9JPl+qcnvbGX7RwT
r/2JNxn/XZRJBRScyukrGNV2fqFmyHDdejZPo2FFbeYdx6sU5Z+TNHjYvXIqMYDF
AhFy2RpI8vqCMzQECYWFQZPOhdxgavOG+38J0woROzxW9CwjHWpkswIDAQABo4IB
uTCCAbUwHQYDVR0OBBYEFOiEVBWil1Bo8pjjFw8i/euP+7QWMIIBhAYDVR0jBIIB
ezCCAXeAFOiEVBWil1Bo8pjjFw8i/euP+7QWoYIBWqSCAVYwggFSMQswCQYDVQQG
EwJERTEbMBkGA1UECBMSQmFkZW4tV3VlcnR0ZW1iZXJnMRIwEAYDVQQHEwlTdHV0
dGdhcnQxFzAVBgNVBAoTDmJhd3VlLm5ldCBlLlYuMSAwHgYDVQQLExdzaW1hcCBz
cG9wMyBzdXVjcCBzc210cDEVMBMGA1UEAxMMcG9wLmJhd3VlLmRlMRYwFAYDVQQD
Ew1wb3AzLmJhd3VlLmRlMRYwFAYDVQQDEw1pbWFwLmJhd3VlLmRlMRcwFQYDVQQD
Ew5pbWFwcy5iYXd1ZS5kZTEWMBQGA1UEAxMNcG9wcy5iYXd1ZS5kZTEYMBYGA1UE
AxMPYmVuZGVyLmJhd3VlLmRlMRYwFAYDVQQDEw11dWNwLmJhd3VlLmRlMRYwFAYD
VQQDEw1tYWlsLmJhd3VlLmRlMRUwEwYDVQQDEwwxOTMuMTk3LjEzLjGCAQAwDAYD
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAZlx21+NU9cIuoGZSH9UK6TB5V
fmQFOJdwWu+JlHx9auEJTtELpIE9xeK2BZNFmxTf0ALlsDfea7FTQ0i2IkNgDoml
F7TdEbLldDvhppq2ksxJQIpA0dMojSW8JdaztFkmMHy9OFOMMLU+bsNTb19klvo5
Nas/2qjnTRLvOIU3+Q==
-----END CERTIFICATE-----
Die Markierungen "---BEGIN ..." und "-----END ..." müssen mit in der
Datei gespeichert werden. Auch der Dateiname ist wichtig: es ist der
Hash-Wert des Zertifikats, mit dem stunnel die Datei findet.
Falls Du ein anderes System als RedHat 7.2 verwendest, kannst Du mit
"stunnel -V" herausfinden, ob ein (anderer) Default-Pfad für Zertifkate
eingestellt ist.
So, jetzt solltest Du kurz testen, ob stunnel funktioniert.
Das kann man ganz einfach mit telnet machen:
------------
telnet 127.0.0.1 11112
------------
Öffnet eine Verbindung zum lokalen Port 11112, der dann von stunnel
weitergeleitet werden sollte. Du solltest dann folgendes Bild bekommen:
-------------
telnet 127.0.0.1 11112
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
login: Udwarf
Password: xxxxx
Shere=eisbaer
--------------
Falls das nicht funktioniert, kannst Du zu den Optionen von stunnel "-D
11" hinzufuegen. Dann siehst Du in /var/log/messages Unmengen an
Debug-Informationen von stunnel.
Wenn stunnel dann funktioniert, muss nur noch UUCP entsprechend
konfiguriert werden. Das ist der einfachere Teil der Aktion.
In /etc/uucp/sys habe ich folgenden Eintrag:
----------
system eisbaer
port stunnel
chat ogin: Udwarf ssword: XXXX
address localhost
----------
Dieser Eintrag unterscheidet sich nur dadurch von einem "normalen" UUCP
über TCP/IP Eintrag, daß als Server-Adresse localhost und als Port
stunnel steht.
In /etc/uucp/port gibt es einen entsprechenden Eintrag:
-----------
# Name der Schnittstelle
port stunnel
# Other data:
type tcp
service 11112
-----------
Auch dieser Eintrag unterscheidet sich nur dadurch von einem "normalen"
UUCP über TCP/IP-Eintrag, daß bei "service" 11112 statt uucp steht.
So, wenn Du jetzt wie gewohnt den uucico startest, wird Deine
UUCP-Verbindung automagisch von stunnel geschützt.
Viel Spaß!
Michael
Bei weiteren Fragen: admin@bawue.de
|