Linux: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 222: Zeile 222:


== T-DSL, leider muss geschraubt werden. ==
== T-DSL, leider muss geschraubt werden. ==
Bei einer festen IP von T-Com (leider nur im Buisiness Tarif der t-com möglich) muss der Zugangsname von Hand verändert werden:
  joe /etc/sysconfig/network/providers/tonline-dsl-business
  USERNAME='feste-ip/78HSJHJ736AL@t-online-com.de'


   (nicht mehr ab SuSE 9.0)
   (nicht mehr ab SuSE 9.0)

Version vom 14. Oktober 2005, 10:53 Uhr

Zur Verwendung des OrgaMon im Netzwerk, (also mit mehreren Arbeitsplätzen) sollte ein Linux Server mit "SuSE Linux Proffesional 9.x" verwendet werden. Diese Dokumentation beschreibt viele Apsekte dieses mächtigen Serverbestriebssystem im Zusammenspiel mit dem OrgaMon. Der Server stellt dann Dateiablage-Platz (via Samba) und einen Datenbankserver-Dienst (via Firebird) zur Verfügung, des weiteren sorgt er sich um eine zuverlässige InterNet Verbindung und Namensauflösung. Der Linux Server betreibt den WebShop und sorgt für die korrekte Zeit im Netz.

(rsync) als Backuplösung
(ntp) immer genaue Uhrzeit
(named) Namensauflösung
(Samba) Festplatte im Netz mit samba
xinetd als Port Redirector
(postfix) Mailserver
(mysql) - Datenbank
(firebird) - Datenbank
(Wiki) Server Installation
(WOL) Wake On LAN(tm)
(DHCP) Boot- Installations- DHCP- Server

Linux Grundwissen

Archive

bunzip2 <file>     // auspacken einer .bz2 Datei
gzip -d <file>     // auspacken einer .gz Datei
tar -xf <file>     // auspacken einer .tar Datei

System

halt               // Ausschalten (Herunterfahren)
reboot             // Neustart
joe                // ein textbasierter Editor
passwd             // ändern des eigenen passwortes
# !/bin/bash       // erste Zeile von Shell-Scripten 
kwrite             // ein grafischer Text/Script-Editor! (Nein vi ist nicht mein Fall!!)
ps x               // ausgeben aller laufenden Programme
                   // ev. mit z.B. "| grep smb" vervollst䮤igen
mc                 // dateimanager (wegen filefind)
df                 // Diskfree, zeigt Belegung/Mounting der Festplatten an
                   // Summer der Bytes freien Festplattenplatzes
du -s -h /pfad     // Summe aller Bytes in einem Pfades angeben
uname -a           // anzeige der aktuellen Kernel Version
uptime             // Anzeiger der Last und der Betriebsstunden
pgrep sshd         // Anzeiger einer Prozess ID, Prüfen, ob ein Prozess läuft

Netzwerk

/var/lib/dhcp/db/dchp.leases // Ermittlung der MAC Adressen angeschlossener Systeme
 

Traditionelles

./configure        // typische 3er Befehlskette zum compilieren&installieren eines open source
make               // projektes.
make install
 

Spezielles

sensors            // Temperatur der CPU und L?unktion pr?Details weiter unten)
dmesg              // auflisten, was die Hardware so zu bieten hat
 
play /opt/kde3/share/sounds/KDE_Beep_Beep.wav  
                   // Ausgabe von Musik
  
ldd -v <programmname> 
                   // kann auf einem System, auf dem alles l䵦t :-( gute auskunft
                   // geben was das "Programm" so alles noch mit l䤴 - bei einem 
                   // firebird ist so ziemlich
                   // interessant. Der "eigentliche" Server ist eingentlich 
                   // "libfbembedd.so", dieser wird
                   // hochgezogen, wenn fb_inet_Server geladen wird.

Downloadquelle f?lende Pakete: ftp.leo.org/pub/comp/os/unix/linux/suse/people/nashif/SuSE/SLES/x86

         oder bei rmpseek.com

Temperaturen überwachen mit sensors

1) Paket "sensors" muss installiert sein 2) Folgender "Setup" muss durchlaufen werden:

Zitat [1]

Im Prinzip l䤴 man einfach nur das Kernelmodul "i2c_sensor" mit

 modprobe i2c_sensor 

Danach f?an das Script

 sensors-detect 

aus. Bei dem Script habe ich eigentlich nur solange die Enter-Taste gedr?bis es durchgelaufen war. Nat? habe ich die Ausgaben gelesen, aber ich w?nicht, warum ich schlauer sein sollte, als die Leute, die die Software entwickelt und sinnvolle Werte angenommen haben. Das Script erzeugt die Datei /etc/sysconfig/lm_sensors. Ist dies getan und hat das Script entsprechende Chips gefunden und dort eingetragen, dann kopiert man wie angegeben das Startscript r?

 cp /usr/share/doc/packages/sensors/prog/init/lm_sensors.init.suse /etc/init.d/lm_sensors 

Wer m?e, dass nach jedem Neustart die Möglichkeit besteht, CPU-Temperatur und andere Messwerte zu Ü¢erwachen, der sollte noch

 chkconfig --add lm_sensors 

ausf? Eigentlich ist damit alles getan. Nach einem entsprechenden Start mit

 /etc/init.d/lm_sensors start 

kann durch Aufruf von

 sensors 

der Gesundheitszustand der Hardware abgefragt werden.

Erster (Kalt-)Start

Rechner an, gleich ins System-Bios gehen, dazu <Entf> dr? wenn die "Drives"-Erkennung l䵦t. Im BIOS nun ->Advanced?!->Boot Device 0-> von "HDD-0" auf "CDROM" umstellen, damit der Rechner von der DVD bootet. (das geht bei jedem BIOS anders) ->Suse 7.3 DVD rein

   (oder 8.0, sorry dann alles bissel anders: aber besser!!)
  ->Save and exit
  ...Rechner bootet neu, und macht den ersten (Warm-)Start

Suse DVD bootet ...

"Manual Installation" best䴩gen. Bei den Softwarepaketen, bitte folgendes 䮤ern: "+Server", "+Entwicklung", "+erfahrener Benutzer".

System->System->Boot->SPLASH->no das OS nur in den Textmodus (Console) booten lassen. Und den grafischen Login-Schirm unterdr?

a)

 joe /etc/inittab 
 aus
 id:5:initdefault
 macht man
 id:3:initdefault

b) in den Bootoptionen soll er einfach im Textmodus bleiben:

vga=normal splash=0


Mist: jetzt steht er zwar im Text Login aber per VNC kann man sich nicht mehr einloggen. Ich muss erst mit "init 5" in den Run-Level 5 wechseln. Warum?

Festplatte einrichten

   Also wir machen 3 Partitionen:
   "boot"  kleine Mini-Partition: damit das booten immer klappt (ext2 oder ext3-Dateisystem)
   "swap"  mittlere Partition: da werden RAM Speicherbereiche rausgeschrieben,
           um Platz zu machen f?htigere Daten.
           Gr?= RAM * 2 oder mehr, aber immer gr? als das RAM!
   "linux" eigentlicher Betriebssystem Bereich und Anwender und
           Benutzerbereich
   Bei "Festplatte vor ..."
   den
   [X] Benutzerdefiniert w䨬en!
   3 Partitionen anlegen:
   0..2      Linux native  (ext2 oder ext3)       mounting-point "/boot"
   3..84     Linux swap    -----        ----------------------
   85..5004  Linux native  (!reiserfs!) mounting-point "/"
  2. Platte mal noch offen lassen

"Standard mit Office" installieren

  "Benutzername usw." (sorry weis nicht mehr genau wann das kommt).
  Rechnername: linus
  pwd f? root (=Administrator im win32 Dialekt) erst mal auch so eingeben
  pwd: linus
  "Monitor 䮤ern"
  EIZO-F56 aber beachten dass die vorgeschlagene Wiederholfrequenz
  herunterkorrigiert wird. etwa 70 Hz-72 Hz, was der jeweilige Monitor
  vertr䧴.
  "Hardware konfigurieren" w䨬en!
  ->Netzwerk,
    erste Netzwerkkarte
    100 MBit-Karte: KarteIP fest, zb. 192.168.100.72, Maske so ok
    "Rechnername und Nameserver" w䨬en!
     ->name:    linus
     ->dom䮥:  pcworld
       NameServer: 194.25.2.132 (T-online)
    zweite Netzwerkkarte
    10 MBit-Karte: KarteIP fest, zb. 192.168.99.72, Maske so ok
                                     (anderes logisches Netzwerk!)
    "Rechnername und Nameserver" diesmal nicht notwendig!
  ->ISDN
    Euro-ISDN,Deutsch,t-online usw.
    Zugangsdaten f? flat bereithalten
  ->Sound
    normales Setup->meist auf 100% Lautst䲫e anpassen, da wir sonst
    spä´¥r nix mehr h?.

vor dem ersten Start(Logout,beenden,neustarten)

  ins bios gehen (Taste <Entf>), Bootlaufwerk
  von "CDROM" auf "HDD-0" umstellen! Damit der Rechner niemals versehentlich
  von CD-bootet.
  immer als root einloggen

Pakete nachinstallieren

  (als (Benutzernamen=)root eingelogged?!)
  [suse->]system->configuration->yast 2->Software deinstallieren/installieren
                                         (Software install/remove)
  ->ev. Pakete "suchen" knopf, names des Paketes angeben
    doppelklick auf das paket
  X samba	serie: n
  X netatalk	serie: n
  X vnc	serie: xap
  Folgende Pakete m?deinstalliert werden:
  7.3
  ===
  D Personal-Firewall
  D SuSE-Firewall
  D ipchains

T-DSL, leider muss geschraubt werden.

Bei einer festen IP von T-Com (leider nur im Buisiness Tarif der t-com möglich) muss der Zugangsname von Hand verändert werden:

 joe /etc/sysconfig/network/providers/tonline-dsl-business

 USERNAME='feste-ip/78HSJHJ736AL@t-online-com.de'


 (nicht mehr ab SuSE 9.0)
  Details auf http://sdb.suse.de/en/sdb/html/cg_pmtu2.html.
  a) editiere folgende Datei, (hier z.B. mit KWrite)
    kwrite /etc/ppp/options
  suche und setze die beiden werte wie angegeben, Ist diese Option durch ein
  "#" auskommentiert, den "#" wegl?en und dadurch die Option aktiv machen.
    mtu 1492
    mru 1492
  b) editiere folgende Datei, (hier z.B. mit KWrite)
   kwrite /etc/ppp/peers/pppoe
  suche und setze die beiden werte wie angegeben, Ist diese Option durch ein
  "#" auskommentiert, den "#" wegl?en und dadurch die Option aktiv machen.
    mtu 1492
    mru 1492

Netzwerk Verbindung prüfen

Ein erfolgreicher PING ist Grundlage aller weiteren Forschungen bei Netzwerkproblemen.

  auf einem win32 Rechner jetzt den Linux Server anpingen (per IP, nicht den )
  mehr Details siehe 22)
  ping 192.168.115.90

Steht die Verbindung, so stellt sich die Frage der Zuverlä³³igkeit und Geschwindigkeit. Ruhige Momente im Netzwerk sollten genutzt werden, um mit "iperf" die Up/Down Geschwindigkeiten zu ermitteln.

// auf dem Server
iperf -i
// auf dem Client
iperf -c <ServerHostName> -d

Das Programm gibts es hier: http://dast.nlanr.net/projects/Iperf/

Beispielhaft habe ich 2 TDSL Vertr䧥 ausgemessen. Man sieht ganz deutlich, dass bei gleichzeitiger Nutzung von up und down Stream die Bandbreite zum Teil dramatisch einbricht. Hier scheint besonders die Leitungsqualit䴠eine Rolle zu spielen.

TDSL 1500 - 84.163.90.168 (raib181)

[ ID]  Interval       Transfer     Bandwidth (einzeln)
[Down]  0.0-10.4 sec  1.80 MBytes  1.45 Mbits/sec (189 Kbits/sec UP)
[ ID]  Interval       Transfer     Bandwidth (zeitgleich)
[Down]  0.0-13.7 sec   392 KBytes   234 Kbits/sec
[ Up]   0.0-13.5 sec   296 KBytes   179 Kbits/sec 

TDSL 2000 - 84.163.236.231 (raib92)

[ ID]  Interval       Transfer     Bandwidth (einzeln)
[Down]  0.0-10.4 sec  2.41 MBytes  1.95 Mbits/sec (379 Kbits/sec UP)
[ ID]  Interval       Transfer     Bandwidth (zeitgleich)
[Down]  0.0-10.6 sec  2.06 MBytes  1.63 Mbits/sec
[ Up]   0.0-11.1 sec   408 KBytes   302 Kbits/sec

Netatalk-konfiguration (zugriff auf einen Linux Share via MAC)

wenn alle MAC - Clients OSX haben, ist dies nicht mehr notwendig. 
Dann sollten auch die MACs wia SMB-Protokoll verbinden.
  (als (Benutzernamen=)root eingelogged?!)
  Adv.Edit (notepad 䨮lich) starten (im "StarT"-Men?toren->Advanced Editor)
  a) /etc/rc.config:
     START_ATALK="no" auf START_ATALK="yes"
     Eintrag wirksam machen mit SuSEconfig
  b) /etc/atalk/atalkd.conf
     eth0  auf    eth1
     # nur 䮤ern, wennn 100 Mbit-Karte eth1 ist (Network/Basic -> Network card configuration)
  c) /etc/atalk/AppleVolumes.default
     Zeile ganz unten mit nur der Tilde
     ~
     rausl?en!
     neue Zeile (auch ganz unten)
     /freigabe/mac "user" options:noadouble
  d) terminal fenster starten (muschel)
     cd /freigabe
     mkdir mac
     chmod 0777 -R /mac
     rcatalk start
     -> nach ca. 1 minute m?"linus" sichtbar sein, ev. als
     linus/linus verbinden!
  e) Diagnose
     nbplkup


DVD ist weg - und man muss Software nachinstallieren:

 Unter YaSt2, Software, Softwarequelle, eine FTP Quelle anlegen
 Servername: ftp.gwdg.de 
 Verzeichnis: pub/linux/suse/ftp.suse.com/suse/i386/9.0 
 8.2
 ===
 Verzeichnis: pub/linux/suse/ftp.suse.com/suse/i386/8.2 

Firebird Datenbank Crash?

   konkrete Verwendung einzelner Befehle f?, backup und restore.
   siehe ibreorg.bat in der Anlage. (der ist leider f?32-DOS-Box!)
   die Befehle m? auch unter linux so gehen. der Pfad ist aber
   /opt/interbase/bin/gbak ....
   --- snip
   @echo off
   REM -------------------------------------------------
   REM Reparatur einer inkonsistenten FireBird Datenbank
   REM
   REM (c) Andreas Filsinger, www.cargobay.de
   REM -------------------------------------------------
   REM
   REM Usage
   REM
   REM reorg <Pfad und Name der Datenbank OHNE ".gdb">
   REM
   REM --------------------------------------------
   REM
   REM ACHTUNG: richtigen Pfad ermitteln, indem Sie nach der
   REM          Datei gbak.exe suchen lassen. Und hier eintragen:
   REM
   SET IBBIN=D:\programme\borland\interbase\bin\
   REM
   REM --------------------------------------------
   REM 1) fix erros
   REM
   %IBBIN%gfix -mend -full -ignore -user "SYSDBA" -password "masterkey" %1.gdb
   REM --------------------------------------------
   REM 2) backup fixed base
   REM
   %IBBIN%gbak -backup -v -ignore -garbage -user "SYSDBA" -password "masterkey" %1.gdb %1_neu.gbk
   REM --------------------------------------------
   REM 3) restore base
   REM
   REM zusä´ºlich noch "-i" wenn Indizes deaktiviert werden sollen
   REM
   %IBBIN%gbak -r -v -p 8192 -user "SYSDBA" -password "masterkey" %1_neu.gbk %1_neu.gdb
   REM --------------------------------------------
   REM 4) check new one
   REM
   %IBBIN%gfix -v -f -user "SYSDBA" -password "masterkey" %1_neu.gdb
   REM --------------------------------------------
   --- snap
   Bemerkungen
   ===========
   a) Backup-m?ch aber fail beim Restore: wegen inkonsistenter Indizes
   ich habe mal erlebt, das foreign Key nicht mehr konsistent waren, und deshalb
   der restore abgebrochen hat. Alle Indizes kann man jedoch als inaktiv restoren,
   (Option -i )
   nach l?en /clearen der "Schuldigen" kann man alle indizes wieder aktivieren,
   wieder ein backup, wieder ein restore -> alles wieder gut.
   (Sourcecode dazu im HeBuAdmin Projekt)
   damit der HebuAdmin alle indizes sehen kann braucht er "out.txt". Das ist die
   Ausgabe eines erfolgreichen restores, der alle indizes enth䬴.
   Unter linux gibt man die Ausgabe von gbak mit 2>/freigabe/out.txt in eine Datei
   aus.
   firebird-Erkenntnis
   ===================
   internal gds software consistency check (partner index description not found (175))
   dieser Fehler tritt beim l?en eines Datensatzes auf, der eventuell durch einen
   foreign key einer anderen Tabelle referenziert werden k?e. Ist dieser key
   deactiviert so kann keine Aussage getroffen werden, ob das l?en ok ist, dieser
   interne Fehler ist die Folge!!

Routing, Masquerading und Firewall

     Alle Arbeitsplatz-Rechner sicher und einfach ins InterNet zu bringen
     ist hierbei vorrangiges Ziel.
   a) Skript "myfirewall.sh" (in der Anlage sicherlich aktueller als dieser Snapshot)
      nach /root kopieren.
   --- snip
       # !/bin/bash
       IPTABLES=/usr/sbin/iptables
       DEV_LOC=eth0
       DEV_EXT=ppp0
       DNS_EXT=194.25.2.129
       # for IF in $DEV_LOC $DEV_EXT do
       # Kernelmodule laden
       echo "1" > /proc/sys/net/ipv4/conf/eth0/rp_filter
       echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_redirects
       echo "0" > /proc/sys/net/ipv4/conf/eth0/accept_source_route
       echo "0" > /proc/sys/net/ipv4/conf/eth0/bootp_relay
       echo "1" > /proc/sys/net/ipv4/conf/eth0/log_martians
       echo "1" > /proc/sys/net/ipv4/conf/$DEV_EXT/rp_filter
       echo "0" > /proc/sys/net/ipv4/conf/$DEV_EXT/accept_redirects
       echo "0" > /proc/sys/net/ipv4/conf/$DEV_EXT/accept_source_route
       echo "0" > /proc/sys/net/ipv4/conf/$DEV_EXT/bootp_relay
       echo "1" > /proc/sys/net/ipv4/conf/$DEV_EXT/log_martians


       # done
       echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
       echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
       echo "5" > /proc/sys/net/ipv4/icmp_destunreach_rate
       echo "5" > /proc/sys/net/ipv4/icmp_echoreply_rate
       echo "5" > /proc/sys/net/ipv4/icmp_paramprob_rate
       echo "10" > /proc/sys/net/ipv4/icmp_timeexceed_rate
       # Zu Anfang alles verbieten (Default Policy)
       $IPTABLES -P INPUT ACCEPT
       $IPTABLES -P OUTPUT ACCEPT
       $IPTABLES -P FORWARD ACCEPT
       # Alle Regelketten, die sich noch im Speicher befinden k"nnten, l"schen
       $IPTABLES -F
       $IPTABLES -t nat -F
       $IPTABLES -X
       # Verbindungen f?r Testzwecke am eigenen Rechner ?ber das Loopback. Einige
       # lokale Prozesse wie BIND verwenden das Loopback f?r die interne Kommunikation
       $IPTABLES -A OUTPUT -o lo -j ACCEPT
       $IPTABLES -A INPUT -i lo -j ACCEPT
       # Alle externen Verbindungsversuche und ander Merkw?rdigkeiten werden hier
       # aufgefangen, im SYSLOG vermerkt und dann unsch?dlich gemacht
       $IPTABLES -N nirwana
       # $IPTABLES -A nirwana -p TCP -j LOG --log-prefix "NIRWANA: TCP "
       # $IPTABLES -A nirwana -p UDP -j LOG --log-prefix "NIRWANA: UDP "
       # $IPTABLES -A nirwana -p ICMP -j LOG --log-prefix "NIRWANA: ICMP "
       # $IPTABLES -A nirwana -p TCP -j DROP
       # Kernelmodule masq und forwarding aktivieren (dyn. IP vom Provider)
       echo "1" > /proc/sys/net/ipv4/ip_dynaddr
       echo "1" > /proc/sys/net/ipv4/ip_forward
       $IPTABLES -t nat -A POSTROUTING -o $DEV_EXT -j MASQUERADE
       $IPTABLES -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
       # F?e bestehenden ein- und ausgehenden Verbindungen. Dritte Regel
       # verhindert alle Verbindungen die Au᥮ kommen
       $IPTABLES -A FORWARD -i $DEV_LOC -o $DEV_EXT -m state --state ESTABLISHED,RELATED -j ACCEPT
       $IPTABLES -A FORWARD -i $DEV_EXT -o $DEV_LOC -m state --state ESTABLISHED,RELATED -j ACCEPT
       # $IPTABLES -A FORWARD -i $DEV_EXT -o $DEV_LOC -m state --state NEW,INVALID -j nirwana
       # Zugriff auf internen WEB-Server
       # $IPTABLES -A PREROUTING -t nat -p tcp -i $DEV_EXT --dport 80 -j DNAT --to 192.168.115.8:80
       $IPTABLES -t nat -A PREROUTING -i $DEV_EXT -p tcp --dport 80 -j DNAT --to 192.168.115.8:80
       $IPTABLES -t nat -A PREROUTING -i $DEV_EXT -p tcp --dport 5900 -j DNAT --to 192.168.115.1:5900
       # WinMx auf fred!
       $IPTABLES -t nat -A PREROUTING -i $DEV_EXT -p tcp --dport 6699 -j DNAT --to 192.168.115.3:6699
       $IPTABLES -t nat -A PREROUTING -i $DEV_EXT -p udp --dport 6257 -j DNAT --to 192.168.115.3:6257
       # Ping ins Internet erlauben, eingehende werden von der NIRWANA-Rule abgefangen
       $IPTABLES -A FORWARD -o $DEV_EXT -p ICMP --icmp-type echo-request -j ACCEPT
       # DNS
       $IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport domain -d $DNS_EXT -m state --state NEW -j ACCEPT
       # HTTP
       $IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport http -m state --state NEW -j ACCEPT
       # $IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport https -m state --state NEW -j ACCEPT
       # FTP
       # $IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport ftp -m state --state NEW -j ACCEPT
       # $IPTABLES -A FORWARD -o $DEV_EXT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW -j ACCEPT
       # Alle Pakete, die bis hierher kommen nach nirwana
       $IPTABLES -A INPUT -j nirwana
       $IPTABLES -A OUTPUT -j nirwana
       $IPTABLES -A FORWARD -j nirwana
   --- snap


__zuk?s thema: lokales umlenken lokaler Port traffics. Z.b. aller verkehr aus dem Internet

   soll umgeleitet werden von "80" auf "8080".
       iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT \
       --to-ports 8080
       iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner \! --uid-owner 13 \
       -j REDIRECT --to-ports 8080
       Should work. I tested it on my own firewall, although I just tested it
       with netcat, not a real proxy.
       Locally generated packets don't go through the PREROUTING chain, so you
       have to manipulate them in OUTPUT, and you also have to differentiate
       them from the proxy's outgoing packets, hence the match against uid 13
       (proxy), taken from /etc/passwd.
       Unfortunately, you'll have to enable owner match support in your kernel
       for the second line to work, so you might have to recompile (it's one of
       the features labelled experimental).
         Jason

__zuk?s thema: Bandbreiten verteilung: siehe artikel in c't 01/03. Kommt aber

   sicher stablier ab "suse 8.2", das es kernel >2.4.19 erfordert.
   b) mit
      chmod 755 /root/myfirewall.sh
      macht man dieses Script ausf?. Nun starten ...
      /root/myfirewall.sh
   c) Automatischer Start der Firewall beim booten ...
      Als root einloggen und folgende Zeilen eingeben:
      ln -s /root/myfirewall.sh /etc/init.d/rc2.d/S30myfirewall <RETURN>
      ln -s /root/myfirewall.sh /etc/init.d/rc3.d/S30myfirewall <RETURN>
      ln -s /root/myfirewall.sh /etc/init.d/rc5.d/S30myfirewall <RETURN>
      fehlt noch: "K" links, myfirewall sollte echtes Script werden, das
                  "start" und "stop" auswerten kann.
   d) Eintrag in /etc/rc.config 䮤ern: IP_FORWARD="no" auf "yes"
      Eintrag wirksam machen mit SuSEconfig

lokaler SMTP Forwarder

 * win32 outlook express clients sollen bei der email-Konten-Einstellung den
   Eintrag "smtp-Server:" von dem "wirklichen" Server auf die IP des Linux-Servers
   umstellen k?n. POP Eintrag MUSS bleiben.
 * Der Linux Server muss ausgehende Mails mit 100 MBit/s annehmen, und
   lokal zwischenspeichern.
 * Der smtp Dienst von Linux muss eine autentifizierung des Users verlangen.
   (wie bei heutigen smtps ?, mit dem gleichen Konto/pwd wie f?3)
 * Der Linux Server sollte als "relay" fungieren, und die mail somit v?g
   unangetastet lassen.
 * Durch die Identifizierung mit dem smtp "Konto-Name" muss der Linux Server
   ermitteln (in einer config-Datei) wer der wirkliche smtp Server im Internet
   ist. Der Server muss nun (in aller Ruhe) daf?gen dass die Mail zugestellt
   wird. Es sollte kein "fester" relay-smtp f?ot;alle" email-Konten benutzt werden.


 ---------------------------------------------------------------------------------------
 Aufsetzen des Mailservers postfix
 ---------------------------------------------------------------------------------------
 Andre Wolff 24.4.2003
 ---------------------------------------------------------------------------------------


 ---------------
 1. Installation
 ---------------
 Postfix wird bei der Version 8.2 standardm䟩g installiert. Zur ܢerpr? ob postfix
 installiert und aktiv ist, wie folgt vorgehen:
         - Aufrufen des YAST2-Kontrollzentrum
         - Auswahl System
         - Den Runlevel-Editor starten
         - Auf "Runlevel-Eigenschaften..." klicken
 In der nun angezeigten Liste sollte ein Eintrag postfix vorhanden sein. Ist dieser als aktiv
 gekennzeichnet und f? Runlevels 3 und 5 konfiguriert, ist alles Ok. Sollte der Eintrag
 postfix nicht vorhanden sein, muß das Programm evtl. nachinstalliert werden:
         - Runlevel-Editor ggf. wieder beenden
         - Aus dem YAST2-Kontrollzentrum "Software" ausw䨬en
         - Auswahl "Software installieren oder l?en"
         - Im Kombinationsfeld Filter den Eintrag "Suche" ausw䨬en und im Suchfeld
           postfix eingeben und auf die Schaltfl䣨e "Suche" klicken
         - in der Paketliste postfix ausw䨬en und auf Schaltfl䣨e "Akzeptieren" klicken
 ----------------
 2. Konfiguration
 ----------------
 Da SuSE versucht alle wichtigen Programme direkt aus YAST oder YAST2 heraus automatisch 
 zu konfigurieren, wir aber das Mail-System unseren Bed?sen explizit anpassen wollen,
 muß die automatische Konfiguration f?tfix abgeschaltet werden:
         - Im YAST2-Kontrollzentrum "System|Editor f?c/sysconfig-Dateien" ausw䨬en
         - Dann Auswahl "Network|Mail|General"
         - Įdern des Eintrages "MAIL_CREATE_CONFIG" von yes auf no und Sysconfig-Editor 
           beenden


 Datei "main.cf" anpassen
 Datei /etc/postfix/main.cf mit einem Editor ?en. Die Eintr䧥 wie folgt 䮤ern
 oder das '#'-Zeichen entfernen :
         myhostname = smtp.hebu.de
         mydomain = hebu.de
         mynetworks = 192.168.100.0/24,127.0.0.0/8
         smtpd_banner  = $myhostname ESMTP
         relay_domains = $mydestination, <dom1>, <dom2>, ...


 Anpassen des Firewall-Skriptes
 Eintrag in /root/fwdsl.start nach dem Eintrag "Samba aus dem internen Netz":
 #--------------------------------------------------------------------------------
 # E-Mail zum relayen
 $IPTABLES -A INPUT  -i $DEV_INT  -s $INT_NET -p TCP --sport $HIGH_PORT --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 $IPTABLES -A INPUT  -i $DEV_INT  -s $INT_NET -p TCP --sport 25 --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 $IPTABLES -A OUTPUT -o $DEV_ISDN -p TCP --sport $HIGH_PORT --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 $IPTABLES -A OUTPUT -o $DEV_ISDN -p TCP --sport 25 --dport 25 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
 ---------------------------------------------------------------------------------
 Folgende Erweiterung f? eintragen 
 #--------------------------------------------------------------------------------
 $IPTABLES -A OUTPUT -o $DEV_ISDN -m state --state NEW -p UDP --sport $HIGH_PORT  --dport domain -j ACCEPT
 $IPTABLES -A OUTPUT -o $DEV_ISDN -m state --state NEW -p TCP --sport $HIGH_PORT  --dport domain -j ACCEPT
 #--------------------------------------------------------------------------------


 Bei den E-Mail-Clients muß nun der neue SMTP-Server eingetragen werden.
 Bei Outlook und Outlook-Express unter "Extras|Konten" die Registerkarte "E-Mail" ausw䨬en.
 Dann mit einem Doppelklick die Eigenschaften des gew?e Mailkontos ?en. Auf der
 Registerkarte Server bei "Postausgang (SMTP)" die IP-Adresse des neuen Mail-Relays
 eintragen.

Bandbreiten Management

Hier: Der eMail-Ausgangsstrom soll uns nicht die Bandbreite des Web-Shop mindern.
 * Noch nicht Teil dieses Budgets - aber bitte im Hinterkopf behalten: Durch Eintr䧥
   mit Hilfe von iptabels kann ab Kernel 2.4.20 die bandbreite gewisser dienste
   vorbestimmt werden. Ich suche mal den Artikel in der c't. Wir starten, wenn
   Suse 8.2 bei mir vorliegt (ist vorbestellt!)


Fernwartung einiger Rechner im Netz von aussen via InterNet via VNC

   (beide Systeme (Zielsystem & Remotesystem) m?eigentlich nur im InterNet
   sein! Der eine z.B. via ISDN, der andere z.B. via DSL, super nat?: beide via DSL)
   auf jedem Win32-Ziel-Rechner installiert man den VNC-Server:
   (freier download unter www.tightvnc.com) Das myfirewall-Script muss
   f?einen Rechner um eine Script-Zeile erweitert werden.
   Es gibt auch einen Viewer(Client) f? MAC
   http://sourceforge.net/projects/cotvnc/
   # VNC f?tus, Displaynummer=0 oder nix angeben
   $IPTABLES -A PREROUTING -t nat -p tcp -i $DEV_EXT --dport 5900 -j DNAT --to 192.168.115.1:5900
   # VNC f?d, Displaynummer=1
   $IPTABLES -A PREROUTING -t nat -p tcp -i $DEV_EXT --dport 5901 -j DNAT --to 192.168.115.3:5900
   # VNC f?
   $IPTABLES -A PREROUTING -t nat -p tcp -i $DEV_EXT --dport 5902 -j DNAT --to 192.168.115.8:5900
   # usw. ...
   die aktuelle IP (die man "daheim" angeben muss) ermittelt man aus der gepachten IP-
   Adresse im InterNet (Rechter Mausklick auf die HomePage, Quelltext anzeigen, IP-Adresse
   rauskopieren). Beim einloggen gibt man neben der (aktuellen) IP die Displaynummer an, also
   217.217.20.118:1 (f?. fred) und das passwort wie immer. ACHTUNG: immer auf beiden
   Seiten 16 bit farben (= High-Color) verwenden! Den Rechner, den man fernwarten will:
   sollte ganz ganz schnell sein (ich meine das ernst), und ne super schnelle 2D Grafikkarte
   haben (z.B. Matrox G450). Der Rechner mit dem man fernwarten will: Der dreht leider eigentlich
   (fast) immer Däµ­chen, der kann ruhig alt und schwach sein!!! Hier sollte nur eine gute Anbindung
   ans Internet sichergestellt werden! Hilfreich: etwas gr?e Ausl?g wie das Ziel-System, aber
   auch High-Color! Wichtig: Passw?r m?chst >8 Zeichen.
   VNC - Remote Control des Servers mit Hilfe von z.B. einer Windows-Maschine.
   F?te, die nicht in den Serverraum laufen m?en, oder kein Geld mehr
   f?en Monitor am Linux-Rechner haben, weil das Betriebssystem so teuer war ;-)
   vnc-paket installieren (mit Yast 2)
   Terminal Session starten
   vncserver eingeben, pwd vergeben
   von irgendeiner anderen Maschine einloggen:
   192.168.115.72:1
   -pwd eingeben
   Es muss ein Terminal-Fenster erscheinen, dort kan man nun
   kde
   eingeben wenn man eine kde-session starten will...
   Suse 7.x
   ========
   Damit der VNC- Server beim booten allein gestartet wird, gen?n Eintrag in /etc/rc.d/rc.
   Die Zeile, die ganz unten (Suse 8.0: vor "exit 0") erg䮺t werden muߠlautet:
                 su -l root -c "vncserver -cc 3 :1 -alwaysshared"
   Suse 8.0
   ========
   Suse 8.1
   ========
   ** Obige Methode l䵦t nicht mehr unter Suse 8.1.
   Bemerkung: Es war mal bei 8.0 notwendig an einer Maschine, die den vncserver nicht
   mehr allein startet, wieder keyboard und monitor anzuschliesen, um sich "echt"
   (in kde) einzuloggen, danach lief wieder alles super.
   Suse 8.2
   ========
   YaST2 / System / Editor f?c/sysconfig-Dateien / Desktop / Display Manager:
   Die Variable DisplayManager_Remote_Access auf yes setzen.
   Auf der Konsole rcxdm restart eingeben.
   YaST2 / Netzwerkdienste / Netzwerkdienste (inetd) aufmachen und die 4
   Eintr䧥 mit "VNC" im Namen aktivieren.
   Andere Computer (auch Windows-Maschinen) k?n nun ?en Browser den
   VNC-Server ansprechen. Dazu ben?t er Java.
   Die URL lautet: http://Vncserver-Rechner:5810.
   Wer auf der Client-Seite nicht im Webbrowser arbeiten will, benutzt den VNCViewer.
   F?se Anwendung lautet nun der angefragte Hostname "Vncserver-Rechner:10"
   oder "Vncserver-Rechner:11", auch wieder mit IP-Adresse des Zielsystems m?ch,
   z.B. 192.168.115.93:10.



Eine andere Linux-Maschine will ins Internet

     1) YAST2 ->network ->routing ->Standart-Gateway=IP des Servers
     2) YAST2 ->advanced network ->DNS ->IP des Servers

Kernel Updates

   (es soll niemand mehr sagen das sei schwierig!)
   nur f?e 7.2 notwendig, (HISTORISCH - NICHT NOTWENDIG AB 7.3):
   Einspielen des Kernels 2.4.7
   Dies ist notwendig, da masquerading irgend einen Bug hat. Auch hat sich das
   einspielen als sehr heilsam f? ganze System herausgestellt. (Auch TDSL!)
   downloaden des Kernels (als rpm) von
   ftp.suse.com/pub/suse/i386/update/7.2/kernel/2.4.7/k_deflt-2.4.7-25.i386.rmp
   Terminal-Fenster starten, eingeben
   YaST <ENTER>
   "paketverwaltung (update,install,auf..)"
   Paket einspielen
   Quelle (nun den obigen rpm lokalisieren)
   markieren mit Leertaste, damit installiert wird
   <F10> zum Installieren dr?    YaST beenden, ein cleanup wird durchgef?   mk_initrd <ENTER>
   lilo <ENTER>
   -> system neu booten!!!



keepcon, RouteIP.exe, ein kleiner Einstieg

   Dieses linux / win32 program ermittelt die aktuelle IP Adresse wie unser Server im
   Moment im Internet sichtbar ist, und patched die html-Seiten drausen
   im InterNet, um die aktuelle IP Adresse den surfern draussen unterzujubeln.
   Mehr Infos ?outeIP im InterNet www.cargobay.de**
   Mehr Infos ?eepcon im InterNet www.cargobay.de
   ** RouteIP wird langfristig durch keepcon ersetzt.
   keepcon siehe "http://www.cargobay.de/keepcon.html"


samba & firewall & Windows

Mit samba 2.2.5 und Windows XP Professional Service Pack 1 machten wir folgende
Beobachtung:
     Windows XP Professional zeigt nach eigenem Neustart den samba-share
     als "gest?quot; an (rotes kleines "X" im Symbol). Der erste Zugriff
     erfolgt im Windows Explorer dann auch nach eine langen Denkpause.
     * Umstellen von "security=share" auf "security=user" im smb.conf
       brachte nichts! (incl. der ganzen Arbeit, die damit zusammenh䮧t
       (User anlegen)).
     * Umstellen der "Richtlinien" wie es die Newsgroups vorgeben brachte
       auch nichts!
       Start->Ausf?>gpedit.msc
       Computerkonfig->Windows-Einstellungen->Sicherheitseinstellungen->Lokale Richtlininen->
       Sicherheitsoptionen
       Microsoft-Netzwerk (client): Unverschl?es Kennwort an SMB-Server von Drittanbietern senden
     Idee: ev. alles auf einen echten samba PDC umstellen!
     todo: gpedit.msc mal beschreiben!
Die L?g: der Firewall auf dem samba Server sperrte den Port 445. Dieser ist
            jedoch f? Kommunikation notwendig. Hier die Gesamtbeschreibung
            die ich mit Hilfe von Walter Mautner erstellt habe.
 > Eventuell noch Port 445 dazugeben.
Walter! Das war die L?g (freu), Win XP versucht scheinbar vorrangig am
Port 445 rumzuposaunen. Nur wenn ein hartn䣫iger User auf den Windows
Explorer einschl䧴 springt er auf den Port 137ff um!


Port 53=DNS
Port 1900=
XP's Windows Messenger is attempting to communicate to an Internet host. To block Windows Messenger's broadcasts:
 Hive: HKEY_LOCAL_MACHINE
 Key: Software\Microsoft\DirectPlayNATHelp\DPNHUPnP
 Name: UPnPMode
 Type: REG_DWORD
 Value: 2 disabled
 With UPnPMode=2, Universal Plug and Play Network Address Translation (NAT) traversal discovery does not occur.
 (newsgroupbeitrag) "
 Unser Liebling (=Linux-Server) fungiert nicht nur als Samba-Sklave sondern
 auch als DSL-Router. Somit wurde flux eine firewall installiert (auch
 selbstgemacht via iptables).
 Weil wir gerne alles kontrollieren wirkt diese auch auf das intene Netz:
 Pflichtbewust wurden jedoch die smb Ports 136,137,138,445 ge?et, damit
 die Clients mit samba sprechen k?n.
 Alles ging -- ausser bei Windows XP Prof Clients, diese hatten beim ersten
 Zugriff auf einen Share z.B. im Explorer doppelklick auf den
 Laufwerksbuchstaben eine "Wartezeit" von ca. 8 Sekunden (hey, das ist
 verdammt lange). Danach war alles in Butter. Bis zu dem Moment, wo etwa 15
 Minuten kein Zugriff auf diesen Share auf diesem Client erfolgte (oder
 sofort nach einem Neustart des Clients). Danach wieder diese Denkpause.
 Die L?g war: XP Prof SP1 versucht eine Kontaktaufnahme mit dem
 Samba-Server auf Port 80 (in Worten !achtzig!). Wir hatten das als "Angriff"
 aus dem internen Netz gewertet und geDROPed. (Auf port 80 haben wir keinen
 dienst auf unserem Server!). Bis XP gemerkt hatte, dass auf port 80 nix
 geht, machte es einen Kurzschlaf (eben diese 8 Sekunden). Jetzt, nachdem wir
 (grmpf!) halt Port 80 ge?et haben geht alles ohne Zeitverz?ung.
 Unn? zu sagen das dieses Verhalten ausschlie߬ich XP hat!
 "
 (newsgroupbeitrag) "
 einen DROP zu machen war wirklich gemein. Zumal man ja im internen
 Netz nicht unbedingt "Paket-Antwort-Bandbreite" sparen muss.
 http://www.pl-forum.de/t_netzwerk/iptables.html
 [ ...
 * DROP: Paket vernichten, keine Benachrichtigung des Absenders.
 * REJECT: Ĩnlich DROP wird das Paket abgewiesen, jedoch erh䬴 der Absender
 eine Antwort auf das Paket.
  ... ]
 -> bleibt die Frage? Was will XP am Port 80?
 "
Beim Verbindungsversuch vom Windows XP Explorer zum Samba-Server ist mir aufgefallen, daß der XP-Client ?en Port
1039 bzw 1040 eine Verbindung zum Port 80 des Linux-Servers aufzubauen versucht (sichtbar gemacht mit
tail -f /var/log/messages auf der Linux-Box. Hier werden die Drops, die der Kernel verursacht, protokolliert). Nach
Ö¦fnen des Ports 80 f?ete vom internen Netz gab es keine Wartezeiten beim Verbindungsaufbau mehr.
Im folgenden ein Auszug aus dem aktuellen Firewall-Skript. Dabei sind die letzten beiden Zeilen von Bedeutung.
Das passende firewall Script Auszug.


# --------------------------------------------------------------------------------
# Samba aus dem internen Netz
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p UDP --sport 135 --dport 135 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p UDP --sport 135 --dport 135 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p UDP --sport 137 --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p UDP --sport 137 --dport 137 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p UDP --sport 138 --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p UDP --sport 138 --dport 138 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p UDP --sport 445 --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p UDP --sport 445 --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT


$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p TCP --sport $HIGH_PORT --dport 135 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p TCP --sport 135 --dport $HIGH_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p TCP --sport $HIGH_PORT --dport 139 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p TCP --sport 139 --dport $HIGH_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p TCP --sport $HIGH_PORT --dport 445 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p TCP --sport 445 --dport $HIGH_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# XP-Explorer versucht Verbindung von HIGH_PORT auf port 80 des Linux-Servers! Warum?!?
$IPTABLES -A INPUT  -i $DEV_INT -s $INT_NET -p TCP --sport $HIGH_PORT --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $DEV_INT -d $INT_NET -p TCP --sport 80 --dport $HIGH_PORT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# --------------------------------------------------------------------------------
Die passenden Ports in der Zusammenfassung
 netbios-ns      137/udp     # NETBIOS Name Service
 netbios-dgm     138/udp     # NETBIOS Datagram Service
 netbios-ssn     139/tcp     # NETBIOS Session Service
 microsoft-ds    445/udp     # Direct-Hosted Service
 microsoft-ds    445/tcp     # Direct-Hosted Service
 http            80/tcp    www www-http           # World Wide Web
                                                  # nur bei XP Clients notwendig
---------------------------------------------------------
* ES FOLGT DER REVISION INFO TEIL IM FORMAT
*   Rev x.xxx ([ "vonDatum" "-" ] "bisDatum") <DeinName>
---------------------------------------------------------


USB Devices (Memory, Flash, MP3 Player) unter Linux

Nach reinstecken des SONY Microfault 32 MByte Sticks ging erst mal nix. Ich sah zwar, dass das LED
des Memory Sticks vertraut blinkte. Doch bekam ich keinen Zugriff. Ich musste
md /root/usb
mount -t vfat /dev/sda /root/usb
eingeben. Sofort waren die Dateien in /root/usb/ sichtbar. Ich speicherte was drauf mit 
"cp". Zog den Stick raus: Wieder eine Enttäµ³chung: auf dem Win XP war die Datei nicht
sichtbar. Also wurde die Datei nicht wirklich geschrieben (HEUL!)? Also versuchte
ich vor dem Rausziehen beim n䣨sten mal unzumounten.
umount /dev/sda
(soviel zu Thema hotplug!) OK, das ging dann. Mein Wunsch war, beim Einsetzen des
USB-Sticks das Lied darauf (.mp3) abzuspielen. In meiner Naivitä´ plazierte ich einfach
ein Script Namens /etc/hotplug/usb/usbfs. Es passierte nat? nichts. grmpf!
In fstab habe ich aber eine Zeile eingetragen, die mir das USB-Device auf den Desktop
gezaubert hat (was mir nix bringt!). Mein Spieltrieb animierte mich durch umount das
device auszuh䮧en. Das Desktop Symbol blieb - es lies sich auch fehlerfrei anklicken,
was einen Mount verursachte!
Also ein Script via hotplug zu starten wenn der usb reingeteckt wird gebe ich
hiermit auf!