Icecast Streaming Media Server Forum Index Icecast Streaming Media Server
Icecast is a Xiph Foundation Project
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Mount Relay -PW NOT NEEDED ?!?!?!?

 
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Icecast Server
View previous topic :: View next topic  
Author Message
Liquid_Squelch



Joined: 11 Mar 2006
Posts: 56

PostPosted: Thu Jan 18, 2007 12:09 am    Post subject: Single Mount Relay -PW NOT NEEDED ?!?!?!? Reply with quote

Hi,

I was fooling around today with a single mount relay.

I put in the parameters needed to relay a mount (on a 2nd icecast computer), and I did not use a password to connect to the Source Icecast feed (on my main icecast box)...

I was able to relay the single mount feed, with out any password restrictions.

To fool around, I found another random icecast setup, and I tried to relay one of their single mount points, and it works with out a password also!!!

How do you keep people from relaying your feeds, if there is not password restriction. I do not want any one relaying my feeds!!!

Any help?

Is this a software bug!!
Thanks!

Here is a chunk of my config

Code:
<icecast>
    <limits>
        <clients>80</clients>
        <sources>6</sources>
        <threadpool>5</threadpool>
   <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
<!--
        <source-timeout>86400</source-timeout>
-->
        <burst-on-connect>1</burst-on-connect>
        <burst-size>16384</burst-size>
    </limits>

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>xxxxxx</source-password>
        <!-- Relays log in username 'relay' -->
        <relay-password>xxxxxx</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>xxxxxx</admin-user>
        <admin-password>xxxxxx</admin-password>
    </authentication>


    <!-- This is the hostname other people will use to connect to your server.
    It affects mainly the urls generated by Icecast for playlists and yp
    listings. -->
    <hostname>127.0.0.1</hostname>

    <!-- You may have multiple <listener> elements -->
    <listen-socket>
        <port>800x</port>
        <!-- <bind-address>127.0.0.1</bind-address> -->
    </listen-socket>
 

    <fileserve>1</fileserve>


 
<mount>
        <mount-name>/live</mount-name>
    <max-listeners>20</max-listeners>
   <max-listener-duration>3600</max-listener-duration>
   <fallback-mount>/fallback</fallback-mount>
   <fallback-when-full>1</fallback-when-full>
   <intro>/intro.mp3</intro>
    </mount>
<mount>
        <mount-name>/fallback</mount-name>
   <max-listeners>10</max-listeners>
   <max-listener-duration>3600</max-listener-duration>
   <fallback-when-full>1</fallback-when-full>
   <intro>/intro.mp3</intro>
        <hidden>0</hidden>
</mount>


    <paths>
      <!-- basedir is only used if chroot is enabled -->
        <basedir>./</basedir>

        <!-- Note that if <chroot> is turned on below, these paths must both
             be relative to the new root, not the original root -->
        <logdir>./logs</logdir>
        <webroot>./web</webroot>
        <adminroot>./admin</adminroot>
        <!-- <pidfile>./icecast.pid</pidfile> -->

        <!-- Aliases: treat requests for 'source' path as being for 'dest' path
             May be made specific to a port or bound address using the "port"
             and "bind-address" attributes.
          -->
        <!--
        <alias source="/foo" dest="/bar"/>
          -->
        <!-- Aliases: can also be used for simple redirections as well,
             this example will redirect all requests for http://server:port/ to
             the status page
          -->
        <alias source="/" dest="/status.xsl"/>
    </paths>

    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
        <!-- <playlistlog>playlist.log</playlistlog> -->
         <loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
         <logsize>5000</logsize> <!-- Max size of a logfile -->
        <!-- If logarchive is enabled (1), then when logsize is reached
             the logfile will be moved to [error|access|playlist].log.DATESTAMP,
             otherwise it will be moved to [error|access|playlist].log.old.
             Default is non-archive mode (i.e. overwrite)
        -->
        <!-- <logarchive>1</logarchive> -->
    </logging>

    <security>
        <chroot>0</chroot>
        <!--
        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
        -->
    </security>
</icecast>
Back to top
View user's profile Send private message
karlH
Code Warrior
Code Warrior


Joined: 13 Jun 2005
Posts: 5476
Location: UK

PostPosted: Thu Jan 18, 2007 2:42 am    Post subject: Reply with quote

If a stream does not require listener auth then why would a relay of that stream be required to pass authentication?

karl.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Liquid_Squelch



Joined: 11 Mar 2006
Posts: 56

PostPosted: Thu Jan 18, 2007 4:29 am    Post subject: Reply with quote

because I thought they were 2 different animals!!

SO, if I setup htaccess, with a generic user/pass for all of my users, someone can easily just add that user/pass into the relay mount, and still relay my feeds!!

ex.. http://user:pass@localhost:8005/listen would be the generic log for all users..

If someone wanted to relay, they would already have the required password for the mount point, so why bother with authentication??
(I can't do php to save my life... I'm sure that would be the most secure way of doing things... I'd love to take my website user database, and authenticate against my users, but I suck!)

Can there be a way to block all relays, unless you have the relay password?
Like, maybe a per-mount relay password, so you can have more control over how your feeds are relayed??

Example, I may want to allow someone to relay feed 1 and 3, but not 2....
So I can give them the passwords to relay feeds 1 and 3.
Back to top
View user's profile Send private message
karlH
Code Warrior
Code Warrior


Joined: 13 Jun 2005
Posts: 5476
Location: UK

PostPosted: Thu Jan 18, 2007 2:19 pm    Post subject: Reply with quote

Ask yourself, what is the difference between a listener playing the stream and a relay, relaying it? Giving the same user/pass to all possible clients is not useful at all. Some consider authenticating on useragent is sufficient or maybe IP address, so it really depends on you.

karl.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Liquid_Squelch



Joined: 11 Mar 2006
Posts: 56

PostPosted: Tue Jan 23, 2007 4:16 am    Post subject: Reply with quote

If a listener listens to my stream, they get to hear the <intro>file</intro>, and if a relay pumps my source, I lose the intro file.

Or at least I didn't hear it when I tried it with two machines on my network
Back to top
View user's profile Send private message
karlH
Code Warrior
Code Warrior


Joined: 13 Jun 2005
Posts: 5476
Location: UK

PostPosted: Tue Jan 23, 2007 12:28 pm    Post subject: Reply with quote

The intro is still played for relays, it was probably too quick for you.

karl.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Icecast Streaming Media Server Forum Index -> Icecast Server All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2002 phpBB Group
subRebel style by ktauber