Ethical Hacking Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package. | Computer Forensics Training at InfoSec Institute Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors. |

| Subject: | Re: Negated patterns in AllowedUsers |
|---|---|
| Date: | Tue, 04 Sep 2007 20:37:37 +0200 |
Radek
Hi,
for root user is quite easy. Just put PermitRootLogin No
in sshd_config
This only allow you to login thru local console
Christian
2007/9/2, Radek Hladik <radek@eadresa.cz>:Hi, I am a little bit confused about patterns behavior when used in AllowedUsers directive. I am trying to limit root logins to localhost. First I tried AllowedUsers root@localhost !root which should enable root from localhost and all nonroot users from anywhere. However the username part is matched with match_pattern function and this function does not take ! into account (see func match_user in match.c). Secondly I tried DenyUsers root@!localhost which should deny root when logging from anywhere but localhost. Function match_host_and_ip does call match_hostname which calls match_pattern_list. But if match_hostname function returns -1 which means "match found and negation was requested", match_host_and_ip return false as there would be no match. As fact at least one _positive_ match is required to return true:
/* negative ipaddr match */ if ((mip = match_hostname(ipaddr, patterns, strlen(patterns))) == -1) return 0; /* negative hostname match */ if ((mhost = match_hostname(host, patterns, strlen(patterns))) == -1) return 0; /* no match at all */ if (mhost == 0 && mip == 0) return 0; return 1;
Is there any reason for such a behavior? And is there any other way how to limit root to localhost in sshd? I know I can limit it i.e. via pam_access but I would expect sshd to be able to do it.
Radek Hladik
P.S. Version of OpenSSH is openssh-4.5p1
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Negated patterns in AllowedUsers, Christian Grunfeld |
|---|---|
| Next by Date: | Re: SSH Dropping Connections, Joseph Spenner |
| Previous by Thread: | Re: Negated patterns in AllowedUsers, Christian Grunfeld |
| Next by Thread: | Re: Negated patterns in AllowedUsers, Radek Hladik |
| Indexes: | [Date] [Thread] [Top] [All Lists] |