Bloqueia o acesso SSH a partir da LAN externa

2

Eu tenho uma máquina servidor Ubuntu que hospeda repositórios Redmine e git em uma DMZ. Os únicos usuários que têm acesso SSH são os administradores. Usuários de fora precisam ter acesso ao Git e à interface web do Redmine, mas eu gostaria que o acesso SSH fosse restrito a conexões de dentro da rede (nós temos uma VPN configurada, então mesmo do lado de fora eu seria capaz de SSH em o servidor através dele).

Como posso evitar o acesso SSH de fora da LAN, ainda permitindo o acesso ao Git?

Muito obrigado antecipadamente!

R

    
por RH6 07.08.2015 / 08:40

2 respostas

3

OpenSSH (que estou assumindo é o que você está usando) tem uma opção AllowUsers :

AllowUsers - This keyword can be followed by a list of user name patterns, separated by spaces. If specified, login is allowed only for user names that match one of the patterns. Only user names are valid; a numerical user ID is not recognized. By default, login is allowed for all users. If the pattern takes the form USER@HOST then USER and HOST are separately checked, restricting logins to particular users from particular hosts. The allow/deny directives are processed in the following order: DenyUsers, AllowUsers, DenyGroups, and finally AllowGroups.

Edite o arquivo /etc/ssh/sshd_config e inclua na parte inferior dele:

AllowUsers git [email protected].* [email protected].* [email protected].* [email protected].*

Se isso não funcionar (e desta forma, pode ser realmente mais limpo) você pode usar a opção Match junto com AllowUsers :

# This is the default setting (only allow GIT access)
AllowUsers git 

# This is the setting that is ONLY available if you are SSHing from the LAN (allow the listed users)
Match Address 192.168.0.*
    AllowUsers git adam bob cliff dave
    
por 07.08.2015 / 09:27
1

você pode usar seus sistemas iptables. Essas três linhas fariam a mágica

# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

talvez você tenha que ajustar os parâmetros como os endereços IP da Lan.

se seus usuários vpn forem roteados para, por exemplo, 192.169.8.0/24, você precisa ajustar isso e adicionar também

# iptables -A INPUT -p tcp --dport 22 -s 192.168.8.0/24 -j ACCEPT

antes de adicionar a linha de soltar, porque, se você não o fizer, somente os pacotes na porta 22 serão aceitos se o proprietário tiver um 192.168.0.0/24 ou um endereço de host local.

    
por 07.08.2015 / 08:53

Tags