## 중단파 서버 보안 취약점 종합 ![[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 ※ 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