Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    SSH connections timing out to other networks behind pfsense

    Scheduled Pinned Locked Moved Firewalling
    9 Posts 2 Posters 4.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bdf0506
      last edited by

      My network is setup like this:

      
      Modem -> PfSense -> Switch -> HostA
                               |--> Cisco ASA -> Host B
      

      My PfSense sits in the 192.168.200.0/24 network, as does the Switch and Host A.
      The Cisco ASA (which firewalls off my lab from everything else) has its outside interface on 192.168.200.0/24, and the inside interface is on 192.168.250.0/24. Host B sits on 192.168.250.0/24.
      My hardware for PfSense only has two NICs, so one NIC connects to the Modem, the other to the switch. So all my 192.168.x.x traffic is on the LAN side of pfSesne.

      In my old setup, with Tomato, I had no issues with SSH (so I have no reason to believe that the ASA is causing these issues). But with this new setup, I find that SSH sessions going from Host A to Host B are timing out after about 10 minutes of being idle, and I am not sure as to why.

      I've checked out a few different threads, and I've attempted a couple of things, like setting Firewall Optimization Options to Conservative, clear invalid DF bits instead of dropping the packets, disabled Firewall Scrub… but nothing seems to help. I'm guessing that if I turn off the packet filtering entirely that this will probably solve my issue, but then that will defeat the purpose of even having the pfSense in the first place.

      If I am on a host that is on 192.168.200.0/24 and connect to Host A, the session will stay alive all day. It's only until I go from a host on 192.168.200.0/24 to Host B where I have the issues.

      Any thoughts or things I may be missing?

      1 Reply Last reply Reply Quote 0
      • DerelictD
        Derelict LAYER 8 Netgate
        last edited by

        The default inactivity timeout of an established TCP session in pfSense is 24 hours so if you are seeing 10 minutes something else is causing it.

        Check the state in Diagnostics > States. After a disconnection see if the state still exists there.

        I can assure you pfSense does not kill such states unless it is told to do so. I have ssh sessions established for weeks.

        USER    TTY      FROM              LOGIN@  IDLE  JCPU  PCPU WHAT
        derelict      pts/1    192.168.223.6    Sat14    7.00s  0.40s  0.01s w

        Chattanooga, Tennessee, USA
        A comprehensive network diagram is worth 10,000 words and 15 conference calls.
        DO NOT set a source address/port in a port forward or firewall rule unless you KNOW you need it!
        Do Not Chat For Help! NO_WAN_EGRESS(TM)

        1 Reply Last reply Reply Quote 0
        • B
          bdf0506
          last edited by

          It looks like something isn't allowing the handshake to fully happen. But, the SSH connection does stay established for a minute or two, likely until the packet gets killed. Perhaps I need an allow rule somewhere that lets the traffic really establish. Any thoughts on the best way to fix this?

          
          States
          Interface	Protocol	Source (Original Source) -> Destination (Original Destination)	State	Packets	Bytes	
          LAN	tcp	192.168.200.101:54124 -> 192.168.250.97:22	CLOSED:SYN_SENT	33 / 0	5 KiB / 0 B	
          LAN	tcp	192.168.200.101:54124 -> 192.168.250.97:22	SYN_SENT:CLOSED	33 / 0	5 KiB / 0 B	
          
          
          1 Reply Last reply Reply Quote 0
          • DerelictD
            Derelict LAYER 8 Netgate
            last edited by

            It looks like you have created an asymmetric routing situation. Don't do that. You should not have hosts and routers on the same network. The link to the ASA should be a transit network consisting of nothing but router interfaces.

            This is based on the limited information at-hand.

            Chattanooga, Tennessee, USA
            A comprehensive network diagram is worth 10,000 words and 15 conference calls.
            DO NOT set a source address/port in a port forward or firewall rule unless you KNOW you need it!
            Do Not Chat For Help! NO_WAN_EGRESS(TM)

            1 Reply Last reply Reply Quote 0
            • B
              bdf0506
              last edited by

              I am still struggling with this. I'm not convinced there is asymetric routing going on.

              If I attempt the ssh session from the pfsense itself, you can see that everything is fine, and we show established.
              But if I attempt the ssh session from a host connected to the pfsense, I have issues.

              The host in my case - 192.168.200.101, has a gateway which is the pfSense itself, 192.168.200.1

              States
              Interface	Protocol	Source (Original Source) -> Destination (Original Destination)	State	Packets	Bytes	
              LAN	tcp	192.168.200.1:63005 -> 192.168.250.97:22	ESTABLISHED:ESTABLISHED	24 / 22	3 KiB / 4 KiB	
              LAN	tcp	192.168.200.101:63930 -> 192.168.250.97:22	CLOSED:SYN_SENT	19 / 0	3 KiB / 0 B	
              LAN	tcp	192.168.200.101:63930 -> 192.168.250.97:22	SYN_SENT:CLOSED	19 / 0	3 KiB / 0 B	
              

              Routing table on pfsense (192.168.200.10 is the outside iface of the ASA):

              Routing tables
              
              Internet:
              Destination        Gateway            Flags      Netif Expire
              192.168.200.0/24    link#2             U           re1
              192.168.250.0/24    192.168.200.10      UGS         re1
              

              A traceroute from my Windows client further proves that we are taking the same path that the pfSense is taking.

              tracert 192.168.50.97
              
              Tracing route to Server01.bdf.local [192.168.250.97]
              over a maximum of 30 hops:
              
                1    <1 ms    <1 ms    <1 ms  pfSense.home [192.168.200.1]
                2     2 ms     1 ms     1 ms  CiscoASA.home [192.168.200.10]
                3     3 ms     2 ms     2 ms  Server01.bdf.local [192.168.250.97]
              
              Trace complete.
              

              I can try to create a new network that simply links the pfsense to the ASA, though I am not convinced that will fix this issue.

              1 Reply Last reply Reply Quote 0
              • DerelictD
                Derelict LAYER 8 Netgate
                last edited by

                Host A either has the ASA as its default gateway or pfSense. Which is it? Does it have a route in its own routing table for the network behind the ASA? Is the ASA natting?

                You will likely need to provide a better diagram. See my sig for one with the information one might provide in a diagram they expect someone else to be able to understand quickly.

                I can assure you that there is zero problem with ssh sessions through pfsense in a default configuration.

                Chattanooga, Tennessee, USA
                A comprehensive network diagram is worth 10,000 words and 15 conference calls.
                DO NOT set a source address/port in a port forward or firewall rule unless you KNOW you need it!
                Do Not Chat For Help! NO_WAN_EGRESS(TM)

                1 Reply Last reply Reply Quote 0
                • B
                  bdf0506
                  last edited by

                  Thanks. I did repost this in the NAT section since it's likely not a firewall section any longer (couldn't figure out a way to move the topic).

                  Host A has the pfsense as the DG, and no special static routes are on Host A itself. It is depending on the pfSense to route it to the ASA. I am going to try to give the LAN interface of pfsense a VLAN and a different transport network for the pfsense <-> ASA link per your suggestion last week to see if that does fix anything.

                  1 Reply Last reply Reply Quote 0
                  • DerelictD
                    Derelict LAYER 8 Netgate
                    last edited by

                    Host A has the pfsense as the DG, and no special static routes are on Host A itself. It is depending on the pfSense to route it to the ASA.

                    Right. That is considered asymmetric routing. pfSense has to make a special case for routing traffic back out the same interface it arrived on which a router does not normally do. It might also be that you can initially communicate from Host A to Host B because Host A receives an ICMP redirect from pfSense telling it to communicate directly with Host B via the ASA's address. That expires on Host A and the session goes off the rails. In fact that makes the most sense.

                    You can try checking Static route filtering - Bypass firewall rules for traffic on the same interface in System > Advanced, Firewall and NAT.

                    Even if you enable Static route filtering the ICMP redirect will still be sent and might still be honored unless you also set this sysctl net.inet.ip.redirect: 0 in System > Advanced, System Tunables.

                    That's why your asymmetric routing is bad.

                    I would redesign it properly instead of relying on a bunch of special checkboxes and sysctls to get around the poor design.

                    See the image. Host A would be the Management host, The Cisco ASA would be the Layer 3 Switch, and Host B would be behind it.

                    http://www.cymru.com/gillsr/documents/icmp-redirects-are-bad.htm

                    pfSense-Layer-3-Switch-WT.png_thumb
                    pfSense-Layer-3-Switch-WT.png

                    Chattanooga, Tennessee, USA
                    A comprehensive network diagram is worth 10,000 words and 15 conference calls.
                    DO NOT set a source address/port in a port forward or firewall rule unless you KNOW you need it!
                    Do Not Chat For Help! NO_WAN_EGRESS(TM)

                    1 Reply Last reply Reply Quote 0
                    • B
                      bdf0506
                      last edited by

                      Thanks for the pointers here. I see what you mean with it going out the same interface and how it had issues with the design. I am guessing that Tomato just simply did not care, and had an option behind the scenes or by default where it didn't care about traffic going in and out the same interface. Either way, as you mentioned earlier, it's better to have a proper network design, instead of trying to hack together something.

                      I went ahead and created a VLAN/additional network to handle the link from the pfsense to the ASA, and now it's all good.

                      
                      States
                      Interface	Protocol	Source (Original Source) -> Destination (Original Destination)	State	Packets	Bytes	
                      LAN	tcp	192.168.200.101:51565 -> 192.168.250.97:22	ESTABLISHED:ESTABLISHED	21 / 21	4 KiB / 5 KiB	
                      PFSENSE_ASA	tcp	192.168.200.101:51565 -> 192.168.250.97:22	ESTABLISHED:ESTABLISHED	21 / 21	4 KiB / 5 KiB
                      
                      

                      Thanks!!

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.