리눅스 PC (Ubuntu 24.04) 보안 설정
[ 패스워드 복잡성 설정 ]
# apt-get -y install libpam-pwquality
# vi /etc/pam.d/common-password
// 25 번째 줄에 옵션 추가
password requisite pam_pwquality.so retry=3 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
// 26 번째 줄에 옵션 추가
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass yescrypt sha512 minlen=6 maxlen=9
[ 계정 잠금 임계값 설정 ]
# vi /etc/pam.d/common-auth
// 24번째 줄에 아래 내용 추가
auth required pam_permit.so onerr=tail even_deny_root deny=10 unlock_time=300
[ 패스워드 최대 사용기간 설정 ]
# vi /etc/login.defs
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_WARN_AGE 7
PASS_MIN_LEN 8
현재 사용중인 계정은 위와 같은 룰이 적용되지 않기 때문에 아래와 같이 개별적으로 설정해 줍니다.
(패스워드 최대 사용일 : 90일)
# chage -M 90 root
# chage -M 90 sysdocu
(설정 확인)
# chage -l root
# chage -l sysdocu
[ 바이러스 스캔 툴 ]
# apt -y install clamav
# vi clamavscan.sh
#!/bin/bash LOGDIR="/var/log/clamav" LOGFILE="$LOGDIR/clamav-$(date +'%Y-%m-%d').log" USER=$(who | awk '{print $1}') DIRTOSCAN="/home/$USER" if [ ! -d "$LOGDIR" ]; then mkdir -p "$LOGDIR" fi for S in ${DIRTOSCAN}; do DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1) echo "Starting a daily scan of \"$S\" directory." echo "Amount of data to be scanned is \"$DIRSIZE\"." clamscan -ri "$S" >> "$LOGFILE" done exit 0 |
# chmod 700 clamavscan.sh
# echo "0 12 * * 1 root sh /root/clamavscan.sh" >> /etc/crontab
실시간 탐지를 위해 추가 세팅합니다.
# apt -y install clamav-daemon inotify-tools
# echo "fs.inotify.max_user_watches=524288"
# sysctl -p
# freshclam
# systemctl enable --now clamav-daemon
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
# tar xvzf maldetect-current.tar.gz
# cd maldetect-1.6.5
# ./install.sh
감시를 시작합니다.
# maldet --monitor /home
[ 기타 설정 ]
PC 의 모든 포트에 접근 불가 설정을 합니다.
# echo "ALL : ALL" > /etc/hosts.deny
계정 파일 퍼미션을 조정합니다.
# chmod 0400 /etc/shadow
# chmod 0640 /etc/hosts.deny
# chmod 0640 /etc/hosts.allow
불필요한 데몬이 있는지 확인합니다.
# netstat -nltp
iptables 사무실 PC 셋팅용으로 적용합니다.
- 참고 : https://sysdocu.tistory.com/1486
패스워드를 한 번 더 적용합니다.
# echo "root:12345678" | chpasswd
# echo "sysdocu:12345678 | chpasswd
'리눅스 > OS 일반' 카테고리의 다른 글
[PHP] 여러개의 파일 읽기 (fopen multiple files in php) (0) | 2022.04.19 |
---|---|
오류: repo 'appstream'의 메타 데이터를 다운로드하지 못했습니다: Cannot prepare internal mirrorlist: No URLs in mirrorlist (0) | 2022.04.12 |
CentOS 7 에서 OpenSSH 취약점 (취약한 알고리즘) 조치 방법 (0) | 2022.03.31 |
Ubuntu 18.10 싱글모드 (복구모드) 진입 & 계정 잠김 해제 (0) | 2022.03.17 |
OpenSSL 업그레이드 (소스 설치 / 1.0.1k to 1.1.1o in CentOS 7) 및 APM 적용하기 (0) | 2021.12.07 |