리눅스 서버 관리 및 설정
MySQL 데이터베이스 및 사용자 생성
다음은 MySQL에서 데이터베이스와 사용자를 생성하는 명령어입니다:
CREATE DATABASE word;
CREATE USER 'word'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE dvwa;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE web1;
CREATE USER 'web1'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON web1.* TO 'web1'@'localhost';
FLUSH PRIVILEGES;
CREATE DATABASE web2;
CREATE USER 'web2'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON web2.* TO 'web2'@'localhost';
FLUSH PRIVILEGES;
외부 접속 허용
외부 접속을 허용하는 명령어입니다. 이는 보안상 위험할 수 있으므로 신중하게 사용해야 합니다:
# 외부접속허용(엄청 위험한 행위)
CREATE USER 'word'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'%';
FLUSH PRIVILEGES;
# 외부접속허용(본인의 IP만 추가)
CREATE USER 'word'@'192.168.0.204' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON word.* TO 'word'@'192.168.0.204';
FLUSH PRIVILEGES;
rsyslog 시스템 구축
서버에서 로그를 수집하고 분석하기 위해 rsyslog를 설정하는 방법입니다.
# /etc/rsyslog.conf 파일 수정
nano /etc/rsyslog.conf
# rsyslog 설정을 통해 포트 514를 열고 로그 수신을 대기합니다
module(load="imtcp")
input(type="imtcp" port="514")
$AllowedSender TCp,10.0.2.0/24, *.st.kr
# rsyslog 서비스 재시작
systemctl restart rsyslog
# rsyslog 포트 확인
netstat -ant | grep 514
로그를 데이터베이스에 저장하기
MySQL을 사용하여 로그를 데이터베이스에 저장하는 방법입니다.
# MariaDB와 rsyslog-mysql 패키지 설치
apt -y install mariadb-server
apt -y install rsyslog-mysql
# MySQL 데이터베이스 확인
mysql
use Syslog;
describe SystemEvents;
select * from SystemEvents;
Rsync 설정
백업을 위해 Rsync를 설정하는 방법입니다.
# Rsync 설치
apt -y install rsync
# /etc/rsyncd.conf 파일 설정
nano /etc/rsyncd.conf
# Rsync 설정 예시
[backup]
path = /backup
hosts allow = 10.0.2.15
hosts deny = *
list = true
uid = root
gid = root
read only = false
# Rsync 서비스 시작
systemctl start rsync
# 3대 서버에서 데이터 전송
rsync -avz --delete --exclude-from=/etc/rsync_exclude.lst /backup log.st.kr::backup
저장 공간 관리
백업 데이터는 많은 저장 공간을 차지할 수 있으므로 LVM과 RAID 설정을 고려합니다.
# LVM 설정 예시
용량: 3G 1G
# RAID 설정 예시
RAID: 미러링 저장 기능으로 데이터베이스를 안전하게 저장
용량: 2G 2G
데이터베이스 복제 기능 활성화
MySQL 데이터베이스 복제 기능을 활성화하는 방법입니다.
# awstats 패키지 설치
apt -y install awstats
데이터 백업 스크립트 작성
주기적으로 백업을 수행하는 스크립트를 작성하여 데이터를 보호할 수 있습니다.
# 백업 스크립트 작성
nano backup.sh
#!/bin/sh
set $(date)
fname="backup-$1$2$3.tar.xz"
tar cvzf /backup/$fname /home/word/public_html
# 스크립트 실행 권한 부여
chmod 755 backup.sh
./backup.sh
# 백업 디렉토리 설정
mkdir /backup
chmod 777 /backup
주기적인 백업 설정 (cron)
cron을 사용하여 주기적인 백업을 설정할 수 있습니다.
# /etc/crontab 파일 수정
nano /etc/crontab
10 16 * * * root /home/dvwa/backup.sh
# cron 서비스 재시작
systemctl restart cron
리눅스 시간 동기화
리눅스 서버의 시간을 동기화하는 방법입니다.
# 시간대 설정
ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime