Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[RISOLTO] login via SSH e limiti con PAM
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian)
View previous topic :: View next topic  
Author Message
lavish
Bodhisattva
Bodhisattva


Joined: 13 Sep 2004
Posts: 4296

PostPosted: Sat Jun 30, 2007 12:08 pm    Post subject: [RISOLTO] login via SSH e limiti con PAM Reply with quote

Salve a tutti!
Sto settando un server con gentoo hardened.
Ho riscontrato un problema per quanto riguarda il setting dei limiti con pam: facendo il login via ssh come utente, i limiti per il mio gruppo sono corretti. Se mi loggo come root via su -, i limiti rimangono gli stessi identici. La cosa grave, e' che i processi avviati da root in queste condizioni, sono sottoposti agli stessi limiti che ho settato per il gruppo users.

Un esempio vale piu' di mille parole:

/etc/security/limits.conf
Code:
*               hard    rss             50000
@users          soft    core            15000
@users          hard    core            20000
@users          soft    data            15000
@users          hard    data            20000
@users          soft    nofile          30
@users          hard    nofile          50
@users          soft    rss             50000
@users          hard    rss             10000
@users          hard    stack           10000
@users          soft    nproc           40
@users          hard    nproc           50
@users          hard    priority        5


/etc/ssh/sshd_config
Code:
Port 4022
Protocol 2
LoginGraceTime 1m
PermitRootLogin no
MaxAuthTries 3
PasswordAuthentication no
UsePAM yes
Subsystem       sftp    /usr/lib/misc/sftp-server


emerge --info
Code:
Portage 2.1.2.7 (hardened/x86/2.6, gcc-3.4.6, glibc-2.5-r3, 2.6.20-hardened-r5 i686)
=================================================================
System uname: 2.6.20-hardened-r5 i686 Pentium III (Coppermine)
Gentoo Base System release 1.12.9
Timestamp of tree: Thu, 28 Jun 2007 14:59:01 +0000
dev-lang/python:     2.4.4-r4
dev-python/pycrypto: 2.0.1-r5
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.60
sys-devel/automake:  1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.16
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17-r2
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O2 -pipe -fforce-addr"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-march=i686 -O2 -pipe -fforce-addr"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="acl apache2 berkdb crypt hardened nls nptl pam pic readline ssl tcpd urandom x86 xorg zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="mouse keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU"
Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY


esempio:
Code:
0 $ ssh -p 4022 www.minimalblue.com
Password:
Last login: Sat Jun 30 13:23:39 2007 from www.routerlogin.com on pts/4
Welcome to MinimalBlue.com

You are allowed to create your own website under $HOME/webroot/htdocs. It will
be available at http://<your_user>.minimalblue.com/.

Remember that you have a quota of 10MB for your home directory and 100MB for
your website ($HOME/webroot/htdocs + $HOME/webroot/cgi-bin).

To use perl cgi scripts, put them into $HOME/webroot/cgi-bin/ and don't forget
to make them executables. They will be available at
http://<your_user>.minimalblue.com/cgi-bin/.

Enjoy ;)
lavish@nebula ~ $ groups
wheel users portage
lavish@nebula ~ $ ulimit -a
core file size          (blocks, -c) 15000
data seg size           (kbytes, -d) 15000
file size               (blocks, -f) unlimited
pending signals                 (-i) 2031
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) 10000
open files                      (-n) 30
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 40
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited
lavish@nebula ~ $ su -
Password:
nebula ~ # groups
root bin daemon sys adm disk wheel floppy dialout tape video
nebula ~ # ulimit -a
core file size          (blocks, -c) 15000
data seg size           (kbytes, -d) 15000
file size               (blocks, -f) unlimited
pending signals                 (-i) 2031
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) 10000
open files                      (-n) 30
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 40
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited


se invece faccio l'autenticazione DIRETTA da console:
Code:
nebula ~ # ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
file size               (blocks, -f) unlimited
pending signals                 (-i) 2031
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) 50000
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 2031
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

e cio' sembra corretto...


Qualcuno mi puo' spiegare perche' tutto cio'?

Grazie ragazzi! :)
_________________
minimalblue.com | secgroup.github.io/


Last edited by lavish on Mon Jul 02, 2007 7:36 am; edited 1 time in total
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4657
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sat Jun 30, 2007 1:14 pm    Post subject: Reply with quote

come è configurato /etc/pam.d/su ?
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
lavish
Bodhisattva
Bodhisattva


Joined: 13 Sep 2004
Posts: 4296

PostPosted: Sat Jun 30, 2007 2:00 pm    Post subject: Reply with quote

come di default:
Code:
#%PAM-1.0

auth       sufficient   pam_rootok.so

# If you want to restrict users begin allowed to su even more,
# create /etc/security/suauth.allow (or to that matter) that is only
# writable by root, and add users that are allowed to su to that
# file, one per line.
#auth       required     pam_listfile.so item=ruser sense=allow onerr=fail file=/etc/security/suauth.allow

# Uncomment this to allow users in the wheel group to su without
# entering a passwd.
#auth       sufficient   pam_wheel.so use_uid trust

# Alternatively to above, you can implement a list of users that do
# not need to supply a passwd with a list.
#auth       sufficient   pam_listfile.so item=ruser sense=allow onerr=fail file=/etc/security/suauth.nopass

# Comment this to allow any user, even those not in the 'wheel'
# group to su
auth       required     pam_wheel.so use_uid

auth       include              system-auth

account    include              system-auth

password   include              system-auth

session    include              system-auth
session    required     pam_env.so
session    optional             pam_xauth.so

_________________
minimalblue.com | secgroup.github.io/
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4657
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Sat Jun 30, 2007 2:15 pm    Post subject: Re: login via SSH e limiti con PAM Reply with quote

lavish wrote:

Qualcuno mi puo' spiegare perche' tutto cio'?

io no :lol: .
ma avanzo delle ipotesi :roll: .

il processo su eredita i limiti dei propri predecessori (account utente, appunto) e li passa ai processi figli.
tu sei comunque root. forse puoi sistemare in .bashrc uno script che riaggiusti le cose.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Flameeyes
Retired Dev
Retired Dev


Joined: 30 Mar 2005
Posts: 187
Location: Dublin, Ireland

PostPosted: Sun Jul 01, 2007 7:00 pm    Post subject: Reply with quote

Okay, per chi fosse interessato, dopo un po' di debug ho trovato la causa di questo 'problema'.

pam_limits, per bug o design, non resetta gli rlimits del sistema quando si apre una nuova shell.. passa su limits.conf e applica le regole che trova.

Visto che l'utente ha già soft e hard limits, e pam_limits non trova altro, li lascia come sta. Questo è tremendamente odioso a mio avviso, ma dovrei provare a contattare gli autori per sapere se è voluto o meno.

La soluzione è porre, per ogni regola che impone un soft/hard limit, una regola precedente valida per * per azzerare il valore al default (0 o unlimited).

pam_limits vedrà quelle regole prima, e setterà il valore.
_________________
You want to know what I'm working on right now? Just follow my blog.
Back to top
View user's profile Send private message
lavish
Bodhisattva
Bodhisattva


Joined: 13 Sep 2004
Posts: 4296

PostPosted: Mon Jul 02, 2007 7:33 am    Post subject: Reply with quote

@Flameeyes: smack!

:mrgreen:

Posto anche /etc/security/limits.conf a questo punto, se puo' essere d'esempio per altri:
Code:
*               soft    core            0
@users          soft    core            0
*               hard    core            unlimited
@users          hard    core            10000

*               soft    data            unlimited
@users          soft    data            15000
*               hard    data            unlimited
@users          hard    data            20000

*               soft    nofile          1024
@users          soft    nofile          30
*               hard    nofile          2056
@users          hard    nofile          50

*               soft    rss             50000
@users          soft    rss             5000
*               hard    rss             50000
@users          hard    rss             10000

*               soft    nproc           1024
@users          soft    nproc           40
*               hard    nproc           2056
@users          hard    nproc           50

@users          hard    maxlogins       5

*               soft    priority        unlimited
@users          soft    priority        5
*               hard    priority        unlimited
@users          hard    priority        5

_________________
minimalblue.com | secgroup.github.io/
Back to top
View user's profile Send private message
djinnZ
Advocate
Advocate


Joined: 02 Nov 2006
Posts: 4831
Location: somewhere in L.O.S.

PostPosted: Mon Jul 02, 2007 10:00 am    Post subject: Reply with quote

Flameeyes wrote:
Questo è tremendamente odioso a mio avviso, ma dovrei provare a contattare gli autori per sapere se è voluto o meno.


Mi pare che sia l'ennesima legacy per compatibilità da qualche parte c'era una specie di spiegazione se la trovo la posto ma a quel che mi ricordo serviva per evitare di ritrovarsi i limiti di weel o root impostati sui demoni avviati come sottoprocessi con su (non con sudo).
_________________
scita et risus abundant in ore stultorum sed etiam semper severi insani sunt:wink:
mala tempora currunt...mater stultorum semper pregna est :evil:
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist :wink:
Back to top
View user's profile Send private message
lavish
Bodhisattva
Bodhisattva


Joined: 13 Sep 2004
Posts: 4296

PostPosted: Wed Jul 04, 2007 11:33 am    Post subject: Reply with quote

Nel file che avevo precedentemente postato ci sono alcuni valori errati (unlimited su nice per esempio).
Per completezza riposto il file dei limiti corretto ;)

Code:
*               soft    core            0
*               hard    core            unlimited
@users          soft    core            0
@users          hard    core            10000

*               soft    data            50000
*               hard    data            100000
@users          soft    data            15000
@users          hard    data            20000

*               soft    fsize           100000
*               hard    fsize           unlimited
@users          soft    fsize           40000
@users          hard    fsize           50000
lavish          -       fsize           unlimited

*               soft    nofile          1024
*               hard    nofile          2056
@users          soft    nofile          30
@users          hard    nofile          40

*               soft    rss             50000
*               hard    rss             unlimited
@users          soft    rss             5000
@users          hard    rss             10000

*               soft    nproc           100
@users          soft    nproc           40
*               hard    nproc           200
@users          hard    nproc           50


*               -       maxlogins       10
@users          -       maxlogins       3
lavish          -       maxlogins       5


*               soft    priority        0
@users          -       priority        5

_________________
minimalblue.com | secgroup.github.io/
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) 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