Jump to content

Recommended Posts

Posted

Нужен скрипт которому можно передать IP выданный юзеру на время сессии.

 

А скрипт дальше найдет по этому адресу в таблице маршрутизации имя интерфейса.

А по имени интерфейса разыщет в /var/run pid файл

А в нем возьмет pid процесса

И потом выполнит kill <pid>

 

Вот....

 

Как работать должно представил, а как написать на шелле фиг знает :)

Posted

Все оказалось гораздо проще :) - мой пропатченный ppp выдает радиусу вот такие атрибуты:

 

Acct-Session-Id = "1313-username1114697491"

 

где 1313 - это и есть тот самый pid

 

Тоесть моему билингу остается взять эту цифру и когда наступит необходимость выполнить на удаленной машине команду kill. Только теперь непонятно как программе выполнять команду на удаленной машине?

Posted

Чтото я совсем завяз :(

 

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

Posted

Есть два сервера:

 

1. Solaris - на нем биллинг с RADIUS

2. FreeBSD - NAS - VPN - PoPToP - PPP

 

Вопрос как биллингу убить ppp-сессию пользователя?

Я так понимаю что билинговый сервак должен както по SSH забраться на NAS и выполнить там команду kill <pid сессии ppp>. А вот как это толком сделать не совсем представляю.

Я все это пробовал смоделировать вручную: сидя на Solaris, залогинился по SSH на NAS - и кильнул юзера. Теперь бы все это автоматизировать. Да так чтобы любой другой так же не мог забираться на NAS и килять всех подряд :)

Posted
Вопрос как биллингу убить ppp-сессию пользователя?

Я так понимаю что билинговый сервак должен както по SSH забраться на NAS и выполнить там команду kill <pid сессии ppp>. А вот как это толком сделать не совсем представляю.

Я все это пробовал смоделировать вручную: сидя на Solaris, залогинился по SSH на NAS  - и кильнул юзера. Теперь бы все это автоматизировать. Да так чтобы любой другой так же не мог забираться на NAS и килять всех подряд :)

 

Тема в корне меняет смысл: задача безопасно связать 2 машины по общедоступной сети.

 

Тогда это вопрос о том как настроить SSH, с авторизацией НЕ по паролю. Ответ на него есть в доках по SSH. В 2-х словах авторизация на основе предварительного ручного (или даже автоматического, но только 1 раз) обмена ключами, с последующей их фиксацией + ограничение по IP, в качестве параноидального уровня можно SSH прикрыть еще и фаерволом для левых ИП, но это ИМХО лишнее.

 

на "килятор" ставишь suid bit, или заходишь под рутом или тем же кого киляешь.

Posted
Тогда это вопрос о том как настроить SSH, с авторизацией НЕ по паролю. Ответ на него есть в доках по SSH. В 2-х словах авторизация на основе предварительного ручного (или даже автоматического, но только 1 раз) обмена ключами, с последующей их фиксацией + ограничение по IP, в качестве параноидального уровня можно SSH прикрыть еще и фаерволом для левых ИП, но это ИМХО лишнее.  

 

Почитаю маны...

 

на "килятор" ставишь suid bit

 

А вот тут поподробнее.

Posted
Почитаю маны...

на "килятор" ставишь suid bit

 

А вот тут поподробнее.

 

"set user ID on execution" позволяет всегда запускать файл от имени владельца файла, а не того кто запускает. За безопасность и авторизацию отвечает сама прога. Есть аналогичный бит для GID процесса. Чаще всего владельцем файла при этом является root. При этом прога будет иметь полный доступ к системе.

Posted

С set user ID on execution все заработало.

 

 

Прописал на NAS в /etc/ssh/sshd_conf :

 

HostbasedAuthentication yes

 

Прописал ключи в файлах /etc/ssh/ssh_known_hosts. А оно все равно запрашивает пароль. Может утилите ssh при подключении надо указывать какойто особый параметр?

Posted

в домашней папке юзера файл .rhosts с именем хоста откуда цепляешься. В конфиге отключить игнорирование этих файлов. Фишка капризная. Например обязателен правильный RDNS.

 

Я не настраивал SSH в таком режиме но точно знаю, что работает!

 

Я бы вообще сделал cgi + .htaccess и билингом дергал бы скрипт методом GET.

Posted

сделал пошагово - работает

попробовал разобраться что к чему - скажем например перенести этот ключ для другого пользователя - не получается. Но это уже неважно.

 

Насчет CGI - получается что пароль к .htaccess будет храниться в открытом виде в самом скрипте?

Posted
сделал пошагово - работает

попробовал разобраться что к чему - скажем например перенести этот ключ для другого пользователя - не получается. Но это уже неважно.

 

Насчет CGI - получается что пароль к .htaccess будет храниться в открытом виде в самом скрипте?

 

На счет .htaccess я имел ввиду по IP.

 

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

 

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

 

Передавать пароль я бы стал методом GET - так проще.

 

Вообще при наличии SSH - нет смысла использовать CGI.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.