Вы неправильно понимаете проблему. Не каждый пакет является ответом, и не каждый пакет может быть подобран к некоторому другому пакету, таким образом, что "тот же сетевой интерфейс, поскольку они вошли на", имеет смысл. То, что Вы хотите сделать, выбрать шлюз для пакета на основе его исходного IP-адреса.
Это называют основанной на источнике маршрутизацией или маршрутизацией политики. Можно сделать это с простым iptables
правило, но лучший способ состоит в том, чтобы настроить две таблицы маршрутизации, один для каждого общедоступного исходного адреса:
Во-первых, составьте две таблицы (Замена
echo 200 >> /etc/iproute2/rt_tables
echo 201 >> /etc/iproute2/rt_tables
Добавьте шлюз к каждой таблице маршрутизации (в случае необходимости):
ip route add dev src table
ip route add dev src table
Затем маршрут по умолчанию:
ip route add default via table
ip route add default via table
Затем правила выбрать таблицу маршрутизации на основе исходного адреса:
ip rule add from table
ip rule add from table
Посмотрите Маршрутизацию для нескольких восходящих каналов/поставщиков для получения дополнительной информации.
Вы могли экспортировать /var/log/syslog-ng/B
и /var/log/syslog-ng/C
с помощью сетевого протокола, такого как NFS или Samba.
Можно создать пользователя с scp-единственной оболочкой, такой как scponly или rssh. Набор, что корневой каталог пользователя к /home/log-viewers-BC
. Используйте bindfs для создания представления /var/log/syslog-ng/B
как /home/log-viewers-BC/B
и представление /var/log/syslog-ng/C
как /home/log-viewers-BC/C
.
Но a .htaccess
подход является также хорошим выбором, займитесь расследованиями в лучшем наборе cgi сценариев для живых обновлений.
Оболочка удара переходит к ограниченному режиму (при вызове rbash
) это предотвращает пользователей - среди прочего от изменения PATH
или изменение текущего каталога с cd
; путем связи этого с ограничением управления доступом, обеспеченным группами UNIX, можно ограничить пользователей для просмотра только файлов в определенном каталоге.
Я реализовал бы его этот путь:
Создайте группы A
, B
, и т.д. - каждая группа может прочитать (но не запись) соответствующий каталог и файлы журнала в нем:
$ ls -lF /var/log/syslog-ng
drwxr-x--- root A ... A/
drwxr-x--- root B ... B/
[...]
$ ls -l /var/log/syslog-ng/A/
-rwxr----- root A ... logfile.log
-rwxr----- root A ... logfile.log.1
[...]
Изменить /etc/group
и добавьте пользователей к этим группам согласно журналам, которые Вы хотите, чтобы они считали:
$ tail /etc/group
[...]
A: foo
B: bar
Создайте каталог для хостинга команд, Вы хотите предоставить доступ к средствам просмотра журнала; давайте предположим, что это /usr/local/restricted/bin
. Копия или жесткая ссылка соответствующие команды к этому каталогу.
Изменить /etc/profile
так, чтобы Вы настроили корректное PATH
для ограниченных пользователей: ограниченный ПУТЬ должен только включать /usr/local/restricted/bin
(или любой другой каталог, который размещает "безопасные" ограниченные команды).
Изменить /etc/passwd
и удостоверьтесь, что пользователям дают оболочку входа в систему rbash
и соответствующее /var/log/syslog-ng/XXX
каталог как домой. Они могут теперь войти в систему, но заключены в тюрьму к корневому каталогу и могут только использовать команды на ограниченном ПУТИ.
Примечание: Легко обойти ограниченную оболочку режима при обеспечении доступа к командам, которые разрешают пользователей должностному лицу произвольная команда, например, Perl или почти любой редактор.