我在 Un*x 中有 20 多年的经验,而且我一直在使用它scp。
scp通过 SSH,因此我认为它与后者一样安全。现在,在我最近开始工作的公司中,安全官说scp不应使用它,因为它不安全且已过时。sftp应该比它更受青睐(但也比 SSH 更......)
基于 scp 下的基础设施,以及scp在专业社区以及我前公司的其他同事中的受欢迎程度和信任度,我并不立即同意这一点。我不想仅仅因为某些 CSO 这么说就改变主意。
scp突然的害群之马?scp只是好用?我有一个目录树,我想用 Linux 'shred' 实用程序对其进行粉碎。不幸的是,shred 没有-R递归粉碎的选项。
如何递归地粉碎整个目录树?
随着 NSA 披露的所有偏执狂,我想知道为什么 Debian 软件包安装机制不支持 HTTPS 进行传输,更不用说默认使用 HTTPS 了。
我知道 Debian 软件包使用 GPG 进行某种签名验证,但是,考虑到这在安全方面的重要性,我仍然认为使用 HTTPS 传输而不是 HTTP 会太难。
编辑:我主要想保护自己免受中间人攻击(包括只是流量嗅探),而不是 Debian 镜像管理员。HTTP 存储库将整个系统放在桌面上,供任何窥探 Debian 镜像流量的人使用。
我已经.pem从 AWS生成并下载了一个私钥。但是,要使用 Putty 连接到虚拟机,我必须拥有该密钥的.ppk格式。转换过程在这里大约有 20 行详细说明:
我正在使用 Linux Mint(一个 Ubuntu 发行版),我知道我可以在终端中使用 puttygen。但是,我不知道如何使用此工具,也不知道如何配置所需的参数。当我输入 puttygen --help 我得到
PuTTYgen unidentified build, Aug 7 2013 12:24:58
Usage: puttygen ( keyfile | -t type [ -b bits ] )
[ -C comment ] [ -P ] [ -q ]
[ -o output-keyfile ] [ -O type | -l | -L | -p ]
-t specify key type when generating (rsa, dsa, rsa1)
-b specify number of bits when generating key …Run Code Online (Sandbox Code Playgroud) 假设我使用sha1pass在命令行上生成一些敏感密码的哈希值。我可以sha1pass mysecret用来生成一个散列,mysecret但这有一个mysecret现在在 bash 历史中的缺点。有没有办法在避免mysecret以纯文本显示的同时实现此命令的最终目标,也许是通过使用passwd-style 提示?
我也对将敏感数据传递给任何命令的通用方法感兴趣。当敏感数据作为参数(例如 in sha1pass)或在 STDIN 上传递给某个命令时,该方法会发生变化。
有没有办法做到这一点?
编辑:这个问题引起了很多关注,下面提供了几个很好的答案。总结如下:
sha1pass在我的 OP 中只是一个例子,但讨论已经确定存在更好的工具来获取 STDIN 上的数据。所以,总而言之,我接受了@Jonathan 的回答,因为这是最好的解决方案,因为您有一个设计良好且行为良好的程序可供使用。尽管将密码或机密作为命令行参数传递从根本上说是不安全的,但其他答案提供了减轻简单安全问题的方法。
我最近了解到(至少在 Fedora 和 Red Hat Enterprise Linux 上),编译为位置独立可执行文件 (PIE) 的可执行程序会获得更强的地址空间随机化 (ASLR) 保护。
那么:如何在 Linux 上测试特定的可执行文件是否被编译为位置无关的可执行文件?
如何配置我的系统以在输入特定密码时销毁所有个人数据?这背后的动机是 NSA 的东西。
我想有三个主要用例。
我知道像
dd if=/dev/urandom of=/dev/$HOME
Run Code Online (Sandbox Code Playgroud)
应该足以进行数据销毁。但是,我不知道如何通过某个密码触发它。
如果在删除数据时允许登录,则奖励积分。
这是我的/etc/sysconfig/iptables:
它有两个端口,80 apache 和 22 ssh。
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j …Run Code Online (Sandbox Code Playgroud) 我的一些 Linux 和 FreeBSD 系统有几十个用户。工作人员将使用这些“ssh 网关”节点通过 SSH 连接到其他内部服务器。
我们担心其中一些人使用未加密的私人 SSH 密钥(没有密码的密钥。这很糟糕,因为如果破解者在这台机器上获得了对他们帐户的访问权限,他们可以窃取私钥,现在可以访问到任何使用相同密钥的机器。出于安全原因,我们要求所有用户使用密码来加密他们的私有 SSH 密钥。
如何判断私钥是否未加密(例如,不包含密码)?是否有不同的方法可以在 ASCII 装甲钥匙和非 ASCII 装甲钥匙上执行此操作?
更新:
澄清一下,假设我在机器上拥有超级用户访问权限,并且我可以读取每个人的私钥。
我刚刚启动了一个 Ubuntu 11.10 盒子,然后跑去apt-get install apache2 php5在盒子上安装 apache2 和 PHP 5。现在它作为一个“网络服务器”运行并加载“It Works!” 页。现在我正在努力加强安全性,我对 linux web 服务器有以下问题:
www-data?对于以用户身份运行的 apache/php?我在检查默认设置时做了以下事情:
当我cd /和做ls -al的内容列表,我看到/var:
drwxr-xr-x 13 root root 4096 2012-02-04 20:47 var/
Run Code Online (Sandbox Code Playgroud)
如果我cd进入var并且确实ls -al看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 www/
Run Code Online (Sandbox Code Playgroud)
最后,在里面/var/www我看到:
drwxr-xr-x 2 root root 4096 2012-02-04 20:47 ./
drwxr-xr-x 13 root root …Run Code Online (Sandbox Code Playgroud) security ×10
ssh ×3
linux ×2
password ×2
users ×2
amazon-ec2 ×1
apache-httpd ×1
apt ×1
debian ×1
executable ×1
fedora ×1
https ×1
iptables ×1
linux-mint ×1
php ×1
putty ×1
rm ×1
scp ×1
sftp ×1
shell ×1