Ich möchte, dass einer der Benutzer (nicht in der Sudoers-Liste) von 14:00 bis 16:00 Uhr und von 17:00 bis 18:30 Uhr über einen Internetzugang verfügt. Ist es möglich? Kann ich verschiedene Zeitintervalle für verschiedene Wochentage einstellen?
Ich möchte, dass einer der Benutzer (nicht in der Sudoers-Liste) von 14:00 bis 16:00 Uhr und von 17:00 bis 18:30 Uhr über einen Internetzugang verfügt. Ist es möglich? Kann ich verschiedene Zeitintervalle für verschiedene Wochentage einstellen?
Antworten:
Sie können die owner
Erweiterung von iptables verwenden , um einen Benutzer daran zu hindern, auf das Netz zuzugreifen
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
Jetzt können Sie cron verwenden, um diese Regeln hinzuzufügen oder zu entfernen (was möglicherweise ein wenig Shell-Scripting erfordert, wenn Sie bereits einige iptable-Regeln haben oder dies für verschiedene Benutzer zu unterschiedlichen Zeiten möchten).
-j REJECT --reject-with <argument>
?
Login als root:
sudo su
Überprüfen Sie den Status Ihrer Firewall:
ufw status
Wenn die Firewall inaktiv ist , gehen Sie wie folgt vor :
ufw enable
um Benutzer zu beschränken Wilhelm - Internetzugang auf Sonntag, Dienstag, Mittwoch und Freitag , um die zulässigen Zeitintervalle (14: 00-16: 00 & 17: 00-18: 30):
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 00:00:01 --timestop 14:00:00 -j DROP
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 16:00:00 --timestop 17:00:00 -j DROP
iptables -I OUTPUT -p tcp -m owner --uid-owner wilhelm -m time --weekdays Su,Tu,We,Fr --timestart 18:30:00 --timestop 23:59:59 -j DROP
Randnotiz : * Bitte beachten Sie die Verwendung des -I
Schalters anstelle des -A
Schalters des iptables
Befehls. Der -I
Schalter fügt die oben genannten Regeln (3.) am Anfang (oben) der OUTPUT-Regelkette und nicht am Ende der Kette ein. Das Platzieren der manuell angehängten Regeln über den regulären Firewall-Richtlinien ist wichtig, da Regeln von oben nach unten verarbeitet werden. Wenn die obersten Regeln ein Paket AKZEPTIEREN, wird die Kette OUTPUT nicht mehr auf die folgenden Regeln überprüft, die das Paket möglicherweise fallen gelassen haben.
Bitte stellen Sie sicher, dass die Regeln tatsächlich korrekt eingegeben wurden:
iptables -L OUTPUT
Um eine unangemessene Regel zu löschen, sagen Sie Regel Nr. 1 (1-basierte Anzahl von oben iptables -v -L OUTPUT
) iptables -D OUTPUT 1
.
Speichern Sie iptables für die Wiederherstellung beim nächsten Start:
iptables-save > /etc/iptables.rules
in /etc/rc.local
die Zeile anhängen:
iptables-restore < /etc/iptables.rules
erledigt
- -
getestet auf Ubuntu 11.10 (oneiric), Gebietsschema: he
central european summer time -2 hours
.
ufw
, obwohl Sie später verwenden iptables
?
--kerneltz
Option ("Verwenden Sie die Kernel-Zeitzone anstelle von UTC")