Как / где получить журналы неудачной аутентификации FTP? - PullRequest
0 голосов
/ 20 ноября 2018

Я никогда не уверен, что это правильное место, чтобы спросить, но если нет, пожалуйста, дайте мне знать.

Так что мне нужно получить список журналов неудачной аутентификации FTP, более конкретно получить IP-адреса, гдеони возникли.Это не зависит от программного обеспечения, поэтому я не буду получать их из папки или около того, они должны приходить из Event Viewer.

Но я не нашел ни одного события, предназначенного специально для этой цели, и я неЯ точно не знаю, существуют ли они.

У меня есть некоторый код (большая часть которого была скопирована из другого вопроса, название которого я не помню), чтобы получить информацию о событии в формате xml, откуда я затем получаюподстроки с IP-адресами и именами пользователей.Вот функции:

public string QueryActiveLog()
        {
            string res = "";
        string queryString = @"
                     <QueryList>
                        <Query Id='0' Path='Security'>
                         <Select Path='Security'>*[System[(EventID=4624)]] and *[EventData[Data[@Name='IpAddress']!='-']]</Select>
                        </Query>
                     </QueryList>";

            EventLogQuery eventsQuery = new EventLogQuery("Security", PathType.LogName, queryString);
            EventLogReader logReader = new EventLogReader(eventsQuery);

            // Display event info
            res = DisplayEventLogInformation(logReader);

        return res;
    }
    public string DisplayEventLogInformation(EventLogReader logReader)
    {
        string res = "";

        for (EventRecord eventInstance = logReader.ReadEvent(); null != eventInstance; eventInstance = logReader.ReadEvent())
        {
            EventLogRecord logRecord = (EventLogRecord)eventInstance;
            res += logRecord.ToXml() + Environment.NewLine + Environment.NewLine;
        }

        return res;
    }

    /// <summary>
    /// orig -> original string // Options for args: "ip" -> get IPs from string, "user" -> get user names from string
    /// </summary>
    /// <param name="orig"></param>
    /// <param name="args"></param>
    /// <returns></returns>
    public List<string> getSubstrings(string orig, string args)
    {
        int index1 = 0, index2 = 0;
        List<string> subres = new List<string>();

        switch (args)
        {
            case "ip":
                while (index2 < orig.LastIndexOf("<Data Name='IpAddress'>"))
                {
                    index1 = orig.IndexOf("<Data Name='IpAddress'>", index2) + 23;
                    index2 = orig.IndexOf("</Data>", index1);
                    subres.Add(orig.Substring(index1, index2 - index1));
                }
                return subres;

            case "user":
                while (index2 < orig.LastIndexOf("<Data Name='SubjectUserName'>"))
                {
                    index1 = orig.IndexOf("<Data Name='SubjectUserName'>", index2) + 29;
                    index2 = orig.IndexOf("$</Data>", index1);
                    subres.Add(orig.Substring(index1, index2 - index1));
                }

                return subres;

            default:
                subres.Add("Invalid option");
                return subres;
        }
    }

Здесь событие, из которого он получает информацию, - 4624 (просто в качестве примера), мой вопрос: есть ли событие специально для случаев неудачной аутентификации FTP, чтобы я мог использоватьв этом формате.

РЕДАКТИРОВАТЬ

Как пояснил Мартин Прикрыл, чтобы уточнить, я на стороне сервера и хочу получать уведомления о том, когда клиент пытаетсяне удается получить доступ к моему серверу, независимо от того, какое программное обеспечение использует клиент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...