Desejo que um dos usuários (que não esteja na lista de sudoers) tenha acesso à Internet das 14:00 às 16:00 e das 17:00 às 18:30. É possível? Posso definir intervalos de tempo diferentes para diferentes dias da semana?
Desejo que um dos usuários (que não esteja na lista de sudoers) tenha acesso à Internet das 14:00 às 16:00 e das 17:00 às 18:30. É possível? Posso definir intervalos de tempo diferentes para diferentes dias da semana?
Respostas:
Você pode usar a owner
extensão do iptables para impedir que um usuário acesse a rede, como
sudo iptables -A OUTPUT -m owner --uid-owner user_you_want_to_block -j REJECT
Agora você pode usar o cron para adicionar ou remover essas regras (que podem precisar de um pouco de script de shell se você já possui algumas regras de iptable ou deseja isso para usuários diferentes em momentos diferentes).
-j REJECT --reject-with <argument>
?
faça login como root:
sudo su
verifique o status do seu firewall:
ufw status
se o firewall estiver inativo , emita:
ufw enable
para restringir o acesso à Internet do usuário wilhelm aos domingos, terças, quartas e sextas-feiras nos intervalos de tempo permitidos (14: 00-16: 00 e 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 lateral : * observe o uso do -I
switch em vez do -A
switch do iptables
comando. o -I
comutador insere as regras mencionadas (3.) acima, no início (topo) da cadeia de regras OUTPUT, e não na parte inferior da cadeia. é importante colocar as regras anexadas manualmente sobre as políticas regulares de firewall, pois as regras são processadas de cima para baixo. se as regras mais comuns ACEITARem um pacote, a cadeia OUTPUT não será mais verificada pelas seguintes regras que podem ter deixado o pacote cair.
verifique se as regras foram realmente inseridas corretamente:
iptables -L OUTPUT
a fim de excluir uma regra inapropriada, dizem (contagem de 1-based da parte superior da regra número 1, iptables -v -L OUTPUT
) questão: iptables -D OUTPUT 1
.
salve iptables para restaurar na próxima inicialização:
iptables-save > /etc/iptables.rules
em /etc/rc.local
acrescentar a linha:
iptables-restore < /etc/iptables.rules
feito
-
testado no Ubuntu 11.10 (oneiric), locale: ele
central european summer time -2 hours
.
ufw
mesmo depois de usá-lo iptables
?
--kerneltz
opção ("Usar o fuso horário do kernel em vez do UTC")