Tag: linux

编写一个pam_python模块:“KeyError:getspnam():name not found”

我正在使用pam_python模块来loggingSSH尝试中使用的用户名和密码。 在/etc/pam.d/sshd我加了这行: auth requisite pam_python.so /lib64/security/pwreveal.py 这是/lib64/security/pwreveal.py : import crypt, spwd, syslog def auth_log(msg): """Send errors to default auth log""" syslog.openlog(facility=syslog.LOG_AUTH) syslog.syslog("SSH Attack Logged: " + msg) syslog.closelog() def check_pw(user, password): auth_log("User: " + user + " Password: " + password) """Check the password matches local unix password on file""" # try: hashed_pw = spwd.getspnam(user)[1] […]

无法使用IP地址parsing连接到无线networking的设备的主机名**服务器找不到xxxxin-addr.arpa。:NXDOMAIN

我试图通过他们的IP地址parsing连接到我的无线局域网的设备的主机名。 我正在使用一个macbook和我的/etc/resolv.conf显示这是我的DNS服务器(192.168.1.1)这是一个无线路由器 #This file is automatically generated. #nameserver 192.168.1.1 我试图find连接到我的networking使用其IP的客户端的主机名,我得到以下错误 # nslookup 192.168.1.4 192.168.1.1 Server: 192.168.1.1 Address: 192.168.1.1#53 # server can't find 4.1.168.192.in-addr.arpa.: NXDOMAIN # nslookup 192.168.1.1 Server: 192.168.1.1 Address: 192.168.1.1#53 server can't find 1.1.168.192.in-addr.arpa.: NXDOMAIN

为指定的挂载点设置挂载选项

有没有一种优雅的方式来设置UUID的给定挂载点的挂载选项? 我想要完成的是一个像这样的fstab条目: UUID=d5e3a2e2-a113-4a27-b8d7-801dbf4c6134 / ext4 errors=remount-ro,noatime,user_xattr,acl 0 1 所以基本上我想告诉他们:“设置这些设备的选项在/上。” 但是mount模块的src参数对于当前状态是必需的,我想使用UUID作为源。 我目前的解决办法是作为下面的答案发布,但是它将遍历所有现有的坐骑,并检查path是否/否,并因此产生大量的skipping输出。 我现在做的是: – name: "mount options for /" mount: path: "/" src: "UUID={{ item.uuid }}" fstype: "ext4" opts: "errors=remount-ro,noatime,user_xattr,acl" state: "present" with_items: – "{{ ansible_mounts }}" when: "item.mount == '/'" 这是我打算做的,但它检查主机的所有挂载点,并因此产生大量的skipping输出: TASK [node : mount options for /] ************************************************************************************************************************ ok: [node001] => (item={u'uuid': u'N/A', u'size_total': […]

在conntrack中的字节和数据包计数器发生了什么?

Netfilter的conntrack文档显示了包含bytes=和packets= counters的conntrack -L输出示例,但是当我运行它时,我只能看到IP和端口信息。 我知道文档是真的过时了,特别提到ip_conntrack ,它已被replace为nf_conntrack ,但我希望有一些方法来启用计数器。 有没有办法获得这些信息,或者是否已经删除了这些计数器? 我使用Ubuntu 14.04,内核3.13

SFTP连接失败:DH GEX组超出范围

嗨,我想连接到一个SFTP服务器,但它一直失败,这个错误: DH GEX组超出范围 这是详细的日志…环顾四周,我发现问题与密钥大小有关 OpenSSH_7.4p1 Ubuntu-10, OpenSSL 1.0.2g 1 Mar 2016 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 19: Applying options for * debug1: Connecting to **** [****] port 22. debug1: Connection established. debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_7.4p1 Ubuntu-10 debug1: Remote protocol version 2.0, remote software version […]

在安装rpm时修改PAM文件以添加configuration更改?

这个问题是为了一般的应用,但我可以用一些具体的例子来说明我的问题的性质。 当某些Linuxauthentication软件包如krb5,sssd或pam_pkcs11被安装时,会进入PAMconfiguration目录下的文件(如/etc/pam.d/system-auth和/etc/pam.d/password-auth ),添加或修改一行以指向已安装的新.so文件,如pam_krb5.so , pam_sssd.so或pam_pkcs11.so以供使用。 这似乎是自动发生的某些软件包,无需用户干预,只需安装rpm软件包(使用yum或直接使用rpm工具),就像我观察到的那样,安装sssd软件包(至less在RHEL 7上)将会将对pam_sssd.so的引用添加到* -auth PAM文件中。 我想这是唯一可能的方法是通过rpms可以拥有的内部脚本,所以我查了一下如何在rpm的SPEC中列出内部脚本,安装了一个RHEL 7映像以便与源代码包对等,在Packages目录下运行: sudo rpm –scripts -qpl sssd- * | grep -i pam 然而,我没有返回任何行,表明任何东西都触及/etc/pam.d目录中的文件,即使如果我删除grep,我会看到if / then脚本逻辑做其他事情的结果,所以–scripts参数正在工作。 我也很好奇,在一个非常特殊的例子中,把这一行添加到我的/etc/pam.d/system-auth文件中: auth [成功=完成authinfo_unavail =忽略忽略=忽略默认=死亡] pam_pkcs11.so nodebug 如果它不是RPM的内部脚本,我想知道它是否可能是最初运行的新安装文件中的某个二进制文件,这是什么负责添加这些更改,但没有看到任何证据那。 此外,我实际上已经在RPM脚本中使用了authconfig行,因为我知道authconfig可以做到这一点,但没有find任何东西。 然而,它似乎必须运行authconfig或在背景等效的东西来做到这一点。 有没有人对这些改变有什么看法?

基于文件的日志监控与邮件触发器只?

我有来自我公司的各种异构服务能够将事物logging到文件中,但是例如不能自己发送邮件。 此外,我已经login到Apache httpd和Tomcat,Postgres,Upstart和其他各种来源的文件,默认情况下不使用例如Syslog。 所有这些服务的普遍意义是使用文件,但是日志大小,消息格式,是否旋转等都不同。 所以我正在寻找的是一些日志监视器,它侧重于configuration文件,并提供触发器来将新添加的内容与针对某些正则expression式的这些文件相匹配,或者用于向错误消息发送邮件。 我想有独立的东西,专注于使用触发器进行日志文件监视,并且通过例如使用文件系统事件来获得已更改文件的通知,只读取文件结尾而不是parsing整个文件等。 但是,在定义触发器时需要一些灵活性,但除此之外,它只需要发送带有日志消息的邮件到任意地址。 即使支持本地sendmail也不行,这些邮件的模板function很less。 我甚至不关心诸如识别多个错误信息等等。 我已经阅读了关于这个话题的整个一天,发现了各种不同的解决scheme,像Graylog,Logstash,Nagios / Zabbix插件等。但从我读到的,所有这些对我的环境有严重的缺陷:Graylog和Logstash似乎有沉重的设置和依赖关系,并提供我根本不需要的function,如在日志中search。 我目前不使用Nagios和Zabbix,也不确定它们的日志监视插件如何执行,因为它们似乎轮询基于时间的日志文件等。 另外, Zabbix的configuration看起来有点难以维护。 那么有没有更多的重点可用?

tcpdump的默认捕获大小在类似的服务器上有所不同

在两个不同但相似的(发行版,版本)服务器上运行/usr/sbin/tcpdump -n dst ${some_ip} and dst port 80会给我不同的捕获大小(一个为65535个字节,另一个为262144个字节)。 什么可能导致tcpdump捕获大小的差异? 在结果数据输出中可能导致哪些不一致? 编辑: ldd $(which tcpdump)在两台服务器上具有相同的输出: linux-vdso.so.1 => (0xdeadbeef) libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0xdeadbeef) libpcap.so.0.8 => /usr/lib/x86_64-linux-gnu/libpcap.so.0.8 (0xdeadbeef) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0xdeadbeef) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0xdeadbeef) /lib64/ld-linux-x86-64.so.2 (0xdeadbeef) 嗯,但内核版本不同,必须与这个… capture size 65535: Ubuntu 14.04.4, Linux 3.13.0-85-generic capture size 262144: Ubuntu 14.04.5, Linux 3.13.0-116-generic

与Jenkins Docker Plugin和Jenkins Docker Slaves混淆

所以我在某些方面感到惊喜,看到Jenkins Docker插件将Docker镜像“推送”到我的Docker主机金属中,但也令人困惑,因为我的构build发生在Docker主机金属上运行的Docker Slave容器中。 即使我的Jenkins大师在Docker容器中运行,而不是直接在金属上运行… 继这个受欢迎的jenkins大师/奴隶指南之后,我到达了Jenkinsbuild立在临时Docker容器中工作的地步。 这意味着,当我为Jenkins构build一些我的源代码软件组件/服务时,构build将在Jenkins从站中启动,这恰好是由Jenkins Docker插件启动的Docker容器。 Jenkins的工作空间在这个奴隶容器中,安装了Docker插件的Jenkins主,一旦构build完成,将处置这个奴隶容器。 看到我帮助解释的图表: 消化了这个图表后,一些重要的跟踪点: Jenkins Master和Jenkins Slave在同一个Docker主机金属上运行,因为我刚刚处于运行此系统的开始阶段 我正在使用Docker插件和SSH Slaves插件来完成此设置 所以在这个Docker Slave中,我的软件组件/服务构build工件被创build,例如,它可能是.dll或.war。 碰巧遇到这种情况,我的构build工件将成为Docker镜像。 为了清楚起见,我正在运行的Docker容器(Jenkins Slave)中构build一个Docker镜像。 我的困惑开始于我的期望,我应该不得不显式运行cmd推我的软件组件Docker镜像构build工件到Dockerregistry。 否则,当Jenkins构build作业完成时,Docker插件将closuresDocker容器从属,处理(rm)从属容器,并且将丢失该容器内的构build工件。 究竟发生了什么,为什么我感到惊喜,至less在短时间内,我正在开发并运行,是Docker镜像在docker主机上显示出来的。 我很惊讶,Docker插件会去这个水平的假设/帮助…我知道Docker插件允许您configuration一个Dockerregistry,并且您可以添加构build/发布到Docker Cloud,我假设云被视为图像的registry,也许也是运行这些图像的地方: 特别有趣的是,我没有使用Docker插件进行任何构build步骤,我只是使用Docker插件为构buildJenkinsconfiguration一个Slave容器。Item: 我唯一的构build步骤是我执行一个Shell脚本,是的,这个脚本碰巧最终build立一个Docker镜像,但Docker插件不知道这一点: Docker插件加速了Docker从属容器,我configuration了Docker插件,并告诉它一个Docker主机(在我的情况下,我的金属)Cloud是Docker插件调用Docker主机和Docker从属镜像以用于该Docker主机/云: 我只是误解了一个Jenkins构build工作空间时Docker从属容器内部发生的隔离问题吗? Docker插件只是默认使用唯一的Docker Cloud(我的Docker主机金属),我已经设置了所有任何Docker命令,我碰巧在Jenkins Docker slave容器中运行? (通过安装Docker-CE的方式,一个从属容器) 我的jenkins大师docker文件: #reference #https://engineering.riotgames.com/news/putting-jenkins-docker-container FROM jenkins:2.60.1 MAINTAINER Brian Ogden USER root #Timezone ENV TZ=America/Los_Angeles RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ […]

解释/ proc / diskstats中的读取,写入和总IO时间

我注意到,当我看到/proc/diskstats的输出时,花费在阅读上的总时间,写入的总时间和执行IO的总时间之间存在差异。 例如,我在/proc/diskstats中看到一个条目: $ cat /proc/diskstats … 8 0 sda 944150584 590524 235547588959 780672196 833280352 534699043 322507689696 3472000824 1 812190100 4246357772 … 根据https://www.kernel.org/doc/Documentation/iostats.txt的文档, 字段4 – 读取的毫秒数这是所有读取花费的总毫秒数(从__make_request()到end_that_request_last())。 字段8 – 写入毫秒数这是所有写入所花费的总毫秒数(从__make_request()到end_that_request_last())的测量值。 字段10 – 执行I / O所花费的毫秒数只要字段9非零,此字段就会增加。 因此,我认为第十个领域将是第四个和第八个领域的总和,因为我认为总的IO时间是阅读时间和写作时间的总和。 但是,我从来没有注意到这种情况,而且我一直观察到第四和第八场的总和大于第十场(例如,在上面的行(780672196 + 3472000824 – 812190100 =我想知道如果有人能解释为什么这些数字是不同的,似乎第十个领域是试图捕捉一些不同于第四和第八领域的总和。

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.