Практическое руководство: проверка способности к команде/инструменту

Как старая поговорка идет - если у кого-то есть физический доступ к Вашим серверам, все ставки прочь!

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

  1. Пароли пользователя (и другие уязвимые данные) никогда не должны храниться в ясном. В случае паролей всегда используйте отобранный хеш. Тот путь, даже если бы кто-то должен был украсть Вашу базу данных пользователей, им было бы нелегко вычислять пароли. Необходимо сделать это для любой информации, которая используется для аутентификации.
  2. Конфиденциальные документы никогда не должны храниться в ясном. Используйте ту же меру, что Вы были бы, для защиты почтовой связи. Если необходимо совместно использовать документы, используйте PKI для шифрования материала перед передачей. Иначе зашифруйте его так или иначе. Используйте высокую отметку crypto, где Вы можете.
  3. On-the-fly-encryption может использоваться также.

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

1
задан 28 January 2013 в 12:09
4 ответа

Ах, переносимость сценария оболочки, веселье!

Ага, uname и проверка $ SHELL - самый простой способ (и единственный переносимый способ I можно придумать), чтобы сделать это.

1
ответ дан 4 December 2019 в 00:49

Вы можете использовать facter , который является частью Puppet (но может использоваться независимо, если у вас нет Puppet в вашей среде), чтобы получить основные сведения о целевой системе.

Например:

$ facter operatingsystem
CentOS

$ facter kernel kernelversion osfamily
kernel => Linux
kernelversion => 2.6.32
osfamily => RedHat

gem install facter должно быть достаточно, чтобы установить его в любой системе с доступным Ruby, если он еще не входит в ваши системные пакеты.

0
ответ дан 4 December 2019 в 00:49

Самый простой способ узнать, какой у вас дистрибутив, - это проверить / etc / issue

~$ cat /etc/issue
Debian GNU/Linux 6.0 \n \l

~$ cat /etc/issue
CentOS release 5.8 (Final)
Kernel \r on an \m

~$ cat /etc/issue
Ubuntu 12.04.2 LTS \n \l
0
ответ дан 4 December 2019 в 00:49

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

Функции оболочки всегда полезны, когда что-то полезное недоступно, например ls -A:

ls-A()
{
    ls -f ${1+"$@"} | sort | sed '1,2d'
}

Of Конечно, это очень надумано, но намного лучше, чем поддержка нескольких наборов кода для каждой операционной системы, а также поддерживает ОС, о которых вы даже не думали;

case $OS in
GNU)
    # some bashisms
    ;;
FreeBSD)
    # some shisms
    ;;
*)
    # Oops, don't know what to do!
    ;;
esac
0
ответ дан 4 December 2019 в 00:49

Теги

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