Безопасность по умолчанию в Solaris, часть 3
9 Декабрь 2009
Перевод статьи Glenn Brunette Solaris Secure by Default – Part 3.
Прежде чем начать, я бы хотел направить всех к посту Scott Rotondo, одного из архитекторов проекта Secure by Default (SBD). Просмотрите пост и напишите автору, что вы думаете об этом новом расширении Solaris.
Сегодня SBD предлагается в виде «все или ничего» – он либо включен, любо выключен с помощью новой команды netservices(1M). Для многих организаций этого недостаточно. Часто требуется сконфигурировать систему так, чтобы некоторые сервисы были выключены или переведены в режим «local only», а другие включены или «открыты» для поддержки бизнес- или технических требований. Поэтому важно понимать, что именно делает SBD, чтобы Вы лучше могли настроить конфигурацию безопасности своей системы основываясь на своих специфических требованиях. Как я уже писал ранее, конфигурация SBD создается (1) выключением сервисов или (2) настройкой свойств сервисов так, чтобы сервис работал в режиме «local only».
Включение и выключение сервисов – тривиальная задача. Просто используйте команду svcadm с параметрами enable или disable для настройки интересующего Вас сервиса. Так как это простая задача, не будем ее рассматривать подробно. В третьей и последней части Узнаем: Solaris Secure by Default, я бы хотел сосредоточится на тех сервисах, которые не выключены по-умолчанию, а вместо этого настроены так, чтобы принимать только локальные запросы (создаваемые самой системой).
Посмотрите проектный документ Secure By Default, и вы увидите список таких сервисов (представленный с использованием FMRI):
- svc:/network/rpc/bind
- svc:/system/system-log
- svc:/network/smtp:sendmail
- svc:/system/webconsole:console
- svc:/application/management/wbem
- svc:/application/x11/x11-server
- svc:/application/graphical-login/cde-login
- svc:/network/rpc/cde-ttdbserver:tcp
- svc:/network/rpc/cde-calendar-manager
- svc:/application/print/rfc1179:default
Чтобы задать, работает сервис в обычном режиме, или в Secure by Default, используются свойства SMF. В таблице ниже значения свойств, установленные, когда сервис работает в режиме SBD, выделены жирным шрифтом.
| Сервис | FMRI | Свойство | Значения |
|---|---|---|---|
| rpcbind | svc:/network/rpc/bind | config/local_only | true, false |
| syslog | svc:/system/system-log | config/log_from_remote | true, false |
| sendmail | svc:/network/smtp:sendmail | config/local_only | true, false |
| smcwebserver | svc:/system/webconsole:console | options/tcp_listen | true, false |
| wbem | svc:/application/management/wbem | options/tcp_listen | true, false |
| X11 | svc:/application/x11/x11-server | options/tcp_listen | true, false |
| CDE | svc:/application/graphical-login/cde-login | dtlogin/args | [null], -udpPort 0 |
| ToolTalk | svc:/network/rpc/cde-ttdbserver:tcp | proto | tcp, ticotsord |
| Calendar | svc:/network/rpc/cde-calendar-manager | proto | tcp, ticlts |
| BSD Printing | svc:/application/print/rfc1179:default | bind_addr | [null], localhost |
Очень просто, правда? Итак, представим, что Вы работаете в режиме SBD (после запуска команды netservices limited), и у Вас появилась необходимость получать сообщения syslog с других хостов. Все, что Вам нужно сделать:
# svccfg -s system-log setprop config/log_from_remote = true # svcadm refresh system-log
Если Вы хотите, чтобы изменения вступили в силу немедленно, нужно дополнительно запустить:
# svcadm restart system-log
Еще одна полезная вещь заключается в том, что взаимодействие между глобальной и неглобальными зонами запрещено, т.к. сервисы привязываются к localhost или просто не принимают внешние соединения.
# ifconfig hme0
hme0: flags=1000843 mtu 1500 index 2
inet 192.168.1.250 netmask ffffff00 broadcast 192.168.1.255
ether 0:0:0:0:0:0
# rpcinfo -p 192.168.1.250
program vers proto port service
100000 4 tcp 111 rpcbind
100000 3 tcp 111 rpcbind
100000 2 tcp 111 rpcbind
100000 4 udp 111 rpcbind
100000 3 udp 111 rpcbind
100000 2 udp 111 rpcbind
# zlogin time ifconfig hme0:2
hme0:2: flags=1000843 mtu 1500 index 2
inet 192.168.1.240 netmask ffffff00 broadcast 192.168.1.255
# zlogin time rpcinfo -p 192.168.1.250
rpcinfo: can't contact portmapper: RPC: Authentication error; why = Failed (unspecified error)
Замечательно! На этом третий выпуск заканчивается. Пожалуйста, сообщите мне, что Вы думаете, или если ли у Вас есть какие-то вопросы. Мне нравится получать отклики и ваше мнение очень важно для нас.
До скорого, Глен.
Другие части статьи: часть 1, часть 2.
Похожие записи:
- Безопасность по умолчанию в Solaris, часть 1
- Безопасность по умолчанию в Solaris, часть 2
- Как определить сервис по номеру PID
- Подключение Alfresco к MySQL в Solaris 10
Рубрики: Безопасность


