Articles of linux

在2天内,有19,000个auth.log中的root密码尝试失败?

我正在debugging一些login问题,偶然发现我的/var/log/auth.log中有很多失败的根密码尝试。这是一个VPS Linode。 过去两天,我试图find19K的尝试。 我知道我应该将sshd移动到不同的端口,但是记住和使用它似乎是一种痛苦,而且需要更新一堆脚本。 另外,攻击者只能通过ports来find新的端口吗? 我为root设置了一个非常强大的密码,所以我不太在意。 我想这只是每分钟6 …所以可能不是一个性能问题。 但这似乎并不理想。 任何想法如何阻止或防止它? 似乎来自一个相当小的IP地址列表…也许我可以阻止这些? 我查了一下,他们似乎在中国。 另一个select是禁用rootlogin,并设置一个sudo用户用一个唯一的用户名。 但我不认为这将有助于解决这个问题 – 人们仍然可以尝试以root身份login。 更新:使用默认设置apt-get安装fail2ban后,我看到在auth.log中失败的根尝试次数减less了6-8倍: root@localhost:/var/log# grep "Failed password for root" auth.log | wc 21301 327094 2261733 root@localhost:/var/log# grep "May 1.*Failed password for root" auth.log | wc 6217 95973 664165 root@localhost:/var/log# grep "May 2.*Failed password for root" auth.log | wc 8370 127280 880779 […]

追加所有来自不同虚拟机的文件到特定的文件?

我想从不同的Vm得到特定的文件,并将其附加到一个文件。我试过这样 scp admin@data-1:/var/log/elasticsearch/cluster.log /home/itadmin/logstash/logstash-2.4.1/slowlogs.log scp admin@data-2:/var/log/elasticsearch/cluster.log /home/itadmin/logstash/logstash-2.4.1/slowlogs.log 但问题是覆盖文件。 我怎样才能以同样的方式追加它? 谢谢

复制服务器设置

我们在第三方主机上托pipe了很多网站。 对于这些网站中的每一个,我们也有相应的中转站点 – 通常在同一主机提供商的另一台服务器上。 我开始使用Digital Ocean来登台,因为他们安装的速度更快,最重要的是我们可以访问root。 有时,当我们从分期到现场推送时,由于服务器环境不尽相同,因此打破了某些方面,例如运行不同版本的Php。 是否有可以在托pipe服务器上运行的命令来获取系统variables,软件包和configuration的完整列表? 然后,我将能够“build立”数字海洋上的一个确切的副本。

有没有办法从安装以来收集系统configuration更改?

在我尝试更换几年前build立的Linux服务器时,我意识到没有人知道自从安装/configuration了什么。 我在git唯一的东西是nginx的网站定义。 我有什么select来比较正在运行的服务器和干净的安装? 我想使用Ansible进行版本化configurationpipe理,但在此之前,我需要获得有关已安装服务及其configuration文件,防火墙规则,用户/组,SSH密钥,域设置等信息,我甚至不知道该怎么做考虑到。 我可以看到一个/data文件夹,所以这很简单,但它包含www数据, nodejs数据和nodejs应用程序,这意味着安装了一个node nodejs和nodejs 。 我发现Jenkins安装的痕迹,但没有运行。 我可以看到一个fail2ban服务,所以这也需要移动。 有什么方法可以看到自初始设置以来发生了什么变化? 我想用一个干净的16.04replace这个Ubuntu 14.04使用Ansible的手册,以避免这种混乱,也许dockerize一些服务,同时保留目前的function。

使用谷歌驱动器来dynamic扩展VPS存储

我想知道有没有人尝试过使用免费的在线存储服务,如Mega,Google Drive或Dropbox来dynamic增加廉价VPS服务提供的“小”存储。 我的意思是“dynamic”的意思是,无论何时我在服务器上(例如通过SCP)上传文件,都会将文件传输到Google Drive,然后从服务器上删除文件,并且只要服务器需要该文件,它会暂时从GDrive下载(这是快速考虑数据中心带宽) 基本上给一个Linux驱动器上的Google云端硬盘文件夹的path,而无需下载文件夹。 有点像显示一个谷歌云端硬盘文件夹作为networking存储/ NAS 我想这可能是以前做过的,但是我没有find关于它的线索。 提前致谢

monit – “如果成功则执行exec”

我在成功执行脚本时遇到了问题。 ~/.monitrc : check host example.com with address example.com if failed url http://example.com/startpage and content == "mainBaner" timeout 10 seconds then exec "/usr/local/bin/monit_example_error.sh" else if succeeded then exec "/usr/local/bin/monit_example_ok.sh" 如果出现错误,它似乎运行脚本,但在没有错误的情况下则不会。 日志显示testing运行并成功,/ /var/log/monit.log /log/ /var/log/monit.log : [CEST Jun 8 12:24:52] debug : 'example.com' succeeded testing protocol [HTTP] at INET[example.com:80/startpage] via TCP [CEST Jun 8 12:25:22] debug […]

完全通过shell脚本安装和configurationphpmyadmin

参考本教程: https : //www.liquidweb.com/kb/how-to-install-and-configure-phpmyadmin-on-ubuntu-14-04/用于安装PHP-Admin,安装包后,在“Step 2:基本configuration“一些问题需要由用户填写。 是否有可能通过命令行完全通过Shell脚本完成这些configuration?

在脚本本身内部使用远程SSH脚本的nohup

我正尝试使用nohup +redirect+后台运算符(“&”)通过SSH运行远程脚本并断开连接。 这工作: ssh -n fred@fredbox.local 'nohup sudo /opt/scripts/do-thing.sh arg1 arg2 >/dev/null 2>&1 ' 我想将nohup部分封装在运行实际远程脚本的包装器中,但不执行nohup和输出redirect。 但它不起作用。 示例远程脚本“/opt/scripts/remote-exec-script.sh”: #!/usr/bin/env bash set -o xtrace set -o errexit set -o nounset ARG1=${1} ARG2="${2} nohup sudo /opt/scripts/do-thing.sh $ARG1 $ARG2 >/dev/null 2>&1 在远程脚本中放置nohup和输出redirect不起作用。 我有xtrace,所以我甚至尝试在SSH线路捕获stderr像这样 ssh -n fred@fredbox.local "/opt/scripts/remote-exec-script.sh >/dev/null 2>&1" 这甚至有可能吗?

如何certificate驱动器没有被使用?

我有一个驱动器,我正在努力取代。 我相信它不再被任何系统或用户使用,并且可以被删除。 我已经复制了所有我认为相关的东西。 有没有办法certificate驱动器不再被使用? 思路: 现在检查整个驱动器内容的散列,并在一周内进行比较? 使用lsof或其他内核级别的functionlogging对驱动器的访问? 从驱动器上的SMART使用情况获取最新的读取或写入信息? 任何其他的想法? 理想情况下,我想监视一个星期左右,只是为了确保。 如果在此期间读取或写入任何数据,我想知道这一事实。 看起来像一个简单的概念,但我一直没能find任何好的结果。 更新 – 文件系统是ext4。

ZFS ARCcaching和Linux缓冲区caching争用(Ubuntu 16.04)

我的testing系统设置是一个简单的raidz 5磁盘(每个8 TB)zpool与256 GB的RAM。 性能开始良好,达到约650 MB /秒的吞吐量。 最终,Linux缓冲区caching填满并开始导致ZFS ARCcaching收缩,直到达到32 MB的大小。 一旦发生这种情况,吞吐量将下降到60 MB /秒左右。 我已经尝试了一些内核调优选项,如将vm.vfs_cache_pressure设置为200,但并未改变发生的问题。 我目前的解决方法是将/ sys / module / zfs / parameters / zfs_arc_min设置为128 GB,将zfs_arc_max设置为252 GB。 由于Linux缓冲区caching,ARC永远不会超过128 GB,但整个数据传输的性能保持在650 MB /秒的吞吐量水平。 理想情况下,我希望能够一起禁用Linux缓冲区caching,让ZFS ARCcaching在0到256 GB的内存之间,剩下的内存可用于应用程序工作负载。 如果有可能为ZFS ARCcaching提供比Linux缓冲区caching更高的优先级,这也是一个可以接受的答案,因为它将有效地禁用Linux缓冲区caching。 谢谢,扎克 编辑1:我想解决的问题是从内存驱逐ZFS ARC的Linux缓冲区caching。 我希望应用程序工作负载能够使用所有内存,并且ZFS ARC会相应地缩小。 作为解决方法,如果最小大小设置为0,则必须将ZFS ARC最小大小设置为较大的值,因为Linux缓冲区高速caching将从内存中逐出ARC。