加密linux系统,linux系统官网

大家好,今天小编来为大家解答以下的问题,关于加密linux系统,linux系统官网这个很多人还不知道,现在让我们一起来看看吧!

电脑文件如何加密最简单的方法

最简单的方法来为电脑文件加密通常是使用操作系统自带的加密功能或使用第三方加密软件。

使用操作系统自带的加密功能

大多数现代操作系统,如Windows、macOS和Linux,都内置了文件加密工具。这些工具通常易于使用,且与系统整合良好。

* Windows系统的加密方法:

+ BitLocker:Windows的专业版和企业版中包含了BitLocker驱动器加密功能,它可以对整个硬盘驱动器进行加密,保护其中的所有文件。

+ EFS(加密文件系统):EFS允许用户对NTFS卷上的文件和文件夹进行加密。加密后的文件只能由加密它们的用户或拥有相应密钥的用户访问。

* macOS系统的加密方法:

+ FileVault:macOS的FileVault功能提供全磁盘加密,保护Mac上的所有数据不被未授权的访问。

* Linux系统的加密方法:

+ LUKS(Linux统一密钥设置):LUKS是Linux硬盘加密的标准,它允许用户在硬盘上创建一个或多个加密容器。

使用第三方加密软件

除了操作系统自带的加密工具外,还有许多第三方加密软件可供选择。这些软件通常提供更多的加密选项和更高的安全性。

* VeraCrypt:VeraCrypt是一个免费开源的磁盘加密软件,它支持全磁盘加密、系统分区加密和虚拟加密磁盘等。VeraCrypt还提供了更强的加密算法和隐藏卷功能,以增加数据的安全性。

* AxCrypt:AxCrypt是一个简单易用的文件加密软件,它支持对单个文件进行加密,也支持对整个文件夹进行加密。AxCrypt还提供了云存储加密和文件共享功能。

加密的步骤和注意事项

1.选择加密工具:根据您的需求和操作系统的类型,选择一个适合您的加密工具。

2.备份数据:在加密之前,务必备份重要数据,以防加密过程中发生意外导致数据丢失。

3.加密文件或磁盘:使用选定的加密工具,按照软件的指示进行加密操作。加密过程中可能需要设置密码或密钥。

4.妥善保管密钥:加密后,一定要妥善保管好加密密钥或密码,以防忘记或丢失。

5.定期更新加密方法:随着技术的发展,新的加密方法和算法不断涌现。为了保持数据的安全性,建议定期更新加密方法和密码。

通过以上方法,您可以轻松地为您的电脑文件加密,保护数据的安全和隐私。

如何在Linux系统上加密文件和目录

加密类型

我们主要有两种加密文件和目录的方法。一种是文件系统级别的加密,在这种加密中,你可以选择性地加密某些文件或者目录(如,/home/alice)。对我而言,这是个十分不错的方法,你不需要为了启用或者测试加密而把所有一切重新安装一遍。然而,文件系统级别的加密也有一些缺点。例如,许多现代应用程序会缓存(部分)文件你硬盘中未加密的部分中,比如交换分区、/tmp和/var文件夹,而这会导致隐私泄漏。

另外一种方式,就是所谓的全盘加密,这意味着整个磁盘都会被加密(可能除了主引导记录外)。全盘加密工作在物理磁盘级别,写入到磁盘的每个比特都会被加密,而从磁盘中读取的任何东西都会在运行中解密。这会阻止任何潜在的对未加密数据的未经授权的访问,并且确保整个文件系统中的所有东西都被加密,包括交换分区或任何临时缓存数据。

可用的加密工具

在Linux中要实施加密,有几个可供选择的工具。在本教程中,我打算介绍其中一个:eCryptFS,一个用户空间文件系统加密工具。下面提供了一个Linux上可用的加密工具摘要供您参考。

文件系统级别加密

EncFS:尝试加密的最简单方式之一。EncFS工作在基于FUSE的伪文件系统上,所以你只需要创建一个加密文件夹并将它挂载到某个文件夹就可以工作了。

eCryptFS:一个POSIX兼容的加密文件系统,eCryptFS工作方式和EncFS相同,所以你必须挂载它。

磁盘级别加密

Loop-AES:最古老的磁盘加密方法。它真的很快,并且适用于旧系统(如,2.0内核分支)。

DMCrypt:最常见的磁盘加密方案,支持现代Linux内核。

CipherShed:已停止的TrueCrypt磁盘加密程序的一个开源分支。

eCryptFS基础

eCrypFS是一个基于FUSE的用户空间加密文件系统,在Linux内核2.6.19及更高版本中可用(作为encryptfs模块)。eCryptFS加密的伪文件系统是挂载到当前文件系统顶部的。它可以很好地工作在EXT文件系统家族和其它文件系统如JFS、XFS、ReiserFS、Btrfs,甚至是NFS/CIFS共享文件系统上。Ubuntu使用eCryptFS作为加密其家目录的默认方法,ChromeOS也是。在eCryptFS底层,默认使用的是AES算法,但是它也支持其它算法,如blowfish、des3、cast5、cast6。如果你是通过手工创建eCryptFS设置,你可以选择其中一种算法。

就像我所的,Ubuntu让我们在安装过程中选择是否加密/home目录。好吧,这是使用eCryptFS的最简单的一种方法。

Ubuntu提供了一个用户友好的工具集,通过eCryptFS可以让我们的生活更轻松,但是在Ubuntu安装过程中启用eCryptFS只创建了一个指定的预配置的设置。所以,如果默认的设置不适合你的需求,你需要进行手工设置。在本教程中,我将介绍如何在主流Linux发行版上手工设置eCryptFS。

eCryptFS的安装

Debian,Ubuntu或其衍生版:

代码如下:

$ sudo apt-get install ecryptfs-utils

注意,如果你在Ubuntu安装过程中选择加密家目录,eCryptFS应该已经安装了。

CentOS, RHEL or Fedora:

代码如下:

# yum install ecryptfs-utils

Arch Linux:

代码如下:

$ sudo pacman-S ecryptfs-utils

在安装完包后,加载eCryptFS内核模块当然会是一个很好的实践:

代码如下:

$ sudo modprobe ecryptfs

配置eCryptFS

现在,让我们开始加密一些目录,运行eCryptFS配置工具:

代码如下:

$ ecryptfs-setup-private

它会要求你输入登录密码和挂载密码。登录密码和你常规登录的密码一样,而挂载密码用于派生一个文件加密主密钥。这里留空可以生成一个(复杂的),这样会更安全。登出然后重新登录。

你会注意到,eCryptFS默认在你的家目录中创建了两个目录:Private和.Private。~/.Private目录包含有加密的数据,而你可以在~/Private目录中访问到相应的解密后的数据。在你登录时,~/.Private目录会自动解密并映射到~/Private目录,因此你可以访问它。当你登出时,~/Private目录会自动卸载,而~/Private目录中的内容会加密回到~/.Private目录。

eCryptFS怎么会知道你拥有~/.Private目录,并自动将其解密到~/Private目录而不需要我们输入密码呢?这就是eCryptFS的PAM模块捣的鬼,它为我们提供了这项便利服务。

如果你不想让~/Private目录在登录时自动挂载,只需要在运行ecryptfs-setup-private工具时添加“--noautomount”选项。同样,如果你不想要~/Private目录在登出后自动卸载,也可以自动“--noautoumount”选项。但是,那样后,你需要自己手工挂载或卸载~/Private目录:

[/code]$ ecryptfs-mount-private~/.Private~/Private

$ ecryptfs-umount-private~/Private

你可以来验证一下.Private文件夹是否被挂载,运行:

代码如下:

$ mount

现在,我们可以开始把任何敏感文件放进~/Private文件夹里头了,它们会在我们登出时自动被加密并锁在~/.Private文件内。

所有这一切看起来是那么得神奇。这主要是ecryptfs-setup-private工具让一切设置变得简单。如果你想要深究一点,对eCryptFS指定的方面进行设置,那么请转到官方文档。

结尾

综上所述,如果你十分关注你的隐私,最好是将基于eCryptFS文件系统级别的加密和全盘加密相结合。切记,只进行文件加密并不能保证你的隐私不受侵犯。

Linux Encryption HOWTO 怎样制作一个加密的文件系统

设定分区

您的硬盘(hda)最少应该包含三个分区:

hda1:这个小的没加密的分区应该要求一个口令为了加载加密的根文件系统

hda2:这个分区应该包含你的加密根文件系统;确保它足够大

hda3:这个分区就是你的当前的GNU/Linux系统

在这时,hda1和hda2没有使用。hda3就是当前你安装的linux发行版;/usr和/boot不能另外分区装载。

你的分区分布也许会像下面这样:

# fdisk-l/dev/hda

Disk/dev/hda: 255 heads, 63 sectors, 2432 cylinders

Units= cylinders of 16065* 512 bytes

Device Boot Start End Blocks Id System

/dev/hda1 1 1 8001 83 Linux

/dev/hda2 2 263 2104515 83 Linux

/dev/hda3 264 525 2104515 83 Linux

/dev/hda4 526 2047 12225465 83 Linux

安装 Linux-2.4.27

有两种主要的方案可用于在内核上添加 loopback加密支持:cryptoloop和 loop-AES。本文是基于loop-AES方案的,因为因为它的特点是非常快和非常优化实行 of Rijndael用汇编语言。如果你有一个IA-32(x86) CPU,它将为您提供最大的性能。另外,还有一些关于cryptoloop的安全关切.

首先,下载和解压 loop-AES软件包:

wget

tar-xvjf loop-AES-v2.2b.tar.bz2

然后再下载内核源代码和补丁并为内核源码打上补丁:

wget

tar-xvjf linux-2.4.27.tar.bz2

cd linux-2.4.27

rm include/linux/loop.h drivers/block/loop.c

patch-Np1-i../loop-AES-v2.2b/kernel-2.4.27.diff

设置键盘映射:

dumpkeys| loadkeys-m-> drivers/char/defkeymap.c

下一步,配置你的内核;确定下面的选项你已经选上了:

make menuconfig

Block devices--->

<*> Loopback device support

[*] AES encrypted loop device support(NEW)

<*> RAM disk support

(4096) Default RAM disk size(NEW)

[*] Initial RAM disk(initrd) support

File systems--->

<*> Ext3 journalling file system support

<*> Second extended fs support

(important note: do not enable/dev file system support)

编译并安装内核:

make dep bzImage

make modules modules_install

cp arch/i386/boot/bzImage/boot/vmlinuz

如果你的启动器是grub,更新你的/boot/grub/menu.lst或/boot/grub/grub.conf文件:

cat>/boot/grub/menu.lst<< EOF

default 0

timeout 10

color green/black light-green/black

title Linux

root(hd0,2)

kernel/boot/vmlinuz ro root=/dev/hda3

EOF

启动器是lilo的话就更新/etc/lilo.conf并运行 lilo:

cat>/etc/lilo.conf<< EOF

lba32

boot=/dev/hda

prompt

timeout=100

image=/boot/vmlinuz

label=Linux

read-only

root=/dev/hda3

EOF

lilo

现在重启你的系统。

安装Linux 2.6.8.1

像之前所说的那样进行前面的部分,所用补丁是loop-aes'kernel-2.6.8.1.diff。要注意的是你要安装module-init-tools软件包以便你的系统支持模块。

安装util-linux-2.12b

这个losetup程序包含在util-linux-2.12b软件包中。必须打补丁并重新编译以使它支持加密。下载,解压并打为util-linux打补丁:

wget

tar-xvjf util-linux-2.12b.tar.bz2

cd util-linux-2.12b

patch-Np1-i../loop-AES-v2.2b/util-linux-2.12c.diff

使用少于20个字符的密码,键入:

CFLAGS="-O2-DLOOP_PASSWORD_MIN_LENGTH=8"; export CFLAGS

安全可能是你主要关心的一个问题。为此,请不要使您的密码少于20个字符。数据保密性不是免费的,你必须以‘支付’的形式使用长的密码。

使用root用户编译安装 losetup程序:

./configure&& make lib mount

mv-f/sbin/losetup/sbin/losetup~

rm-f/usr/share/man/man8/losetup.8*

cd mount

gzip losetup.8

cp losetup/sbin

cp losetup.8.gz/usr/share/man/man8/

创建加密的根文件系统

用随机数据填充目标分区:

shred-n 1-v/dev/hda2

安装加密loopback设备:

losetup-e aes256-S xxxxxx/dev/loop0/dev/hda2

为防止比较快的字典攻击,推荐加上-S xxxxxx选项,"xxxxxx"是你随机选取的种子(例如,你可能选择"gPk4lA")。同样,为了防止启动时的键盘映射问题,在密码中不要使用非ASCII字符(方言,等)。Diceware站点提供了一种简单的的方法去创建强大并容易记住的密码。

现在开始创建ext3文件系统:

mke2fs-j/dev/loop0

检测你输入的密码是正确的:

losetup-d/dev/loop0

losetup-e aes256-S xxxxxx/dev/loop0/dev/hda2

mkdir/mnt/efs

mount/dev/loop0/mnt/efs

你可以比较已加密的和未加密的数据:

xxd/dev/hda2| less

xxd/dev/loop0| less

现在是时候安装你的加密的linux系统了。如果你使用的是GNU/Linux发行版(譬如Debian, Slackware, Gentoo, Mandrake, RedHat/Fedora, SuSE, etc.),运行下面的命令:

cp-avx//mnt/efs

如果你使用是Linux From Scratch手册,照着lfs手册上所说的那样进行配置,但要做以下修改:

Chapter 6- Installing util-linux:

在解压源代码后打上 loop-AES的补丁。

Chapter 8- Making the LFS system bootable:

指向我们的下一章(创建启动设备)。

--------------------------------------------------------

创建启动设备

创建ramdisk

在开始时,先用chroot命令进入你的加密分区并创建启动设备的挂载点:

chroot/mnt/efs

mkdir/loader

然后创建 initial ramdisk(initrd),它将会在以后用到:

cd

dd if=/dev/zero of=initrd bs=1k count=4096

mke2fs-F initrd

mkdir ramdisk

mount-o loop initrd ramdisk

如果您使用 grsecurity.您可能会收到"Permission denied"的提示错误的信息;如果是这样你将必须在chroot命令之前运行 mount命令。

创建文件系统的目录组织并复制所需要的的文件进去:

mkdir ramdisk/{bin,dev,lib,mnt,sbin}

cp/bin/{bash,mount} ramdisk/bin/

ln-s bash ramdisk/bin/sh

mknod-m 600 ramdisk/dev/console c 5 1

mknod-m 600 ramdisk/dev/hda2 b 3 2

mknod-m 600 ramdisk/dev/loop0 b 7 0

cp/lib/{ld-linux.so.2,libc.so.6,libdl.so.2} ramdisk/lib/

cp/lib/{libncurses.so.5,libtermcap.so.2} ramdisk/lib/

cp/sbin/{losetup,pivot_root} ramdisk/sbin/

如果你看到像"/lib/libncurses.so.5: No such file or directory","/lib/libtermcap.so.2: No such file or directory"的信息,这是正常的。bash只要求用这两个库中的其中一个。你可以检测哪一个才是你实际所需要的:

ldd/bin/bash

编译sleep程序,它将防止密码提示被内核信息所淹没(例如当usb设备注册时)。

cat> sleep.c<<"EOF"

#include<unistd.h>

#include<stdlib.h>

int main( int argc, char*argv[])

{

if( argc== 2)

sleep( atoi( argv[1]));

return( 0);

}

EOF

gcc-s sleep.c-o ramdisk/bin/sleep

rm sleep.c

创建初始化脚本(不要忘记替换掉你之前报选的种子"xxxxxx"):

cat> ramdisk/sbin/init<<"EOF"

#!/bin/sh

/bin/sleep 3

/sbin/losetup-e aes256-S xxxxxx/dev/loop0/dev/hda2

/bin/mount-r-n-t ext3/dev/loop0/mnt

while [$?-ne 0 ]

do

/sbin/losetup-d/dev/loop0

/sbin/losetup-e aes256-S xxxxxx/dev/loop0/dev/hda2

/bin/mount-r-n-t ext3/dev/loop0/mnt

done

cd/mnt

/sbin/pivot_root. loader

exec/usr/sbin/chroot./sbin/init

EOF

chmod 755 ramdisk/sbin/init

卸载 loopback设备并压缩initrd:

umount-d ramdisk

rmdir ramdisk

gzip initrd

mv initrd.gz/boot/

从CD-ROM启动

我强烈建议您从只读的媒体里启动您的系统,例如可启动的光盘。

下载并解压syslinux:

wget

tar-xvjf syslinux-2.10.tar.bz2

配置isolinux:

mkdir bootcd

cp/boot/{vmlinuz,initrd.gz} syslinux-2.10/isolinux.bin bootcd

echo"DEFAULT/vmlinuz initrd=initrd.gz ro root=/dev/ram0"\

> bootcd/isolinux.cfg

把iso映像刻录到可启动光盘中:

mkisofs-o bootcd.iso-b isolinux.bin-c boot.cat\

-no-emul-boot-boot-load-size 4-boot-info-table\

-J-hide-rr-moved-R bootcd/

cdrecord-dev 0,0,0-speed 4-v bootcd.iso

rm-rf bootcd{,.iso}

从硬盘启动

当你丢失了你的可启动光盘时,启动分区就可以派上用场了。请记住hda1是个可写分区,因而并不是很可靠的,只有当你遇到紧急的情况时才使用它!

创建并挂载ext2文件系统:

dd if=/dev/zero of=/dev/hda1 bs=8192

mke2fs/dev/hda1

mount/dev/hda1/loader

复制内核和initial ramdisk:

cp/boot/{vmlinuz,initrd.gz}/loader

如果你使用的是grub:

mkdir/loader/boot

cp-av/boot/grub/loader/boot/

cat>/loader/boot/grub/menu.lst<< EOF

default 0

timeout 10

color green/black light-green/black

title Linux

root(hd0,0)

kernel/vmlinuz ro root=/dev/ram0

initrd/initrd.gz

EOF

grub-install--root-directory=/loader/dev/hda

umount/loader

如果你使用lilo:

mkdir/loader/{boot,dev,etc}

cp/boot/boot.b/loader/boot/

mknod-m 600/loader/dev/hda b 3 0

mknod-m 600/loader/dev/hda1 b 3 1

mknod-m 600/loader/dev/ram0 b 1 0

cat>/loader/etc/lilo.conf<< EOF

lba32

boot=/dev/hda

prompt

timeout=100

image=/vmlinuz

label=Linux

initrd=/initrd.gz

read-only

root=/dev/ram0

EOF

lilo-r/loader

umount/loader

最后一步仍然保持chroot的状态,修改/etc/fstab增加以下选项:

/dev/loop0/ ext3 defaults 0 1

去除/etc/mtab并从chroot中退出。最后,运行"umount-d/mnt/efs"命令然后重启系统。如果有某些错误发生,你仍然可以在 LILO提示中用"Linux root=/dev/hda3"来启动你未加密的分区。

如果一切都顺利,你就可以重新分区你的硬盘和继续加密你的hda3或hda4分区。在下面的脚本中,我们假设 hda3将挂载swap设备,hda4挂载/home目录;你应该先初始化这两个分区:

shred-n 1-v/dev/hda3

shred-n 1-v/dev/hda4

losetup-e aes256-S xxxxxx/dev/loop1/dev/hda3

losetup-e aes256-S xxxxxx/dev/loop2/dev/hda4

mkswap/dev/loop1

mke2fs-j/dev/loop2

然后在系统的启动目录里创建一个脚本并更新/etc/fstab:

cat>/etc/init.d/loop<<"EOF"

#!/bin/sh

if ["`/usr/bin/md5sum/dev/hda1`"!=\

"5671cebdb3bed87c3b3c345f0101d016/dev/hda1" ]

then

echo-n"WARNING! hda1 integrity verification FAILED- press enter."

read

fi

echo"1st password chosen above"|\

/sbin/losetup-p 0-e aes256-S xxxxxx/dev/loop1/dev/hda3

echo"2nd password chosen above"|\

/sbin/losetup-p 0-e aes256-S xxxxxx/dev/loop2/dev/hda4

/sbin/swapon/dev/loop1

for i in `seq 0 63`

do

echo-n-e"\33[10;10]\33[11;10]">/dev/tty$i

done

EOF

chmod 700/etc/init.d/loop

ln-s../init.d/loop/etc/rcS.d/S00loop

vi/etc/fstab

...

/dev/loop2/home ext3 defaults 0 2

阅读剩余
THE END