2

У меня есть серверный компьютер с Ubuntu, на котором размещены репозитории Redmine и git в DMZ. Единственные пользователи, которые имеют доступ по SSH, являются администраторами. Пользователям извне необходимо иметь доступ к Git и веб-интерфейсу Redmine, но я хотел бы, чтобы доступ по SSH ограничивался подключениями изнутри сети (у нас настроена VPN, поэтому даже снаружи я мог бы подключиться по SSH в сервер через него).

Как я могу запретить доступ SSH извне локальной сети, все еще разрешая доступ Git?

Заранее большое спасибо!

р

2 ответа2

3

OpenSSH (я предполагаю, что вы используете) имеет опцию AllowUsers:

AllowUsers - за этим ключевым словом может следовать список шаблонов имен пользователей, разделенных пробелами. Если указано, вход в систему разрешен только для имен пользователей, которые соответствуют одному из шаблонов. Допустимы только имена пользователей; числовой идентификатор пользователя не распознается. По умолчанию вход разрешен для всех пользователей. Если шаблон принимает форму USER @ HOST, тогда USER и HOST проверяются отдельно, ограничивая вход в систему определенным пользователям с определенных хостов. Директивы allow/deny обрабатываются в следующем порядке: DenyUsers , AllowUsers , DenyGroups и, наконец, AllowGroups .

Отредактируйте файл /etc/ssh/sshd_config и добавьте его внизу:

AllowUsers git adam@192.168.0.* bob@192.168.0.* cliff@192.168.0.* david@192.168.0.*

Если это не сработает (и этот способ действительно может быть чище), вы можете использовать опцию Match вместе с AllowUsers:

# This is the default setting (only allow GIT access)
AllowUsers git 

# This is the setting that is ONLY available if you are SSHing from the LAN (allow the listed users)
Match Address 192.168.0.*
    AllowUsers git adam bob cliff dave
1

Вы можете использовать свои системы iptables. Эти три строки сделали бы волшебство

# iptables -A INPUT -p tcp --dport 22 -s 192.168.0.0/24 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -s 127.0.0.0/8 -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j DROP

может быть, вам нужно настроить параметры, такие как IP-адреса Lan.

если ваши пользователи vpn перенаправлены, например, на 192.169.8.0/24, вы должны настроить это и добавить также

# iptables -A INPUT -p tcp --dport 22 -s 192.168.8.0/24 -j ACCEPT

перед добавлением строки удаления, поскольку, если вы этого не сделаете, принимаются только пакеты на порт 22, если владелец имеет адрес 192.168.0.0/24 или адрес localhost.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .