eddy_mut Posted April 28, 2005 Posted April 28, 2005 Нужен скрипт которому можно передать IP выданный юзеру на время сессии. А скрипт дальше найдет по этому адресу в таблице маршрутизации имя интерфейса. А по имени интерфейса разыщет в /var/run pid файл А в нем возьмет pid процесса И потом выполнит kill <pid> Вот.... Как работать должно представил, а как написать на шелле фиг знает :) Вставить ник Quote
eddy_mut Posted April 28, 2005 Author Posted April 28, 2005 ха... а может у когонибудь есть готовый? Вставить ник Quote
eddy_mut Posted April 28, 2005 Author Posted April 28, 2005 Все оказалось гораздо проще :) - мой пропатченный ppp выдает радиусу вот такие атрибуты: Acct-Session-Id = "1313-username1114697491" где 1313 - это и есть тот самый pid Тоесть моему билингу остается взять эту цифру и когда наступит необходимость выполнить на удаленной машине команду kill. Только теперь непонятно как программе выполнять команду на удаленной машине? Вставить ник Quote
eddy_mut Posted April 28, 2005 Author Posted April 28, 2005 Чтото я совсем завяз :( Получается так, что даже если я зайду по SSH на удаленный NAS (опять же надо создавать юзера на нем и хранить его пароль в открытом виде в скрипте) то мне не дадут прав сделать kill. Помогите ктонибудь - наведите на мысль :) Вставить ник Quote
desperado Posted April 28, 2005 Posted April 28, 2005 Напиши по-человечески чего ты хочешь... с юзером ничего не понятно... Вставить ник Quote
eddy_mut Posted April 28, 2005 Author Posted April 28, 2005 Есть два сервера: 1. Solaris - на нем биллинг с RADIUS 2. FreeBSD - NAS - VPN - PoPToP - PPP Вопрос как биллингу убить ppp-сессию пользователя? Я так понимаю что билинговый сервак должен както по SSH забраться на NAS и выполнить там команду kill <pid сессии ppp>. А вот как это толком сделать не совсем представляю. Я все это пробовал смоделировать вручную: сидя на Solaris, залогинился по SSH на NAS - и кильнул юзера. Теперь бы все это автоматизировать. Да так чтобы любой другой так же не мог забираться на NAS и килять всех подряд :) Вставить ник Quote
desperado Posted April 28, 2005 Posted April 28, 2005 Вопрос как биллингу убить ppp-сессию пользователя?Я так понимаю что билинговый сервак должен както по SSH забраться на NAS и выполнить там команду kill <pid сессии ppp>. А вот как это толком сделать не совсем представляю. Я все это пробовал смоделировать вручную: сидя на Solaris, залогинился по SSH на NAS - и кильнул юзера. Теперь бы все это автоматизировать. Да так чтобы любой другой так же не мог забираться на NAS и килять всех подряд :) Тема в корне меняет смысл: задача безопасно связать 2 машины по общедоступной сети. Тогда это вопрос о том как настроить SSH, с авторизацией НЕ по паролю. Ответ на него есть в доках по SSH. В 2-х словах авторизация на основе предварительного ручного (или даже автоматического, но только 1 раз) обмена ключами, с последующей их фиксацией + ограничение по IP, в качестве параноидального уровня можно SSH прикрыть еще и фаерволом для левых ИП, но это ИМХО лишнее. на "килятор" ставишь suid bit, или заходишь под рутом или тем же кого киляешь. Вставить ник Quote
eddy_mut Posted April 28, 2005 Author Posted April 28, 2005 Тогда это вопрос о том как настроить SSH, с авторизацией НЕ по паролю. Ответ на него есть в доках по SSH. В 2-х словах авторизация на основе предварительного ручного (или даже автоматического, но только 1 раз) обмена ключами, с последующей их фиксацией + ограничение по IP, в качестве параноидального уровня можно SSH прикрыть еще и фаерволом для левых ИП, но это ИМХО лишнее. Почитаю маны... на "килятор" ставишь suid bit А вот тут поподробнее. Вставить ник Quote
desperado Posted April 28, 2005 Posted April 28, 2005 Почитаю маны...на "килятор" ставишь suid bit А вот тут поподробнее. "set user ID on execution" позволяет всегда запускать файл от имени владельца файла, а не того кто запускает. За безопасность и авторизацию отвечает сама прога. Есть аналогичный бит для GID процесса. Чаще всего владельцем файла при этом является root. При этом прога будет иметь полный доступ к системе. Вставить ник Quote
eddy_mut Posted April 28, 2005 Author Posted April 28, 2005 С set user ID on execution все заработало. Прописал на NAS в /etc/ssh/sshd_conf : HostbasedAuthentication yes Прописал ключи в файлах /etc/ssh/ssh_known_hosts. А оно все равно запрашивает пароль. Может утилите ssh при подключении надо указывать какойто особый параметр? Вставить ник Quote
desperado Posted April 28, 2005 Posted April 28, 2005 в домашней папке юзера файл .rhosts с именем хоста откуда цепляешься. В конфиге отключить игнорирование этих файлов. Фишка капризная. Например обязателен правильный RDNS. Я не настраивал SSH в таком режиме но точно знаю, что работает! Я бы вообще сделал cgi + .htaccess и билингом дергал бы скрипт методом GET. Вставить ник Quote
desperado Posted April 28, 2005 Posted April 28, 2005 Чудная пошаговая статейка на эту тему. http://www.hostinfo.ru/print/internet/secu.../ssh/automation Вставить ник Quote
eddy_mut Posted May 3, 2005 Author Posted May 3, 2005 сделал пошагово - работает попробовал разобраться что к чему - скажем например перенести этот ключ для другого пользователя - не получается. Но это уже неважно. Насчет CGI - получается что пароль к .htaccess будет храниться в открытом виде в самом скрипте? Вставить ник Quote
desperado Posted May 3, 2005 Posted May 3, 2005 сделал пошагово - работаетпопробовал разобраться что к чему - скажем например перенести этот ключ для другого пользователя - не получается. Но это уже неважно. Насчет CGI - получается что пароль к .htaccess будет храниться в открытом виде в самом скрипте? На счет .htaccess я имел ввиду по IP. скрипт который коннектится будет имет пароль в открытом виде (или в таком из которого можно получить его в открытом виде) как не крути, можно конечно заморочиться, но нет смысла, лучше поставить на него чтение только для рута. скрипт к которому коннектишься (CGI), может шифровать сначала пароль, а потом сравнивать с зашифрованным. если запись в этот скрип невозможна то и заставить его сработать без пароля тоже будет крайне проблематично. Передавать пароль я бы стал методом GET - так проще. Вообще при наличии SSH - нет смысла использовать CGI. Вставить ник Quote
Guest Posted May 4, 2005 Posted May 4, 2005 Умеет с веба выбивать клиентов http://abills.sf.net Вставить ник Quote
lenten Posted May 6, 2005 Posted May 6, 2005 Курение вызывает старение кожи. В Европе люди меньше курят! Иммиграция в европейские страны: http://cernis.cz Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.