Linux: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 13: | Zeile 13: | ||
[[Linux.xinetd|xinetd als Port Redirector]]<br> | [[Linux.xinetd|xinetd als Port Redirector]]<br> | ||
[[Linux.postfix|(postfix) Mailserver]]<br> | [[Linux.postfix|(postfix) Mailserver]]<br> | ||
[[Linux.vsftp|(vsftp) FTP Server]]<br> | |||
[[Linux.mysql|(mysql) - Datenbank]]<br> | [[Linux.mysql|(mysql) - Datenbank]]<br> | ||
[[Linux.firebird|(firebird) - Datenbank]]<br> | [[Linux.firebird|(firebird) - Datenbank]]<br> |
Version vom 19. Oktober 2005, 20:20 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
(vsftp) FTP Server
(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 Business 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
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!