Предположим, у меня есть IRC-сервер, работающий в Linux, и единственный способ добраться до этого окна - через ssh. Я не хочу открывать для всего мира какие-либо порты, я просто хочу, чтобы люди с логинами на этом сервере могли подключаться к IRC-серверу, работающему на этом хосте.
Я всегда мог подключиться к серверу по ssh и перенаправить некоторые порты через SSH. Есть ли способ лучше? Существуют ли клиенты IRC, которые позволят мне установить мой закрытый ключ, а затем перенаправить мне порты IRC?
Я полагаю, вы сможете написать сценарий для многих клиентов, который будет выполнять командную строку для открытия SSH-соединения с перенаправлением портов, а затем подключаться к соответствующему порту на localhost.
Если вы знаете, как настроить SSH для аутентификации с использованием ключей в authorized_keys
файл вы уже на полпути. Вы можете настроить файл для автоматического запуска сценария / команды, когда пользователь с закрытым ключом входит в систему. Это может даже включать запуск клиента IRC на стороне сервера.
В качестве альтернативы на стороне клиента вы захотите выполнить -L 6667:ircserver:6667
Перенаправление порта. Затем просто подключите свой IRC-клиент к localhost:6667
и он должен работать нормально.
Если все ваши пользователи могут запускать клиенты irc в той же системе, что и ircd: многие клиенты и серверы могут использовать соединения через сокеты домена UNIX, поэтому единственное, что прослушивает входящий трафик, - это ваш sshd.
Если у вас есть доступ к вашему брандмауэру, вы можете использовать что-то под названием portKnocking, что позволяет добавить действительно приятный уровень безопасности. Обычно вы «стучите» по определенному диапазону портов определенное количество раз, и в течение заранее определенного времени открывается определенный порт, через который вы можете подключиться. Все эти переменные могут быть установлены вами. Я установил его на свой роутер, на котором работает DD-WRT, и это довольно неплохо.
Я бы подумал, что если вам нужны только пользователи оболочки на ircd, самый быстрый и низкотехнологичный способ - запустить ircd только на локальных IP-адресах, например, 127.0.0.1, а затем установить IRC-клиент на основе CLI, такой как weechat, irssi, bitchx или epic . После этого пользователи оболочки должны подключиться к серверу по ssh, а затем запустить irc-клиент.
Установка и использование screen также может помочь, позволяя пользователям вернуться в свою оболочку, не закрывая клиент irc.
Надеюсь, это поможет.