반응형

출처 : http://www.ischo.net/board_linux/16077

 

현재 실행 중인 프로세스의 File Descriptor 개수 확인

 

ls /proc/프로세스ID(PID)/fd/ | wc -l 

 

 

1. 현재의 Open 가능한 Maximum 파일 개수 확인

 

cat /proc/sys/fs/file-max 

 

-> 일반유저가 1개의 세션에서 열 수 있는 파일 개수

 

File Descriptor 는 hard, soft 값으로 나뉜다.

 

 

2. 전체 시스템에 적용되는 FD limit 값

 

시스템을 통해 Open 가능한 File Descriptor 개수는 /etc/sysctl.conf 파일로 변경 가능.

 

-> 오라클 및 아파치 등의 프로세스에서 이 값을 많이 요구

 

 

# sysctl -w fs.file-max=655360 

 

혹은

 

# vi /etc/sysctl.conf

  fs.file-max = 655360

# sysctl -p

# sysctl fs.file-max

 

 

3. 유저 레벨 FD limit 값

 

httpd 유저의 soft/hard limits 을 지정

 

# vi /etc/security/limits.conf

  httpd soft nofile 4096

  httpd hard nofile 10240 

 

 

 

출처 : http://blog.naver.com/PostView.nhn?blogId=ryangjm&logNo=10170724995

 

Soft limit (기본값) 확인

 

# ulimit -aS 또는 ulimit -a

 

Hard limit (최대값) 확인

 

# ulimit -aH

 

 

임시 Open File 개수 수정

 

# ulimit -n 2048

 

영구 Open File 개수 수정

 

# vi /etc/security/limits.conf

[user id]    soft    nofile    2048

[user id]    hard    nofile    2048



출처: https://loonyhyun.tistory.com/entry/File-Descriptor-확인-및-설정 [Like to LoonyHyun's Life]

728x90
반응형

허가권 ( Permission )


파일유형 필드에 퍼미션 구조를 이룬다,

읽기권한, 쓰기권한, 실행권한 등 세가지 필드로 구성된다.

 

 

 

-                r w x               r w x                 r w x

파일유형      사용자(user)        그룹(Group)       기타사용자(Other)

 

 

r w x 의 의미

r : 디렉토리/파일을 읽을 수 있는 권한 ( read)

w : 디렉토리/파일을 생성, 수정, 삭제할 수 있는 권한 ( write )

x : 디렉토리 접근, 파일의 실행권한 ( Access/eXute )

- : 해당 권한이 없는 경우 ( bar )

 

 

ex)

rwx r-x r-x

 

소유자는 읽기, 쓰기, 실행 권한을 모두 가지고 있다.

그룹 사용자는 읽기, 실행 권한을 가지고 있다.

기타 사용자는 읽기, 실행 권한을 가지고 있다.

 

ex)

rw- --- ---

소유자는 읽기, 쓰기 권한이 있다

그룹 사용자는 권한이 없다

기타 사용자는 권한이 없다.

 

 

 

# chmod - 허가권 변경 ( Change mode )

형식 : # chmod [모드] [파일명]

 

2가지 모드로 허가권을 변경할 수 있다.

 

기호모드 (상대값) <Symbolic > - 사람의 입장 

숫자모드 (절대값) - 컴퓨터의 입장 

 

 

1.기호모드

 

+    : 허가 권한 부여

-     : 허가 권한 제거

=    : 허가 권한 유지

s     : SetUID, SetGID

t     : StickyBit

u     : 소유자 권한

g     : 그룹 권한

o     : 기타 사용자

a     : 사용자, 그룹, 기타 사용자 모두에게

 

 

기호모드는 대상 ( u, g, o, a )에 대하여 rwx권한을 부여할 것인가 제거할 것인가를 모두 기호로 설정하는것이다

 

Ex)

1. 기타 사용자의 x 권한을 제거할때

기존 :    rwx     r-x     r-x 

# chmod o-x dong

변경후 :  rwx     r-x     r--

 

2. 그룹사용자의 쓰기, 기타사용자 쓰기권한 추가

기존 :    rwx    r-x    r--

# chmod g+w,o+w dong

변경후:    rwx  rwx  rw-

 

 

 

2. 숫자모드

- 각각의 허가권 필드를 3자리 8진수로 표기

- 완전한 표기법은 4자리 이지만 일반적으로 3자리를 사용한다

 

2진수 표기

1 - 해당권한 부여

0 - 해당 권한 해제

 

 

사용자필드        사용자      그룹        기타 사용자

허가권              r w x        r w x        r w x

자릿수              4 2 1        4 2 1       4 2 1

2진수               1 1 1        1 1 1       1 1 1

8진수                  7            7            7

 

Ex)

 

r w x        r - -        r - x

1 1 1        1 0 0      1 0 1

   7            4            5

 

->  # chmod 745 [ 파일명 ]  :  r w x    r - -    r - x

 

 

특수 권한의 종류

 

SetUID

- 실행 파일에 한해서 설정이 가능하며, SetUID 설정이 되어있는경우

실행한 사용자가 아닌 파일을 소유한 사용자의 권한으로 프로세스가 실행된다.

 

SetUID는 보통 root가 소유한 파일에 적용되며, 해당 명령을 실행하는 순간에는 Root 권한을 갖는다.

 

passwd 명령어 ( /usr/bin/passwd )로 패스워드를 지정, 변경시

/etc/passwd,  /etc/shadow 파일의 내용이 변경된다.

 

- /etc/passwd (644) --> root만 수정이 가능하다.

- /etc/shadow (000) --> root만 수정이 가능하다.

 

일반사용자 계정에서 passwd 명령어 실행 시 passwd 파일 소유자 root권한으로 실행되기 때문에

Root만 수정이 가능한 /etc/passwd,  /etc/shadow 파일을 수정할 수 있게된다.

 

SetUID 설정방법

- 기호모드 

- 숫자모드

 

 

SetGID

- 프로세스가 실행한 사용자의 그룹소유자가 아닌 파일의 그룹 소유자 권한으로 실행된다.
- SetGID가 디렉토리에 설정되어 있는 경우, 디렉토리에서 만들어지는 파일이 모두

  해당 디렉토리의 그룹 소유권을 갖는다.

 

 

SetUID 설정방법

- 기호모드  ( g+s ) 

- 숫자모드  ( 2XXX )

 

 

# useradd SetGID-user1

# groupadd SetGID-group

# usermod -g SetGID-group SetGID-user1

# mkdir /practice/SetGID-dir

# cd SetGID-dir

# touch SetGID-file1

# touch SetGID-file2

#cd ..

# chown SetGID-user1:SetGID-group SetGID-dir        // 소유권 변경

# cd SetGID-dir

# touch SetGID-file3

# touch SetGID-file4

# cd ..

# chmod g+s SetGID-dir        // 그룹 허가권 필드 s 변경

 

 

StickyBit

- 모든 사용자가 생성/수정/삭제가 가능한 디렉토리에 적용한다.

- Sticky Bit 설정 후에는 해당 파일의 소유자만 해당 파일을 삭제 할 수 있다.

한마디로, 공용 파일이 있는데 삭제는 소유자만 할 수 있도록 하는 설정.

 

SetUID 설정방법

- 숫자모드  ( 1XXX )

 

 

umask

- 새로운 파일이나 디렉토리 생성시 기본 허가권을 결정하는 기준이 되는 값.

 

디렉토리의 기본 허가권 값은 777 rwx rwx rwx 이다.

파일의 기본 허가권 값은 666 rw-  rw-  rw- 이다.

 

해당 값에서 UMASK 값을 빼고 남은 값으로 기본 허가권이 결정된다.

 

 

디렉토리 

파일 

기본값

777 

666 

UMAK  

022 

022 

결정된 허가권

755

644

 기호모드

rwx r-x r-x

rw- r-- r--

 

Ex)

UMASK 값이 007 일때,   디렉토리의 기본값은 770        파일의 기본값은 660이 된다.

UMASK 값이 200 일때,   디렉토리의 기본값은 577        파일의 기본값은 466이 된다.

UMASK 값이 040 일때,   디렉토리의 기본값은 737        파일의 기본값은 636이 된다.

 

 



출처: https://tyen.tistory.com/40 [TYen]

728x90
반응형

서버를 관리하며 보안의 중요성을 조금.. 느끼죠

이따금 필요하지만 불편하기도 한 것이 보안이라고 생각합니다. 

 

오늘은 일반 계정에 su 명령 제한을 두는 방법과, 사용하는 방법에 대해 끄적여봅니다. 

su 명령은 기본적으로 특정 사용자에게만 권한을 주는 것이 보안상 옳습니다.

 

저도 서버를 관리하며 특정 사용자에게만 권한을 주고 있는데요, 

패스워드 임계치 설정까지 해놔서.. 많이 틀리는 날에는.... 마음이 좀 그래요 .. -.- 

 

아무튼 보안 조치는 한 번 해봐야 하니, 진행해보죠 

 

--------------------------------------------------------------------------------------------------------------------

1. 취약점 : 무작위 대입 공격이나 패스워드 추측 공격을 방지하기 위해 특정 사용자에게만 su 접근 권한을 제공할 필요가 있다

2. 조치방법 : 

   a. group에 특정 사용자 지정

         # vi /etc/group

            wheel:x:10:seoyoung

    b. 취약점에 대한 조치 

         # chmod 4750 /usr/bin/su

         # ls -altr /usr/bin/su

           -rwsr-x---root root /usr/bin/su

    c. su 명령어 사용그룹(허용된 그룹) 설정 여부 확인

         #cat /etc/pam.d/su

               auth required /lib/security/pam_wheel.so debug group=wheel 

               

3. 결과 (조치 후 영향)
   : 허용된 그룹에서만 su 명령어를 사용할 수 있다

-------------------------------------------------------------------------------------------------------------------

 

결론만 말씀드리면, 

 

CentOS 조치 방향을 ubuntu 서버에 해당 내용을 조치하여 모든 계정에서 root 권한을 가질 수 없게 되는 상황이 발생해버렸어요... :( 

 

$ su -

Password:

su: authentication failure

 

root로 접속 중인 세션이 있었어서.. 참 다행이었죠 

일반 상황이었다면, root passwd를 설정해준다면 재접속이 가능하실 겁니다 

 

명령어는, 

# passwd root

new password: 설정 할 패스워드

Retype new password: 한 번 더 입력

 

다시 본론으로 돌아가, 아래 내용을 확인해봅니다 

    1. /etc/group 내 wheel 그룹에 일반 계정이 포함되어 있다

         wheel:x:10:seoyoung

    2. /etc/pam.d/su 폴더 내 아래 내용이 기입되어 있다

         auth required /lib/security/pam_wheel.so debug group=wheel 

 

위 두가지 내용이 적용 된 후 , su 파일 권한을 확인해보니  chmod 4750이 그대로 적용되있음을 확인했고, 여전히 접근이 안되죠...

 # ls -altr /usr/bin/su

    -rwsr-x---root root /usr/bin/su

 

이 상태라면 wheel 그룹에 포함되지 않은 일반 사용자가 /usr/bin/su 를 이용할 수 없는 것이 정상인 상태입니다만...ubuntu는 아니랍니다... 

 

 

 

여기서 잠시, chmod 는 파일의 접근 권한을 설정하게 되는 명령어인데요. 

기호 또는 숫자로 권한을 설정하곤 하죠, 

https://habiis.tistory.com/11?category=701517

 

[LINUX] 권한 관리 명령어 정리

리눅스에는 다양한 사람들이 접근할 수 있기때문에 모두가 수정 및 삭제가능 그렇기 때문에 계정, 그룹, 파일에 권한을 쓸 수 있도록 설정할 수 있음 읽기(Read), 쓰기(Write), 실행(eXecute) 권한을 줄 수 있고,..

habiis.tistory.com

그런데 여기서는 chmod 4750 4자리의 숫자로 권한을 입력합니다. 

4자리로 권한을 제공하는 SUID, SGID, Sticky bit 설정에 대해서는 추후 끄적여볼게요

 

자꾸 다른길로 .. 

 

 

이제 특정 사용자도 su 접근을 허용해줘봅시다 T.T  

#chmod 4755 /usr/bin/su

#chown root.wheel /usr/bin/su

# ls -altr /usr/bin/su

    -rwsr-xr-x root wheel /usr/bin/su

 

이젠 root와 wheel 그룹에 속한 일반 계정이 su 권한을 사용할 수 있어요

제 wheel 그룹엔 seoyoung 계정이 들어있으므로 해당 계정으로만 접근 할 수 있습니다 :) 

 

* chmod 4755를 사용하는 이유

  : su 의 password 입력 시, 잠시 root 권한을 가지고 shadow 패스워드와 비교를 하게 되는데, 755일 경우 shadow 파일을 읽어내지 못함

    기본적으로 shadow 파일은 아무 권한도 가지지 않기 때문에 su를 755 설정할 경우, shadow도 755설정을 하여 계정이 읽을 수 있도록

    허용이 필요하나, 보안의 문제가 있어 chmod 4755를 권고함

 

 

 

 

su 접근 못한다고 속상해하지맙시다 

언제나 문제는 해결되기 마련 :) 

 

 

 

.... 

 

 

해제하는 방법

끝!! 

[출처] https://habiis.tistory.com/55

728x90

+ Recent posts