What is community based authentication in SNMP? - snmp

In SNMP PDU , there is a field with name "community" , how community add security to snmp ? To be more specific , how a snmp agent know that, community string is correct or wrong ?

When sending SNMP traps/requests/informs, the field called community is the security that is used for "authentication". In SNMPv2 and SNMPv2C community is the only kind of security that exists. In SNMPv3, privacy and authentication passwords are way more of a good security.
The community adds security because the PDU sent keeps the community with itself. On the other side, the receiver needs to know the community (this is often done by configuration, depending on what you're using). This way, the receiver can identify that the PDU comes from a valid source because the community is the same.

Related

Exchange server mail interceptor (connector/delivery agents/mailflow)

My basic requirement is that I need to create "something" that is capable of intercepting emails incoming/outgoing from our mail server. It cannot be an extension to mail clients. Currently we consider only exchange server. In my research I found below resources that seems to be helpful.
Mail flow and the transport
Delivery agents and Delivery Agent connectors
Transport agents
From these transport agents seems to be quite old. Now I can't figure out what's the best from the remaining options(Mail flow and the transport or Delivery agents and Delivery Agent connectors).
Whatever I develop should be able to read email get some statistics (using mail header(s), amount of attachments etc...) and store it into a custom database. Additionally add some custom headers to incoming/outgoing mails.
Can anyone point me to right direction? Should it be some kind of a service that I can install in Exchange server? (admin center->mail flow-> connectors). For example, can I write it in c# and host it like an assembly? or may be a web hook to a hosted service where Exchange will forward emails in real time etc...
I couldn't find any examples/tutorials except this
If its OnPrem Exchange and you don't have or are considering Office365 then Transport Agents would be the right thing to use. They haven't change since 2013 but are still what is used for this type of thing the last SDK was 2010 but its still valid given the lack of change on the backend https://learn.microsoft.com/en-us/previous-versions/office/developer/exchange-server-2010/dd877026(v=exchg.140)
Delivery Agents are more for when you have an external gateway that you want to send and receive messages from.

if IMAP CONDSTORE is not supported for Outlook/yahoo server, what is the alternative to get the flag changes from last check

I use highestModseq for gmail which will provide me the flag updates on emails. Additionally, am using emailjs-imap-client package. If anyone could help with the equivalent of highestModseq in outlook server?
If you are using IMAP, there isn't one. The equivalent is to ask for all the flags for all the messages since last time you synced.
For outlook, there's alternative protocols that may support smart access: EAS, EWS, or Outlook Mail API. For Yahoo, you have to use the additional bandwidth and compute changes client side.

Need support: SNMP trap sender (SNMPv3)

Can someone help me in creating an agent which can send SNMPv3 traps to NMS?
Open to use SNMP4J or net-snmp.
SNMPv3 supports authentication and privacy among other new features, making it more secure and a little more complicated to implement as compared to the previous versions. The Network Management System(NMS) can support multiple configurations.
No Authorization and No Privacy - Least Secure.
Authorization and No Privacy - Not immune to attack from intruders.
Authorization with Privacy - Most Secure.
Note: No Authorization and Privacy is not supported.
Based on the supported configuration of the NMS, you can create the SNMP agent. You can check out my answer on this question which explains how to create a SNMPv3 agent with Authorization and Privacy. If you want don't want authorization and privacy in your SNMP agent, you can simply remove the USM entries.

SNMP traps and community

A SNMP message is divided into two sections: a version identifier including a community name, and a Protocol Data Unit (PDU). Version identifier and community name are used for SNMP authentication. The authentication mechanism depends on the SNMP version.
An agent uses the Trap PDU to notify a manager that an event occurred. To compose Trap PDUs, an agent sets the PDU Type to 4 (Trap), fills the Enterprise ID, the agent address, the generic as well as the
specific Trap types, and additional fields as the Timestamp fields, and the Variable Bindings.
Here is my first question: when working in SNMP v2, how does the manager know the SNMP community for reading a Trap?
My second question is: When working with SNMP v3, how is the authentication mechanism implemented within a Trap manager?
For SNMPv2C the manager just checks that the community string extracted from incoming SNMP trap/inform matches the community name configured locally for this trap originator (source).
For SNMPv3 the manager needs to know the whole bunch of security parameters like security level, username, authentication/privacy protocols and passwords, context name etc in order to authenticate incoming packet and/or even decrypt it (CBC-DES or CFB-AES) if authPriv security level is used.

ActiveSync sync mail with thread

I am developing MS Exchange client using active sync protocol and i have implemented all the commands, able to fetch, read mails, can also mark as unread or can delete it. But now i want to manage the emails thread wise, so i am wondering if there is any way to manage email thread. I tried to find the thread index property but there isn't such a property like gmail or other imap protocol have. So i am wondering how can i implement it.
I have referred document from https://msdn.microsoft.com/en-us/library/dd299441(v=exchg.80).aspx but didn't get exact solution from there.
If you are using protocol version 14.0 or higher (meaning that the server is Exchange 2010 or higher), each message should have a ConversationId element and a ConversationIndex that you can use to group messages. There's more information in the ActiveSync Conversations Protocol document, [MS-ASCON].

Resources