Bloquear o acesso do usuário à rede, exceto voltar ao endereço do cliente ssh

Bloquear o acesso do usuário à rede, exceto voltar ao endereço do cliente ssh

Em um servidor Linux, como posso configurar permissões para que um determinado grupo de usuários possa efetuar login via ssh, mas todas as conexões de rede por seus processos sejam bloqueadas, a menos que a conexão retorne ao endereço do cliente ssh. Por exemplo, quero permitir que um usuário do grupo faça ssh e inicie um servidor HTTP (em uma porta alta) e depois conecte-se a ele a partir do computador onde está executando o cliente ssh, mas qualquer outro cliente na Internet deve não será possível acessar o servidor HTTP.

Eu sei que posso bloquear completamente o acesso à rede de um usuário com iptables, mas como faço para permitir o tráfego que vem ou vai para qualquer valor $SSH_CLIENT?

Responder1

Uma coisa que você pode fazer é fazer com que eles executem um script suid que modifique o iptables no login. Eles não precisam passar nenhum argumento, apenas invocá-lo. E .bash_login pode invocá-lo automaticamente. Ele pode executar lsof para obter o IP da conexão ssh associada ao UID de seu pai, obter o IP conectado e, em seguida, colocar esse IP na lista de permissões com regras como

iptables -w -A users_input -p tcp -s $ip -m owner --owner-uid $owner -j ACCEPT
iptables -w -A users_output -p tcp -d $ip -m owner --owner-uid $owner -j ACCEPT

Onde essas cadeias são colocadas, quando apropriado, nas cadeias INPUT e OUTPUT do filtro. E, claro, também removendo quaisquer regras anteriores com esse --owner-uid. E você pode permitir apenas determinadas portas, se desejar.

Perl com modo taint deve servir para esse tipo de script.

Isso permitiria que a rede persistisse para esse usuário após a queda da conexão ssh. Se isso for um problema, você pode resolver isso com um cronjob ou um daemon que verifica regularmente as conexões ssh conectadas e remove quaisquer regras que não estejam associadas a elas.

Sei que há muito "você poderia fazer" nesta resposta, mas a maior parte é um trabalho pesado. Basta acertar as coisas do proprietário -m.

informação relacionada