Chcę, aby jeden z użytkowników (spoza listy sudoers) miał dostęp do Internetu od 14:00 do 16:00 i od 17:00 do 18:30. Czy to możliwe? Czy mogę ustawić różne przedziały czasowe dla różnych dni tygodnia?
Chcę, aby jeden z użytkowników (spoza listy sudoers) miał dostęp do Internetu od 14:00 do 16:00 i od 17:00 do 18:30. Czy to możliwe? Czy mogę ustawić różne przedziały czasowe dla różnych dni tygodnia?
Odpowiedzi:
Możesz użyć owner
rozszerzenia iptables, aby zablokować użytkownikowi dostęp do sieci, np
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
Teraz możesz użyć crona do dodania lub usunięcia tych reguł (które mogą wymagać trochę skryptu powłoki, jeśli masz już jakieś reguły iptable lub chcesz, aby były one różne dla różnych użytkowników w różnych momentach).
-j REJECT --reject-with <argument>
?
zaloguj się jako root:
sudo su
sprawdź status swojej zapory ogniowej:
ufw status
jeśli zapora jest nieaktywna , wydaj:
ufw enable
w celu ograniczenia użytkownikowi dostępu do Internetu Wilhelma w niedziele, wtorki, środy i piątki do dozwolonych przedziałów czasowych (14: 00–16: 00 i 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
uwaga dodatkowa : * zwróć uwagę na użycie -I
przełącznika zamiast -A
przełączania iptables
polecenia. -I
przełącznik wstawia wspomnianych reguł (3) na początku (u góry) łańcucha reguła OUTPUT zamiast na dole łańcucha. umieszczanie ręcznie dodawanych reguł nad zwykłymi zasadami zapory jest ważne, ponieważ reguły są przetwarzane od góry do dołu. jeśli najwyższe reguły AKCEPTUJĄ pakiet, łańcuch WYJŚCIE nie jest już sprawdzany pod kątem następujących reguł, które mogły ZROBIĆ pakiet.
upewnij się, że reguły zostały poprawnie wprowadzone:
iptables -L OUTPUT
w celu usunięcia niepoprawnych regułę, powiedzmy (licznik 1-opartą z góry zasada nr 1 iptables -v -L OUTPUT
) Problem: iptables -D OUTPUT 1
.
zapisz iptables do przywrócenia przy następnym uruchomieniu:
iptables-save > /etc/iptables.rules
w /etc/rc.local
dopisywania linii:
iptables-restore < /etc/iptables.rules
Gotowe
-
testowany na Ubuntu 11.10 (oniryczny), lokalizacja: he
central european summer time -2 hours
.
ufw
nawet jeśli później z niego korzystasz iptables
?
--kerneltz
opcji („Użyj strefy czasowej jądra zamiast UTC”)