Quiero que uno de los usuarios (que no esté en la lista de sudoers) tenga acceso a Internet de 14:00 a 16:00 y de 17:00 a 18:30. ¿Es posible? ¿Puedo establecer diferentes intervalos de tiempo para diferentes días de la semana?
Quiero que uno de los usuarios (que no esté en la lista de sudoers) tenga acceso a Internet de 14:00 a 16:00 y de 17:00 a 18:30. ¿Es posible? ¿Puedo establecer diferentes intervalos de tiempo para diferentes días de la semana?
Respuestas:
Puede usar la owner
extensión de iptables para bloquear el acceso de un usuario a la red, como
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
Ahora puede usar cron para agregar o eliminar esas reglas (que pueden necesitar un poco de scripting de shell si ya tiene algunas reglas de iptable o si lo desea para diferentes usuarios en diferentes momentos).
-j REJECT --reject-with <argument>
?
iniciar sesión como root:
sudo su
verifique el estado de su firewall:
ufw status
Si el firewall está inactivo , emita:
ufw enable
con el fin de restringir el usuario Wilhelm acceso a Internet de los domingos, martes, miércoles y viernes a los intervalos de tiempo permitidos (14: 00-16: 00 y 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
nota al margen : * tenga en cuenta el uso del -I
interruptor en lugar del -A
interruptor del iptables
comando. el -I
interruptor inserta las reglas antes mencionadas (3.) al principio (arriba) de la cadena de reglas de SALIDA en lugar de en la parte inferior de la cadena. colocar las reglas agregadas manualmente encima de las políticas de firewall normales es importante ya que las reglas se procesan de arriba a abajo. Si la mayoría de las reglas ACEPTAN un paquete, la cadena, SALIDA, ya no se verifica para las siguientes reglas que podrían haber CAÍDO el paquete.
asegúrese de que las reglas se hayan introducido correctamente:
iptables -L OUTPUT
con el fin de eliminar una regla apropiada, por ejemplo (recuento basado en 1 desde la parte superior de la regla Nº 1, iptables -v -L OUTPUT
) tema: iptables -D OUTPUT 1
.
guardar iptables para restaurar en el próximo arranque:
iptables-save > /etc/iptables.rules
en /etc/rc.local
agregar la línea:
iptables-restore < /etc/iptables.rules
hecho
-
probado en Ubuntu 11.10 (oneiric), locale: he
central european summer time -2 hours
.
ufw
aunque luego la use iptables
?
--kerneltz
opción ("Usar la zona horaria del núcleo en lugar de UTC")