Wisdom’s Cloud

[Linux] [CentOS] 보안 설정 본문

LINUX/Advanced

[Linux] [CentOS] 보안 설정

지혜로운지혜쓰 2022. 9. 16. 16:55

패스워드 정책 설정에 이어 몇 가지 보안 설정을 해보자.

 

 

 

1. history에 timestamp 설정하기

어떤 command를 언제 남겼는지를 확인하기 위해 history에 timestamp를 설정해보자.

HISTTIMEFORMAT 환경변수를 아래와 같이 설정해주면, "일/월/년 시간" 형식으로 history가 표시된다. 

[root@jhpark20 ~]# echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> /etc/profile
[root@jhpark20 ~]# source /etc/profile

 

timestamp를 설정한 시점부터 시간이 찍히기 때문에 그 전에 입력한 command들은 timestamp를 설정한 시점으로 찍힌다.

 

 

2. 미사용 계정 shell 제한하기

미사용 계정들은 비인가자의 공격에 의해 패스워드가 유출될 위험이 있기 때문에 제거하거나 shell을 제한할 필요가 있다.

shell을 제한하는 방법은 해당 계정의 shell을 /sbin/nologin으로 설정해주면 된다.

[root@jhpark20 ~]# usermod -s /sbin/nologin test

 

test 계정의 shell을 제한하였더니 로그인이 안되는 것을 확인할 수 있다.

 

/bin/false로 설정해도 로그인이 불가능해지지만, nologin 사용자의 shell로는 /sbin/nologin 사용을 더 권장한다.

 

 

3. session timeout 설정하기

계정이 접속된 상태로 방치될 경우, 권한이 없는 사용자에게 중요 시스템이 노출되어 악의적인 목적으로 사용될 수 있기 때문에 세션 타임아웃을 설정할 필요가 있다.

세션 타임아웃은 TMOUT 환경변수로 설정하면 된다.

[root@jhpark20 ~]# echo 'export TMOUT=60' >> /etc/profile
[root@jhpark20 ~]# source /etc/profile

 

설정한대로 60초 동안 어떠한 이벤트가 발생하지 않으면 연결을 종료시키는 것을 확인할 수 있다.

 

 

4. umask 설정하기

시스템 내에서 사용자가 새로 생성하는 파일 및 디렉터리의 접근 권한은 umask 값에 따라 정해지기 때문에 잘못 설정된 umask 값은 잘못된 권한의 파일을 생성시킬 수 있다.

 

UID가 199보다 큰 경우, 즉 일반 계정은 기본 umask 값이 002다. 

따라서 일반 계정의 디렉터리 권한 = 777 - 002 = 775 = rwx rwx r-x, 파일 권한 = 666 - 002 = 664 = rw- rw- r-- 이 된다.

 

나머지의 경우, 즉 시스템 계정은 기본 umask 값이 022다.

마찬가지로 시스템 계정의 디렉터리 권한 = 777 - 022 = 755 = rwx r-x r-x, 파일 권한 = 666 - 022 = 644 = rw- r-- r-- 이 된다.

 

이제 other는 권한이 없도록 설정해보자.

/etc/profile과 /etc/bashrc에서 기본 umask 값을 설정할 수 있다.

 

다시 umask 값을 확인해보면, 잘 적용된 것을 볼 수 있다.

 

 

5. ssh 배너 설정하기

ssh 접속 시 배너를 이용하여 사용자에게 보안 경고 메시지를 알릴 수 있다.

메시지는 /etc/issue.net과 /etc/motd에 작성하면 된다.

 

그리고 ssh 구성 파일에서 배너를 활성화한 후, 재시작한다.

 

ssh 접속을 해보면, /etc/issue.net과 /etc/motd이 차이를 알 수 있다.

/etc/issue.net은 로그인 전에 출력되는 메시지를 표시하고, /etc/motd는 로그인 후에 출력되는 메시지를 표시한다.

 

 

6. wheel 그룹 설정하기

관리자 권한이 없는 일반 사용자가 sudo 명령어 사용하여 root 권한을 임시로 획득할 수 없도록 일반 사용자의 sudo 명령어 사용을 제한할 필요가 있다.

따라서 sudo 명령어를 사용할 수 있는 그룹인 wheel 그룹에 사용자를 추가하여 sudo 명령어 사용을 제한할 수 있다.

 

먼저 /etc/sudoers에서 wheel 그룹이 sudo 명령어를 사용할 수 있도록 주석을 해제한다.

패스워드 생략 옵션을 설정하지 않았기 때문에 sudo 명령어 사용 시 패스워드가 필요하다.

 

그리고 wheel 그룹에 centos와 cafetestuser 사용자를 추가한다.

[root@jhpark20 ~]# usermod -aG wheel centos
[root@jhpark20 ~]# usermod -aG wheel cafetestuser

 

centos와 cafetestuser 사용자는 sudo 명령어 사용할 수 있고, wheel 그룹에 속하지 않은 test 사용자는 sudo 명령어를 사용할 수 없는 것을 확인할 수 있다.

 

 

 

[메모]

환경변수 설정을 하면서 shell 설정 파일들의 차이를 정리해보았다.

Login Shell

 

로그인해서 shell을 실행하는 것으로, logout으로 shell을 종료한다.

 

  • /etc/profile: 전역 설정
  • ~/.bash_profile: 지역 설정
Non-Login Shell

 

로그인 없이 shell을 실행하는 것으로, exit로 shell을 종료한다.

 

  • /etc/bashrc: 전역 설정
  • ~/.bashrc: 지역 설정

 

 

 

[참조 문서]

https://access.redhat.com/solutions/46849

 

What's different between /bin/false and /sbin/nologin as nologin user's shell? - Red Hat Customer Portal

What's different between /bin/false and /sbin/nologin as nologin user's shell?

access.redhat.com

https://access.redhat.com/solutions/107683

 

Best practices for umask in Red Hat Enterprise Linux - Red Hat Customer Portal

The way to change the default umask on Red Hat Enterprise Linux 4 and Red Hat Enterprise Linux 5 and Red Hat Enterprise Linux 6 is different. How can I change the umask on different versions of Red Hat Enterprise Linux Are there any issues I can expect if

access.redhat.com

 

'LINUX > Advanced' 카테고리의 다른 글

[Linux] [CentOS] vmcore 분석  (0) 2022.09.24
[Linux] [CentOS] Jumbo Frame  (0) 2022.09.18
[Linux] [CentOS] 패스워드 정책 설정  (1) 2022.09.15
[Linux] [CentOS] YUM Repository  (0) 2022.09.09
[Linux] [CentOS] swap  (0) 2022.09.08