sexta-feira, 4 de março de 2011

Acesso SSH em mais de uma porta


Há algum tempo atrás precisei fazer algumas configurações em um dos servidores que eu trabalhava para que conseguisse acessar remotamente através da Internet e da rede local também. Nesse local, a maioria dos servidores é Linux, com excessão do servidor de Domínio que é Windows Server. Porém eu não queria liberar a porta 22 para a Internet, somente para a rede local. Para a Internet eu queria liberar uma porta alta.


Se o servidor não fosse o gateway da rede, eu poderia liberar a porta 22 nele e no gateway criar um redirecionamento a partir de uma porta alta. Mas o servidor é o gateway, é o que fica de cara com a Internet. Se eu redirecionasse uma porta alta para a 22, seria a mesma coisa que liberar a 22, pois também seria possível acessar por ela.

Então depois de muito procurar, vi que o OpenSSH pode escutar por mais de uma porta ao mesmo tempo. Para fazer isso, basta acessar o /etc/ssh/sshd_config e acrescentar as portas que deseja o acesso.

Port 22
Port 3200

No caso acima, o sshd (o nome dado ao serviço do SSH) vai escutar nas duas portas. É possível adicionar mais portas, não sei qual o limite, mas não preciso de mais de duas no momento. Depois é só configurar as regras pelo IPTables.

Deixando a regra de INPUT como DROP:

iptables -t filter -P INPUT DROP

Agora criando as regras para acesso pela rede local e pela Internet:

iptables -t filter -A INPUT -p tcp -i $LAN_IFACE --dport 22 -s $IP_REDE_LOCAL -j ACCEPT
iptables -t filter -A INPUT -p tcp -i $WAN_IFACE --dport 3200 -j ACCEPT

E problema resolvido. Não achei que fosse tão simples resolver esse problema.