서버 설정 · 2 min read · Feb 03, 2026

Debian Sarge (3.1) with Ruby on Rails and Apache 2 with FastCGI - Page 2

쿼터 설치

apt-get install quota quotatool
  • 프롬프트에: 사용자에게 쿼터 초과에 대한 일일 알림을 보내겠습니까?에 대해 아니오라고 대답합니다.

/etc/fstab을 다음과 같이 편집합니다 (나는 /에 마운트 지점이 있는 파티션에 usrquota, grpquota를 추가했습니다 – 이는 쿼터 지원이 필요한 모든 것이 / 아래에 있다고 가정합니다):

joe /etc/fstab

| # /etc/fstab: 정적 파일 시스템 정보. # # <파일 시스템> <마운트 지점> <유형> <옵션> <덤프> <패스> proc /proc proc defaults 0 0 /dev/sda1 / ext3 defaults,errors=remount-ro,usrquota,grpquota 0 1 /dev/sda5 none swap sw 0 0 /dev/hdc /media/cdrom0 iso9660 ro,user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0 |

그런 다음 실행합니다:

touch /quota.user /quota.group  
chmod 600 /quota.*  
mount -o remount /  
quotacheck -avugm

DNS-서버 설치

apt-get install bind9

보안상의 이유로 BIND를 chrooted로 실행하고 싶으므로 다음 단계를 수행해야 합니다:

/etc/init.d/bind9 stop

파일 /etc/default/bind9를 편집하여 데몬이 비특권 사용자 ‘bind’로 실행되도록 하고, /var/lib/named로 chroot되도록 합니다. 다음 줄을 수정합니다: OPTS=”-u bind”를 OPTS=”-u bind -t /var/lib/named”로 변경합니다:

joe /etc/default/bind9

| OPTS="-u bind -t /var/lib/named" |

/var/lib 아래에 필요한 디렉토리를 생성합니다:

mkdir -p /var/lib/named/etc  
mkdir /var/lib/named/dev  
mkdir -p /var/lib/named/var/cache/bind  
mkdir -p /var/lib/named/var/run/bind/run

그런 다음 /etc에서 /var/lib/named/etc로 구성 디렉토리를 이동합니다:

mv /etc/bind /var/lib/named/etc

구성 디렉토리의 새 위치에 대한 심볼릭 링크를 이전 위치에서 생성합니다 (향후 BIND가 업그레이드될 때 문제를 피하기 위해):

ln -s /var/lib/named/etc/bind /etc/bind

널 및 랜덤 장치를 만들고 디렉토리의 권한을 수정합니다:

mknod /var/lib/named/dev/null c 1 3  
mknod /var/lib/named/dev/random c 1 8  
chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random  
chown -R bind:bind /var/lib/named/var/*  
chown -R bind:bind /var/lib/named/etc/bind

우리는 sysklogd의 시작 스크립트 /etc/init.d/sysklogd를 수정해야 합니다. 그래야 시스템 로그에 중요한 메시지를 계속 기록할 수 있습니다. 다음 줄을 수정합니다: SYSLOGD=””를 SYSLOGD=”-a /var/lib/named/dev/log”로 변경합니다:

joe /etc/init.d/sysklogd

| #! /bin/sh # /etc/init.d/sysklogd: 시스템 로그 데몬 시작. PATH=/bin:/usr/bin:/sbin:/usr/sbin pidfile=/var/run/syslogd.pid binpath=/sbin/syslogd test -x $binpath || exit 0 # 데몬 시작/재시작 옵션 # 원격 UDP 로깅을 위해 SYSLOGD="-r" 사용 # SYSLOGD="-a /var/lib/named/dev/log" create_xconsole() { if [ ! -e /dev/xconsole ]; then mknod -m 640 /dev/xconsole p else chmod 0640 /dev/xconsole fi chown root:adm /dev/xconsole } running() { # pidfile이 없으면 아마도 데몬이 존재하지 않음 # if [ ! -f $pidfile ] then return 1 fi pid=`cat $pidfile` # pid이 없으면 아마도 데몬이 존재하지 않음 # if [ -z "$pid" ] then return 1 fi if [ ! -d /proc/$pid ] then return 1 fi cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1` # syslogd가 없습니까? # if [ "$cmd" != "$binpath" ] then return 1 fi return 0 } case "$1" in start) echo -n "시스템 로그 데몬 시작 중: syslogd" create_xconsole start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD echo "." ;; stop) echo -n "시스템 로그 데몬 중지 중: syslogd" start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile echo "." ;; reload|force-reload) echo -n "시스템 로그 데몬 재로드 중: syslogd" start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile echo "." ;; restart) echo -n "시스템 로그 데몬 재시작 중: syslogd" start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile sleep 1 start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD echo "." ;; reload-or-restart) if running then echo -n "시스템 로그 데몬 재로드 중: syslogd" start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile else echo -n "시스템 로그 데몬 재시작 중: syslogd" start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD fi echo "." ;; *) echo "사용법: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}" exit 1 esac exit 0 |

로깅 데몬을 재시작합니다:

/etc/init.d/sysklogd restart

BIND를 시작하고 /var/log/syslog에서 오류를 확인합니다:

/etc/init.d/bind9 start  
less /var/log/syslog
Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.