리눅스 서버를 처음 설치한 뒤 안정성과 성능을 높이기 위해 꼭 필요한 OS 튜닝 작업을 정리했습니다.
이 가이드는 CentOS 7/8과 Ubuntu 18/20에서 공통적으로 적용할 수 있는 설정입니다.
1. OS 기본 설정
1.1 패키지 업데이트
* CentOS
yum update -y
* Ubuntu
apt update && apt upgrade -y
1.2 타임존 설정 및 시간 동기화
서버 시간을 정확히 설정하여 로그 관리 및 작업 스케줄에 오류가 없도록 합니다.
* 타임존 설정
timedatectl set-timezone Asia/Seoul
* 시간 동기화
- Chrony 사용
yum install -y chrony # CentOS
apt install -y chrony # Ubuntu
systemctl enable --now chronyd
- rdate 사용(옵션)
yum install -y rdate # CentOS
apt install -y rdate # Ubuntu
rdate -s time.bora.net
1.3 호스트명 변경
서버 식별을 위해 호스트명을 변경합니다.
hostnamectl set-hostname samsosamso
1.4 SELinux 설정
SELinux는 보안을 강화하지만 복잡성을 초래하거나 일부 서비스와 충돌할 수 있습니다.
* 비활성화 방법
vi /etc/selinux/config
SELINUX=disabled
reboot
* 로그는 유지하면서 해제
setenforce 0
vi /etc/selinux/config
SELINUX=permissive
2. 네트워크 및 SSH 보안 튜닝
2.1 방화벽 설정
기본적으로 SSH 포트만 열고 나머지는 차단합니다.
* CentOS
systemctl enable --now firewalld
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
* Ubuntu
ufw allow ssh
ufw enable
2.2 SSH 보안 강화
* 설정 파일 수정
vi /etc/ssh/sshd_config
* 주요 설정
Port 2222
PermitRootLogin no
PasswordAuthentication no
* SSH 서비스 재시작
systemctl restart sshd
3. 커널 및 시스템 리소스 튜닝
3.1 /etc/sysctl.conf 설정
커널 파라미터를 수정하여 네트워크 성능과 리소스 사용량을 최적화합니다.
* TCP FIN Timeout 조정 : 연결 종료 후 포트 해제 시간 단축
net.ipv4.tcp_fin_timeout = 10
* 수신 연결 큐 크기 증가 : 대기 연결 요청 처리 능력 향상
net.core.somaxconn = 65000
* 사용 가능한 포트 범위 확장 : 다중 연결 지원 증가
net.ipv4.ip_local_port_range = 1024 65535
* 파일 디스크립터 한계 설정
fs.file-max = 100000
* TCP 재사용 활성화
net.ipv4.tcp_tw_reuse = 1
* UDP 대기열 크기 증가
net.core.netdev_max_backlog = 250000
* 스왑 사용 최소화
vm.swappiness = 10
* ICMP 요청 차단
net.ipv4.icmp_echo_ignore_all = 1
* 설정적용
sysctl -p
3.2 /etc/security/limits.conf 설정
ulimit를 사용하여 사용자 계정별 리소스 제한을 조정합니다.
* 파일 오픈 개수 증가
* hard nofile 65000
* soft nofile 65000
* 프로세스 생성 한도 증가
* hard nproc 64000
* soft nproc 64000
* 스택 크기 증가
* hard stack 65536
* soft stack 65536
* 코어 덤프 허용
* hard core unlimited
* soft core unlimited
4. 불필요한 서비스 비활성화
서버 리소스를 절약하기 위해 필요하지 않은 서비스를 비활성화합니다.
* 실행 중인 서비스 확인
systemctl list-unit-files | grep enabled
* 비활성화 예시
systemctl disable postfix
5. 추가적인 팁
5.1 시간 단위 로그 관리
서버의 로그를 시간대별로 확인하려면 로그 파일의 설정을 조정합니다.
* logrotate 활용
vi /etc/logrotate.conf
5.2 리소스 모니터링 도구 설치
성능 모니터링을 위해 유용한 도구를 설치합니다.
* htop: 실시간 프로세스 모니터링
yum install -y htop # CentOS
apt install -y htop # Ubuntu
* iotop: 디스크 I/O 모니터링
yum install -y iotop
apt install -y iotop
'OS > Linux' 카테고리의 다른 글
Linux - OpenSSL 소스 설치 가이드: SSH 및 NTP 데몬 문제 해결과 올바른 설정 (0) | 2024.11.21 |
---|---|
Linux - Turnserver 프로세스 및 트래픽 문제 자동화 (0) | 2024.11.19 |
Linux - CentOS 7 프로세스 크래시 디버깅 (0) | 2024.11.14 |
Linux - CentOS 8 네트워크 설정(NetworkManager / nmcli) (0) | 2024.11.13 |
Linux - Crontab에서 Command Not Found 오류 해결 (0) | 2024.11.12 |