235 lines
6.8 KiB
Markdown
235 lines
6.8 KiB
Markdown
|
## 중단파 서버 보안 취약점 종합
|
||
|
![[Pasted image 20220615144242.png]]
|
||
|
|
||
|
|
||
|
- [x] 불필요한 SMTP 서비스 실행 여부
|
||
|
- [x] root 계정 원격 접속 제한
|
||
|
- [x] 비밀번호 관리정책 점검
|
||
|
- [x] 관리자 그룹에 최소한의 사용자 포함
|
||
|
- [x] C 컴파일러 존재 및 권한 설정 오류
|
||
|
- [x] /etc/(x)inetd.conf 파일 소유자 및 권한 설정
|
||
|
- [x] SUID, SGID, Sticky bit 설정 파일 점검
|
||
|
- [x] 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정
|
||
|
- [x] at 접근제한 파일 소유자 및 권한 설정
|
||
|
- [x] 과도한 시스템 로그파일 권한 설정
|
||
|
- [x] 계정 잠금 임계값 설정
|
||
|
- [x] SU 명령 사용가능 그룹 제한 미비
|
||
|
- [x] 원격 접속 세션 타임아웃 미설정
|
||
|
- [x] 이벤트 로그에 대한 접근 권한 설정 미비
|
||
|
- [x] 시스템 사용 주의사항 미출력
|
||
|
- [x] 사용자 shell 점검(관리자 그룹에 최소한의 사용자 포함에서 삭제)
|
||
|
- [x] 유추가능한 비밀번호 사용 여부
|
||
|
|
||
|
|
||
|
### 불필요한 SMTP 서비스 실행 여부
|
||
|
- sendmail이 없는경우 postfix 프로세스 검색
|
||
|
> 1. 특정 포트 사용하는 프로세스 찾기
|
||
|
> \# netstat -ntlp | grep :[포트번호]
|
||
|
> 2. 프로세스번호 (Pid)로 프로그램명 검색
|
||
|
> \# ps -ef|grep [PID]
|
||
|
> 3. 해당 프로그램(서비스) 사용중지 및 재실행 방지
|
||
|
> 프로세스 상태& 프로세서 그룹 최상위 프로세스 확인
|
||
|
> \# systemctl status postfix
|
||
|
> \# systemctl stop postfix.service
|
||
|
> 프로세스 재시작 방지
|
||
|
> \# systemctl disable postfix.service
|
||
|
> 해당 포트 주석처리
|
||
|
> vi /etc/services
|
||
|
|
||
|
### root 계정 원격 접속 제한
|
||
|
>1. Not Setting: auth required pam_securetty.so
|
||
|
> cat /etc/pam.d/login | grep 'pam_secure'
|
||
|
> 주석처리되어 있다면 주석 해제
|
||
|
>
|
||
|
>2. PermitRootLogin not exist
|
||
|
> \# cat /etc/ssh/sshd_config | grep -in 'PermitRootLogin'
|
||
|
> vi /etc/ssh/sshd_config
|
||
|
> PermitRootLogin yes -> no로 변경
|
||
|
|
||
|
### 비밀번호 관리정책 점검
|
||
|
> \# vi /etc/login.defs
|
||
|
> 맨 하단에 추가
|
||
|
PASS_MAX_DAYS 90 # 비밀번호 최대 사용 가능 기간
|
||
|
PASS_MIN_DAYS 1 # 비밀번호 최소 사용 가능 기간
|
||
|
PASS_MIN_LEN 8 # 최소 비밀번호 길이
|
||
|
PASS_WARN_AGE 15 # 비밀번호 사용불가 경고일
|
||
|
|
||
|
### 관리자 그룹에 최소한의 사용자 포함
|
||
|
> \# userdel 로 제거
|
||
|
- 불필요한 계정 삭제
|
||
|
> vi /etc/group
|
||
|
> root:x:0:root,test
|
||
|
> -> root:x:0:root
|
||
|
|
||
|
### C 컴파일러 존재 및 권한 설정 오류
|
||
|
>1. cc, gcc 권한&Symbolic여부 확인
|
||
|
> ls -l | grep cc
|
||
|
|
||
|
> 2. 권한제거
|
||
|
> chmod 700 /usr/bin/cc
|
||
|
> chmod 700 /usr/bin/gcc
|
||
|
|
||
|
|
||
|
### /etc/(x)inetd.conf 파일 소유자 및 권한 설정
|
||
|
>1. 소유자 및 권한 확인
|
||
|
ls -l /etc/xinetd.d/*
|
||
|
>
|
||
|
> 2. 소유자 및 권한 변경 (소유자 root, 권한 600)
|
||
|
> chown root /etc/xinetd.d/*
|
||
|
> chmod 600 /etc/xinetd.d/*
|
||
|
|
||
|
### SUID, SGID, Sticky bit 설정 파일 점검
|
||
|
>chmod -s /sbin/unix_chkpwd
|
||
|
>chmod -s /usr/bin/at
|
||
|
>chmod -s /usr/bin/newgrp
|
||
|
|
||
|
|
||
|
### 사용자, 시스템 시작파일 및 환경파일 소유자 및 권한 설정
|
||
|
- 111, 113
|
||
|
chmod 640 /home/dell/.bash_profile
|
||
|
chmod 640 /home/dell/.bashrc
|
||
|
chmod 640 /root/.bash_profile
|
||
|
chmod 640 /root/.bashrc
|
||
|
chmod 640 /root/.cshrc
|
||
|
|
||
|
- 114,
|
||
|
chmod 640 /home/oracle/.bash_profile
|
||
|
chmod 640 /home/oracle/.bashrc
|
||
|
chmod 640 /home/oracle/.kshrc
|
||
|
chmod 640 /root/.bash_profile
|
||
|
chmod 640 /root/.bashrc
|
||
|
chmod 640 /root/.cshrc
|
||
|
chmod 640 /home/test/.bash_profile
|
||
|
chmod 640 /home/test/.bashrc
|
||
|
|
||
|
- 115
|
||
|
chmod 640 /home/oracle/.bash_profile
|
||
|
chmod 640 /home/oracle/.bashrc
|
||
|
chmod 640 /root/.bash_profile
|
||
|
chmod 640 /root/.bashrc
|
||
|
chmod 640 /root/.cshrc
|
||
|
chmod 640 /home/test/.bash_profile
|
||
|
chmod 640 /home/test/.bashrc
|
||
|
|
||
|
|
||
|
### at 접근제한 파일 소유자 및 권한 설정
|
||
|
> chown root /etc/at.deny
|
||
|
> chmod 640 /etc/at.deny
|
||
|
|
||
|
|
||
|
### 과도한 시스템 로그파일 권한 설정
|
||
|
>chmod 640 /var/log/libasm.log
|
||
|
chmod 640 /var/log/libatamptl.log
|
||
|
chmod 640 /var/log/xferlog
|
||
|
|
||
|
- 111번
|
||
|
>chmod 640 /var/log/lsi_1119.log
|
||
|
|
||
|
※ ls -l /var/log/* 재확인 필요 함.
|
||
|
|
||
|
### 계정 잠금 임계값 설정
|
||
|
- vi /etc/pam.d/system-auth 추가
|
||
|
> auth required pam_tally2.so deny=5 unlock_time=60
|
||
|
> account required pam_tally2.so
|
||
|
|
||
|
- vi /etc/pam.d/password-auth 추가
|
||
|
> auth required pam_tally2.so deny=5 unlock_time=60
|
||
|
> account required pam_tally2.so
|
||
|
|
||
|
|
||
|
### SU 명령 사용가능 그룹 제한 미비
|
||
|
1. wheel 그룹 있는지 확인
|
||
|
cat /etc/group
|
||
|
- 없으면 생성 : groupadd wheel
|
||
|
2. su 명령어 그룹 변경
|
||
|
chgrp wheel /usr/bin/su
|
||
|
3. su 명령어 사용권한 변경
|
||
|
chmod 4750 /bin/su
|
||
|
4. wheel 그룹에 su 명령 허용 계정 등록
|
||
|
usermod -G wheel <user_name>
|
||
|
※ su 권한 유저 확인 : ls -l /bin/su
|
||
|
5. /etc/pam.d/su 설정
|
||
|
vi /etc/pam.d/su
|
||
|
> auth required pam_wheel.so use_uid
|
||
|
|
||
|
### 원격 접속 세션 타임아웃 미설정
|
||
|
- 111, 113 : dell, root
|
||
|
- 114, 115 : oracle, root, test
|
||
|
|
||
|
- home에서 각 계정리스트 확인
|
||
|
> cd /home/
|
||
|
> ll
|
||
|
- 계정 디렉터리 접근해서 profile 찾기
|
||
|
> cd /home/[계정명]
|
||
|
> ll - a
|
||
|
- 편집기로 파일 열기
|
||
|
> vi .bash_profile
|
||
|
- 내용 편집
|
||
|
> \# 맨하단에 추가 (Spell 주의)
|
||
|
> TMOUT=300
|
||
|
> export TMOUT
|
||
|
|
||
|
### 이벤트 로그에 대한 접근 권한 설정 미비
|
||
|
vi /etc/pam.d/su
|
||
|
-> auth sufficient pam_rootok.so [[debug]]
|
||
|
|
||
|
### 시스템 사용 주의사항 미출력
|
||
|
> vi /etc/motd
|
||
|
```vi
|
||
|
|
||
|
----------------------------------------------------------------------------------
|
||
|
* *
|
||
|
* Authorized access only! *
|
||
|
* If you are not authorized to access or use this system, disconnect now. *
|
||
|
* *
|
||
|
----------------------------------------------------------------------------------
|
||
|
|
||
|
```
|
||
|
|
||
|
### 사용자 shell 점검
|
||
|
> vi /etc/passwd
|
||
|
> halt:x:1:1::/:/sbin/nologin
|
||
|
> shutdown:x:1:1::/:/sbin/nologin
|
||
|
> sync:x:1:1::/:/sbin/nologin
|
||
|
|
||
|
|
||
|
|
||
|
### 유추가능한 비밀번호 사용 여부
|
||
|
- 114, 115
|
||
|
1. Oracle 유저 패스워드 설정 확인
|
||
|
/etc/passwd
|
||
|
/etc/shadow
|
||
|
2. 비밀번호 설정
|
||
|
passwd [계정 명]
|
||
|
|
||
|
|
||
|
|
||
|
## 서버 시각 동기화
|
||
|
> timedatectl set-ntp yes
|
||
|
>
|
||
|
> vi /etc/ntp.conf
|
||
|
> # server 0.centos.pool.ntp.org iburst
|
||
|
> # server 1.centos.pool.ntp.org iburst
|
||
|
> # server 2.centos.pool.ntp.org iburst
|
||
|
> # server 3.centos.pool.ntp.org iburst
|
||
|
server 194.0.5.123
|
||
|
server 36.91.114.86
|
||
|
server 95.216.144.226
|
||
|
server 140.112.2.188
|
||
|
>
|
||
|
firewall-cmd --add-service=ntp --permanent
|
||
|
firewall-cmd --reload
|
||
|
>
|
||
|
systemctl start ntpd
|
||
|
systemctl enable ntpd
|
||
|
>
|
||
|
>ntpq -p
|
||
|
|
||
|
※ ntpq -p 오류나는 경우
|
||
|
>cd /var/lib/ntp
|
||
|
mkdir drift
|
||
|
cd /var/lib/ntp/drift
|
||
|
vi ntp.drift
|
||
|
chown -R ntp /var/lib/ntp/drift
|
||
|
|