Я был однажды сталкивающийся с попыткой определить, какой процесс был позади конкретного порта (на этот раз, это было 8000). Я попробовал множество lsof и netstat, но затем рискнул и попытался поразить порт через браузер (т.е. http://hostname:8000/). О чудо экран-заставка приветствовал меня, и стало очевидно, чем был процесс (для записи, это был Splunk).
Еще одна мысль: "PS-e-o pid, args" (YMMV) может иногда показывать номер порта в списке аргументов. Grep является Вашим другом!
На стороне сервера можно ограничить это путем установки их пользовательской оболочки на /bin/true
. Это позволит им проходить проверку подлинности, но не на самом деле выполнять что-либо, так как они не заставляют оболочку выполнять его в. Это означает, что они будут ограничены любым подмножеством вещей, которые SSH может предложить им. Если это предложит перенаправление портов, то они все еще смогут сделать это.
На стороне клиента Вы, вероятно, захотите соединиться с -N
. Это мешает клиенту ПРОСИТЬ удаленную команду, такую как оболочка, она просто останавливается после того, как часть аутентификации сделана. Благодаря комментаторам для pointhing это.
Вы можете контролировать то, что люди могут сделать в SSH, соответствующие группам, предполагая, что ваша версия SSH достаточно новая, чтобы поддержать ее (Openssh 5.x +).
В основном мы относимся к ним, как будто они были пользователями SFTP, но позволяют пересылать TCP и , необязательно Укажите направления, которые они могут переслать. Если вы дадите им домашний каталог, но не создавайте каталоги под нем, они не могут передавать какие-либо файлы, потому что у них не будет разрешения на это.
Match Group nicepeople
PubkeyAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
GatewayPorts no
ChrootDirectory /opt/dummy_location/%u
ForceCommand internal-sftp
AllowTcpForwarding yes
PermitOpen 192.168.0.8:22
PermitOpen 192.168.0.5:8080
# Or leave out the PermitOpen to allow forwarding to anywhere.
HostbasedAuthentication no
RhostsRSAAuthentication no
AllowAgentForwarding no
Banner none
Вы можете повторить эти группы совпадений блоков для каждой группы, которую вы хотите обеспечить другое поведение или ограничения.
Вы можете дополнительно контролировать, где этот человек может отправиться в сеть, используя iPtables
/sbin/iptables -I OUTPUT -m owner --gid-owner 500 -j REJECT
/sbin/iptables -I OUTPUT -m owner --gid-owner 500 -m tcp -p tcp -d 192.168.0.0/24 -j ACCEPT
, это предполагает, что GID группы «NicePeople» 500.
Некоторые из приведенных выше вариантов SSH доступны в более старых версиях OpenSSH, но Не в разделе Match Group. Группа матчей очень ограничена в Openssh 4.x и ранее.
Следующее имеет то преимущество, что переадресация сокетов агента X11 и SSH также запрещена, что все еще может быть разрешено способом Калебов. Еще одно преимущество заключается в том, что если пользователь может изменить свою оболочку по умолчанию любым другим способом, это все равно ограничит его доступ по SSH только пересылкой TCP.
Поместите следующее в свой / etc / ssh / sshd_config
:
Match User that-restricted-guy
AllowTcpForwarding yes
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false
, чтобы разрешить пользователю that-limited-guy
пересылать любые TCP-соединения через вашу машину с поддержкой SSH ( подключение к этой машине, также к localhost
и даже подключение с этой машины к другим машинам).
Если вы хотите, чтобы он был еще более ограничительным (что является хорошей идеей), вы также можете сделать следующее:
Match User even-more-restricted-guy
PermitOpen 127.0.0.1:12345
X11Forwarding no
AllowAgentForwarding no
ForceCommand /bin/false
Это позволит пользователю even-more-limited-guy
только когда-либо пересылать соединения на 127.0.0.1 TCP-порт 12345 (поскольку он виден на вашем компьютере с включенным SSH).
Когда пользователь обычно подключается, он теперь будет немедленно отключен, потому что будет запущена команда / bin / false
, которая ничего не делает, кроме мгновенного выхода с кодом 1. Если вы хотите избежать этого, оставьте открытое соединение для переадресации, добавьте флаг -N
к команде ssh
. Это не будет пытаться выполнить какую-либо команду, но все же позволит настроить пересылку TCP.
Пример команды пересылки, которая должна работать в последней настройке:
ssh -L 12345:127.0.0.1:12345 -N even-more-restricted-guy@insert-your-machine
useradd sshtunnel -m -d /home/sshtunnel -s /bin/true
. – fracz 11.06.2016, 19:48