Оболочки tcp можно было возможно назвать реализацией межсетевого экрана узлов; Вы фильтруете сетевой трафик.
Для точки на взломщике, устанавливающем исходящие связи на произвольном порте, брандмауэр обеспечил бы средство управления исходящим трафиком также; правильно настроенный брандмауэр управляет входом и выходом способом, который соответствует риску, связанному с системой.
На точке о том, как любая уязвимость TCP не смягчена брандмауэром, Вы nt знакомый с тем, как работают брандмауэры. Cisco имеет целый набор правил доступных для скачивания, которые определяют, что пакеты создали способом, который вызовет конкретные проблемы операционных систем. Если Вы захватите Фырканье и начнете выполнять его с правильным набором правила, то Вы будете также предупреждены на такого рода вещи. И конечно, Linux iptables может отфильтровать злонамеренные пакеты.
В основном брандмауэр является превентивной защитой. Дальше Вы убегаете от того, чтобы быть превентивным, наиболее вероятное, которое Вы найдете сами в ситуации, где Вы реагируете на проблему вместо того, чтобы предотвратить проблему. Концентрация Вашей защиты на границе, как с выделенным брандмауэром, делает вещи легче справиться, потому что у Вас есть центральное узкое горло вместо того, чтобы копировать правила везде.
Но никакой единственной вещью не является обязательно конечное решение. Хорошее решение по обеспечению безопасности обычно является многослойным, где у Вас есть брандмауэр на границе, оболочки tcp в устройстве и вероятно некоторые правила о внутренних маршрутизаторах также. Необходимо обычно защищать сеть от Интернета и защищать узлы друг от друга. Этот многослойный подход не похож на развертку дыры через несколько листов фанеры, это больше похоже на подъем пары дверей, таким образом, у злоумышленника есть две блокировки для повреждения вместо всего один; это называют прерыванием человека в физической безопасности, и почти каждое здание имеет один по причине.:)
Вам нужно будет установить переменную с помощью оператора case, вроде этого:
class puppet::installation inherits puppet {
case $::operatingsystemrelease {
'5': { $puppet_ver = '3.0.1-1'}
default: { $puppet_ver = '3.0.1-1.el6'}
}
package { 'puppet':
ensure => $puppet_ver,
}
}
Однако лучше использовать файл params.pp для такого рода логики. Прочтите о params.pp здесь: http://www.example42.com/?q=understandExample42PuppetModules
Puppet really doesn't have any functionality for this yet (though they really need it).
You can use the yum-versionlock
yum plugin to lock specific RPM packages at specific versions, and then use puppet to control the versionlock configuration.
For some other workarounds, see this related question.
На самом деле, я мог использовать подстановочный знак для установки определенной версии Python независимо от операционной системы. Код моего пакета для python выглядит следующим образом:
package {
"python-dev": ensure => "2.7.3*";
"python-setuptools": ensure => installed;
"python-pip": ensure => installed;
"libxml2-dev": ensure => installed;
"libxslt-dev": ensure => installed;
}
Используя 2.7.3 * в качестве версии обеспечения, он установил python 2.7.3-0ubuntu2.2 на мою бродячую виртуальную машину. Я использую Puppet версии 2.7.19.