728x90
서버 보안 설정 사항 중 몇가지를 적어둔다.
### 패스워드 잠금횟수 설정
vim /etc/pam.d/system-auth
auth required pam_tally2.so deny=5 unlock_time=120 no_magic_root account required pam_tally2.so no_magic_root reset
#account required pam_unix.so 다음 줄에 추가한다.
account sufficient pam_tally2.so
vim /etc/pam.d/password-auth
#auth required pam_tally2.so deny=5 unlock_time=120
auth required pam_tally2.so deny=5 unlock_time=120 no_magic_root account required pam_tally2.so no_magic_root reset
#account required pam_unix.so 다음 줄에 추가한다.
account sufficient pam_tally2.so
### /etc/hosts 파일 소유자 및 권한 설정
chown root /etc/hosts
chmod 600 /etc/hosts
### /etc/(x)inetd.conf 파일 소유자 및 권한 설정
ls -al /etc/xinetd.conf
chown root /etc/xinetd.conf
chmod 600 /etc/xinetd.conf
# 파일이 존재하지 않으면
ls -alR /etc/xinetd.d/
chown -R root /etc/xinetd.d/
chmod -R 600 /etc/xinetd.d/
### /etc/syslog.conf 파일 소유자 및 권한 설정
ls -al /etc/rsyslog.conf
chown root /etc/rsyslog.conf
chmod 640 /etc/rsyslog.conf
### 정책에 따른 시스템 로깅 설정
vim /etc/rsyslog.conf
*.alert /dev/console
*.emerg *
# rsyslog 서비스 재시작
systemctl restart rsyslog
### cron 파일 소유자 및 권한설정
ls -l /usr/bin/crontab
chmod 750 /usr/bin/crontab
# crontab 파일 권한 확인
ls -al /usr/bin/crontab
# cron 관련 설정파일 소유자 및 권한 설정
chown root /etc/cron.deny
chmod 640 /etc/cron.deny
ls -al /etc/cron.deny
# 파일이 존재하면 아래 명령어 실행
ls /etc/cron.d/
chown root /etc/cron.d/cron.allow
chmod 640 /etc/cron.d/cron.allow
chown root /etc/cron.d/cron.deny
chmod 640 /etc/cron.d/cron.deny
### FTP 계정 shell 제한
cat /etc/passwd
# passwd 파일 내 로그인 쉘 설정이 /bin/false 가 아닌 경우 보안 설정
usermod -s /bin/false ftp
### at 파일 소유자 및 권한 설정
ls -l /usr/bin/at
chmod 0750 /usr/bin/at
chown root /etc/at.allow
chmod 640 /etc/at.allow
chown root /etc/at.deny
chmod 640 /etc/at.deny
# 파일 권한 및 사용자 확인
ls -al /etc/at.allow
ls -al /etc/at.deny
### SSH, SFTP 로그 기록 설정(상)
※ SSH
#1. /etc/profile 파일에 아래 설정 수정 및 추가
vim /etc/profile
...
function logging
{
stat="$?"
cmd=$(history|tail -1)
if [ "$cmd" != "$cmd_old" ]; then
logger -p local1.notice "[2] STAT=$stat"
logger -p local1.notice "[1] PID=$$, PWD=$PWD, CMD=$cmd"
fi
cmd_old=$cmd
}
trap logging DEBUG
#2. rsyslog.conf 파일에 아래 설정 추가
vim /etc/rsyslog.conf
...
local1.* /var/log/secure
#3. 변경된 환경변수 적용
source /etc/profile
#4. rsyslog 서비스 재시작
systemctl restart rsyslog
# sshd_config 파일 내 sftp 설정에 "-f AUTHPRIV -l VERBOSE" 설정 추가
vim /etc/ssh/sshd_config
# shift + g 를 눌러 최하단으로 이동한다.
#Subsystem sftp /usr/libexec/openssh/sftp-server
# 아래와 같이 추가한다.
Subsystem sftp /bin/false
Match LocalPort 2222
ForceCommand internal-sftp -f AUTHPRIV -l VERBOSE
# sshd 서비스 재시작
systemctl restart sshd
### root 계정 원격 접속 제한(상)
/PermitRootLogin 으로 찾아서
PermitRootLogin no 로 변경한다.
# sshd 서비스 재시작
systemctl restart sshd
# 만약의 경우를 대비하여 콘솔창을 닫으면 안된다.
# sftp 로 root 접속하는 경우 접속이 안된다.
|
728x90
'Web Security' 카테고리의 다른 글
Secure coding(보안코딩) 구현 고려사항 (4) | 2024.11.16 |
---|---|
SSLCipherSuite (0) | 2024.07.17 |
HTML Purifier 사용법 예시 (0) | 2023.02.28 |
remote IP address (0) | 2021.03.24 |
파일 다운로드 공격 방지 (0) | 2019.07.05 |