It's not possible to allow non-OPIE logins only from trusted networks

J. Hellenthal jhell at DataIX.net
Thu Mar 10 21:00:05 UTC 2011


On Thu, 10 Mar 2011 10:00, mbox@ wrote:
>>
>> /etc/profile
>> grep "^${LOGNAME} " /etc/opiekeys ||/usr/bin/opiepasswd -c
>
> Yes, or /usr/bin/opiepasswd -d. In general, this is a problem of keeping
-d would not be correct for the above example as opiepasswd would run if 
the user was not found. If the user was not found then -d really wouldn't 
be beneficial.

> two files in sync, /etc/master.passwd and /etc/opiekeys... it will never
> work.
master.passwd and opiekeys don't really have much to do with each other in 
this case. OPIE is another layer on top of the existing security and 
setting a different password using opiepasswd would only help to improve 
upon the security of the system.

> If I did as you say, I would still have a problem if someone would never
> get to login (people have accounts also because they own files, and
> account locking stops people who just use SSH as a cheap VPN).
Seems to me that the users here should have their passwords automatically 
generated for them using a dependable secure length that might take 2.3 
billion years for a processor on every square inch of the earths surface 
to crack. ;) adduser(8) has the possibility to generate random passwords, 
mail the user the generated password, and then you just have to enforce 
the /etc/profile rule ;)

>
> I could have some script run when a user is created, however, the hole
> would always be there, waiting to be exploited, so I wouldn't exploit
> that much further.

The hole here is only the administrator of said system. I'm not pointing at 
you in particular but rather knowledge of a policy that is required for 
correct or intended operation and understanding of what OPIE is and how it 
is meant to operate.


>
> Still, even if I have a solution elsewhere, theoretically my question
> still stands. Wouldn't those changed semantics help people having a
> system which is more secure by default?
>
FreeBSD isn't and probably will never be a secure by default installation, 
but certainly does have the possibility of doing so with the right amount 
of knowledge behind it.

>
> The point is: /etc/opieaccess / pam_opieaccess is meant to allow people
> not to use OPIE on a trusted network.
>
> However, it does not enforce the use of OPIE from a non-trusted network.

You are right. Its not meant to enforce non-trusted authentication at all. 
This is a tripwire not a authentication. It allows to bypass the OPIE 
mechanism for those that are ``permit'' and to enforce it explicitly for 
those that are listed as ``deny'' besides that pam_opieaccess is blind and 
PAM along with OPIE does the rest.

>
> It's kind of paradoxical, but that's what it does.
>

I have flicked OPIE on in the past and it never allowed anything in past 
the first addition of a opiekeys. This is the admins job to figure out 
whether the policy for the user is to be (user initiated) or (admin 
enforced). If its admin enforced which seems to be your case then you are 
now in charge of changing the required bits for that operation to be 
successful and will probably include some of the things I have already 
stated either above or in the last message posted.

You have a lot of variables in this equation that on FreeBSD can really 
only be met with a mix of modifications, scripting, programming and other 
such methods a experienced administrator would use.


Good luck on your quest,

-- 

  Regards,

  J. Hellenthal ®
  (0x89D8547E)
  JJH48-ARIN



More information about the freebsd-security mailing list