2016-02-25 2 views
0

Я являюсь пользователем bob и запускаю процесс script.sh. Я хотел бы заблокировать исходящие запросы, сделанные script.sh, на IP X.X.X.X.Имитировать сетевое отсоединение во время тестирования

боб не корень. бот не может получить root.

Я попытался с помощью IPTables

iptables -A INPUT -s X.X.X.X -j DROP && service iptables save 

Но я получаю:

iptables v1.4.21: can't initialize iptables table `filter': Permission denied (you must be root) 

Больше контекст:

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

+0

Что вы хотите? Ответ, который говорит вам, как обойти безопасность вашей системы? –

+1

iptables построен очень намеренно, чтобы не разрешать настройку непривилегированных пользователей и по очень веским причинам. Если вам нужен более слабый подход - то есть. затенение соответствующих вызовов библиотеки C с библиотекой LD_PRELOAD - это выполнимо, но также можно обойти. –

+0

И как это вопрос программирования? Похоже, что базовый администратор Linux для меня ... – tink

ответ

1

Я бы предложил настроить очень ограниченный механизм эскалации привилегий, чтобы позволить tcpkill запускаться пользователем тесты.

Например, в /etc/sudoers, вы можете иметь что-то вроде следующего:

# allow tcpkill to be run under sudo by scripts 
Defaults!/usr/sbin/tcpkill !requiretty 

# allow testuser to invoke /usr/sbin/tcpkill for IP address 1.2.3.4 
testuser: ALL = (root) NOPASSWD: /usr/sbin/tcpkill host 1.2.3.4 
Смежные вопросы