Похожие вопросы

Откройте брандмауэр автоматически для всех, кто успешно подключился через SSH

У меня есть сервер, который работает несколько служб. Однако по соображениям безопасности я настроил сервер так, чтобы ничего, кроме SSH, не было доступно извне.

вместо этого я бы хотел, чтобы сервер разрешал доступ ко всем своим сервисам всем, кому удалось успешно войти через SSH (и как только этот человек отключится, снова закройте все порты, за исключением порта SSH, который должен оставаться открытым).

есть ли способ сделать это?

Я использую Arch Linux на сервере и ufw для управления брандмауэром.

5
задан houbysoft
источник

2 ответов

Вы можете поместить команды ~/.bashrc, все, что там выполняется каждый раз, когда пользователь входит в систему.

чтобы ваши команды запускались только при входе через ssh (а не при входе физически), вы можете проверить наличие SSH_CONNECTION переменные среды.

1
отвечен Bart Koopman 2013-01-25 12:44:06
источник

Я написал решение для этого. Это не идеально, и улучшения приветствуются. Тем более, я думаю, что ~/.bash_logout не вызывается, если соединение умирает, но я хочу, чтобы брандмауэр тоже закрывался в этих случаях.

в любом случае, прежде всего, настроить sudoers файл, так что ваш пользователь может запустить ufw двоичный файл без ввода пароля.

затем в ~/.bashrc:

ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
echo "=> Opening the firewall for $ip..."
sudo ufw allow from $ip
echo "=> Done."

In ~/.bash_logout:

ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
echo "=> Closing the firewall for $ip..."
sudo ufw delete allow from $ip
echo "=> Bye."

опять же, это будет только reclose порты, если вы завершаете сеанс должным образом. Если кто-то знает, как закрыть его всякий раз, когда соединение выходит / умирает / что-то еще, отредактируйте этот ответ своим решением.

0
отвечен houbysoft 2013-01-25 19:25:33
источник

Другие вопросы arch-linux firewall iptables linux ufw