Автор Тема: Firewall для исходящих соединений  (Прочитано 7079 раз)

Оффлайн SuperVisor

  • Завсегдатай
  • *
  • Сообщений: 778
  • разочарован в KDE
в свою виндовую бытность активно пользовался agnitum outpost firewall для защиты компьютера извне и запрета приложениям выход в сеть.
в линуксе закрыть доступ извне очень даже просто - не ставь ничего лишнего и сервисов не запускай ;) а вот запретить приложениям выходить в сеть. как я понял. прочитав на эту тему с десяток страниц различных форумов, очень проблематично.
Может подскажете как можно запретить\разрешить определенным приложениям ходить на определенные адреса?

вот у меня идейка такая: запретить доступ в сеть ВСЕМ приложениям на 80-й порт внешних адресов, КРОМЕ прокси Squid. А, например, браузер настроить на работу с прокси, установленным на этом же компьютере. Преимущества: фильтрация и логирование. Можно отсечь ненужный контент, что-то прокешировать и посмотреть в деталях сколько трафика набежало.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: Firewall для исходящих соединений
« Ответ #1 : 26.07.2009 19:38:42 »
Смотреть в сторону
http://ru.wikipedia.org/wiki/SELinux
и его политик (в том числе выход в сеть).
В дистрибутивах ALT Linux не реализоано.

Со Сквидом можно проще - написать правило iptables, что-бы любое обращение к 80-му порту переправлялось на порт, который обслуживает Squid (так называемый прозрачный прокси).

Оффлайн SuperVisor

  • Завсегдатай
  • *
  • Сообщений: 778
  • разочарован в KDE
Re: Firewall для исходящих соединений
« Ответ #2 : 27.07.2009 07:04:17 »
погуглил, почитал, аж голова пухнет. но так и не нашел примера, в котором делалось что-то похожее.
максимум что нашел, это заворачивание ВНЕШНЕГО трафика с 80-го порта на 3128/8080
А как работать с ИСХОДЯЩИМ трафиком мне не понятно.
Начав читать руководство по iptables я в ужасе закрыл страницу  :o
Понимаю, что это не лучший путь, но, может быть, есть здесь знающие люди, кто сможет "наколдовать" правило iptables?

зы: пока искал по этой теме, нашел кучу информации как "прикрыть" машину извне.

Оффлайн SuperVisor

  • Завсегдатай
  • *
  • Сообщений: 778
  • разочарован в KDE
Re: Firewall для исходящих соединений
« Ответ #3 : 27.07.2009 07:14:47 »
Цитировать
Со Сквидом можно проще - написать правило iptables, что-бы любое обращение к 80-му порту переправлялось на порт, который обслуживает Squid (так называемый прозрачный прокси).
Нет, так не пойдет. я хочу ВЕСЬ исходящий трафик на 80-порт (а лучше на все порты, кроме тех, что нужны системе (какие я не знаю :) ) ) ЗАКРЫТЬ. Дать возможность соединяться по 80-му порту с другими (внешними) адресами только Сквиду. На сквиде поставить авторизацию по login/pass
Т.е. я в браузере просто указываю адрес прокси 127.0.0.1:3128 login/pass и в интернет ходит ТОЛЬКО браузер и НИКАКИЕ другие приложения. А уж на какие сайты пустить браузер пусть занимается сквид, это отдельная тема.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 251
  • Учиться .... Телепатами не рождаются, ими ....
    • Email

Оффлайн Shaaarnir

  • Завсегдатай
  • *
  • Сообщений: 64
  • ALT Linux 6
Re: Firewall для исходящих соединений
« Ответ #5 : 27.07.2009 11:14:19 »
без iptables подобную задачу не решить. Только лично я не знаю, можно ли как-то по конкретным приложениям отсекать порты.
Закрыть доступ, перенаправить или разрешить прохоождение через порты - не сильно сложно. Глубоко в iptables не уходил :)

Кстати, если не хочется лезть в недра iptables, лучше тогда подобрать для себя GUI-версию. То что мне попадалось на глаза: Guarddog, KMyFirewall.
Понравился Guarddog - прост в управлении (но его задача в первую очередь быстрая раздача в сети, но как файервол подойдет 100%)
« Последнее редактирование: 27.07.2009 11:57:11 от Shaaarnir »

Оффлайн SuperVisor

  • Завсегдатай
  • *
  • Сообщений: 778
  • разочарован в KDE
Re: Firewall для исходящих соединений
« Ответ #6 : 27.07.2009 12:48:20 »
йахуу!!! спасибо, Руслан!
Цитировать
iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner squid -j ACCEPT
iptables -t nat -A OUTPUT -p tcp --dport 80  -j REDIRECT --to-ports 3128
доберусь до дома, буду пробовать

только. наверно, REDIRECT --to-ports 3128 надо заменить на DROP или REJECT? Т.е. чтобы трафик не перенаправлялся, а блокировался. А на 3128 всем можно будет ходить. Вернее тем, кому позволено :)
« Последнее редактирование: 27.07.2009 12:53:44 от SuperVisor »

Оффлайн Shaaarnir

  • Завсегдатай
  • *
  • Сообщений: 64
  • ALT Linux 6
Re: Firewall для исходящих соединений
« Ответ #7 : 27.07.2009 14:03:22 »
если заменить, прозрачный прокси работать не будет. Drop и Reject - рубят, а задача перенаправить.

Оффлайн SuperVisor

  • Завсегдатай
  • *
  • Сообщений: 778
  • разочарован в KDE
Re: Firewall для исходящих соединений
« Ответ #8 : 27.07.2009 14:10:09 »
а я что написал? мне ИМЕННО ЭТО и надо. Чтобы НЕ БЫЛО возможности выйти по 80-му порту НИКАКОЙ программе, КРОМЕ сквид. Всем остальным можно только на 3128, т.е. через прокси.

Оффлайн Shaaarnir

  • Завсегдатай
  • *
  • Сообщений: 64
  • ALT Linux 6
Re: Firewall для исходящих соединений
« Ответ #9 : 27.07.2009 14:27:30 »
тогда Вам абсолютно не нужна строчка iptables для прозрачного прокси.
Просто не пишите ее (не пишите вторую строчку из примера, а первую отредактируйте под себя).

(я бы посоветовал бы Вам разместить свой скрипт iptables, с детальным описание задачи. Тогда, я думаю, помощь была бы от окружающих более полной)
« Последнее редактирование: 27.07.2009 14:33:40 от Shaaarnir »

Drool

  • Гость
Re: Firewall для исходящих соединений
« Ответ #10 : 27.07.2009 14:32:15 »
Может я ошибаюсь, но мне почему-то казалось, что squid не умеет быть прозрачным для ftp-протокола. Или я ошибаюсь?

Оффлайн speccyfan

  • Завсегдатай
  • *
  • Сообщений: 522
  • CCNA
    • speccyfan (Примеры различных конфигураций сетевых сервисов)
Re: Firewall для исходящих соединений
« Ответ #11 : 27.07.2009 14:36:01 »
Может я ошибаюсь, но мне почему-то казалось, что squid не умеет быть прозрачным для ftp-протокола. Или я ошибаюсь?
Нет не ошибаешься, не умеет, тут надо использовать frox, только  в ALT почему-то его нет для x86-64 :(
With best regards, Yury Konovalov aka 2:453/53

Оффлайн Shaaarnir

  • Завсегдатай
  • *
  • Сообщений: 64
  • ALT Linux 6
Re: Firewall для исходящих соединений
« Ответ #12 : 27.07.2009 14:38:15 »
заглянул в документацию squid, оказывается может проксировать ftp (ну при соответсвующих настройках).

Цитировать
Squid — программный пакет, реализующий функцию кеширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS.

Drool

  • Гость
Re: Firewall для исходящих соединений
« Ответ #13 : 27.07.2009 14:40:24 »
заглянул в документацию squid, оказывается может проксировать ftp

При ручном указании у клиента прокси. А вот в режиме transparent?

Оффлайн Shaaarnir

  • Завсегдатай
  • *
  • Сообщений: 64
  • ALT Linux 6
Re: Firewall для исходящих соединений
« Ответ #14 : 27.07.2009 14:46:02 »
При ручном указании у клиента прокси. А вот в режиме transparent?

вот в этом не уверен, скорее всего не может. (сходу не нашел в документации ответа)