服务器管理员

系统和网络管理员的问答

2
Linux iptables / conntrack性能问题
我在实验室中使用4台机器进行了测试设置: 2台旧的P4机器(t1,t2) 1个Xeon 5420 DP 2.5 GHz 8 GB RAM(t3)Intel e1000 1个Xeon 5420 DP 2.5 GHz 8 GB RAM(t4)Intel e1000 来测试Linux防火墙的性能,因为在过去的几个月中,我们遭受了许多次洪水攻击。所有机器都运行Ubuntu 12.04 64位。t1,t2,t3通过1GB / s的交换机互连,t4通过额外的接口连接到t3。因此,t3模拟了防火墙,t4是目标,t1,t2发挥了攻击者产生分组风暴的作用(192.168.4.199是t4): hping3 -I eth1 --rand-source --syn --flood 192.168.4.199 -p 80 t4丢弃所有传入的数据包,以避免与网关混淆,t4的性能问题等。我在iptraf中查看数据包统计信息。我已经按照以下步骤配置了防火墙(t3): 库存3.2.0-31-通用#50-Ubuntu SMP内核 rhash_entries = 33554432作为内核参数 sysctl如下: net.ipv4.ip_forward = 1 net.ipv4.route.gc_elasticity = 2 net.ipv4.route.gc_timeout = 1 …
9 linux  firewall 

3
记录到程序的连接
除了使用iptables记录传入连接。 有没有办法记录到您没有来源的服务的已建立入站连接(假设该服务本身未记录此类信息)?我想要做的是基于谁的连接来收集一些信息,以告知诸如一天中什么时候使用服务最多,主要用户群在世界上什么地方等信息。 我知道我可以使用netstat它并将其连接到cron脚本,但这可能并不准确,因为该脚本只能运行一分钟。 这是我现在正在想的: 编写一个不断轮询的程序netstat,以查找先前轮询中未出现的已建立连接。但是,由于可能没有新的连接,所以这个想法似乎浪费了CPU时间。 编写一个包装程序,该程序在服务运行的任何端口上接受入站连接,但是那时我不知道如何将该连接传递给真实的服务。 编辑:我突然想到这个问题可能对stackoverflow更好,尽管我不确定。很抱歉,如果这是错误的地方。

3
是否可以通过Cloudwatch Alarm获取正在运行的进程的列表?
我们有一个EC2实例(Ubuntu),该实例具有一些基于Java的应用程序,最近我们受到CPU使用率高峰的冲击,这会触发我们的Cloudwatch警报之一。当我们进入服务器查看cpu利用率时,情况已经平静下来。 我们希望在其中一封警报电子邮件中看到的是警报发生时正在运行的进程及其cpu利用率(%)的列表。这有可能吗?

2
为什么Apache httpd告诉我基于名称的虚拟主机仅与启用了SNI的浏览器一起使用(RFC 4366)
为什么Apache在我的日志中给我这个错误消息?这是假阳性吗? [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366) 我最近从Centos 5.7升级到6.3,并由此升级到了更新的httpd版本。我一直像下面这样进行ssl virtualhost配置。共享相同证书的所有域(通常/总是使用通配符证书)共享相同的IP。但是以前从未收到过此错误消息(或者,我是否可能对日志的关注不够?)据我了解,这在没有SNI(服务器名称指示)的情况下应该可以工作 这是我的httpd.conf文件的相关部分。没有此VirtualHost,我不会收到错误消息。 NameVirtualHost 10.101.0.135:443 <VirtualHost 10.101.0.135:443> ServerName sub1.domain.com SSLEngine on SSLProtocol -all +SSLv3 +TLSv1 SSLCipherSuite ALL:!aNull:!EDH:!DH:!ADH:!eNull:!LOW:!EXP:RC4+RSA+SHA1:+HIGH:+MEDIUM SSLCertificateFile /opt/RootLive/etc/ssl/ssl.crt/wild.fareoffice.com.crt SSLCertificateKeyFile /opt/RootLive/etc/ssl/ssl.key/wild.fareoffice.com.key SSLCertificateChainFile /opt/RootLive/etc/ssl/ca/geotrust-ca.pem </VirtualHost> <VirtualHost 10.101.0.135:443> ServerName sub2.domain.com SSLEngine on …

2
使用mod_rewrite强制HTTPS,包括代理SSL
我有一台服务器从SSL终止负载均衡器获取一些流量-在这种情况下,它以HTTP的形式通过端口80传入,并带有http_x_forwarded_proto=“ https” 我想要只允许直接HTTPS流量或转发的HTTPS流量的mod_rewrite规则。 到目前为止,我有: RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP:http_x_forwarded_proto} != https RewriteCond %{HTTP:http_x_forwarded_proto} != HTTPS RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 但我越来越 RewriteCond:错误的标志分隔符 错误。 我需要纠正什么才能使它正常工作,这是最好的方法吗?

2
自定义fail2ban筛选器,用于phpMyadmin bruteforce尝试
为了使用阻止过多的失败phpMyAdmin登录尝试fail2ban,我创建了一个脚本,用于将失败的尝试记录到文件中:/var/log/phpmyadmin_auth.log 自定义日志 该/var/log/phpmyadmin_auth.log文件的格式为: phpMyadmin login failed with username: root; ip: 192.168.1.50; url: http://somedomain.com/phpmyadmin/index.php phpMyadmin login failed with username: ; ip: 192.168.1.50; url: http://192.168.1.48/phpmyadmin/index.php 自定义过滤器 [Definition] # Count all bans in the logfile failregex = phpMyadmin login failed with username: .*; ip: <HOST>; phpMyAdmin监狱 [phpmyadmin] enabled = true port = http,https …

1
服务帐户的最佳做法是什么?
我们正在使用共享域帐户在公司中运行多项服务。不幸的是,该帐户的凭据被广泛分发,并且经常用于服务和非服务目的。这导致了一种情况,由于该共享帐户被锁定,服务可能会暂时关闭。 显然,这种情况需要改变。计划是将服务更改为在新帐户下运行,但是我认为这还远远不够,因为该帐户受相同的锁定策略约束。 我的问题是:我们是否应该以与其他域帐户不同的方式设置服务帐户,如果要设置,则如何管理这些帐户。请记住,我们正在运行2003域,并且在短期内升级域控制器不是可行的解决方案。


3
防止SSH攻击
我正在尝试设置iptables规则,使其每分钟只能通过IP进行3次尝试,以通过SSH连接到servir,然后丢弃所有连接以防止SSH攻击;但看来我做错了! -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource -A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP -A INPUT -p tcp -m state --state …

7
修复在域控制器升级期间确定目标环境是否需要Windows Server 2012中的adprep的错误
我无法将新安装的Windows Server 2012计算机提升为域控制器。我有两个现有的域控制器。主服务器处于Windows Server 2003级别,并且正在运行W2003Server,第二服务器正在运行Windows Server 2003 R2。(更新:最初,此问题询问有关无法定位域控制器的非致命警告消息,这是从Windows Server 2003升级时的正常现象,因为在以下情况下无法创建只读域控制器:活动目录林处于2003年的功能级别,因此我认为应该取消警告。在继续处理了几个看起来更可怕的错误之后,我终于找到了真正的错误,这是一个AdPrep相关的错误。) 在新的Win2012服务器框中,将域作为服务器加入该域是可以正常工作的。但是AD DS Cfg Wiz冻结了大约100秒钟,它从向导的第1页转到第2页(显示站点名称组合框和两个DSRM密码的密码输入编辑框),然后我在Active Directory域服务中收到此错误配置向导。 起初我以为这是真正的错误。但这只是我继续前进的障碍: 域控制器选项 运行Windows Server 2008,Windows Server 2008 R2或Windows Server 2012的域控制器不能位于此域中。若要安装只读域控制器,该域必须具有运行Windows Server 2008,Windows Server 2008 R2或Windows Server 2012的域控制器。 [好] 接下来,我会收到一些类似的消息,“您无法选中此复选框,因此我们已为您显示为灰色”,您可以继续过去。 接下来这个: Error determining whether the target environment requires adprep: Validation error: Validation error: Unable to check …

1
如何强迫Debian启动新内核?
我正在远程系统上的Grub2(1.98 + 20100804-14 + squeeze1)下运行带有Linux 2.6.32-5-amd64的Debian 6,Debian GNU / Linux(无法查看预启动消息)。我编译并安装了一个新内核,但无法启动它。 我做了什么: 通过以下方式安装了软件包: dpkg -i linux-headers-3.5.3.20120914-amd64_3.5.3.20120914-amd64-10.00.Custom_amd64.deb linux-image-3.5.3.20120914-amd64_3.5.3.20120914-amd64-10.00.Custom_amd64.deb 这更新了Grub配置。我的/boot/grub/grub.cfg现在包含: menuentry 'Debian GNU/Linux, with Linux 3.5.3.20120914-amd64' --class debian --class gnu-linux --class gnu --class os { insmod raid insmod mdraid insmod part_msdos insmod part_msdos insmod ext2 set root='(md0)' search --no-floppy --fs-uuid --set 5a3882a9-c7df-4f6a-9feb-f03e3e37be01 echo …
9 debian  boot  kernel  grub2 

4
网络吞吐量问题(与ARP相关)
我工作的那所小型大学遇到了一些非常奇怪的网络问题。我在这里寻找任何建议或想法。整个夏天我们都没事,但麻烦始于学生秋季入学的几天后。 病征 主要症状是可以访问互联网,但速度很慢...经常会超时。例如,来自Speedtest.net的典型结果将返回.4Mbps下载,但允许3至8 Mbps的上传速度。较小的症状可能包括与文件服务器之间来回传输数据的性能受到严重限制,甚至在某些情况下也无法登录计算机(无法访问域控制器)。此问题跨越多个VLAN,几乎影响了我们运营的每个VLAN上的设备。 该问题不会影响网络上的所有计算机。一台不受影响的计算机通常会从speedtest.net下载至少 11Mbps的内容,并且根据当时较大的校园流量模式,可能还会下载得更多。 在较大的问题上有一个变体。我们有一个VLAN,用户根本无法登录几乎所有计算机。IT人员将使用本地管理员帐户(或在某些情况下缓存的凭据)登录,然后从那里发布/续订或ping通网关将使计算机能够工作一段时间。使此问题复杂化的是,该VLAN涵盖了我们的计算机实验室,该实验室使用称为Deep Freeze的软件在重启后完全重置硬盘驱动器。可能是同一问题以不同的方式表现出来,这是因为计算机上的陈旧数据已连续几周未永久更改低级信息。但是,我们能够通过创建新的VLAN并将实验室移至新的VLAN批发商来解决此问题。 煽动 最终,我们注意到受影响的计算机都具有最近的dhcp租约。通过观察dhcp租约的续订时间,我们可以预测机器何时变慢。我们将测试vlan的租用时间设置得很短,但是所做的只是消除了我们预测机器何时变慢的能力。具有静态IP的计算机几乎总是可以正常工作。手动释放/更新地址绝不会导致计算机运行缓慢。实际上,在某些情况下,此过程已修复处于该状态的机器。但是,在大多数情况下,它无济于事。我们还注意到,笔记本电脑之类的移动设备跨入新的VLAN时可能会变慢。校园内的无线网络分为“区域”,每个区域映射到一小组建筑物。搬到新建筑物可以将您放置在区域中,从而使您获得新地址。从睡眠模式恢复的机器也很可能运行缓慢。 缓解措施 有时但并非总是如此,清除受影响的计算机上的arp缓存将使它再次正常工作。如前所述,释放/更新本地计算机的IP地址可以修复该计算机,但不能保证。对默认网关执行ping操作有时还可以帮助计算机速度较慢。 似乎最能缓解该问题的方法是清除我们核心三层交换机上的arp缓存。此开关用于我们的dhcp系统,作为所有VLAN上的默认网关,它处理VLAN间路由。该模型是3Com 4900SX。为了缓解此问题,我们一直在交换机上设置缓存超时,一直到最短的时间,但这并没有帮助。我还整理了一个脚本,该脚本每隔几分钟运行一次,以自动连接到交换机并重置缓存。不幸的是,这并不总是有效,甚至可能导致某些计算机在很短的时间内处于慢速状态(尽管几分钟后它们似乎会自行纠正)。我们目前有一个计划的作业,该作业每10分钟运行一次,以强制核心交换机清除其ARP缓存,但这远非完美或不可取。 再生产 现在,我们有一台测试机,可以随意将其强制进入慢速状态。它连接到具有为我们的每个VLAN设置的端口的交换机。我们通过连接到不同的VLAN来使机器变慢,而在一两个新的连接之后,它将变慢。 在本节中还应注意的是,这是在先前学期开始时就发生过的,但是在过去,问题在几天后就已经消失了。在我们有机会进行大量诊断工作之前,它就解决了自己的问题。预期这将是短暂的情况。 其他因素 值得一提的是,在过去的一年中,我们大约有六台交换机完全失败。这些主要是2003/2004年代的3Com(大多数是4200年代),它们几乎都同时插入。它们仍应在保修范围内,购买HP使得获得服务有些困难。多数情况下,电源已发生故障,但在某些情况下,我们使用了主板故障的交换机的电源来恢复电源故障的交换机的生命。现在,除了四个交换机中的三个交换机之外,我们的确有UPS设备,但是两年半前我就没有这种情况。严重的预算限制(几年前我们在Ed财务困难的机构部门中排名)迫使我不得不向Netgear和TrendNet之类的公司求助, 还值得一提的是,今年夏天我们网络的重大变化是从单个跨校园无线SSID迁移到前面提到的分区方法。我不认为这是问题的根源,就像我说过的:我们之前已经看到过。但是,这可能加剧了这个问题,并且可能是很难分离的大部分原因。 诊断 最初,考虑到问题的时间和持续性,对于我们来说似乎很清楚,问题的根源是被感染的(或恶意的)学生计算机在做ARP缓存中毒。但是,反复尝试隔离源已失败。这些尝试包括大量的Wireshark数据包痕迹,甚至使整栋建筑物暂时脱机。我们甚至找不到吸烟枪坏的ARP条目。我目前的最佳猜测是核心交换机过载或发生故障,但是我不确定如何测试,盲目更换它的成本很高。 再次,任何想法表示赞赏。 更新: 核心交换机已更换。4天后,一切运行良好...但是我要等两个星期,然后才能解决问题。

1
局域网:到达新地方时要注意什么?
我的公司正在搬到一个新的地方,我对布线的唯一了解是有电缆和配线架。我对电缆的速度,质量一无所知,而且我是一个几乎没有IT知识的软件专家。 我应该怎么做才能审计安装并检查安装是否合理?我应该购买诸如Pinger +之类的设备,还是可以使用软件工具来做到这一点?

2
如何使用SELinux在CentOS上运行PhantomJS?
我正在尝试在CentOS 5机器上使用PhantomJS制作屏幕快照,但无法使其与SELinux一起使用。它可以在禁用SELinux的同一台机器上工作,因此我真的怀疑SELinux对此负责。 这是我尝试过的方法(所有命令均以root身份运行)以及出现的错误: $ ls -Z /usr/local/phantomjs/phantomjs-1.6.2-linux-x86_64-dynamic/bin -rwxr-xr-x myusername myusername system_u:object_r:bin_t phantomjs 尝试截图-失败 $ cat /var/log/messages | grep avc Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.014:398): avc: denied { getattr } for pid=6842 comm="sh" path="/sbin/ldconfig" dev=dm-0 ino=3097762 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:ldconfig_exec_t:s0 tclass=file Sep 13 12:21:18 myserver kernel: type=1400 audit(1347531678.014:399): avc: denied { …

3
SSH不允许使用具有组可读权限的密钥
我有一个开发git服务器,当live分支被推送到时,它会部署到实时服务器。每个用户都有自己的登录名,因此,post-receive进行实时部署的挂钩是在其自己的用户下运行的。 因为我不想在远程实时服务器上维护用户的公共密钥作为授权密钥,所以我组成了一组“属于git系统的密钥”以添加到远程实时服务器上(在post-receive钩子中,我正在使用$GIT_SSH以使用-i选项设置私钥)。 我的问题是,由于所有用户都可能想部署到现场,因此git系统的私钥必须至少是组可读的,而SSH确实不喜欢这样。 这是错误的示例: XXXX@XXXX /srv/git/identity % ssh -i id_rsa XXXXX@XXXXX @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0640 for 'id_rsa' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: …

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.