У меня есть компьютер с SSH, к которому я хотел бы предоставить своим друзьям доступ, но я не хочу, чтобы они использовали мое интернет-соединение через туннелирование SSH (хотя я бы хотел сделать это сам). Есть ли способ вести журнал о том, когда создаются SSH-туннели и какими (локальными) пользователями или, если это невозможно, разрешают делать это только некоторым пользователям?
Если ваши друзья могут использовать SSH на вашем компьютере, они используют часть вашей пропускной способности, и поэтому невозможно полностью заблокировать им доступ к вашему интернет-соединению.
Тем не менее, одним из решений было бы ограничить то, что ваши друзья могут делать с вашим соединением. Вы можете настроить брандмауэр, который вносит в белый список IP-адреса вашего друга и помещает в черный список все остальное. Таким образом, ваши друзья смогут использовать SSH на вашем компьютере, но оттуда не смогут получить доступ к любому другому IP-адресу, кроме своего собственного.
Я никогда не настраивал брандмауэр для конкретного пользователя сам, но я считаю, что этого можно добиться с помощью IPTables . Кроме того, имейте в виду, что ваши пользователи могут по-прежнему поглощать большую часть вашей пропускной способности, загружая большие файлы на ваш сервер. Если вы хотите предотвратить это, вам нужно будет ограничить пропускную способность для каждого пользователя .
Вы хотите убедиться, что / etc / ssh / sshd_config содержит
AllowTcpForwarding no
, а затем в конец файла поместите
Match User yourusername
AllowTcpForwarding yes
Это позволит вам и только вам Перенесите порт к своему сердцу, но, как сказал Жуан, вы не сможете помешать им запускать свои собственные программы, если вы не отключите доступ к оболочке.
Обратите внимание, что хотя вы можете отключить переадресацию TCP с помощью sshd, вам нужно пойти намного дальше, чтобы ограничить исходящую активность ваших пользователей. Дать им скорлупу - значит дать им много силы.
Например, если они могут scp файлы на сервер и выполнять файлы в / home, они могут просто загрузить двоичный файл pppd и использовать его для запуска PPP через SSH. Если вы разрешаете входящие соединения, они могут просто запустить /usr/sbin/sshd -p 9999 -f special_sshd_config
и использовать ваш сервер через этот sshd.
Возможно, вы захотите взглянуть на модуль владельца iptables (man iptables, поиск владельца) и тюрьмы chroot, но это действительно трудно решить, не разрушая их опыт оболочки.
Единственный вариант, который мне нужен, - отключить туннелирование на системном уровне.
Отредактируйте / etc / ssh / sshd_config и измените / добавьте
AllowTcpForwarding no
Обратите внимание, что, не имея доступа к оболочке, нельзя запретить пользователям использовать собственные двоичные файлы для пересылки соединений.
Это также было задано для serverfault https://serverfault.com/questions/181660/how-do-i-log-ssh-port-forwards и есть патч: http://blog.rootshell.be/2009/03/01/keep-an-eye-on-ssh-forwarding/
Первая итерация:
Отключить ssh forwarding для них. в ssh
Вы включаете IPSec для себя и VPN на свой сервер. IPSec - это сетевой уровень, поэтому на него не влияют настройки приложения SSH.