Я понимаю, что "безопасный" - очень загруженное определение.
Мне нужно подключиться к серверу регистрации SFTP (только пользователь / пароль, без ключа ssh).
Сервер SFTP имеет белый список IP-адресов, и все IP-адреса моих серверов являются динамическими. Я хочу настроить прокси-сервер SOCKS5 со статическим IP-адресом, который позволит мне подключаться с моих серверов и проксировать соединение SSH. К сожалению, я не могу занести в белый список входящие IP-адреса в брандмауэре, потому что я использую Heroku, который использует любой IP-адрес на Amazon
. Я в основном обеспокоен тем, что этот прокси-сервер открыт для всего мира, и я хочу убедиться, что шаги, которые я сделали хорошо, или если мне нужно сделать больше. Я знаю, что безопасность может идти в крайнем направлении, но я не особо продвинутый, поэтому мне нужна золотая середина, которая подходит для 99,95% приложений.
Вот шаги, которые я сделал, и ничего больше ( так что никакой дополнительной настройки или установки программного обеспечения и т. д.).
Ubuntu 18.04
, дайте ему статический IP-адрес tcp: 1080
в брандмауэре с использованием веб-интерфейса Google Cloud блок 80
и 443
Создайте нового пользователя с помощью следующей команды, используя очень безопасный пароль (длина 24 символа, включая буквы и цифры )
useradd -M -s / usr / sbin / nologin -p $ (openssl passwd -1 ПАРОЛЬ) ИМЯ ПОЛЬЗОВАТЕЛЯ
Установите Dante со следующей конфигурацией ( ens4
происходит из запуска ifconfig
и получения имени адаптера. Думаю, это то, как это называется в облаке Google):
logoutput: /var/log/danted.log
внутренний: Ens4 порт = 1080
внешний: ens4
socksmethod: имя пользователя
clientmethod: нет
user.privileged: root
user.unprivileged: никто
# закомментировать строки user.libwrap
timeout.io: 43200
client pass {
от: 0.0.0.0/0 до: 0.0.0.0/0
журнал: ошибка
}
socks pass {
от: 0.0.0.0/0 до: регистрация-service.example.com
журнал: ошибка
}
Вот мои основные проблемы:
method
внутри блоков client
и socks
... мне что-то туда положить? Или он использует то, что указано выше в разделах socksmethod
и clientmethod
? socks
, чтобы разрешить подключение только к logging-service.example.com
, хотя я полагаю, что если кто-то вторгся до этого момента, то что-то очень не так. net-ssh
/ net-sftp
, которые я использую, также поддерживают прокси-серверы "jump", это более безопасно? Есть ли другие идеи, чтобы сделать его более безопасным?
1) Не уверенный, о чем они говорят. Очевидно, у Вас должен будет быть один открытый порт, и, пока Ваши серверы могут достигнуть того порта, это не имеет большого значения, каков тот номер порта.
1080 стандартный порт носков однако, поэтому если кто-то делает сканирование портов, и они видят, что порт 1080 открыт, их первое предположение может быть то, что существует сервер носков, работающий на том порте, и они нападут, это с их "носками нападает на инструменты". Если вместо этого Вы позволите Dante послушать на порте 443, то возможно, они первоначально предположат, что это - https сервер, и при первом нападении это с их "https нападает на инструменты. Т.е. это могло бы запутать вещи немного для взломщика.
2) Это будет использовать то, что выше. Вставление его только полезно, если то, что выше, является списком нескольких methods/clientmethods, и Вы хотите предельные определенные правила к подмножеству того списка.
3) не знают, каков "fail2ban", но Вы могли бы хотеть сделать правила для этого. Если Вы затем замечаете, что сто заблокированных запросов от IP-адреса 'k' в Вашем файле журнала Dante, возможно, ее благоразумное добавляют "клиентское правило" блока для того IP-адреса, вместо того, чтобы позволяют ему продолжить играть в игру предположения.
4) Имеет смысл.
5) Да, если можно заставить его работать в примере использования.
6), Возможно, нет. Некоторые возможности могут однако быть:
Использование "метод: gssapi" вместо "метода: имя пользователя". Это намного более безопасно (никакое имя пользователя/пароли простого текста, отправляемое по сети Dante), но также намного более трудно настроить и включает установку Kerberos.
, Если серверы Вы соединяетесь с Dante от выполненного identd/rfc931-servers, можно измениться "clientmethod: ни один" к "clientmethod: rfc931" и добавляют дополнительное "identd" имя пользователя на хосте Dante с этой целью.
будет служить своего рода двухфакторной аутентификацией, где кто-то должен будет предположить и какие identd имена пользователей Dante примет соединения от, и какие имена пользователей/пароли Dante примет от этих соединений. Это - однако также протокол открытого текста, поэтому если кто-то может осуществить сниффинг сетевого трафика, они видят имя identd, а также Ваше имя пользователя носков и пароль.