질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

리눅스 로긴에 관한 질문입니다..

작성자 정보

  • 이충구 작성
  • 작성일

컨텐츠 정보

본문

리눅스 강좌 모음란에서 퍼옴

리눅스에서 su 명령어 사용을 특정사용자에게만...

 

두가지만 손봐주시면 됩니다 .

첫 번째, /etc/group 파일에서 wheel 그룹에 su 명령어를 사용할 사용자를 추가합니다.

아래의 예는 필자가 운영하는 시스템의 경우의 예임.

[root@kebia_1 ]# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
tty:x:5:
disk:x:6:root
lp:x:7:daemon,lp
mem:x:8:
kmem:x:9:
wheel:x:10:root,sspark

두 번째, /etc/pam.d/su 파일에 아래의 빨간색으로 표시된 두줄을 설정해 주시면 됩니다.

[root@kebia_1 ]# cat /etc/pam.d/su
#%PAM-1.0
auth       sufficient   /lib/security/pam_rootok.so
auth       required /lib/security/pam_wheel.so debug group=wheel

# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient   /lib/security/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth       required     /lib/security/pam_wheel.so use_uid
auth       required     /lib/security/pam_stack.so service=system-auth
account    required     /lib/security/pam_stack.so service=system-auth
password   required     /lib/security/pam_stack.so service=system-auth
session    required     /lib/security/pam_stack.so service=system-auth
session    optional     /lib/security/pam_xauth.so

 

세 번째로, su명령어의 사용을 허용한 사용자와 허용되지 않은 사용자가 각각 su명령어를 사용했을 때 /var/log/messages에 다음과 같은 로그기록의 차이점이 있다.

먼저, picasso라는 su명령어사용이 허용되어 있지 않은 (정확히는 /etc/group의 wheel그룹사용자가 아닌 경우)사용자가 su명령어를 사용했을 경우의 로그는 다음과 같은 형식으로 남게된다.

Mar 14 16:34:13 kebia_1 sshd[1799]: Accepted password for picasso from 211.220.193.149 port 1035 ssh2
Mar 14 16:34:13 kebia_1 PAM_unix[1799]: (system-auth) session opened for user picasso by (uid=0)
Mar 14 16:34:25 kebia_1 PAM-Wheel[1831]: Access denied for 'picasso' to 'root'

다음은 su 명령어 사용이 허용된 sspark이라는 사용자가 su명령어를 사용했을 경우의 messages로그 기록예입니다.

Mar 14 16:34:49 kebia_1 sshd[1835]: Accepted password for sspark from 211.220.193.149 port 1036 ssh2
Mar 14 16:34:49 kebia_1 PAM_unix[1835]: (system-auth) session opened for user sspark by (uid=0)
Mar 14 16:34:53 kebia_1 PAM-Wheel[1860]: Access granted to 'sspark' for 'root'
Mar 14 16:34:56 kebia_1 PAM_unix[1860]: (system-auth) session opened for user root by sspark(uid=500)

 

 

 

 

icon04.gif telnet으로 root로그인은 가능하게 하려면

/etc/securetty u u이파일은 root가 로그인가능한 터미널(tty)장치들을 나열해 둔 것이다.
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8

이 장치명은 가상터미널을 의미하는 것으로 root로 이런 가상터미널을 통한 접속이 허용된다는 것을 뜻한다. 그리고, uttyp0
ttyp1
ttyp2
ttyp3

등은 pseudo 터미널을 통해서 root의 접속이 가능함을 뜻하므로 원격지에서 root로 접속을 막으려면 다음설정과 같이 이 pseudo터미널을 모두 주석처리하도록 한다.
#ttyp0
#ttyp1
#ttyp2
#ttyp3

그리고, 이 /etc/securetty파일에 다음과 같은 것을 볼 수도 있을 것이다.
ttyS0
ttyS1
ttyS2
ttyS3

등은 시리얼라인 또는 모뎀을 통한 root의 접속을 허용한다는 것을 뜻한다.
root의 원격지 접속을 막으려면 이 부분도 주석처리하는 것이 현명할 것이다.

누군가가 어떤형식으로든 접속을 하게되면 /bin/login이라는 프로세스가 실행이되어 접속절차를 밟게되는데, root의 로그인일 경우에는 이 /bin/login이라는 프로세스가 /etc/securetty파일을 참조하여 /etc/securetty파일에 나열되어 있는 터미널로만 접속을 허용하게된다.

또한 shadow 패스워드시스템(명령어 pwconv)을 설정하여 사용하고 있다면 /etc/securetty파일의 설정이 무의미해진다.
따라서 shadow패스워드시스템을 설정하여 사용하고 있는 경우엔 (사실 거의 대부분 shadow패스워드를 설정하고 있음) /etc/login.defs에서 root로의 접속가능한 터미널설정을 하도록 한다.

또한가지 알아야 할 것은
원격지접속등을 안전하게 하기위해 ssh등의 프로그램을 통해서 접속을 할 경우에는 이런설정이 무의미해진다는 것을 알아야한다.
즉, 위에서 말씀드린대로 root로 접속을 막았지만, ssh를 통해서 접속을 할 때에는 이런 설정자체가 무의미해지므로 root로 접속이 허용되게 된다. 참고로 ssh의 설정파일은 /etc/ssh디렉토리에 들어있다.

 

 

TCP WRAPER 를 사용하세요.
vi /etc/hosts.allow
in.telnetd : localhost

vi /etc/hosts.deny
in.telnetd : ALL

이렇게 하면 localhost에서 밖에 telnet 접속이 안되지요..
추가를 하시려면 ,(comma)를 찍고 뒤에 ip등을 적으면 되지요.
예) vi /etc/hosts.allow
in.telnetd : localhost, 210.98.136.152, 210.123.122.
이렇게 적으면 - hosts.deny는 위의 상황과 같이..
localhost, 210.98.136.152,   그리고 210.123.122.0 - 210.123.122.255 까지의 ip를
가진 컴퓨터만 접속을 할수가 있답니다.
자세한 사항은
$ man hosts_access
라고 쳐보세요..
아님 일반 리눅스 책에도 많이 나와있으니까. 참조하시길..

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,138 명
  • 현재 강좌수 :  36,196 개
  • 현재 접속자 :  391 명