服务器管理员

系统和网络管理员的问答

4
iptables-目标将数据包路由到特定接口?
我的家庭服务器有两个主要接口,eth1(标准Internet连接)和tun0(OpenVPN隧道)。我想iptables强制UID 1002拥有的本地进程生成的所有数据包都通过退出tun0,而所有其他数据包都通过退出eth1。 我可以轻松标记匹配的数据包: iptables -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 11 现在,我想在POSTROUTING链(可能是mangle表)中放置一些规则,以匹配标记为11的数据包并将其发送到tun0,然后是匹配所有数据包并将其发送到的规则eth1。 我找到了ROUTE目标,但这似乎只重写了源接口(除非我读错了它)。 iptables有能力做到这一点吗?我是否必须弄乱路由表(通过ip route或仅通过旧route命令)? 编辑:我认为也许我应该提供更多信息。我目前没有其他iptables规则(尽管我将来可能会创建一些规则来执行无关的任务)。同样,输出ip route为: default via 192.168.1.254 dev eth1 metric 203 10.32.0.49 dev tun0 proto kernel scope link src 10.32.0.50 85.17.27.71 via 192.168.1.254 dev eth1 192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.73 …
25 iptables  routing 


2
如何更改Apache Apache2使用的PHP版本?
Ubuntu 10.04,MySQL 5.1,Apache 2.2和PHP 5.2 / 5.3: 我只是发现我为CRM应用程序使用了错误版本的PHP。一旦弄清楚如何制作一个简单的phpinfo()脚本来告诉我Apache2正在使用什么,就尝试更改,php.ini使Web服务器可以使用我想要的PHP。好吧,这是我的问题。不知道该怎么做。 我在/etc这里编译了想要的PHP版本: /etc/php-5.2.8/ 在其中,有一个php.ini-recommended文件,我对其进行了更改并重命名为php.iniPHP ,以便使用它。但是,当我打开浏览器并清除历史记录并转到该http://localhost<CRM dir>/install.php地址时,向导仍然说我没有使用正确版本的PHP。 根据 这篇文章,我需要做什么来更改运行test.php脚本后显示的PHP版本?换句话说,phpinfo()说我正在运行PHP 5.3.2,但是我想将其更改为位于中的已编译5.2.8版本/etc。


3
从Nginx反向代理转发自定义标题
我有一个Nginx Web服务器充当反向代理,将请求转发到Apache进行其他处理(我恳求您不要问为什么)。我有一个尝试附加自定义标头的请求,我希望nginx将该自定义标头转发到Apache,以便我可以在应用程序中对其进行处理。 我已经浏览了HttpProxyModule文档,但是即使我在正确的位置,它们也没有很好的描述性(很可能是我没有)。 如何获取Nginx转发X-CUSTOM-REFERRER标头?而且,如果可能的话,我希望它可以随传入的任何自定义标头一起转发。如果后者要求不高,那么前者就可以满足我当前的需求。 如您所见,我是nginx的新手,所以补救版本会有所帮助。 谢谢。 更新 我现有配置中的相关代码段: location / { proxy_pass http://preview; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # proxy_set_header X-Custom-Referrer $x_custom_referrer; }

2
由于公共密钥不可用,因此无法验证以下签名:NO_PUBKEY 6A030B21BA07F4FB
我的环境: # uname -a Linux app11 4.9.0-5-amd64 #1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04) x86_64 GNU/Linux # # cat /etc/*release PRETTY_NAME="Debian GNU/Linux 9 (stretch)" NAME="Debian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" # 在尝试运行时apt-get update,出现很多错误: # apt-get update Ign:1 http://deb.debian.org/debian stretch InRelease Hit:2 http://security.debian.org stretch/updates InRelease Hit:3 http://deb.debian.org/debian stretch-updates InRelease Hit:4 …

3
为什么某些域名的whois信息被截断?
最近,我看到了的whois记录google.com,但其中没有任何常规信息,例如管理员的联系方式。它被极其截断: Domain Name: GOOGLE.COM Registry Domain ID: 2138514_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.markmonitor.com Registrar URL: http://www.markmonitor.com Updated Date: 2011-07-20T16:55:31Z Creation Date: 1997-09-15T04:00:00Z Registry Expiry Date: 2020-09-14T04:00:00Z Registrar: MarkMonitor Inc. Registrar IANA ID: 292 Registrar Abuse Contact Email: abusecomplaints@markmonitor.com Registrar Abuse Contact Phone: +1.2083895740 Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited …

7
安全的异地备份,即使在黑客具有root用户访问权限的情况下
我正在寻找一种实现非安全备份的更安全方式的方法,该方法还可以保护我的数据免遭恶意黑客获得对我的服务器的根访问权限的情况。如果正确设置了SSH和密码安全性并正确地保持了系统的最新状态,即使发生这种情况的机会比其他种类的风险要小,但是可以永久造成的损失确实很高,因此我想要找到一种解决方案来限制这一点。 我已经尝试了两种异地备份方式: 一个简单的可根写入的webdav挂载(并在fstab中配置),将备份的数据复制到该挂载上。问题:并不是真正的非现场备份,因为与非现场位置的连接(以及访问权限)一直作为文件系统中的文件夹保持打开状态。如果该安装具有有限的访问权限(只读的root用户访问权限),但它不能防止具有root用户访问权限的恶意用户,这足以抵御多种攻击。 通过具有密钥身份验证的SSH进行Borg备份。问题:如果恶意用户具有对主机的根访问权限,则可以使用存储在主机上的密钥来完成与该异地服务器的连接。 作为解决方案,我正在考虑这些潜在的方法,但是我不知道该如何做以及如何做: 备份只能写入或附加到目标,而不能删除。 使用可处理异地备份的备份软件,并且不支持从第一台主机中大量删除异地备份。 在我的情况下,并不是很有趣的解决方案: 非现场主机上的额外备份作业会将其转移到第一台主机无法访问的位置(由于技术限制)。 谁能为我的案例提供适当的异地备份建议?


4
gcloud docker-推送结果导致登录尝试失败,并显示404
我正在尝试将Docker映像推送到Google的容器注册表中,但始终收到有关Docker登录失败的错误。我跑 gcloud docker -- push gcr.io/<my-project-id>/test-image 我回来 ERROR: Docker CLI operation failed: Error response from daemon: login attempt to https://appengine.gcr.io/v2/ failed with status: 404 Not Found ERROR: (gcloud.docker) Docker login failed. 其他不通过docker工作的gcloud操作。例如,我可以通过创建集群gcloud container clusters create my-cluster。 我今天确实在和本地注册表一起玩,不确定是否可能有问题。 谢谢!

2
什么时候必须在配置中使用引号?
我见过人们使用过多的引号: add_header 'Access-Control-Allow-Origin' '*'; 我见过人们不使用引号: add_header Access-Control-Allow-Origin *; 据我所知,两者都可以正常工作,那么您何时真正需要使用引号?
24 nginx 

6
将网站的秘密值作为环境变量的好处是什么?
https://12factor.net/config上的devops指南建议将网站秘密(数据库密码,api密钥等)放入环境变量中。与使用版本控制忽略的文本文件(JSON,XML,YAML,INI或类似文件)相比,这有什么优点? 我发现复制带有机密的配置文件比处理.bash_profile和Webserver配置中的环境变量要容易得多。我想念什么吗?

7
我辞职后如何保持从人那里读到的内容?
因此,我们man whatever用来获取有关whatever命令的用法和其他信息,当找到相关信息部分时,我想man使用屏幕上剩余的信息退出该命令。因此,我可以与上面的裁判员键入下一个命令。但是该man命令退出整个屏幕以恢复类似于的旧屏幕vim。有没有办法做到这一点?
24 terminal  man 

1
登录Windows Server时,默认浏览器将打开msn.com。
我在VMware VM上安装了带有GUI实例的新Windows Server 2012 R2 Standard。第一次以管理员身份登录时,我注意到Internet Explorer窗口自动打开到http://go.microsoft.com/fwlink/p/?LinkId=255141,并重定向到http://www.msn.com/? ocid = wispr。这似乎是默认的Internet Explorer起始页。 这一直在继续-每次我以管理员或任何其他用户身份登录时,都会打开此页面。 后来我安装了Firefox,现在Firefox在登录时会打开到同一页面(这是默认的Internet Explorer起始页,而不是Firefox主页!)。 我已经检查了管理员和所有用户的“程序菜单启动”文件夹,并使用Sysinternals自动运行来查找某些内容,但无济于事。似乎没有什么应该在登录时启动IE的。 这是Windows Server带有GUI的默认安装,该网络的出站Internet访问非常有限(列入白名单)。实际上,msn.com不在白名单上,因此我永远看不到该页面,只有防火墙发出的消息表明该页面已被阻止。 我将此虚拟机克隆到其他两个虚拟机,它们表现出相同的行为。 对于此类问题,我能找到的唯一命中包括台式机上的间谍软件或Startup文件夹中的快捷方式。对我来说是个谜。 我什至检查了注册表,并删除了对LinkId = 255141的所有四个引用: HKLM \ Software \ Microsoft \ Internet Explorer \ Main:起始页和Default_Page_URL(均更改为about:blank) HKLM \ Software \ Wow6432Node \ Microsoft \ Internet Explorer \ Main:起始页和Default_Page_URL(均更改为about:blank)

2
如何在Docker卷容器和Docker卷之间决定?
阅读文档后,我发现自己对如何最好地管理生产性应用程序/服务数据有些困惑。 似乎有3种选择: 只需将卷映射到主机目录(即的-v参数docker run) 创建用于数据的docker容器映像(即,单独的容器和--volumes-from) 创建一个docker卷(即docker volume create) 现在,似乎可以接受的做法是选择#2,但是然后我想知道#3的目的是什么。 尤其是您如何正确地处理这些docker volume情况?对于每个情况,使用数据卷容器还是更好? 您需要服务器中单独的卷和/或存储层中的应用程序数据 备份 恢复数据
24 storage  docker 

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.