The Firehose consists of the entire Tweet and event stream for Twitter, which currently carries over 500m Tweets every day. This is a massive volume of Tweets per second, and it requires significant infrastructure to process. Firehose access is limited to a very small number of certified data partners. If you need to use that data you can contact them for access to their APIs. One example is Gnip (which is part of Twitter), but there are other independent data partners as well. One advantage is that these partner APIs are able to offer some very advanced filtering and tracking options.
You can use the sample or filter endpoints to pull up to 1% of the current Tweet stream at any one time. This is often enough for many applications, including those tracking hashtags, search terms, etc.
The timeout on your curl connection is almost certainly a limitation of curl itself, which by default disconnects after 15 minutes. You should either look at how to configure curl, or write an application of your own that listens to the streaming endpoint without any disconnection issues.