Re: basic understanding of iptables - some questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Unless I misunderstand or things have changed in recent years,
  - NEW refers to an unanswered SYN (for TCP) or the first packet of a UDP conn
  - RELATED refers to (1) an unanswered SYN (for TCP), or (2) the first packet of
    a UDP conn, that a conntrack helper has determined is related to an existing conn.
  - ESTABLISHED refers to all subsequent packets in any conn.

Therefore, you can only know that a packet is the first packet of a conn or it is a subsequent packet. You can't know which conn a RELATED packet is associated with, and without using CONNMARKs, you cannot know if a conn was RELATED once it is ESTABLISHED.

N


On Sun, 20 Nov 2016 21:45:05 +0100 (CET)
"Lentes, Bernd" <bernd.lentes@xxxxxxxxxxxxxxxxxxxxx> wrote:

> Hi,
> 
> 
> 
> I'm trying to understand Ubuntu 16.04 (kernel 4.4.0-45-generic) firewall rules. See the rules for the chain INPUT:
> 
> Chain INPUT (policy DROP 20 packets, 800 bytes)
>  pkts bytes target     prot opt in     out     source               destination
>   880  134K ufw-before-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
>   880  134K ufw-before-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
>   481 86297 ufw-after-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
>    20   800 ufw-after-logging-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
>    20   800 ufw-reject-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
>    20   800 ufw-track-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
> 
> chain ufw-before-logging-input (1 references)
>  pkts bytes target     prot opt in     out     source               destination
> 
> 
> Chain ufw-before-logging-input does nothing, so evaluating the rules continues with ufw-before-input:
> 
> Chain ufw-before-input (1 references)
>  pkts bytes target     prot opt in     out     source               destination
>     0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
>   317 22568 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
>     0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
>     0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
>     0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
>     0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
>     0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
>     0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
>     4   112 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
>    72 23616 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
>   487 87216 ufw-not-local  all  --  *      *       0.0.0.0/0            0.0.0.0/0
>     6   919 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251          udp dpt:5353
>     0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            239.255.255.250      udp dpt:1900
>   481 86297 ufw-user-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0
> 
> First question: 
> second rule: is that the rule for responses from outgoing packets ? E.g. i start a browser and open a web page. First my host does a TCP SYN to the web server, and this one answers with a tcp SYN ACK.
> Because man iptables-extensions says:
> 
> ESTABLISHED: The packet is associated with a connection which has seen packets in both directions.
> RELATED: The packet is starting a new connection, but is associated with an existing connection, such as an FTP data transfer or an ICMP error.
> 
> Because ESTABLISHED must have seen packets in BOTH directions. When i open a web page and the first packet comes back from the webserver (SYN ACK), this connection does not have seen packets in both directions.
> And RELATED, as i understand, is e.g. for ftp, which uses in one session different destination ports (i think one for control and one for data ?).
> 
> But if this is not the rule for the first packet coming back, where is this rule ?
> 
> This chain also accepts packets for icmp, dhcp, upnp and mDNS. Right ?
> 
> OK. Evaluating continues with ufw-user-input, which are e.g. the services opened by the admin for some services, like ssh ...
> 
> Chain ufw-user-input (1 references)
>  pkts bytes target     prot opt in     out     source               destination
> 41587 1849K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
>     0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:22
>     1    60 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:7937
>     5   300 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:7938
>     0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:7938
> 
> 
> Evaluating continues with ufw-after-input, which drops e.g. some packtes for windows services (file sharing ...) and dhcp.
>   It does this by calling another chain which drops the packets.
> 
> Chain ufw-after-input (1 references)
>  pkts bytes target     prot opt in     out     source               destination
> 18978 1486K ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:137
>  5358 1231K ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:138
>     0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:139
>     0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:445
> 67988   25M ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
>     0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:68
>  159K   20M ufw-skip-to-policy-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
> 
> Chain ufw-skip-to-policy-input (7 references)
>  pkts bytes target     prot opt in     out     source               destination
>  251K   48M DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0
> 
> 
> And THEN comes ufw-after-logging-input, which logs all the packets which survived all the previous rules.
> 
> Chain ufw-after-logging-input (1 references)
>  pkts bytes target     prot opt in     out     source               destination
> 42933 1717K LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            LOG flags 8 level 4 prefix "[UFW BLOCK INPUT] "
> 
> 
> So ufw-after-logging-input comes into play when there is a packet which has no previous packet in any direction, is not for the allowed services nor for the denied services.
> E.g. i do a port scan to 12345 on that host. Right ? It should be logged by that rule. Because i don't have a service running on port 12345.
> 
> The reason i'm asking is that i have some logging from this rule with ip addresses not from our network, and i'd like to know when this rule comes into play.
> 
> I'd appreciate any help, if you want to know more please ask me.
> 
> Thanks.
> 
> Bernd
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux