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

    autossh on pfsense

    Scheduled Pinned Locked Moved General pfSense Questions
    16 Posts 3 Posters 1.8k 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.
    • stephenw10S
      stephenw10 Netgate Administrator
      last edited by

      Ah, I assumed he was trying to use pfSense as a proxy so he could connect to the server from some external location.

      johnpozJ 1 Reply Last reply Reply Quote 0
      • johnpozJ
        johnpoz LAYER 8 Global Moderator @stephenw10
        last edited by johnpoz

        @stephenw10 that is not how I took it.

        But if he has this

        mysql -- wan net -- pfsense -- lan net -- client

        And client wants to talk to mysql, unless he turned off nat on pfsense to mysql the connection would be coming from pfsense wan net IP. So to mysql that would be its local network.

        You sure its a "wan" to pfsense - out of the box pfsense would nat lan side network to wan net IP. But if that is not really a wan to pfsense, ie no internet or other networks access through that network. Then it would not be natting.

        If that is the case to make it look like local network to mysql you would need to do a outbound nat from your lan net to the wan net IP. This is done by default when pfsense actually has a wan, ie a connection it uses to get to other networks - a gateway set on the interface.

        An intelligent man is sometimes forced to be drunk to spend time with his fools
        If you get confused: Listen to the Music Play
        Please don't Chat/PM me for help, unless mod related
        SG-4860 24.11 | Lab VMs 2.8, 24.11

        1 Reply Last reply Reply Quote 0
        • stephenw10S
          stephenw10 Netgate Administrator
          last edited by

          Mmm, hence my assumption it was for external access. Also that's what that guide describes.

          However in that setup autossh needs to be installed on the mysql server not pfSense.

          Use a VPN!

          Steve

          1 Reply Last reply Reply Quote 0
          • _
            _sKo_
            last edited by

            Hi all,

            the schema is like mysql -- wan net -- pfsense -- lan net -- client, like @johnpoz stated, and the client need to talk to mysql but mysql does not accept connection from the local network but only from localhost.

            I've routers build up with ubuntu and iptables that have an ssh tunnel to the MySql server configured like 3306:localhost:3306.
            This tunnels are established via autossh to make them permanent.

            johnpozJ 1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              You can just install it from the FreeBSD repo and since it appears to have no depencies it's relatively low risk:

              [22.01-RELEASE][admin@cedev-4.stevew.lan]/root: pkg add http://pkg.freebsd.org/FreeBSD:12:amd64/quarterly/All/autossh-1.4g.pkg
              Fetching autossh-1.4g.pkg: 100%   23 KiB  23.5kB/s    00:01    
              Installing autossh-1.4g...
              Extracting autossh-1.4g: 100%
              [22.01-RELEASE][admin@cedev-4.stevew.lan]/root: rehash
              [22.01-RELEASE][admin@cedev-4.stevew.lan]/root: autossh
              usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]
              
                  -M specifies monitor port. May be overridden by environment
                     variable AUTOSSH_PORT. 0 turns monitoring loop off.
                     Alternatively, a port for an echo service on the remote
                     machine may be specified. (Normally port 7.)
                  -f run in background (autossh handles this, and does not
                     pass it to ssh.)
                  -V print autossh version and exit.
              
              Environment variables are:
                  AUTOSSH_GATETIME    - how long must an ssh session be established
                                        before we decide it really was established
                                        (in seconds). Default is 30 seconds; use of -f
                                        flag sets this to 0.
                  AUTOSSH_LOGFILE     - file to log to (default is to use the syslog
                                        facility)
                  AUTOSSH_LOGLEVEL    - level of log verbosity
                  AUTOSSH_MAXLIFETIME - set the maximum time to live (seconds)
                  AUTOSSH_MAXSTART    - max times to restart (default is no limit)
                  AUTOSSH_MESSAGE     - message to append to echo string (max 64 bytes)
                  AUTOSSH_PATH        - path to ssh if not default
                  AUTOSSH_PIDFILE     - write pid to this file
                  AUTOSSH_POLL        - how often to check the connection (seconds)
                  AUTOSSH_FIRST_POLL  - time before first connection check (seconds)
                  AUTOSSH_PORT        - port to use for monitor connection
                  AUTOSSH_DEBUG       - turn logging to maximum verbosity and log to
                                        stderr
              

              But be aware of the risks:
              https://docs.netgate.com/pfsense/en/latest/recipes/freebsd-pkg-repo.html

              Steve

              1 Reply Last reply Reply Quote 0
              • johnpozJ
                johnpoz LAYER 8 Global Moderator @_sKo_
                last edited by johnpoz

                @ltrivellizzi said in autossh on pfsense:

                but only from localhost.

                Why don't you just allow network connections? That would be way easier solution. Not like your opening up to the public internet allow access from your own local IPs

                edit:
                Doesn't mysql just default to binding to 127.0.0.1? in the mysqld.cnf, changing that to actually bind to the boxes IP, or all zeros should allow you access from your clients.

                An intelligent man is sometimes forced to be drunk to spend time with his fools
                If you get confused: Listen to the Music Play
                Please don't Chat/PM me for help, unless mod related
                SG-4860 24.11 | Lab VMs 2.8, 24.11

                1 Reply Last reply Reply Quote 0
                • _
                  _sKo_
                  last edited by

                  @johnpoz I'm just trying to stick as much as possible to the "as is" situation.

                  johnpozJ 1 Reply Last reply Reply Quote 0
                  • johnpozJ
                    johnpoz LAYER 8 Global Moderator @_sKo_
                    last edited by johnpoz

                    @_sko_ said in autossh on pfsense:

                    "as is" situation.

                    But its a horrible solution..

                    You want/need to access something from your network, but that thing defaults to only listening on loopback.. So you setup a ssh connection and trick into thinking your local.. So you have created complexity for no reason, and its going to be a performance hit, running traffic through any sort of tunnel adds overhead, requires resources to perform the encryption and decryption of the traffic..

                    Vs just changing 127.0.0.1 in the conf file to 0.0.0.0 ?

                    Occam’s Razor vs Rube Goldberg

                    An intelligent man is sometimes forced to be drunk to spend time with his fools
                    If you get confused: Listen to the Music Play
                    Please don't Chat/PM me for help, unless mod related
                    SG-4860 24.11 | Lab VMs 2.8, 24.11

                    _ 1 Reply Last reply Reply Quote 0
                    • _
                      _sKo_ @johnpoz
                      last edited by

                      @johnpoz I see your point but the tunnel let the MySql server to be configured in a more secure way. But @stephenw10 just let me stop thinking about this solution because of the warnings in the linked page.

                      Thanks for the support and the help!

                      johnpozJ 1 Reply Last reply Reply Quote 0
                      • johnpozJ
                        johnpoz LAYER 8 Global Moderator @_sKo_
                        last edited by

                        @_sko_ said in autossh on pfsense:

                        tunnel let the MySql server to be configured in a more secure way

                        So you have hackers or botware running on your local network?

                        You stated that this "wan" is not connected to the internet. So who has access to this "network" where this mysql box sits? Your devices, your users? Are you own devices and users considered hostile?

                        And these device need to go through pfsense to get to the mysql box do they not. So simple non rube goldberg setup to secure access to this device is rule on pfsense to limit who can talk to it and on what port.

                        If your routing traffic through pfsense via this ssh tunnel.. How is it any different than allowing access just via a firewall rule?

                        The only way this becomes more secure is stuff on the same network as the mysql box wouldn't be able to access it. So again going with the occams razor approach which is simpler.. isolate this box from others on its own network via firewall on the host, or private vlan, or just putting it in its own limited network where the bad guys don't sit, etc.

                        You do you - but your approach as you have described your setup seems over complicated and is more likely to cause performance issues and connectivity issues than any added security.

                        An intelligent man is sometimes forced to be drunk to spend time with his fools
                        If you get confused: Listen to the Music Play
                        Please don't Chat/PM me for help, unless mod related
                        SG-4860 24.11 | Lab VMs 2.8, 24.11

                        _ 1 Reply Last reply Reply Quote 0
                        • _
                          _sKo_ @johnpoz
                          last edited by

                          @johnpoz said in autossh on pfsense:

                          @_sko_ said in autossh on pfsense:

                          tunnel let the MySql server to be configured in a more secure way

                          So you have hackers or botware running on your local network?

                          You stated that this "wan" is not connected to the internet. So who has access to this "network" where this mysql box sits? Your devices, your users? Are you own devices and users considered hostile?

                          I stated wrong. Sorry but my english is a little bit rusty. The local network has a gateway and is connected to the internet but you are right just a too much complicated solution for the problem.

                          I just enabled a rinetd rule for the pfsense firewall in the MySql server et voilà.

                          Thanks!

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