Вы отключаете SELinux? [закрытый]

Я думаю, ваш код выглядит следующим образом.

class TodoApp
  def initialize 
    @todos = []
  end

  def add(task, day, todo = Todo)
    @todos.push(todo.new(task, day))
    return "#{task} was added to your todos"
  end
end

Это НЕ внедрение пустого массива в TodoApp. И, следовательно, вам будет трудно получить доступ к нему из тестов.

Но если ваш объект TodoApp выглядел следующим образом:

class TodoApp
  def initialize(todos = [])
    @todos = todos
  end

  def add(task, day, todo = Todo)
    @todos.push(todo.new(task, day))
    return "#{task} was added to your todos"
  end
end

Теперь вы вводите в TodoApp что-то, что можно смоделировать или даже просто оценить:

describe TodoApp do
  subject(:app) { described_class.new(todos) }

  let(:todos) { [] }

  describe '#add' do
    subject(:add) { app.add(task, day) }

    let(:task) { 'task' }
    let(:day) { 'day' }

    it 'pushes the item on the list of todos' do
      expect { add }.to change { todos.length }.by(1)
    end
  end
end
19
задан manicmethod 18 September 2008 в 23:17
поделиться

13 ответов

Под Redhat можно отредактировать /etc/sysconfig/selinux и установить SELINIX=disabled.

я думаю под всеми версиями Linux, который можно добавить selinux=0 noselinux к строке начальной загрузки в lilo.conf или grub.conf.

-1
ответ дан 30 November 2019 в 03:38
поделиться

Я сделал, три или четыре года назад, когда определенные политики имели много ловушек, и политики создания было слишком твердо, и у меня не было 'времени' для изучения. Это шло не критические машины, конечно.

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

13
ответ дан 30 November 2019 в 03:38
поделиться

Я слышу, что это - улучшение, но я все еще отключаю его. Для серверов это действительно не имеет никакого смысла, если Вы не ISP или крупная корпорация, желающая реализовать мелкозернистые средства управления уровнем доступа через несколько локальных пользователей.

Используя его на веб-сервере, у меня было много проблем с апачскими полномочиями. Я должен был бы постоянно работать,

chcon -R -h -t httpd_sys_content_t /var/www/html 

для обновления ACLs, когда новые файлы были добавлены. Я уверен, что это было решено к настоящему времени, но тем не менее, SELinux является большим количеством боли для ограниченного вознаграждения, которое Вы получаете от включения его на стандартном развертывании веб-сайта.

2
ответ дан 30 November 2019 в 03:38
поделиться

Я не отключаю его, но существуют некоторые проблемы.

Некоторые приложения не работают особенно хорошо с ним.

, Например, я полагаю, что позволил smartd попытаться отслеживать мои диски набега s.m.a.r.t. состояние, но selinux запутается о новом /dev/sda* узлы, созданные при начальной загрузке (я думаю, что это - то, чем проблема была)

, необходимо загрузить источник на правила понять вещи.

Просто проверка /var/log/messages для "avc отклоненный" сообщения и Вы можете декодировать то, что отклоняется.

Google "selinux часто задаваемые вопросы" и Вы найдете мягкую фетровую шляпу selinux часто задаваемыми вопросами, которые скажут Вам, как работать через эти проблемы.

1
ответ дан 30 November 2019 в 03:38
поделиться

К сожалению, я поворачиваю SELinux от большей части времени также, потому что хорошая сумма сторонних приложений, как Oracle, не работает очень хорошо с включенным SELinux и / или не поддерживается на платформах, выполняющих SELinux.

Примечание, что собственный Спутниковый продукт Red Hat требует, чтобы Вы выключили SELinux также, который - снова, печально - говорит много о людях трудностей, имеют сложные приложения запуска на включенных платформах SELinux.

подсказки по Использованию, которые могут или не могут быть полезны для Вас: SELinux может быть включен и выключен во времени выполнения при помощи setenforce (используйте getenforce для проверки текущего статуса). restorecon может быть полезным в ситуациях, где chcon является громоздким, но ymmv.

2
ответ дан 30 November 2019 в 03:38
поделиться

SELinux требует пользовательского внимания и ручного разрешения, предоставляющего каждый раз, когда (о, хорошо) у Вас нет разрешения для чего-то. Многие люди такая находка, что это мешает и выключает его.

В последней версии, SELinux более удобен для пользователя, и существуют даже переговоры об удалении возможности выключить его или скрыть его, поэтому только хорошо осведомленные пользователи знали бы, как сделать это - и предполагается просто, что пользователи - точно те, кто понимает последствия.

С SELinux, существует проблема курицы и яйца: чтобы иметь все это время, Вы, поскольку пользователь должен сообщить о проблемах разработчикам, таким образом, они могут улучшить его. Но пользователям не нравится использовать его, пока это не будет улучшено, и это не будет улучшено, если не многие пользователи будут использовать его.

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

В конце, это - Ваш вызов: Вы ищете краткосрочную фиксацию или долгосрочное улучшение программного обеспечения, которое приведет к устранению необходимости задать такой вопрос однажды.

2
ответ дан 30 November 2019 в 03:38
поделиться

Моя компания делает продукт платформы CMS/интеграции. У многих наших клиентов есть сторонние системы прежней версии, которые все еще имеют важные действующие данные в них, и большинство хочет продолжить использовать эти системы, потому что они просто работают. Таким образом, мы сцепляем нашу систему для вытаскивания данных для публикации или создания отчетов и т.д. через разнообразные средства. При наличии тонны клиента определенный материал, работающий на каждом сервере, делает конфигурирование SELinux правильно твердое, и последовательно, дорогая задача.

Многие клиенты первоначально хотят лучшее в безопасности, но когда они слышат оценку затрат для нашего решения для интеграции, слова 'SELinux, отключенный', имеют тенденцию появляться в плане проекта довольно быстро.

Это - позор, как защита подробно является хорошей идеей. SELinux никогда не , потребовал для безопасности, тем не менее, и это, кажется, ее крушение. Когда клиент спрашивает, 'Таким образом, можно заставить его защитить без SELinux?', на что мы, как предполагается, отвечаем? 'Umm... мы не уверены'?

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

, Но это - жесткое, продают.

5
ответ дан 30 November 2019 в 03:38
поделиться

У меня нет много для содействия здесь, но начиная с его оставшегося без ответа, я полагал, что добавлю свои два цента.

Лично, я отключаю его на dev полях и когда я имею дело с неважными вещами. Когда я имею дело с чем-либо производство, или это требует лучшей безопасности, я оставляю его на и/или провожу время, настраивая его для обработки вещей, как мне нужно.

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

1
ответ дан 30 November 2019 в 03:38
поделиться

Я работал на компанию в прошлом году, где мы устанавливали ее осуществляющий с 'целенаправленной' политикой, включенной в системах CentOS 5.x. Это не вмешалось ни в один код веб-приложения, наши разработчики продолжили работать, потому что Apache был в политике по умолчанию. Это действительно вызывало некоторые проблемы для программного обеспечения, установленного от не-Red Hat (или CentOS) пакеты, но нам удалось обойти это с инструментом управления конфигурацией, Марионетка .

Мы использовали шаблонную функцию Марионетки для генерации наших политик. См. Улучшения SELinux для Марионетки , возглавляя "будущий материал", объект "Поколение политики".

Вот некоторые основные шаги от способа, которым мы реализовали это. Отметьте кроме audit2allow, это было все автоматизировано.

Генерируют файл шаблона SELinux для некоторого сервиса, названного $ {имя}.

sudo audit2allow -m "${name}" -i /var/log/audit/audit.log > ${name}.te

Создают сценарий, /etc/selinux/local/${name}-setup.sh

SOURCE=/etc/selinux/local
BUILD=/etc/selinux/local

/usr/bin/checkmodule -M -m -o ${BUILD}/${name}.mod ${SOURCE}/${name}.te
/usr/bin/semodule_package -o ${BUILD}/${name}.pp -m ${BUILD}/${name}.mod
/usr/sbin/semodule -i ${BUILD}/${name}.pp

/bin/rm ${BUILD}/${name}.mod ${BUILD}/${name}.pp

Тем не менее, большинство людей более обеспечено просто отключение SELinux, и укрепление их системы через другие обычно принимаемые основанные на согласии лучшие практики такой как Центр Сравнительных тестов Защиты в сети Интернет (обратите внимание, что они рекомендуют SELinux :-)).

7
ответ дан 30 November 2019 в 03:38
поделиться

Я никогда не отключал selinux, мой подрядчик ДОЛЖЕН его использовать. И, если / когда какой-то демон (кстати, с лицензией OSS) не имеет политики безопасности, обязательно написать (хорошую) политику. Это не потому, что я считаю, что selinux является неуязвимым MAC-адресом в Linux - бесполезно приводить пример - а потому, что он в любом случае значительно повышает безопасность операционной системы. Для веб-приложения лучшим решением безопасности OSS является mod_security: поэтому я использую оба. Большинство проблем с selinux связано с небольшим или понятным документом, хотя ситуация значительно улучшилась за последние годы.

0
ответ дан 30 November 2019 в 03:38
поделиться

На коробке CENTOS, которую я использовал в качестве машины для разработки, он был включен, и я его отключил. Это останавливало некоторые вещи, которые я пытался сделать при тестировании веб-приложения, которое я разрабатывал. Система была (конечно) за брандмауэром, который полностью блокировал доступ извне нашей локальной сети и имел много других средств безопасности, поэтому я чувствовал себя достаточно защищенным даже с выключенным SELinux.

0
ответ дан 30 November 2019 в 03:38
поделиться

Если он включен по умолчанию, я оставлю его включенным, пока он что-нибудь не сломает, а затем он уйдет.

Лично я считаю, что это не обеспечивает никакой безопасности, и я не собираюсь возиться с этим.

-1
ответ дан 30 November 2019 в 03:38
поделиться

Да. У него мертвый мозг. Это может привести к поломке стандартных демонов, которую практически невозможно диагностировать. Он также может закрыть дверь, но оставить окно открытым. То есть по какой-то причине при новой установке CentOS он блокировал запуск smbd с "/etc/init.d/smb". Но он не блокировал его запуск при вызове как "sh /etc/init.d/smb" или "smbd -D" или от перемещения файла init.d / smb в другой каталог, из которого он просто запускал бы smbd. отлично.

Итак, что бы он ни думал, он делал для защиты наших систем - взламывая их - он даже не делал постоянно. Посоветовавшись с серьезными гуру CentOS, они тоже не понимают непоследовательности его поведения. Он создан для того, чтобы вы чувствовали себя в безопасности. Но это фасад безопасности. Это замена реальной работы по блокировке безопасности вашей системы.

1
ответ дан 30 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

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