企业级加密文件系统eCryptfs使用及命令

eCryptfs Instructions

load ecryptfs kernel module

在安装完eCryptfs后需要加载eCryptfs内核模块 
sudo modprobe ecryptfs

eCryptfs-mount-private(为非root用户设置一个私人的加密挂载点,更多详情man ecryptfs-mount-private)

initialize

ecryptfs-setup-private [-OPTIONS] 
这会创建一个~/Private目录来保存加密信息,该程序可以由非root用户运行,这将使该目录的数据从系统上的其他用户变为私有状态。该操作要求用户输入当前用户密码以及用于eCryptfs的挂载密码passphrase

OPTIONS

  • -f, –force 
    强制覆盖当前设置。
  • -w, –wrapping 
    使用独立的wrapping passphrase代替使用当前用户的登录密码。
  • -u, –username USER 
    指定要设置的用户,忽略则为当前用户。
  • -l, –loginpass LOGINPASS 
    使用用户的系统密码覆盖挂载密码,忽略则交互提示。
  • -m, –mountpass MOUNTPASS 
    用于挂载 ecryptfs目录的passphrase,忽略则默认为/dev/urandom中的16字节。
  • -b, –bootstrap 
    引导一个新用户的整个home目录。
  • –undo 
    显示怎样撤销加密的私人设置。

    In the event that you want to remove your eCryptfs Private Directory setup,you will need to very carefully perform the following actions manually:

    1. Obtain your Private directory mountpoint 
      $ PRIVATE=cat ~/.ecryptfs/Private.mnt 2>/dev/null || echo $HOME/Private
    2. Ensure that you have moved all relevant data out of your $PRIVATE directory
    3. Unmount your encrypted private directory 
      $ ecryptfs-umount-private
    4. Make your Private directory writable again 
      chmod700PRIVATE
    5. Remove PRIVATE, /.Private, /.ecryptfsNote:THISISVERYPERMANENT,BEVERYCAREFUL rm -rf $PRIVATE ~/.Private ~/.ecryptfs
    6. Uninstall the utilities (this is specific to your Linux distribution) 
      $ sudo apt-get remove ecryptfs-utils libecryptfs0
  • -n,–no-fnek 
    不加密文件名,否则在支持文件名加密的操作系统上文件名将会被加密。 
    –nopwcheck 
    不检查给定登录密码的合法性(对LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)用户有用)。 
    –noautomount 
    设置此用户的加密私人目录在登录时不自动挂载。 
    –noautoumount 
    设置此用户的加密私人目录在注销时不自动卸载。

ecryptfs-mount-private and ecryptfs-umount-private

挂载或者卸载当前用户下的~/Private目录。 
ecryptfs-mount-private 会交互提示用户的登录密码。 
ecryptfs-umount-private 会卸载当前用户的私人目录并且清除所有位于用户内核keyring的相关的key。

mount(挂载,详见man ecryptfs)

SYNOPSIS

mount -t ecryptfs [SRC DIR] [DST DIR] -o [OPTIONS]

umount [DST DIR]

OPTIONS

KERNEL OPTIONS

适用于eCryptfs内核模块的参数

  • ecryptfs_sig=(fekek_sig) 
    指定挂载认证令牌的签名。认证令牌必须在执行挂载前位于内核keyring中。ecryptfs-manager或者eCryptfs mount helper可以构建认证令牌并且在挂载前将其添加到内核keyring中。

  • ecryptfs_fnek_sig=(fnek_sig) 
    指定用于文件名加密的挂载认证令牌的签名,认证令牌必须在执行挂载前位于内核keyring中。

  • ecryptfs_cipher=(cipher) 
    指定在每个文件的基础上使用的对称密码。

  • ecryptfs_key_bytes=(key_bytes) 
    指定所选密码使用的密钥大小。如果密码只有一个密钥大小那么密钥大小就不需要指定。

  • ecryptfs_passthrough 
    允许从eCryptfs挂载中读取和写入非eCryptfs文件。这个选项默认关闭。

  • no_sig_cache 
    不检查挂载密钥签名与用户的~/.ecryptfs/sig-cache.txt文件中的值。这对于没有交互的设置脚本有用,这样如果密钥签名不在缓存中,mount helper不会停止和提示用户。

  • ecryptfs_encrypted_view 
    这个option在低挂载点提供了一个eCryptfs文件统一的加密文件格式。目前它只在包含带有存储在扩展属性中的元数据的文件的低挂载点有用。在高挂载点读取文件时,该文件的加密版本将会以文件头的元数据而不是xattr呈现。当启动该选项时,文件将无法打开进行写入。

  • ecryptfs_xattr 
    将元数据存储在低文件的扩展属性中而不是低文件的开头区域

  • verbose 
    将ecryptfs信息记录到/var/log/messages。不要在verbose-mode运行eCryptfs,除非你是为了开发而这样做,因为在这种情况下,密码将被写入系统日志中。

MOUNT HELPER OPTIONS

适用于eCryptfs mount helper的参数

  • key=(keytype):[KEY MODULE OPTIONS] 
    指定挂载eCryptfs时使用的密钥类型。

  • ecryptfs_enable_filename_crypto=(y/N) 
    指定是否开启文件名加密。如果不开启,mount helper不会提示用户文件名加密密钥签名。

  • verbosity=0/1 
    如果verbosity=1,mount helper会要求你输入缺省的值(默认)。否则如果verbosity=0,它不会要求你输入,并且如果需要的值缺失它会失败。

KEY MODULE OPTIONS

适用于在参数名称的前缀中的密钥模块有别名的个人密钥模块。密钥模块是可插拔的并且在任何给定的系统中可用的密钥模块取决于无论什么被安装到/usr/lib*/ecryptfs/中。默认情况下,至少包含"passphrase"和"openssl"。

  • passphrase_passwd=(passphrase) 
    实际的密码是passphrase。因为密码对一些程序(例如Unix下的ps)是可见的,所以这种形式只应该在安全不重要的地方使用。

  • passphrase_passwd_file=(filename) 
    密码应该被指定在一个文件(以passwd=(passphrase)格式)中。强烈建议将这个文件存储在一个安全的媒介中(如个人usb密钥)。

  • passphrase_passwd_fd=(file descriptor) 
    密码通过指定的文件描述符指定。

  • passphrase_salt=(hex value) 
    salt应该被指定为一个16位十六进制的值(

    关于salt见wikipedia )

  • openssl_keyfile=(filename) 
    这里的文件名应该是一个包含RSA SSL密钥的文件的文件名。

  • openssl_passwd_file=(filename) 
    密码应该被指定在一个文件(以openssl_passwd=(openssl_password)格式)中。强烈建议将这个文件存储在一个安全的媒介中(如个人usb密钥)。

  • openssl_passwd_fd=(file descriptor) 
    密码通过指定的文件描述符指定。

  • openssl_passwd=(password) 
    密码可以在命令行指定。因为密码在进程列表中是可见的,所以强烈推荐只用这个选项来测试。

ecryptfs-add-passphrase(添加一个新的eCryptfs挂载passphrase到内核keying,详见man ecryptfs-add-passphrase)

SYNOPSIS

ecryptfs-add-passphrase[--fnek]

OPTIONS

– fnek 
与输入的passphrase相关的文件名加密密钥也会被添加到keyring中。

ecryptfs-find(使用inode号来匹配已加密/未加密文件)

SYNOPSIS

ecryptfs-find cleartext-filename 
ecryptfs-find ECRYPTFS_FNEK_ENCRYPTED.fwBGx18a.UcYl18CF7VKLMSDuEadV

这个程序会尝试将加密的文件名与其未加密的对应文件进行匹配,并尝试将未加密的文件名与其加密的对应文件进行匹配。

注意:

  • eCryptfs文件系统必须已经被挂载
  • 它使用 ls(1) 来确定inode
  • 它使用 find(1) 来定位inode

ecryptfs-insert-wrapped-passphrase-into-keyring(从文件中解开一个封闭的密码并将其插入到内核keyring中,详见man ecryptfs-insert-wrapped-passphrase-into-keyring)

SYNOPSIS

ecryptfs-insert-wrapped-passphrase-into-keyring [file]

ecryptfs-manager(管理ecryptfs的一些对象,比如说密钥,详见man ecryptfs-manager)

SYNOPSIS

ecryptfs-manager 
显示如下:

eCryptfs key management menu


1.Add passphrase key to keyring 
2.Add public key to keyring 
3.Generate new public/private keypair 
4.Exit

Make selection

输入对应的数字即可进入对应的选项。

ecryptfs-migrate-home(将一个用户的home目录迁移到一个加密的home目录,详见man ecryptfs-migrate-home)

SYNOPSIS

ecryptfs-migrate-home [-u|--user USER]

警告:对未加密的数据备份到其他系统或者外部媒介。这个脚本非常危险,如果发生错误,可能会导致数据丢失,或者将USER锁定在系统外! 
需要2.5倍当前home目录大小的空闲磁盘空间

ecryptfs-recover-private(查找并挂载任何已经加密的私人目录,详见man ecryptfs-recover-private)

SYNOPSIS

ecryptfs-recover-private [--rw] [encrypted private dir]

此程序用来帮助eCryptfs从其加密的home或者私人目录分区恢复数据。从LiveISO或恢复镜像运行它非常有用。 
这个程序可以指定一个已经加密的目录目录。如果没指定,它会在整个系统上搜索通过ecryptfs-setup-private配置的加密私人目录

ecryptfs-wrap-passphrase(封装一个eCryptfs挂载密码,详见man ecryptfs-wrap-passphrase)

SYNOPSIS

ecryptfs-wrap-passphrase [file]

需要指定封装密码,并且会将其加密写入到文件中。

ecryptfs-rewrap-passphrase(打开一个eCryptfs封装密码,用新的密码重新封装并将其写回文件,详见man ecryptfs-rewrap-passphrase)

SYNOPSIS

ecryptfs-rewrap-passphrase [file]

ecryptfs-unwrap-passphrase(打开一个eCryptfs挂载密码,详见man ecryptfs-unwrap-passphrase)

SYNOPSIS

ecryptfs-unwrap-passphrase [file]

该程序使用指定的封装密码从文件中解开eCryptfs挂载密码,并将解密结果显示出来

ecryptfs-rewrite-file(强制在低文件系统中重写(重新加密)文件,详见man ecryptfs-rewrite-file)

SYNOPSIS

ecryptfs-rewrite-file [file1] [file2] [file3] ...

参数为一个或者多个文件/目录/符号链接。先将它们移动到一个临时文件,然后再移回去。

ecryptfs-setup-swap(加密交换空间,详见man ecryptfs-setup-swap)

SYNOPSIS

ecryptfs-setup-swap [-f|--force]

这个脚本会自动检测当前存在的交换分区或者交换文件,然后加密它们。加密交换空间对合作使用eCryptfs的系统是必不可少的,因为未加密的内容会存在在系统内存中,可能会被交换到磁盘中。

ecryptfs-stat(允许用户查看一个文件的ecryptfs元数据,详见man ecryptfs-stat)

SYNOPSIS

ecryptfs-stat filename

此程序将显示加密eCryptfs文件及其属性的统计信息。

ecryptfs-verify(验证eCryptfs加密home或者加密的私有配置,详见man ecryptfs-verify)

SYNOPSIS

ecryptfs-verify [-h|--home] [-p|--private] [-e|--filenames-encrypted] [-n|--filenames-not-encrypted] [-u|--user USER] [--help]

OPTIONS

  • -h, –home 
    如果home正解配置为加密,则为True,否则为False。

  • -p, –private 
    如果一个非home正解配置为加密,则为True,否则为False。

  • -e, –filenames-encrypted 
    如果文件名被设置为加密为True,否则为False。

  • -n, –filenames-not-encrypted 
    如果文件名没有被加密为True,否则为False。

  • -u, –user USER 
    默认为检查当前用户的配置,用此选项覆盖默认选项。

  • –help 
    使用帮助。

ecryptfsd(用户空间eCryptfs守护进程,详见man ecryptfsd)

SYNOPSIS

ecryptfsd

ecryptfsd是一个用户空间守护进程,它用于用户执行eCryptfs挂载点下的文件操作。它为Ceryptfs内核模块提供公钥请求;这些请求通过netlink在文件打开时发送。只有在使用公共密钥模块完成挂载时才需要运行ecryptfsd. 
ecryptfsd将注册自己的内核作为守护进程,该守护进程为该守护进程的用户上下文中所有的eCryptfs文件系统请求提供服务。

你可能感兴趣的:(文件系统,linux)