一、密码安全
为了确保沟通过程的安全性,包括密码信息在内,使用加密传输是至关重要的。许多流行的传输层服务在公网上使用纯文本传输消息,这是一种糟糕的做法,因为这样传输的密码很容易被他人截获。为了解决这个问题,可以在传输层安全(Transport Layer Security,TLS)协议或其前身安全套接字层(Secure Sockets Layer,SSL)协议之上运行这些服务,以确保整个沟通过程的安全性。
通过使用TLS或SSL协议进行加密传输,可以有效地保护敏感信息,防止被未经授权的人员访问和窃取。这种加密传输的方式可以确保数据在传输过程中的保密性和完整性,提高系统的安全性和可靠性。因此,使用加密传输是保护密码和其他敏感信息的重要措施,以防止其被恶意攻击者获取。
安全和不安全的服务端口列表:
不安全的服务名 | 端口 | 安全的服务名 | 端口 |
---|---|---|---|
www (http) | 80 | https | 443 |
smtp (邮件) | 25 | ssmtp (smtps) | 465 |
ftp-data | 20 | ftps-data | 989 |
ftp | 21 | ftps | 990 |
telnet | 23 | telnets | 992 |
imap2 | 143 | imaps | 993 |
pop3 | 110 | pop3s | 995 |
ldap | 389 | ldaps | 636 |
加密消耗 CPU 时间。作为对 CPU 有益的替代方案,可以保持使用纯文本通讯,仅仅使用安全认证协议加密密码,比如说:POP 使用”Authenticated Post Office Protocol” (APOP),SMTP 和 IMAP 使用 “Challenge-Response Authentication Mechanism MD5” (CRAM-MD5)。
邮件客户端通过互联网上邮件服务器发送邮件时,最近流行使用新的递交端口 587 来代替传统的 SMTP 端口 25,这样可以避免在使用 CRAM-MD5 认证自己时,网络提供商阻塞 25 端口。
二、安全Shell
安全 Shell (SSH) 程序使用安全认证来提供不安全网络上两个不可信任主机之间的安全加密通讯。它由 OpenSSH 客户端, ssh(1), 和 OpenSSH 后台守护进程(daemon), sshd(8)组成.SSH 使用端口转发特性,可以给 POP 和 X 之类的不安全的协议通讯建立隧道,使其可以在互联网上安全传输。
客户端可以使用如下方式来认证自己:基于主机的认证、公钥认证、质疑应答认证、密码认证。使用公钥认证,可以实现远程免密码登录。
三、额外安全方式
即使运行 Secure Shell (SSH) 和 Point-to-point tunneling protocol (PPTP) 这样的安全服务,在互联网上,仍然有机会使用野蛮暴力猜测密码攻击进入。 使用防火墙策略 ,并和下面的安全工具一起,可以提升安全形势。
提供额外安全方式的工具列表:
软件包 | 流行度 | 大小 | 说明 |
---|---|---|---|
knockd |
V:0, I:2 | 110 | 小的 port-knock 后台守护进程(daemon) knockd (1) 和客户端 knock (1) |
fail2ban |
V:100, I:113 | 2129 | 禁用造成多个认证错误的 IP |
libpa m -shield |
V:0, I:0 | 115 | 把尝试猜测密码的远程攻击者关在外面 |
四、root密码安全
为阻止人们使用 root 权限访问机器,需要做下面的操作。
阻止对硬盘的物理访问;
- 锁住 UEFI/ BIOS 来阻止从可移动介质启动;
- 为 GRUB 交互式会话设置密码;
- 锁住 GRUB 菜单,禁止编辑。
如果可以物理访问硬盘,则可以使用下面的步骤,相对简单的重置密码。
- 将硬盘拿到一个可以设置 UEFI/BIOS 从 CD 启动的电脑;
- 使用紧急介质启动系统(Debian 启动磁盘, Knoppix CD, GRUB CD, …);
- 用读写访问挂载根分区;
- 编辑根分区的”/etc/passwd”文件,使 root 账户条目的第二段为空。
对于 grub-rescue-pc ,即使用紧急介质启动的电脑,如果有编辑 GRUB 菜单条目的权限,在启动时,使用下面的步骤更加简单。
- 使用内核参数启动系统来修改一些事情,比如说,”root=/dev/hda6 rw init=/bin/sh”;
- 编辑 “/etc/passwd” 文件,使 root 账户条目的第二段为空;
- 重启系统。
系统的 root shell 现在可以无密码访问了。
一旦有人拥有 root shell 访问权限,他能够访问任何内容,并可以重设系统上的任何密码。此外,他可以使用 john 和 crack 等软件包的暴力破解工具来比较所有用户的密码 。被破解的密码,可以用来和其它系统进行比较。
为避免这些相关问题,仅有的理论上的软件解决方案是使用 dm-crypt 和 initramfs 加密 root 分区(或 “/etc” 分区) 。这样的话,总是需要密码来启动系统。