有没有办法通过winhttp设置多个代理服务器?我有一个应用程序,它查看由 winhttp 为代理服务器设置的注册表项,当我通过下面的命令设置它时,我可以确认它工作正常。
netsh winhttp 设置代理主机名或 IP:端口
但是,我希望它先尝试一台代理服务器,然后故障转移到另一台。无论如何通过注册表项设置多个代理服务器?
有没有办法通过winhttp设置多个代理服务器?我有一个应用程序,它查看由 winhttp 为代理服务器设置的注册表项,当我通过下面的命令设置它时,我可以确认它工作正常。
netsh winhttp 设置代理主机名或 IP:端口
但是,我希望它先尝试一台代理服务器,然后故障转移到另一台。无论如何通过注册表项设置多个代理服务器?
不久前,我发布了关于将 OSSEC 用作 sudo SIEM 的帖子,将日志从各种服务器发送到一个 OSSEC 服务器并使用相关性来触发警报。总体而言,该解决方案运行良好,但我最近出于负载平衡的原因不得不划分日志,所以现在我有了以下内容:
OSSEC 服务器
出于负载平衡的原因,每个日志文件都由不同的 syslog 服务器写入,并且总体上运行良好。但是,我遇到的问题是 OSSEC 可以单独针对每个日志文件运行关联规则,但是如果有 4 次登录失败并且它们恰好分布在 4 个日志文件中,则 OSSEC 只会在每个实例上看到 1,而不是来自 1 个用户的 4 次登录失败警报。
有没有办法让 OSSEC 将文件视为一个文件?我正在寻找其他解决方案,例如 gluster/cluster 文件系统,我可以在其中从多个服务器写入一个文件,从而解决问题。
我目前在各种域控制器上运行 NxLog,以提取登录/注销事件。
Exec if $TargetUserName =~ /(\S+\$|user1|user2|user3|user4)/ drop(); \
else if ($EventID == 4624 or $EventID == 4625 or $EventID == 4648 or $EventID == 4768) $raw_event = "Time:" + $EventTime + ", EventID:" + $EventID + ", Keyword:" + $Status + ", LogonType:" + $LogonType + ", User:" + $TargetDomainName + "\\" + $TargetUserName + ", IPAddr:" + $IPAddress; \
else if $raw_event =~ /^(.+)(Detailed Authentication Information:|Additional Information:)/ $raw_event = $1; if $raw_event =~ s/\t/ /g {}
虽然上面的配置工作正常,但事实上它忽略了带有 $ 的用户名以及我指定的用户名,我只想忽略其中包含这些用户名的事件 id 4624,所以我仍然可以看到失败的登录。我认为以下配置可以工作,但我不断收到语法错误。
Exec if ($EventID == 4624 and $TargetUserName =~ /(\S+\$|user1|user2|user3|user4)/ drop(); \
else if ($EventID == 4624 or $EventID == 4625 or $EventID == 4648 or $EventID == 4768) $raw_event = "Time:" + $EventTime + ", EventID:" + $EventID + ", Keyword:" + $Status + ", LogonType:" + $LogonType + ", User:" + $TargetDomainName + "\\" + $TargetUserName + ", IPAddr:" + $IPAddress; \
else if $raw_event =~ /^(.+)(Detailed Authentication Information:|Additional Information:)/ $raw_event = $1; if $raw_event =~ s/\t/ /g {}
任何帮助将不胜感激。
编辑:为了完整起见,下面是我的最终配置,以排除其中包含 $ 的用户名,然后在各种我不关心的健谈的帐户上成功/Kerb 事件。
Exec if $TargetUserName =~ /(\S+\$)/ drop(); \
else if ($EventID == 4624 and $TargetUserName =~ /(user1|user2|user3|user4)/) drop(); \
else if ($EventID == 4648 and $TargetUserName =~ /(user1|user2|user3|user4)/) drop(); \
else if ($EventID == 4624 or $EventID == 4625 or $EventID == 4648 or $EventID == 4768) $raw_event = "Time:" + $EventTime + ", EventID:" + $EventID + ", Keyword:" + $Status + ", LogonType:" + $LogonType + ", User:" + $TargetDomainName + "\\" + $TargetUserName + ", IPAddr:" + $IPAddress; \
else if $raw_event =~ /^(.+)(Detailed Authentication Information:|Additional Information:)/ $raw_event = $1; if $raw_event =~ s/\t/ /g {}
我目前有以下设置:
syslog-ng 服务器 --> Logstash --> ElasticSearch
syslog-ng 服务器是负载平衡的,并写入到 SAN 位置,Logstash 只是在该位置跟踪文件并将它们发送到 ES。我目前正在接收大约 1,300 个事件/秒到 syslog 集群的网络日志。我遇到的问题是日志在 ES 中实际可搜索的时间逐渐延迟。当我启动集群(4 个节点)时,它已经死了。然后落后几分钟,现在 4 天后落后了约 35 分钟。我可以确认日志正在 syslog-ng 服务器上实时写入,我还可以确认我的 4 个使用相同概念但不同 Logstash 实例的其他索引保持最新。但是,它们要低得多(约 500 个事件/秒)。
似乎正在读取平面文件的 Logstash 实例无法跟上。我已经将这些文件分离了一次并生成了 2 个 Logstash 实例以提供帮助,但我仍然落后。
任何帮助将不胜感激。
--
典型的输入是 ASA 日志,主要是拒绝和 VPN 连接
Jan 7 00:00:00 firewall1.domain.com Jan 06 2016 23:00:00 firewall1 : %ASA-1-106023: Deny udp src outside:192.168.1.1/22245 dst DMZ_1:10.5.1.1/33434 by access-group "acl_out" [0x0, 0x0]
Jan 7 00:00:00 firewall2.domain.com %ASA-1-106023: Deny udp src console_1:10.1.1.2/28134 dst CUSTOMER_094:2.2.2.2/514 by access-group "acl_2569" [0x0, 0x0]
这是我的 Logstash 配置。
input {
file {
type => "network-syslog"
exclude => ["*.gz"]
start_position => "end"
path => [ "/location1/*.log","/location2/*.log","/location2/*.log"]
sincedb_path => "/etc/logstash/.sincedb-network"
}
}
filter {
grok {
overwrite => [ "message", "host" ]
patterns_dir => "/etc/logstash/logstash-2.1.1/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.2/patterns"
match => [
"message", "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:host} %%{CISCOTAG:ciscotag}: %{GREEDYDATA:message}",
"message", "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:host} %{GREEDYDATA:message}"
]
}
grok {
match => [
"message", "%{CISCOFW106001}",
"message", "%{CISCOFW106006_106007_106010}",
"message", "%{CISCOFW106014}",
"message", "%{CISCOFW106015}",
"message", "%{CISCOFW106021}",
"message", "%{CISCOFW106023}",
"message", "%{CISCOFW106100}",
"message", "%{CISCOFW110002}",
"message", "%{CISCOFW302010}",
"message", "%{CISCOFW302013_302014_302015_302016}",
"message", "%{CISCOFW302020_302021}",
"message", "%{CISCOFW305011}",
"message", "%{CISCOFW313001_313004_313008}",
"message", "%{CISCOFW313005}",
"message", "%{CISCOFW402117}",
"message", "%{CISCOFW402119}",
"message", "%{CISCOFW419001}",
"message", "%{CISCOFW419002}",
"message", "%{CISCOFW500004}",
"message", "%{CISCOFW602303_602304}",
"message", "%{CISCOFW710001_710002_710003_710005_710006}",
"message", "%{CISCOFW713172}",
"message", "%{CISCOFW733100}",
"message", "%{GREEDYDATA}"
]
}
syslog_pri { }
date {
"match" => [ "syslog_timestamp", "MMM d HH:mm:ss",
"MMM dd HH:mm:ss" ]
target => "@timestamp"
}
mutate {
remove_field => [ "syslog_facility", "syslog_facility_code", "syslog_severity", "syslog_severity_code"]
}
}
output {
elasticsearch {
hosts => ["server1","server2","server3"]
index => "network-%{+YYYY.MM.dd}"
template => "/etc/logstash/logstash-2.1.1/vendor/bundle/jruby/1.9/gems/logstash-output-elasticsearch-2.2.0-java/lib/logstash/outputs/elasticsearch/elasticsearch-network.json"
template_name => "network"
}
}
我正在尝试安装 Samplicator 来测试 Netflow 中央收集器,然后从那里转发到其他收集器。我主要想使用 Samplicator,因为它能够轻松地对 Netflow 数据进行采样和/或发送完整的原始提要。
当我从 github repo 下载它时,默认情况下没有配置文件,如安装说明所说。我试过使用 autoconf 和各种 automake 命令来显示配置,它最终会显示出来,但是说
config.status: error: cannot find input file: `Makefile.in'
最近有没有其他人有安装此软件的经验?我知道它已经很久没有更新了。
谢谢,埃里克
我们最近开始在我们的域控制器上记录 4624 个事件 ID,以帮助跟踪用户活动。总的来说,这很好,但最近开始一遍又一遍地收到这些消息。
2 月 20 日 00:00:54 dc01.domain.com Microsoft-Windows-Security-Auditing[536]: 2015-02-20 00:00:52 c01.domain.com AUDIT_SUCCESS 4624 [EventID 4624 的描述来自源 Microsoft-找不到 Windows-Security-Auditing:发布者已被禁用,其资源不可用。这通常发生在发布者正在卸载或升级的过程中。
我知道我们的 OPs 团队最近更新了服务器,但它仍在发生,我还没有找到很多关于如何阻止这种情况的参考资料。有没有其他人遇到过这些日志?谢谢。
我正在使用 nxlog 在我的一台 Windows 服务器上跟踪自定义日志文件。文本文件中的每个条目看起来都与此类似。
===================================================================================================================
1/14/2014 3:08:48 PM DOMAIN\user1 adding group member...
Domain: blah
Group: TestGroup
Member: CN=Joe Bob,CN=Users,DC=blah,DC=ARG,DC=com
1/14/2014 3:08:48 PM 1 member added.<br>
================================================================================================
我正在尝试将此日志发送到我的系统日志服务器,并且我想将这些多行合并为 1 行,以便我可以轻松地 grep/搜索特定用户或组。我已经阅读了 nxlog 网站上关于多行的一些文档,但还没有找到一个特定的配置来将它们全部放在一个带有 syslog 标头的条目中。
谢谢,埃里克
目前我有以下设置。
系统日志 --> Logstash --> ElasticSearch --> Kibana
Logstash 正在创建一个每日索引“/etc/elasticsearch/data/test-elasticsearch/nodes/0/indices/logstash-2014.02.04”,我正在通过 Kibana 查看所有日志。我们希望使用 kibana-authentication-proxy 设置来设置一些基于用户的访问控制,因为它支持 Per-user kibana 索引。现在您可以将索引 kibana-int-userA 用于用户 A,将 kibana-int-userB 用于用户 B log”被发送到 unix-2014.02.04 的新索引,而不是 logstash 索引。这样我就可以使用 Kibana auth 代理让我的 UNIX 用户只访问他们的日志。我已经阅读了一些有关创建映射的内容,但不确定如何将它们联系在一起。
谢谢,
埃里克
我有一个 logstash 服务器将事件发送到在 Kibana 中显示结果的 elasticsearch 服务器。一切都很好,除了 Kibana 在主机字段中显示 2 个名称。我在 logstash 中使用以下 grok 过滤器。
^(?:<%{POSINT:syslog_pri}>)?%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:host} (?:%{PROG:program}(?:\[%{POSINT:pid}\])?: )?%{GREEDYDATA:message}
当我使用 Grok 调试器时,一切都被正确解析了。但是,当我在 Kibana 中查看它时,它会显示:
"host": [
"logstash1",
"servername.domain.com"
],
其中 logstash1 是我的 logstash 服务器的名称,它正在执行解析并发送到 elasticsearch。我不确定为什么它将logstash服务器和实际源都显示为主机。如何从主机字段中删除 logstash1?日志示例如下:
Dec 18 00:00:08 servername.domain.com pam_rhosts_auth[24233]: allowed to [email protected] as user1
目前我有一个相当大的 syslog-ng 集群设置,它是我的主要日志聚合点。我需要能够确认某些日志并将它们标记为审核以进行审核。例如所有失败的 sudo 尝试。我可以轻松地将我感兴趣的日志发送到特定文件夹、程序或电子邮件,但想知道你们都使用什么来进行审计。目前,我将它们发送到 MySQL 数据库并将其放在显示日志的位置,如果我愿意,我可以单击确认并添加评论。虽然这种方法有效,但我想要一些更专业的东西。我曾考虑将它们绑定到开源票务系统中,并在审查后将其关闭,但希望得到其他人的意见。
谢谢,
埃里克
我正在设置一个 syslog-ng 服务器来接受来自各种来源的日志。一般设置将是:
Device1
Device2 Syslog1
Device3 --> Load balancer --> Syslog2 --> Shared SAN storage
Device4 Syslog3
Device5
我使用的是 514/udp,通过此设置,我应该可以轻松获得 HA 并能够循环并分散负载。我关心的是如何在后端共享和写入存储。理想情况下,我希望每台设备当天都有一个 deviceX.log 文件。如果 syslog1 从 device1 获取一个大日志文件并且仍在写入 device1.log 而当 syslog2 从 device1 获取一个小日志文件并同时开始尝试写入同一个文件时会发生什么情况?
我在 Linux 中读到,如果您附加文件并且不以“写入”模式打开它,那么您将永远不会收到写保护错误。我不确定 syslog 是如何做到这一点的。
所以我的问题是:
任何建议将不胜感激。提前致谢。
使用我的日志和 find 命令时,我遇到了 2 个问题。
sudo find /logs/ -type f -name '*.log' -mtime +0 | xargs ls -l
sudo find /logs/ -type f -name '*.log' -mtime +0 | xargs gzip -9 *
我见过的大多数示例都涉及将所有文件压缩到 1 个存档中,但我希望每个文件都单独存在,并且我希望它们保留在找到它们的同一位置。
提前致谢。
我有一个 Fedora 服务器,我想在用户登录后生成一个交互式 python 脚本。该脚本将询问用户配置系统的各种类型的信息,或者它将搜索以前的配置文件并向他们显示预定义的信息。最初我打算把它放在 rc.local 中或让它与 init.d 一起运行,但由于脚本的生成方式,这搞砸了引导。所以我希望这个脚本在用户登录 Gnome 时立即运行。我搜索了很多,发现这个答案似乎正是我想要的,但它并没有按照我想要的方式工作。下面是我的条目。
[Desktop Entry]
Name=MyScript
GenericName=Script for initial configuration
Comment=I really want this to work
Exec=/usr/local/bin/myscript.sh
Terminal=true
Type=Application
X-GNOME-Autostart-enabled=true
每当我登录时,什么也没有发生。所以我然后做了一个测试来修改“myscript.sh”以将一些文本回显到一个文件并且它工作正常。所以看起来不起作用的部分是脚本弹出终端并等待用户输入。我需要添加任何其他选项才能使这项工作正常进行吗?当我从 CLI 运行 /usr/local/bin/myscript.sh 时,我可以确认它工作正常。我也尝试添加“StartupNotify=true”,但仍然没有成功。
编辑@John - 我尝试将我的 Exec= 移动到 /usr/local/bin/myscript-test ,这就是 myscript-test 包含的内容。
#!/bin/bash
xterm -e /usr/local/bin/myscript.sh
再一次,当我运行 myscript-test 时它工作正常。但是,当我将其放入自动启动时,什么也没有发生。
编辑 2 - 我做了一些更多的测试并且它确实开始工作但是我必须在 xterm 弹出之前删除 Terminal=True 。谢谢你的帮助。
我的 Snort/Barnyard2 设置需要一些帮助。我的目标是让 Snort 将 unified2 日志发送到 Barnyard2,然后让 Barnyard2 将数据发送到其他位置。这是我当前的设置。
snort -c /etc/snort/snort.conf -i eth2 &
/usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/snort/barnyard.waldo &
output unified2: filename snort.log, limit 128
output alert_syslog: host=127.0.0.1
output database: log, mysql, user=snort dbname=snort password=password host=localhost
通过此设置,barnyard2 显示数据库中的所有正确信息,我正在使用 BASE 在 Web GUI 上查看它。我希望能够使用 barnyard2 将完整的数据包数据发送到系统日志,但在阅读之后,似乎不可能做到这一点。所以我开始尝试修改 snort.conf 文件并添加诸如“output alert_full: alert.full”之类的行。这无疑给了我更多信息,但仍然不是我想要的完整数据包数据。
所以我的问题是,无论如何我可以使用 barnyard2 将警报的完整数据包数据发送到人类可读文件吗?由于我不能将它直接发送到系统日志,我可以创建另一个进程来从该文件中获取数据并将其发送到另一台服务器。如果不是,您会推荐什么标志和/或 snort.conf 配置来获取尽可能多的数据,但仍然能够处理相当多的流量?最后,这些警报将通过 SSH 隧道传送到中央服务器。我试图远离数据库。
我正在进行 OSSEC 部署,其中我将在 1 个公共 IP 后面有多个代理。以下是设置示例
私网
OSSEC-Agent1 (192.168.1.10)
OSSEC-Agent2 (192.168.50.33) OSSEC-Agent3
(10.10.10.1)这些 IP NAT 到 1 个公共 IP (1.1.1.1)
然后 1.1.1.1 与 2.2.2.2 上的公共 OSSEC 服务器对话
我在这里阅读了一些关于 NAT 的 OSSEC 文档,但它并没有告诉我我需要知道的确切内容。他们的例子是使用整个 /24 子网,而我的例子主要有多个代理,只有 1 个公共 IP。通过到目前为止的设置,我使 Agent1 正常联机并且它正在与 OSSEC 服务器通信。但是,Agent2 继续尝试连接到 2.2.2.2 失败。即使当我添加密钥时,我有正确的名称,所以我知道它至少与门户交谈过一次以获取该信息。我假设它只是与 1 个公共 IP 的多个密钥混淆。我基本上想知道这是否可行和/或我是否只是忽略了一些简单的事情。任何帮助将不胜感激。