password로 접근을 필요로 하는 대부분 program들의 대치품이 shadow suite에 포함되어 있다고 해도, 대부분 system에서 password 접근을 필요로 하는 다른 program들이 있다.
Debian 배포판을 쓰고 있다면 (또는 쓰고 있지 않더라도), ftp://ftp.debian.org/debian/stable/source/로부터 다시 만들어야 될 program들의 Debian source를 얻을 수 있다.
이 section의 나머지 부분은 adduser
, wu_ftpd
, ftpd
,
pop3d
, xlock
, xdm
, sudo
같은 program들이
shadow suite를 지원하도록 upgrade하는 법에 대해 다루고 있다.
shadow suite에 대한 지원을 어떻게 program에 넣는가하는 문제는 section C program에 Shadow를 지원하도록 덧붙이기를 보라 (그리고나서 program이 shadow file을 접근할 수 있도록 SUID root나 SGID shadow로 실행해야 되지만)
Slackware 배포판( 다른 것들중에서도)은 /sbin/adduser
라고 불리우는
사용자를 추가할 때 쓰는 대화식 program을 포함하고 있다. 이 program의 shadow
version은
ftp://sunsite.unc.edu/pub/Linux/system/Admin/accounts/adduser.shadow-1.4.tar.gz에서 구할 수 있다.
나는 slackware의 adduser
대신에 Shadow Suite에 있는 program들
(useradd
, usermod
, userdel
)을 사용할 것을 권한다.
그들을 익히는 데 다소 시간이 걸리지만, 그만한 값어치를 한다. 왜냐하면 당신은
좀더 자세히 control할 수 있고, /etc/passwd
와 /etc/shadow
에
알맞은 file locking을 행해주기 때문이다 (adduser
는 아니다).
종 더 자세한 걸 알고 싶으면 Shadow Suite 사용하기를 참조하도록.
하지만, 가지고 있다면 다음처럼 해라:
tar -xzvf adduser.shadow-1.4.tar.gz
cd adduser
make clean
make adduser
chmod 700 adduser
cp adduser /sbin
대부분 Linux system은 wu_ftpd
server를 쓰고 있다. 배포판으로부터
shadow를 설치하지 않았다면, 당신의 wu_ftpd
는 shadow 지원을 하도록
compile되지 않았다. wu_ftpd
는 root process로써 실행되는
inetd/tcpd
로부터 시작된다. 아직도 낡은 wu_ftpd
deamon을 쓰고
있다면, 그 놈은 root 계정을 위태롭게 하는 bug를 지니고 있기에 무조건
upgrade를 해야 된다 (
Linux security home page를 참조).
다행히 source code를 가져와 shadow가 가능하도록 재compile하기만 하면 된다.
쓰고 있는 것이 ELF system이 아니라면, wu_ftp
server는 sunsite의
wu-ftp-2.4-fixed.tar.gz를 쓰면 된다.
일단 가져와서 /usr/src
에 놓은 뒤:
cd /usr/src
tar -xzvf wu-ftpd-2.4-fixed.tar.gz
cd wu-ftpd-2.4-fixed
cp ./src/config/config.lnx.shadow ./src/config/config.lnx
그런다음 ./src/makefiles/Makefile.lnx
을 수정한다:
LIBES = -lbsd -support
를:
LIBES = -lbsd -support -lshadow
으로.
이제 script를 만들고 설치하기 위한 준비가 끝났다:
cd /usr/src/wu-ftpd-2.4-fixed
/usr/src/wu-ftp-2.4.fixed/build lnx
cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
cp ./bin/ftpd /usr/sbin/wu.ftpd
이는 Linux shadow 설정 file을 사용해서 compile하고 server를 설치한다.
내 Slackware 2.3 system에서는 build
를 실행시키기 전에 다음과 같은
일을 해야 했다:
cd /usr/include/netinet
ln -s in_systm.h in_system.h
cd -
ELF system에서 이 package를 compile하는 데 몇가지 문제점들이 보고 되었지만, 다음 release의 Beta version에서는 잘 된다. 그것은 wu-ftp-2.4.2-beta-10.tar.gz이다.
일단 가져와서 /usr/src
에 놓은 뒤:
cd /usr/src
tar -xzvf wu-ftpd-2.4.2-beta-9.tar.gz
cd wu-ftpd-beta-9
cd ./src/config
그런 뒤 config.lnx
를 수정한다:
#undef SHADOW.PASSWORD
을:
#define SHADOW.PASSWORD
으로.
그리고
cd ../Makefiles
Makefile.lnx
를 수정한다:
LIBES = -lsupport -lbsd # -lshadow
를:
LIBES = -lsupport -lbsd -lshadow
으로.
마지막으로 만들고 설치:
cd ..
build lnx
cp /usr/sbin/wu.ftpd /usr/sbin/wu.ftpd.old
cp ./bin/ftpd /usr/sbin/wu.ftpd
당신의 wu.ftpd server가 실제로 어디 있는 지 확인하기 위해
/etc/inetd.conf
를 점검해 보라. 어떤 배포판에서는 server deamon을 다른
장소에 두고, 특히 wu.ftpd는 다른 이름을 하고 있다는 말이 있다.
표준 ftpd
server를 쓰고 있다면 wu_ftpd
server를 쓰도록
권한다. 위에서 얘기한 bug외에는 일반적으로 더 안전한 것으로 알려져 있다.
표준을 계속 고수하거나 NIS을 지원할 필요가 있다면, Sunsite에 ftpd-shadow-nis.tgz가 있다.
POP3가 필요하면, pop3d
program을 재compile해야 한다.
pop3d
는 root
권한으로 inetd/tcpd
에 의해 실행된다.
Sunsite에 두가지 version이 있다: pop3d-1.00.4.linux.shadow.tar.gz 와 pop3d+shadow+elf.tar.gz
둘 다 설치까지 수월하게 진행된다.
shadow suite를 설치하고, X Windows System과 upgrade하지 않고
xlock
으로 screen에 lock을 건다면, Ctrl-Atl-Fx
를 눌러 다른
tty로 login한 뒤 xlock
process를 죽여 할 것이 틀림없다
(또는 Ctrl-Alt-BS
로 X server를 죽이던가). 다행히 xlock
program을 upgrade하는 것은 쉽다.
XFree86 3.x.x를 쓰고 있다면, 아마도 xlockmore
(lock기능에 훌륭한
screen-saver까지 있는)를 쓰고 있을 것이다. 이 package는 shadow와 함께
재compile할 수 있도록 되어 있다. 낡은 xlock
를 쓰고 있다면, 이 걸로
upgrade하도록 권한다.
xlockmore-3.7.tgz
는
ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screensavers/xlockmore-3.7.tgz
에 있다.
대개, 이게 구미에 딱 맞을 것이다.
xlockmore-3.7.tgz
을 구한 다음, /usr/src
에 푼다:
tar -xzvf xlockmore-3.7.tgz
/usr/X11R6/lib/X11/config/linux.cf
file의 다음 line을 바꾸면 된다:
#define HasShadowPasswd NO
를 다음처럼
#define HasShadowPasswd YES
그리고 나서 실행 file을 만들자:
cd /usr/src/xlockmore
xmkmf
make depend
make
마지막으로 모두 제자리에, 바른 permission을 지니게 하면 끝이다:
cp xlock /usr/X11R6/bin/
cp XLock /var/X11R6/lib/app-defaults/
chown root.shadow /usr/X11R6/bin/xlock
chmod 2755 /usr/X11R6/bin/xlock
chown root.shadow /etc/shadow
chmod 640 /etc/shadow
이제 xlock은 잘 돌아갈 것이다.
xdm
는 X-Windows상에서의 login screen을 보여준다. 어떤 system은
특정 level로 가도록 지정하면 xdm
을 시동시킨다(/etc/inittab
를
보도록).
Shadow Suite가 설치되면 xdm
도 update될 필요가 있다.
이는 매우 쉽다.
xdm.tar.gz
는
ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz에 있다.
xdm.tar.gz
를 구한 다음, /usr/src
에서 푼다:
tar -xzvf xdm.tar.gz
/usr/X11R6/lib/X11/config/linux.cf
에서 다음 line을 고친다:
#define HasShadowPasswd NO
를 다음처럼
#define HasShadowPasswd YES
그리고 나서 실행 file을 만들자:
cd /usr/src/xdm
xmkmf
make depend
make
모든 걸 제자리로...:
cp xdm /usr/X11R6/bin/
xdm
은 root 권한으로 실행되기에 permission을 바꿀 필요는 없다.
sudo
는 시스템 관리자가 사용자로 하여금 정상적으로 root 권한을 가지고
program들을 실행할 수 있게 하도록 허용해준다. 이 것은 drive를 mount하는 것과
같은 일을 사용자가 할 수 있도록 허용함으로써, system 관리자가 root 계정으로
접속할 필요를 억제할 수 있다는 면에서 간편하다.
sudo
는 실행될 때 사용자 password를 확인하기 때문에 password를 읽을
필요가 있다. sudo
는 이미 SUID root상태로 동작되기에
/etc/shadow
file에 접근하는 데 문제는 없다.
shadow suite에 맞는 sudo
는
ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz에
있다.
경고: sudo
를 설치할 때, 기존의 /etc/sudoers
는
기본 설정으로 대체된다. 그러므로 기본 설정이외의 것을 쓰고 있다면 backup을
하기 바란다 (또는, Makefile에서 기본 설정 file을 /etc
로 복사하도록
지시하는 line을 제거하면 된다).
이 package는 이미 shadow를 쓸 수 있게 설정되어 있으므로, 재compile하기만 하면
된다 (/usr/src
에 넣고):
cd /usr/src
tar -xzvf sudo-1.2-shadow.tgz
cd sudo-1.2-shadow
make all
make install
pppd server는 여러가지 방식으로 인증할 수 있게 설정할 수 있다:
Password Authentication Protocol (PAP)와 Cryptographic Handshake
Authentication Protocol (CHAP). 대개 pppd server는
/etc/ppp/chap-secrets
와/또는 /etc/ppp/pap-secrets
에 있는
password를 읽는다. 이런 식으로 pppd를 쓴다면, pppd를 다시 설치할 필요가 없다.
(역자주: ppp용 password를 따로 둔다는 뜻인 듯...)
pppd는 login parameter를 사용할 수 있다 (command line이건,
option
file이나 설정을 통해서건). login option이 주어지면,
pppd는 PAP를 위해 /etc/passwd
에 있는 username과 password를
사용할 것이다. 물론 이 경우에 shadow된 password file은 쓸모없다.
pppd-1.2.1d에서 shadow를 지원하도록 code를 덧붙여야 된다.
다음 section에서 pppd-1.2.1d
에 shadow를 지원하도록 하는 예를 보일
것이다 (pppd의 옛 version).
pppd-2.2.0
는 이미 shadow가 지원된다.