Интерактивный брандмауэр для ubuntu 16.04 [dубликат]

Я хотел бы использовать программное обеспечение для управления программой, которая может подключаться к Интернету. Я знаю, что это поведение связано со словом «firewall», но некоторые пользователи Linux очень расстроены, если кто-то требует Personal Firewall. Я не хочу вас огорчать, требуя такой программы. Я не хочу «защищать порты» или другие вещи, которые Personal Firewall обещает в Windows. Я посмотрел на iptables, но это не соответствует моим требованиям.

Я увидел отличный ответ здесь («Как заблокировать доступ к интернету для винных приложений»), но это очень неудобно, чтобы настроить это.

Есть ли программное обеспечение, которое запрашивает каждую программу, если оно может получить доступ к Интернету?

47
задан 13 April 2017 в 15:25

90 ответов

В Ubuntu, ufw уже установлен брандмауэр, но по умолчанию он отключен. Вы можете включить и использовать его в командной строке:

https://help.ubuntu.com/8.04/serverguide/C/firewall.html

Или вы можете использовать программу с графическим интерфейсом поверх нее, gufw, который устанавливается непосредственно из программного обеспечения Ubuntu Software Center:

https://apps.ubuntu.com/cat/applications/ oneiric / gufw /

Если вам нужно заблокировать доступ в Интернет к определенному приложению, вы можете попробовать эту программу, которая все еще находится в бета-версии, и она недоступна в программном центре Ubuntu:

http://sourceforge.net/projects/leopardflower/

4
ответ дан 31 July 2018 в 21:28

Я нашел, что решение опубликовано здесь , чтобы быть хорошим. Это связано с созданием группы пользователей, для которой разрешен доступ в Интернет , и настройка правил брандмауэра, чтобы разрешить доступ только для этой группы. Единственный способ для приложения получить доступ к Интернету - это если он управляется членом этой группы. Вы можете запускать программы под этой группой, открыв оболочку с помощью sudo -g internet -s.

Чтобы добавить то, что находится в сообщении, которое я связал выше:

  1. Создайте группу «Интернет» введите следующее в оболочку: sudo groupadd internet
  2. Убедитесь, что пользователь, который запустит сценарий ниже, добавляется в группу sudo в /etc/group. Если вы в конечном итоге измените этот файл, вам нужно будет выйти из системы и вернуться к нему, прежде чем скрипт будет работать.
  3. Создайте сценарий, содержащий следующее, и запустите его:
    #!/bin/sh
    # Firewall apps - only allow apps run from "internet" group to run
    
    # clear previous rules
    sudo iptables -F
    
    # accept packets for internet group
    sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
    
    # also allow local connections
    sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT
    
    # reject packets for other users
    sudo iptables -A OUTPUT -p tcp -j REJECT
    
    # open a shell with internet access
    sudo -g internet -s
    
  4. Запустив вышеуказанный скрипт, вы получите оболочку, в которой вы можете запускать приложения с доступом в Интернет.

Обратите внимание, что этот скрипт ничего не делает для сохранения и восстановления вашего брандмауэра правила. Вы можете изменить скрипт для использования команд оболочки iptables-save и iptables-restore.

2
ответ дан 31 July 2018 в 21:28

Это было в iptables до версии ядра 2.6.24. Если вы используете машину 2.x - 2.6.24, и ваше ядро ​​выполнило это, вы можете это сделать. по какой-то причине они вытащили его, поэтому нет его не microsoft. http://cateee.net/lkddb/web-lkddb/IP_NF_MATCH_OWNER.html

1
ответ дан 31 July 2018 в 21:28

Для улучшения или хуже, Linux использует другой подход. Нет простого графического интерфейса, предлагающего эту функциональность. Есть много дискуссий по этой теме в Интернете, и вы можете найти интересные обсуждения, если вы google search. Хотя дискуссия интересна, на сегодняшний день не было выделенной группы программистов, желающих писать и поддерживать эту функциональность.

Инструменты, предлагающие эту функциональность в Linux, - это Apparmor, Selinux и Tomoyo.

Ни один из этих инструментов слишком прост в освоении, и все они имеют преимущества и недостатки. Лично я предпочитаю SELinux, хотя SELinux имеет более крутую кривую обучения.

См .:

http://www.linuxbsdos.com/2011/12/06/3- на уровне приложений-firewall-for-linux-distributions /

Было (есть) приложение, на которое уже ссылалось, leopardflower. Я не уверен в статусе / обслуживании.

3
ответ дан 31 July 2018 в 21:28

Нет, это невозможно. Он также не является частью традиционного определения брандмауэра. Это то, что Microsoft придумала довольно недавно, пытаясь разобраться в своих принципиально нарушенных проблемах безопасности ОС. Это считается безрассудным и неработоспособным в сообществе Linux, потому что одна из программ, которая не разрешена, может просто запустить другую программу, которая есть и получить доступ таким образом.

Если вам не нравится, что делает программа сеть при запуске, затем не запускайте эту программу.

0
ответ дан 31 July 2018 в 21:28

I нашел удобным решением, которое решает проблему. Вы создаете группу, которая никогда не разрешается использовать Интернет и запускает программу как член этой группы.

  1. Создайте группу no-internet. Не присоединяйтесь к этой группе.
  2. Добавьте правило iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP в таблицы ip, которое предотвращает использование всех процессов, принадлежащих группе no-internet, от сети.
  3. Выполнить sudo -g no-internet YOURCOMMAND вместо из YOURCOMMAND.

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

%sudo     ALL=(:no-internet)      NOPASSWD: ALL

или что-то похожее на ваш /etc/sudoers.

15
ответ дан 31 July 2018 в 21:28

Если вы все еще ищете такое приложение, я сейчас разрабатываю именно это приложение: http://douaneapp.com/

Мое приложение блокирует любые неизвестные приложения (заблокированы новые версии авторизованного приложения) и спросит вас, разрешаете ли вы или запрещаете его трафик.

Посмотрите на веб-сайт ;-)

screen shot [/g1]

29
ответ дан 2 August 2018 в 14:45

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

Вот решение, которое не требует изменения правил брандмауэра и работает под одним и тем же пользователем (через sudo) с измененной средой, где ваш пользователь my_user и приложение, которое вы хотите запустить, это my_app:

    # run app without access to internet
    sudo unshare -n sudo -u my_user my_app

Подробнее см. man unshare .

3
ответ дан 2 August 2018 в 14:45

Попробуйте Leopard Flower . Он имеет ограничения GUI и для каждого приложения.

1
ответ дан 2 August 2018 в 14:45

В Ubuntu, ufw уже установлен брандмауэр, но по умолчанию он отключен. Вы можете включить и использовать его в командной строке:

https://help.ubuntu.com/8.04/serverguide/C/firewall.html

Или вы можете использовать программу с графическим интерфейсом поверх нее, gufw, который устанавливается непосредственно из программного обеспечения Ubuntu Software Center:

https://apps.ubuntu.com/cat/applications/ oneiric / gufw /

Если вам нужно заблокировать доступ в Интернет к определенному приложению, вы можете попробовать эту программу, которая все еще находится в бета-версии, и она недоступна в программном центре Ubuntu:

http://sourceforge.net/projects/leopardflower/

4
ответ дан 2 August 2018 в 14:45

Я нашел, что решение опубликовано здесь , чтобы быть хорошим. Это связано с созданием группы пользователей, для которой разрешен доступ в Интернет , и настройка правил брандмауэра, чтобы разрешить доступ только для этой группы. Единственный способ для приложения получить доступ к Интернету - это если он управляется членом этой группы. Вы можете запускать программы под этой группой, открыв оболочку с помощью sudo -g internet -s.

Чтобы добавить то, что находится в сообщении, которое я связал выше:

  1. Создайте группу «Интернет» введите следующее в оболочку: sudo groupadd internet
  2. Убедитесь, что пользователь, который запустит сценарий ниже, добавляется в группу sudo в /etc/group. Если вы в конечном итоге измените этот файл, вам нужно будет выйти из системы и вернуться к нему, прежде чем скрипт будет работать.
  3. Создайте сценарий, содержащий следующее, и запустите его:
    #!/bin/sh
    # Firewall apps - only allow apps run from "internet" group to run
    
    # clear previous rules
    sudo iptables -F
    
    # accept packets for internet group
    sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
    
    # also allow local connections
    sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT
    
    # reject packets for other users
    sudo iptables -A OUTPUT -p tcp -j REJECT
    
    # open a shell with internet access
    sudo -g internet -s
    
  4. Запустив вышеуказанный скрипт, вы получите оболочку, в которой вы можете запускать приложения с доступом в Интернет.

Обратите внимание, что этот скрипт ничего не делает для сохранения и восстановления вашего брандмауэра правила. Вы можете изменить скрипт для использования команд оболочки iptables-save и iptables-restore.

2
ответ дан 2 August 2018 в 14:45

Это было в iptables до версии ядра 2.6.24. Если вы используете машину 2.x - 2.6.24, и ваше ядро ​​выполнило это, вы можете это сделать. по какой-то причине они вытащили его, поэтому нет его не microsoft. http://cateee.net/lkddb/web-lkddb/IP_NF_MATCH_OWNER.html

1
ответ дан 2 August 2018 в 14:45

Для улучшения или хуже, Linux использует другой подход. Нет простого графического интерфейса, предлагающего эту функциональность. Есть много дискуссий по этой теме в Интернете, и вы можете найти интересные обсуждения, если вы google search. Хотя дискуссия интересна, на сегодняшний день не было выделенной группы программистов, желающих писать и поддерживать эту функциональность.

Инструменты, предлагающие эту функциональность в Linux, - это Apparmor, Selinux и Tomoyo.

Ни один из этих инструментов слишком прост в освоении, и все они имеют преимущества и недостатки. Лично я предпочитаю SELinux, хотя SELinux имеет более крутую кривую обучения.

См .:

http://www.linuxbsdos.com/2011/12/06/3- на уровне приложений-firewall-for-linux-distributions /

Было (есть) приложение, на которое уже ссылалось, leopardflower. Я не уверен в статусе / обслуживании.

3
ответ дан 2 August 2018 в 14:45

Нет, это невозможно. Он также не является частью традиционного определения брандмауэра. Это то, что Microsoft придумала довольно недавно, пытаясь разобраться в своих принципиально нарушенных проблемах безопасности ОС. Это считается безрассудным и неработоспособным в сообществе Linux, потому что одна из программ, которая не разрешена, может просто запустить другую программу, которая есть и получить доступ таким образом.

Если вам не нравится, что делает программа сеть при запуске, затем не запускайте эту программу.

0
ответ дан 2 August 2018 в 14:45

I нашел удобным решением, которое решает проблему. Вы создаете группу, которая никогда не разрешается использовать Интернет и запускает программу как член этой группы.

  1. Создайте группу no-internet. Не присоединяйтесь к этой группе.
  2. Добавьте правило iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP в таблицы ip, которое предотвращает использование всех процессов, принадлежащих группе no-internet, от сети.
  3. Выполнить sudo -g no-internet YOURCOMMAND вместо из YOURCOMMAND.

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

%sudo     ALL=(:no-internet)      NOPASSWD: ALL

или что-то похожее на ваш /etc/sudoers.

15
ответ дан 2 August 2018 в 14:45

Если вы все еще ищете такое приложение, я сейчас разрабатываю именно это приложение: http://douaneapp.com/

Мое приложение блокирует любые неизвестные приложения (заблокированы новые версии авторизованного приложения) и спросит вас, разрешаете ли вы или запрещаете его трафик.

Посмотрите на веб-сайт ;-)

screen shot [/g1]

29
ответ дан 3 August 2018 в 18:48

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

Вот решение, которое не требует изменения правил брандмауэра и работает под одним и тем же пользователем (через sudo) с измененной средой, где ваш пользователь my_user и приложение, которое вы хотите запустить, это my_app:

    # run app without access to internet
    sudo unshare -n sudo -u my_user my_app

Подробнее см. man unshare .

3
ответ дан 3 August 2018 в 18:48

Попробуйте Leopard Flower . Он имеет ограничения GUI и для каждого приложения.

1
ответ дан 3 August 2018 в 18:48

В Ubuntu, ufw уже установлен брандмауэр, но по умолчанию он отключен. Вы можете включить и использовать его в командной строке:

https://help.ubuntu.com/8.04/serverguide/C/firewall.html

Или вы можете использовать программу с графическим интерфейсом поверх нее, gufw, который устанавливается непосредственно из программного обеспечения Ubuntu Software Center:

https://apps.ubuntu.com/cat/applications/ oneiric / gufw /

Если вам нужно заблокировать доступ в Интернет к определенному приложению, вы можете попробовать эту программу, которая все еще находится в бета-версии, и она недоступна в программном центре Ubuntu:

http://sourceforge.net/projects/leopardflower/

4
ответ дан 3 August 2018 в 18:48

Я нашел, что решение опубликовано здесь , чтобы быть хорошим. Это связано с созданием группы пользователей, для которой разрешен доступ в Интернет , и настройка правил брандмауэра, чтобы разрешить доступ только для этой группы. Единственный способ для приложения получить доступ к Интернету - это если он управляется членом этой группы. Вы можете запускать программы под этой группой, открыв оболочку с помощью sudo -g internet -s.

Чтобы добавить то, что находится в сообщении, которое я связал выше:

  1. Создайте группу «Интернет» введите следующее в оболочку: sudo groupadd internet
  2. Убедитесь, что пользователь, который запустит сценарий ниже, добавляется в группу sudo в /etc/group. Если вы в конечном итоге измените этот файл, вам нужно будет выйти из системы и вернуться к нему, прежде чем скрипт будет работать.
  3. Создайте сценарий, содержащий следующее, и запустите его:
    #!/bin/sh
    # Firewall apps - only allow apps run from "internet" group to run
    
    # clear previous rules
    sudo iptables -F
    
    # accept packets for internet group
    sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
    
    # also allow local connections
    sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT
    
    # reject packets for other users
    sudo iptables -A OUTPUT -p tcp -j REJECT
    
    # open a shell with internet access
    sudo -g internet -s
    
  4. Запустив вышеуказанный скрипт, вы получите оболочку, в которой вы можете запускать приложения с доступом в Интернет.

Обратите внимание, что этот скрипт ничего не делает для сохранения и восстановления вашего брандмауэра правила. Вы можете изменить скрипт для использования команд оболочки iptables-save и iptables-restore.

2
ответ дан 3 August 2018 в 18:48

Это было в iptables до версии ядра 2.6.24. Если вы используете машину 2.x - 2.6.24, и ваше ядро ​​выполнило это, вы можете это сделать. по какой-то причине они вытащили его, поэтому нет его не microsoft. http://cateee.net/lkddb/web-lkddb/IP_NF_MATCH_OWNER.html

1
ответ дан 3 August 2018 в 18:48

Для улучшения или хуже, Linux использует другой подход. Нет простого графического интерфейса, предлагающего эту функциональность. Есть много дискуссий по этой теме в Интернете, и вы можете найти интересные обсуждения, если вы google search. Хотя дискуссия интересна, на сегодняшний день не было выделенной группы программистов, желающих писать и поддерживать эту функциональность.

Инструменты, предлагающие эту функциональность в Linux, - это Apparmor, Selinux и Tomoyo.

Ни один из этих инструментов слишком прост в освоении, и все они имеют преимущества и недостатки. Лично я предпочитаю SELinux, хотя SELinux имеет более крутую кривую обучения.

См .:

http://www.linuxbsdos.com/2011/12/06/3- на уровне приложений-firewall-for-linux-distributions /

Было (есть) приложение, на которое уже ссылалось, leopardflower. Я не уверен в статусе / обслуживании.

3
ответ дан 3 August 2018 в 18:48

Нет, это невозможно. Он также не является частью традиционного определения брандмауэра. Это то, что Microsoft придумала довольно недавно, пытаясь разобраться в своих принципиально нарушенных проблемах безопасности ОС. Это считается безрассудным и неработоспособным в сообществе Linux, потому что одна из программ, которая не разрешена, может просто запустить другую программу, которая есть и получить доступ таким образом.

Если вам не нравится, что делает программа сеть при запуске, затем не запускайте эту программу.

0
ответ дан 3 August 2018 в 18:48

I нашел удобным решением, которое решает проблему. Вы создаете группу, которая никогда не разрешается использовать Интернет и запускает программу как член этой группы.

  1. Создайте группу no-internet. Не присоединяйтесь к этой группе.
  2. Добавьте правило iptables -A OUTPUT -m owner --gid-owner no-internet -j DROP в таблицы ip, которое предотвращает использование всех процессов, принадлежащих группе no-internet, от сети.
  3. Выполнить sudo -g no-internet YOURCOMMAND вместо из YOURCOMMAND.

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

%sudo     ALL=(:no-internet)      NOPASSWD: ALL

или что-то похожее на ваш /etc/sudoers.

15
ответ дан 3 August 2018 в 18:48

Если вы все еще ищете такое приложение, я сейчас разрабатываю именно это приложение: http://douaneapp.com/

Мое приложение блокирует любые неизвестные приложения (заблокированы новые версии авторизованного приложения) и спросит вас, разрешаете ли вы или запрещаете его трафик.

Посмотрите на веб-сайт ;-)

screen shot [/g1]

29
ответ дан 5 August 2018 в 03:43

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

Вот решение, которое не требует изменения правил брандмауэра и работает под одним и тем же пользователем (через sudo) с измененной средой, где ваш пользователь my_user и приложение, которое вы хотите запустить, это my_app:

    # run app without access to internet
    sudo unshare -n sudo -u my_user my_app

Подробнее см. man unshare .

3
ответ дан 5 August 2018 в 03:43

Попробуйте Leopard Flower . Он имеет ограничения GUI и для каждого приложения.

1
ответ дан 5 August 2018 в 03:43

В Ubuntu, ufw уже установлен брандмауэр, но по умолчанию он отключен. Вы можете включить и использовать его в командной строке:

https://help.ubuntu.com/8.04/serverguide/C/firewall.html

Или вы можете использовать программу с графическим интерфейсом поверх нее, gufw, который устанавливается непосредственно из программного обеспечения Ubuntu Software Center:

https://apps.ubuntu.com/cat/applications/ oneiric / gufw /

Если вам нужно заблокировать доступ в Интернет к определенному приложению, вы можете попробовать эту программу, которая все еще находится в бета-версии, и она недоступна в программном центре Ubuntu:

http://sourceforge.net/projects/leopardflower/

4
ответ дан 5 August 2018 в 03:43

Я нашел, что решение опубликовано здесь , чтобы быть хорошим. Это связано с созданием группы пользователей, для которой разрешен доступ в Интернет , и настройка правил брандмауэра, чтобы разрешить доступ только для этой группы. Единственный способ для приложения получить доступ к Интернету - это если он управляется членом этой группы. Вы можете запускать программы под этой группой, открыв оболочку с помощью sudo -g internet -s.

Чтобы добавить то, что находится в сообщении, которое я связал выше:

  1. Создайте группу «Интернет» введите следующее в оболочку: sudo groupadd internet
  2. Убедитесь, что пользователь, который запустит сценарий ниже, добавляется в группу sudo в /etc/group. Если вы в конечном итоге измените этот файл, вам нужно будет выйти из системы и вернуться к нему, прежде чем скрипт будет работать.
  3. Создайте сценарий, содержащий следующее, и запустите его:
    #!/bin/sh
    # Firewall apps - only allow apps run from "internet" group to run
    
    # clear previous rules
    sudo iptables -F
    
    # accept packets for internet group
    sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT
    
    # also allow local connections
    sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
    sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT
    
    # reject packets for other users
    sudo iptables -A OUTPUT -p tcp -j REJECT
    
    # open a shell with internet access
    sudo -g internet -s
    
  4. Запустив вышеуказанный скрипт, вы получите оболочку, в которой вы можете запускать приложения с доступом в Интернет.

Обратите внимание, что этот скрипт ничего не делает для сохранения и восстановления вашего брандмауэра правила. Вы можете изменить скрипт для использования команд оболочки iptables-save и iptables-restore.

2
ответ дан 5 August 2018 в 03:43

Для улучшения или хуже, Linux использует другой подход. Нет простого графического интерфейса, предлагающего эту функциональность. Есть много дискуссий по этой теме в Интернете, и вы можете найти интересные обсуждения, если вы google search. Хотя дискуссия интересна, на сегодняшний день не было выделенной группы программистов, желающих писать и поддерживать эту функциональность.

Инструменты, предлагающие эту функциональность в Linux, - это Apparmor, Selinux и Tomoyo.

Ни один из этих инструментов слишком прост в освоении, и все они имеют преимущества и недостатки. Лично я предпочитаю SELinux, хотя SELinux имеет более крутую кривую обучения.

См .:

http://www.linuxbsdos.com/2011/12/06/3- на уровне приложений-firewall-for-linux-distributions /

Было (есть) приложение, на которое уже ссылалось, leopardflower. Я не уверен в статусе / обслуживании.

3
ответ дан 5 August 2018 в 03:43

Другие вопросы по тегам:

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