| Search Site |
| Search Rules |
| Account |
| not registered? |
| can't login? |
| user preferences |
|
|||||||||||||||||||||||
|
Next: 1.6 Miscellaneous Up: 1. Snort Overview Previous: 1.4 Network Intrusion Detection Contents Subsections
|
|||||||||||||||||||||||
Note:
You can also replace sections of the packet payload when using Snort Inline.
See Section for more information.
|
When using a reject rule, there are two options you can use to send TCP resets:
config layer2resetstells Snort Inline to use layer2 resets and uses the MAC address of the bridge as the source MAC in the packet, and:
config layer2resets: 00:06:76:DD:5F:E3will tell Snort Inline to use layer2 resets and uses the source MAC of 00:06:76:DD:5F:E3 in the reset packet.
The current rule application order is:
->activation->dynamic->drop->sdrop->reject->alert->pass->logThis will ensure that a drop rule has precedence over an alert or log rule. You can use the -o flag to change the rule application order to:
->activation->dynamic->pass->drop->sdrop->reject->alert->log
When using Snort Inline, you can use two additional stream4 options:
This option causes Snort to drop TCP packets that are not associated with an existing TCP session, and is not a valid TCP initiator.
By default, when running in inline mode, Snort will silently drop any packets that were picked up in midstream and would have caused an alert to be generated, if not for the 'flow: established' option. This is to mitigate stick/snot type attacks when the user hasn't enabled inline_state. If you want to see the alerts that are silently dropped, enable this keyword. Note that by enabling this keyword, you have opened yourself up to stick/snot-type attacks.
For more information about Stream4, see Section
.
Additionally, Jed Haile's content replace code allows you to modify packets before they leave the network. For example:
alert tcp any any <> any 80 (msg: "tcp replace"; content:"GET"; replace:"BET";)
alert udp any any <> any 53 (msg: "udp replace"; \
content: "yahoo"; replace: "xxxxx";)
These rules will comb TCP port 80 traffic looking for GET, and UDP port 53 traffic looking for yahoo. Once they are found, they are replaced with BET and xxxxx, respectively. The only catch is that the replace must be the same length as the content.
./configure --enable-inline make make install
First, you need to ensure that the ip_queue module is loaded. Then, you need to send traffic to Snort Inline using the QUEUE target. For example:
iptables -A OUTPUT -p tcp --dport 80 -j QUEUEsends all TCP traffic leaving the firewall going to port 80 to the QUEUE target. This is what sends the packet from kernel space to user space (Snort Inline). A quick way to get all outbound traffic going to the QUEUE is to use the rc.firewall script created and maintained by the Honeynet Project (http://www.honeynet.org/papers/honeynet/tools/) This script is well-documented and allows you to direct packets to Snort Inline by simply changing the QUEUE variable to yes.
Finally, start Snort Inline:
snort_inline -QDc ../etc/drop.conf -l /var/log/snort
You can use the following command line options:
Ideally, Snort Inline will be run using only its own drop.rules. If you want to use Snort for just alerting, a separate process should be running with its own rule set.
The Honeynet Snort Inline Toolkit is a statically compiled Snort Inline binary put together by the Honeynet Project for the Linux operating system. It comes with a set of drop.rules, the Snort Inline binary, a snort-inline rotation shell script, and a good README. It can be found at:
http://www.honeynet.org/papers/honeynet/tools/
If you run Snort Inline and see something like this:
Initializing Output Plugins! Reading from iptables Log directory = /var/log/snort Initializing Inline mode InlineInit: : Failed to send netlink message: Connection refusedMore than likely, the ip_queue module is not loaded or ip_queue support is not compiled into your kernel. Either recompile your kernel to support ip_queue, or load the module.
The ip_queue module is loaded by executing:
insmod ip_queueAlso, if you want to ensure Snort Inline is getting packets, you can start it in the following manner:
snort_inline -Qvc <configuration file>This will display the header of every packet that Snort Inline sees.
| Terms of Use | Privacy Policy | forum archives | site feedback ©2009 Snort and Sourcefire are registered trademarks of Sourcefire, Inc. All rights reserved. |