服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器
我试图虔诚地遵循星球系统pipe理员以及IBM developerworks 。 你有哪些阅读和build议给其他系统pipe理员?
我有一个Apache的专用服务器,我已经设置了一些VirtualHosts。 我已经build立了一个处理www域以及非www域。 我的VH .conf文件为www: <VirtualHost *> DocumentRoot /var/www/site ServerName www.example.com <Directory "/var/www/site"> allow from all </Directory> </VirtualHost> 有了这个.htaccess : RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] 有没有一种简单的方法将wwwredirect到非www版本? 目前我发送两个版本到相同的DocumentRoot和使用.htaccess但我相信我必须能够在VirtualHost文件中完成。
在我的网站上,我有一个“隐藏”页面,显示最近的访问者列表。 根本没有链接到这个单一的PHP页面,理论上,只有我知道它的存在。 我每天检查多次,看看我有什么新的命中。 不过,每周大约有一次,我在这个被隐藏的页面上发现了一个208.80.194的地址(它自己logging了点击)。 奇怪的是这个神秘的人/机器人不访问我的网站上的任何其他页面。 不是公共PHP页面,而只是打印访问者的隐藏页面 。 它总是一个命中,而HTTP_REFERER是空白的。 其他数据总是一些变化的 Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 5.1; YPC 3.2.0; FunWebProducts; .NET CLR 1.1.4322; SpamBlockerUtility 4.8.4; yplus 5.1.04b) …但有时MSIE 6.0而不是7,和其他各种插件。 浏览器每次都是不同的,就像地址的最低位一样。 就是这样。 每周一次左右,到那一页。 绝对没有其他网页被这个神秘的访客触摸。 对这个IP地址做一个whois显示来自纽约地区,来自“Websense”ISP。 地址的最低8位不等,但总是来自208.80.194.0 / 24子网。 从我用来访问我的网站的大多数计算机上,在我的服务器上执行traceroute不会在路由器的任何位置使用IP 208.80。*。 所以这可以排除任何types的HTTP嗅探,我可能会想。 这是怎么发生的呢? 这似乎是完全良性的,但无法解释,有点令人毛骨悚然。
我们有一组共享的静态内容,我们在http://sstatic.net的网站上提供。 不幸的是,这个内容目前不是负载平衡 – 它是从一台服务器提供的。 如果该服务器出现问题,那么所有依赖该服务器的网站都将被closures,因为共享资源是共享的JavaScript库和图像。 我们正在寻找在这台服务器上负载平衡静态内容的方法,以避免单一的服务器依赖。 我意识到,循环赛DNS最好是低端(有些甚至可能会说贫民窟 )的解决scheme,但我不禁想知道 – 循环赛DNS是一个“足够好”的解决scheme,用于静态内容的基本负载平衡? 在[dns] [load-balancing]标签中有一些讨论,我已经阅读了关于这个主题的一些很棒的post。 我知道通过多个循环AloggingDNS负载平衡的常见缺点: 通常没有使用DNSlogging进行心跳检测或故障检测,因此如果轮换中的给定服务器出现故障,则必须手动从DNS条目中删除其Alogging 生存时间(TTL)必须设置得相当低,因为DNS的条目在互联网上积极caching 客户端计算机负责看到有多个Alogging并select正确的logging 但是,作为首发者,轮到DNS是足够好的,比没有好,“我们研究和实现更好的替代scheme”forms的静态内容的负载平衡? 或者在任何情况下,DNS循环都毫无价值?
如果我有Windows服务器(通常是2000,2003或2008),是否有一个简单的方法来列出在该服务器上共享的所有本地目录? 我可以很容易地find这些共享,但我很乐意快速find它们在磁盘上表示的本地目录。 谢谢!
最近,Diffie-Hellman中的一个新的漏洞(非正式地被称为“logjam”)已经发布, 本页面已经被整合在一起,提出了如何应对漏洞: 对于正确部署Diffie-Hellman for TLS,我们有三条build议: 禁用导出密码套件。 尽pipe现代浏览器不再支持导出套件,但FREAK和Logjam攻击允许一个中间人攻击者欺骗浏览器使用出口级encryption,之后可以解密TLS连接。 出口密码是1990年代政策的一个残余,它阻止了强大的密码协议从美国出口。 没有现代客户依赖出口套件,并且禁用它们几乎没有什么坏处。 部署(临时)椭圆曲线Diffie-Hellman(ECDHE)。 椭圆曲线Diffie-Hellman(ECDH)密钥交换避免了所有已知的可行的密码分析攻击,现代networking浏览器现在更喜欢ECDHE而不是原始的有限域Diffie-Hellman。 我们用来攻击标准Diffie-Hellman组的离散对数algorithm不像预计算那样强大,并且单个服务器不需要生成唯一的椭圆曲线。 生成强大而独特的Diffie Hellman组 。 数百万个服务器使用了一些固定的组,这使得它们成为预计算和潜在窃听的最佳目标。 pipe理员应该使用每个网站或服务器的“安全”素数生成独特的2048位或更强的Diffie-Hellman组。 根据上述build议,我应该采取哪些最佳实践步骤来保护我的服务器?
我有一些子域,我想redirect到同一台服务器上的特定端口。 说我有 dev.mydomain.com 我想dev.mydomain.com透明地redirect到mydomain.com:8080 ,我想保留原来的子域名浏览器的url。 我如何用Apache 2.2来做到这一点? 我有默认端口80上运行的Apache 2.2。 我无法找出写configuration来实现这一点。 我已经设置了dev.mydomain.com在DNS中parsing到mydomain.com 。 这是一个intranet开发服务器,具有不可路由的IP地址,所以我不太关心漏洞和安全性,会危及公众面临的服务器。
我有两个Ruby on Rails 3应用程序运行在相同的服务器,(Ubuntu 10.04),都与SSL。 这是我的apacheconfiguration文件: <VirtualHost *:80> ServerName example1.com DocumentRoot /home/me/example1/production/current/public </VirtualHost> <VirtualHost *:443> ServerName example1.com DocumentRoot /home/me/example1/production/current/public SSLEngine on SSLCertificateFile /home/me/example1/production/shared/example1.crt SSLCertificateKeyFile /home/me/example1/production/shared/example1.key SSLCertificateChainFile /home/me/example1/production/shared/gd_bundle.crt SSLProtocol -all +TLSv1 +SSLv3 SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM </VirtualHost> <VirtualHost *:80> ServerName example2.com DocumentRoot /home/me/example2/production/current/public </VirtualHost> <VirtualHost *:443> ServerName example2.com DocumentRoot /home/me/example2/production/current/public SSLEngine on SSLCertificateFile /home/me/example2/production/shared/iwanto.crt SSLCertificateKeyFile /home/me/example2/production/shared/iwanto.key SSLCertificateChainFile /home/me/example2/production/shared/gd_bundle.crt […]
我喜欢通过密钥访问服务器的想法,所以我不必每次input密码时都input密码,甚至locking我的用户(而不是root )密码( passwd -l username ),所以不可能无需密钥login。 但是,如果我需要为sudo命令input密码,所有这一切都会中断。 所以我很想设置无密码的sudo ,使其符合无密码login。 然而,我仍然有一种直觉,认为这可能会以某种意想不到的方式对我产生反感,似乎有点不安全。 有没有这样的设置警告? 你会build议/不build议这样做的服务器上的用户帐户? 澄清 我在这里讨论在交互式用户会话中使用sudo ,而不是服务或pipe理脚本 我正在谈论使用云服务器(所以我没有物理本地访问一台机器,只能远程login) 我知道sudo有一个超时期间,我不必重新input我的密码。 但是我的演唱会并不是浪费额外的时间来input密码。 我的想法虽然是不必处理密码,因为我认为: 如果我必须记住它,它很可能太短,不安全或重用 如果我为远程帐户生成一个长而唯一的密码,那么我将不得不将其存储在某个地方(本地密码pipe理器程序或云服务),并在每次使用sudo时候获取它。 我希望我能避免这一点。 所以在这个问题上,我想更好地理解一个可能的configuration的风险,警告和折衷。 跟进1 所有答案都说,无密码sudo是不安全的,因为如果我的个人用户帐户被攻陷,它允许“简单”升级权限。 我明白那个。 但另一方面,如果我使用密码,我们会带着密码(太短或常见string,在不同服务中重复)等所有经典风险。 但是我猜如果我在/etc/ssh/sshd_config禁用密码authentication,这样你仍然必须有一个密钥login,我可以使用一个简单的密码只是为了更容易inputsudo ? 这是一个有效的策略? 跟进2 如果我也有一个通过SSH以rootlogin的密钥,如果有人能够访问我的计算机并窃取我的密钥(他们仍然受到操作系统密钥环密码的保护!),他们也可以直接访问root帐户,绕过sudopath。 那么访问root帐户的政策应该是什么呢?
如何删除实例? 我testing一些实例,现在我终止它。 所以,我想删除它。 我无法find删除或删除操作。 我刚刚find终止。 如何更改配对密钥? 我没有旧的实例的配对键,我想configuration该实例。