PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Timeserver



MartinK
15.11.01, 21:41
Ich hab unter SuSE Linux 7.1 die SuSEfirewall installiert und möchte per Cron Job einmal pro Tag die Systemzeit mit einem Timeserver abgleichen. Dazu verwende ich folgendes Kommando:

/usr/sbin/netdate -l 10 ptbtime1.ptb.de

Das funktioniert soweit ganz gut, nur wenn ich die Firewall starte, funktioniert der Abgleich nicht mehr. Ich hab schon versucht, den Port 123 UDP extern freizugeben, das hat aber auch nicht geholfen.

Welche Regeln muß ich aufstellen, um auf dem Firewall Server die Zeit abzugleichen?

Euras
16.11.01, 07:59
Hy
Ich sitze zwar gerade nicht vor einer Linux Maschine aber normalerweise geht das ganz easy.

Zuerst sagst du der Firewall das sie alle Packete die sie ablehnt mitprotokollieren soll, dann haste nähmlich den Port und die IP des Timeservers.
Nun nur um Sicherzugehen rufst du nslookup auf und suchst nach den Timeserver.
Die IP sollte mit der der Firewalllog übereinstimmen.
Jetzt mußt du nur noch dein Firewallscript so umändern das die Pakete an die IP und Port ungehindert deine Firewall nach außen passieren können.
So jetzt nochmal in deine Firewalllog reinschauen denn wir müßen die ankommenden Packete (IP+Port) von Timeserver auch freigeben.

Dann sollte es eigentlich funzen.

Beispiel mit IPchains:
ipchains -A output -i ippp0 -s (zugeteilte Providerip) -d (Timeserver) -p tcp -j ACCEPT
ipchains -A input -i ippp0 -s (timeserver) -d (zugeteilte Providerip) -p tcp ! -y -j ACCEPT

zugeteilte Providerip oder leer
TCP Protokol bei UDP -p udp

Elektronator
16.11.01, 16:35
Falls du auch die Hardware-Clock (und nicht nur die interne Linux-Zeit) synchronisieren willst, darfst du

/sbin/hwclock --systohc (als root)

nicht vergessen.

PigPen|tuX
16.11.01, 18:06
hallo

ich habe das so gelöst

-------------------------------------------------------------------------------------------------------
#!/bin/sh
#
# Script zum Abgleichen der Systemzeit aus dem INET
#
# by thom 17.03.2001
#
# Eintrag in der Messages:
date +"%b %d %T Setzen der Systemzeit nach Internet" >> /var/log/messages
#
# ISDN Verbinung herstellen:
#isdnctrl dial ippp0
#/usr/sbin/pppoed -F /etc/ppp/peers/pppoe -I eth1
#
# kurz warten:
sleep 10

# Abfragen der Netzzeit

/usr/sbin/netdate -v wrzx03.rz.uni-wuerzburg.de && /sbin/clock -wu


# Auflegen der ISDN-Verbindung

#killall -TERM pppoed
#isdnctrl hangup ippp0
--------------------------------------------------------------------------------------------------------

mfg.
thom

PS.: mit den Ports schu ich nochmal nach......

:D

geronet
16.11.01, 18:18
ich habs noch ein bisschen besser gemacht:

/etc/ppp/ip-up.local:
---schnipp---

# -------------------------------
if [ -f /var/lock/LCK..time ] ; then
echo Synchronisiere Zeit ...

# open time port for ntp1.fau.de
/sbin/ipchains -I bad-in 1 -p UDP --sport time -j ACCEPT

# sync time from ntp0.fau.de
/sbin/netdate ntp0.fau.de
# and set the real time clock (rtc)
sudo /sbin/hwclock --systohc

# close time port
/sbin/ipchains -D bad-in 1

rm -f /var/lock/LCK..time
fi
# -------------------------------

---schnapp---


So nun hab ich einen cron-job
0 0 * * * touch /var/lock/LCK..time

und somit öffnet er den port ganz kurz, synct er seine zeit und schliesst ihn wieder jeden Tag einmal, wenn er sich einwählt.
:D

PigPen|tuX
17.11.01, 10:33
hi geronet,

das gefällt mir noch besser,

ist ein guter tip,

mfg.
thom

:rolleyes:

PigPen|tuX
17.11.01, 10:51
hi geronet,

das gefällt mir noch besser,

ist ein guter tip,

mfg.
thom

:rolleyes:

pitfl
17.11.01, 15:50
Hallo,
ein Superthread, hatte mich auch gerade mit dem Problem beschäfigt.
Wenn es noch nicht bekannt ist, die Physikalisch-Technische Bundesanstalt in Braunschweig hat zwei Zeitserver.
netdate ptbtimel.ptb.de
ptbtime2.ptb.de
Das Netdat-Kommando verwendet den zweiten Server automatisch, falls der erste nicht erreichbar ist.

@geronet
Dein Script ist Klasse. Da ich erst anfange mich mit Scripten zu beschäftigen erkläre doch mal bitte den Ausdruck "touch" in Deiner cronjob - Tabelle.
Danke!

mfg
pit

geronet
17.11.01, 19:39
@geronet
Dein Script ist Klasse. Da ich erst anfange mich mit Scripten zu beschäftigen erkläre doch mal bitte den Ausdruck "touch" in Deiner cronjob - Tabelle.
Danke!

Vielen Dank...für die Blumen...;)

Naja meine Scripte werden jedesmal ein bisschen besser, hab noch mehr auf Lager.

Achja, der Befehl "touch" erstellt einfach eine Datei, also z.B.

touch /tmp/lala

würde die Datei /tmp/lala erstellen, als ob du mit nem Editor die Datei leer speichern würdest.