Я хочу отключить публичный доступ к ssh. Как мне по-прежнему получить доступ к серверу, но заблокировать порт 22? Нужно ли мне создавать еще один экземпляр только для openvpn (это нормально)? Есть ли где-нибудь учебник, чтобы в основном "спрятать" ssh за vpn?
В зависимости от того, почему вы хотите заблокировать порт 22, может быть достаточно переместить ваш sshd с порта 22 на любой другой порт, например, 22222 или 12345. Это достигается путем добавления строки
Port 12345
в / etc / ssh / sshd_config и перезагрузите конфигурацию sshd, например
/etc/init.d/ssh reload
У вас может быть более одного активного порта, только для нескольких таких строк в файле конфигурации.
TomTomTom
у меня есть Debian 8
сервер с общедоступным IP и блокировкой и открытым доступом, когда я хочу использовать knockd
:
apt-get install -y knockd
В конфигурационном файле /etc/knockd.conf
:
[options]
UseSyslog
[openSSH]
sequence = 2009,8019,9099
seq_timeout = 20
command = /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 2000,1449,6712
seq_timeout = 20
command = /sbin/iptables -D INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
tcpflags = syn
Теперь вам нужно перезапустить службу с помощью /etc/init.d/knockd restart
Чтобы открыть и закрыть порт ssh, у меня на компьютере есть один сценарий:
открыто
#!/bin/bash
PATH=$PATH:/usr/local/bin
for i in 2009 8019 9099
do
nmap -Pn -p ${i} --max-retries 0 myremoteserverip
done
близко
#!/bin/bash
PATH=$PATH:/usr/local/bin
for i in 2000 1449 6712
do
nmap -Pn -p ${i} --max-retries 0 myremoteserverip
done
Теперь последний шаг - заблокировать весь входящий трафик с помощью iptables -P INPUT DROP
На этом этапе вы можете попытаться открыть порт ssh, используя скрипт, сделайте это, если у вас есть консоль, чтобы попасть внутрь вашего сервера, если вы заблокируете.
Если ваш сервер имеет vpn-соединение, возможно, вы можете настроить свой ssh-сервер ListenAddress к локальной конечной точке vpn, а не по умолчанию для всех локальных адресов.
Не уверен, что ты хочешь делать.
если вам просто нужно отключить ssh и подключиться к серверу, просто остановите sshd и используйте телнет или что-то другое.
в целях безопасности, соединение ssh с оболочкой vpn, что означает, что ssh не является общедоступным, если только vpn не является безопасным.
У вас есть статический IP-адрес, с которого вы подключаетесь? Может просто разрешить SSH от этого. В противном случае также можно использовать VPN. Я сам запрещаю аутентификацию по паролю. Риски того, что у кого-то есть мой 4096-битный закрытый ключ RSA, довольно минимальны.
Чтобы изменить порт SSH, вы можете изменить директиву Port в /etc/init.d/sshd_config. Измените значение по умолчанию 22 на что-нибудь еще и перезапустите демон sshd.
Если на вашем сервере настроена служба VPN, вы можете заставить SSH прослушивать только интерфейс VPN.
Отредактируйте / etc / ssh / sshd_config и добавьте эту директиву (при условии, что IP-адрес VPN для сервера 102.168.10.1):
ListenAddress 192.168.10.1
Перезапустите ssh (service sshd restart
или service ssh restart
, в зависимости от вашего дистрибутива), а ssh будет доступен только изнутри VPN.