강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

▒ 서버관리 유틸리티 SSU(Superuser Server Utility)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

▒ 서버관리 유틸리티 SSU(Superuser Server Utility)
설치 및 운영

 

  안녕하세요. 오랜기간 강좌를 쓰지 않다, 준비한 쉘 프로그램을 대상으로 강좌를 올립니다.
 지금까지 많은 강좌를 썼습니다. superuser.co.kr ==> linux => doly의 실무강좌
지금까지 쓴 강좌데로 시스템을 설치 하셨다면, 일반적인 서비스 하기에는 적격인 서버를 구축하신 것입니다. 이제는 이 설치하신 서버를 더욱더 안전하고, 편하게 운영하는 방법에 대해서 써 보도록 하겠습니다.
 서버를 잘 운영하기 위해서, 저희 수퍼유저코리아에서 오랜 노하우로 만든 시스템 관리 및 셋팅도구를 공개하기로 하였습니다. 이 유틸리티는 기본적으로 vi 에디터 정도는 사용하시는 분들을 위한 것입니다.
현재 ver 1.0이며, 계속 기능 추가 버그 수정중입니다.  기능은 다음과 같습니다.

  - su_backup (백업)
  - su_traffic (트래픽)
  - su_domain (도메인)
  - su_dbuser (DB 사용자)
  - su_mailuser (Mail 사용자)
  - su_vhost (가상호스트)
  - su_usersetup (사용자 설정)
  - 시스템 점검 (아래 화면 참조)

sample.jpg 


1. 설치
  먼저 프로그램을 다운로드 합니다.
정식 배포 페이지는 http://util.superuser.co.kr 입니다.
하지만 모든 강좌에서 그랬듯 wget으로 편하게 받도록 합니다.
먼저 /root 디렉토리로 이동합니다. 본 프로그램의 모든 것은 /root/bin/* 에 설치됩니다.
cd /root
util.superuser.co.kr 사이트에서 받아옵니다
wget http://util.superuser.co.kr/util_v1.0/util_v1.0_bin.tar.gz
압축된 것을 풀어줍니다.
tar xvfpz util_v1.0_bin.tar.gz -C /
받아온 원본 데이터는 필요없기 때문에 지웁니다.
rm -rf util_v1.0_bin.tar.gz
이렇게 하므로 모든 설치는 끝납니다.


2. 설정파일 설정
간단하게 설치를 하셨다면, 본 프로그램은 서버의 전반적인 것을 관리하기 때문에 설정을 꼼꼼히 해 주어야 합니다.
설정파일의 위치는 /root/bin/conf/su_util.cfg입니다. 다음과 같은 항목들이 있으며 자세한 옵션은 util.superuser.co.kr에서 확인하시기 바랍니다. 본 강좌에서는 중요한 몇가지 옵션만 설명합니다.

admin_mail=메일주소
관리자의 메일주소를 넣어줍니다. 이 주소는 가상쿼타 체크에서 문제가 있을시 위 주소의 관리자에게 메일을 보냅니다. 필요해서 만들었지만, 솔직히 그냥 비워두시는게 좋습니다.^^ 시스템 점검 항목에 있기 때문이죠.

mysql_bin_dir = /usr/local/mysql/bin
mysql_data_dir = /usr/local/mysql/data
위 설정들은 mysql 관련 설정입니다. 컴파일 설치하셨다면 거의 위 설정을 변경하실 필요 없습니다.

apache_bin_ctl = /usr/local/apache/bin/apachectl
apache_conf_dir = /usr/local/apache/conf
htpasswd_path = /usr/local/apache/bin/htpasswd
web_root = allow_httpd.conf
위 설정들은 apache 관련 셋팅들입니다. 컴파일 설치 하셨다면 위와같이 기본 설정을 유지하시기 바랍니다.
여기서 web_root는 사용자들의 web_root 이며, 대부분 www 또는 public_html을 많이 사용하지만 위와같이 설정해 두시면, 아파치 설정파일에 설정된 것에 따라가기 때문에 편하게 사용할 수 있습니다. 보안에 신경이 많이 쓰이신다면, 이 web_root를 임의로(random)으로 하는 것도 좋은 방법입니다. 이렇게 설정하면, web_root가 생성한날짜의 초단위 까지 셋팅되기 대문에 일반적인 경로로 들어오지 못합니다.  같은 서버의 다른 사용자가 DB설정파일등을 훔쳐보지 못하게 하기위한 최소한의 보안 조취입니다.
 
dns_domain = ns.superuser.co.kr
dns_admin_mail = root.superuser.co.kr 

DNS 서버를 사용하신다면 위 설정을 꼭 바꾸어 주시기 바랍니다. ZONE 파일에 들어가는 설정으로
dns도메인과, dns 관리자 메일주소입니다. 위에서 root.superuser.co.kr 은 root@superuser.co.kr과 같은 의미입니다.

backup_dir = /backup
home_dirs = /home
backup_count = 2 

백업과 관련된 설정입니다. /backup이란 디렉토리에 2일 누적하여 백업하는 설정입니다. 홈디렉토리를 /home 아닌 다른 것을 사용한다면 다른 홈디렉토리를 입력해 주시기 바랍니다.

system_mailto = d@supeer.co.kr
proclist = system_check sh run_parts updatedb tar gzip slocate.sh mail ncftp ls awk sort system_check_ma system_check_pr system_test mrtg vi rateup clock backup.sh rm agent.sh agent.sh_day DelOldDir du system_check_di run-parts slocate.cron
system_file = /bin/grep /bin/awk
web_dir = /home/mons/www/system_check
log_count = 60
min_bigfilesize = 51200
htaccess = no
htuser = admin
htpass = 12345
traffic_dev = eth0
시스템 점검시 필요한 설정입니다.
** 메일주소외에 위 설정대로 두시고 사용하시다 변경해 주시기 바랍니다.
처음 나오는 메일주소(system_mailto)는 시스템 점검하고 문제점 보고를 받을 메일주소입니다. 꼭 기록해 주세요.
proclist는 시스템 점검하는 시점에 추가되는 프로세스 명들입니다. 15자까지면 기술해 주시고 꼭 한줄로 적어야 합니다.
system_file은 중요하다고 생각하는 파일들을 절대경로로 기술해주시기 바랍니다.
web_dir 은 점검 결과가 생성될 절대 경로 입니다.
log_count는 시스템 점검 결과를 보관할 일 수  입니다.
min_bigfilesize 는 시스템 점검 항목중 큰 파일 찾는 것이 있는데, 거기서 참조하게 되는 용량입니다.
htaccess 는 점검결과를 web으로 보기 때문에 비밀 번호 설정하는 항목입니다.
htuser 아이디 / htpass 비밀번호
traffic_dev 시스템 점검 항목중에 트래픽 점검이 있는데 모니터링할 장치명 입니다.

이렇게 설정파일을 설정합니다. 설정파일에 간단한 설명이 되어 있으니 참고하시고 설정을 신중하게 하세요.

3. 실행
(1) 시스템 점검 및 백업
주기적으로 실행해야 할 것 클론에 등록
[root@test]# crontab -e
위와같은 명령어를 내리면, vi 편집기 모드로 나오며 여기에 다음 항목을 추가 합니다.
00 03 * * * su - root -c '/root/bin/su_backup --local' >& /dev/null
00 07 * * * su - root -c '/root/bin/system_check' >& /dev/null
*/5 * * * * su - root -c '/root/bin/system_test >& /dev/null'

위 설정은 3시에 백업을 하며, 7시에 시스템 점검을 하며, 5분마다 시스템 로그를 기록합니다.
3시 및 7시는 변경가능하지만, 5분마다 실행하는 것은 변경하지 마시기 바랍니다.

프로그램을 실행시키기 위해 정보들을 모읍니다. (시간이 오래 걸릴 수도 있습니다.)
[root@test]# /root/bin/system_check_init --all
[root@test]# /root/bin/system_check

이렇게 설치를 마쳤다면, 설정하신 절대경로로 웹으로 접근하면, 점검결과를 볼 수 있습니다.
트래픽 및 cpu 정보들은 5분마다 갱신되며, 다른 정보는 하루 한번 갱신되게 됩니다.

(2) 트래픽 측정 (su_traffic)
 전에 언젠가 간단한 트래픽 측정프로그램을 강좌로 쓴적이 있습니다. 그 것과 똑같습니다. snmp 및 snmp등의 좋은 프로그램없이 간단하게 현재 트래픽을 보구 싶을 때 사용합니다.
 사용방법은 다음과 같습니다.
[root@test root]# su_traffic eth0 text 1
 날짜               입력                출력
04-09-09  0:13     : 169 KBit/Sec       6628 KBit/Sec
04-09-09  0:13     : 162 KBit/Sec       5713 KBit/Sec
04-09-09  0:13     : 142 KBit/Sec       6027 KBit/Sec
04-09-09  0:13     : 135 KBit/Sec       5549 KBit/Sec
04-09-09  0:13     : 123 KBit/Sec       5503 KBit/Sec
위와같이 간단하게 트래픽 측정이 가능합니다.

(3) DNS 셋팅 프로그램
 dns에 도메인을 추가하려면, named.conf 파일에서 형식에 맞게 만들어 주어야 하며, zone 파일 또한 만들어 주어야 합니다. 도메인이 많고 적고 이일은 귀찮은 일입니다. 아래 프로그램을 이용하면 간단하게 해결할 수 있습니다.
 사용방법
[root@ns root]# su_domain --add test.com 123.123.123.123

- 도메인 추가
 name 서버 RELOAD 중....
이렇게 간단하게 셋팅완료됩니다.
[root@ns root]# cat /etc/named.conf
zone "test.com" IN {type master; file "test.com.zone"; allow-update { none; }; };
[root@ns root]# cat /var/named/test.com.zone
$TTL 86400
@       IN      SOA     ns.superuser.co.kr. root.superuser.co.kr. (
                        20040909 0      ; 시리얼값 (년월일시간)으로 대부분 셋팅
                        3H              ; 2차 네임서버가 1차 네임서버에 접속하는 시간
                        15M             ; 접속 실패시 다시 시도할 시간 간격
                        1W              ; 1차 네임서버에서 데이터가 없다면 1주 이후에 지워진다.
                        1D )            ; 위에서 설정한 TTL 값과 같은 의미
;
        IN      NS      ns.superuser.co.kr.     ; 도메인을 소유한 DNS의 도메인
        IN      MX      10 mail.test.com.       ; 메일을 보낼 도메인 또는 주소
        IN      A       123.123.123.123         ; 도메인이 찾아갈 IP 주소
www     IN      A       123.123.123.123         ; www.도메인이 찾아갈 IP주소
mail    IN      A       123.123.123.123         ; 메일서버 아이피
*       IN      A       123.123.123.123         ; 모든 서브 도메인이 찾아갈 서버 ip 주소
[root@ns root]#
이렇게 간단하게 셋팅됩니다.

- 도메인 삭제
[root@ns root]# su_domain --del test.com     
위와같이 입력하면 zone 파일은 지우고, named.conf 파일에서 도메인과 관련된 위치로 커스를 위치시킵니다.
간단하게 dd 라고 입력해주면 삭제되고, ESC 누른다음 :wq 라고 입력하면 삭제 작업은 끝나고 네임서버가 재시작됩니다.
물론 편집도 가능하니 메뉴얼을 참고하세요.

(4) mysql 사용자 셋팅 프로그램
 mysql의 사용자 설정은 서버에서 다른 사용자 설정하는 것 보다 까다롭습니다. 입력해야 할 것들이 많고 많은 시간을 필요로 합니다. 이 번거러운 사용자 설정을 명령어 한줄로 한다면 아주 편리할 것 같아 이렇게 만들었습니다.
(mysql 3.23.* , mysql 4.0.* 모두 사용가능합니다.)

- 사용자 추가
[root@test root]# su_dbuser --add tes tes tes

- 사용자 삭제
[root@test root]# su_dbuser --del tes tes    

사용자 비밀번호 변경하는 것도 있습니다. 매뉴얼을 참고 하시기 바랍니다.
중간에 mysql root 비밀번호를 입력해야 합니다.


(5) mail 사용자 관리 프로그램
  전문적인 메일서버가 아니더라도, sendmail으로 간단하게 메일서버를 운영하는 경우가 대부분입니다. 이럴 경우 메일 사용자들을 관리하는 일은 특별한 정책없이는 힘든 일입니다. 메일만을 사용할 사용자는 쉘 계정을 주지 않는 것이 대부분이며, 가상 사용자로 셋팅해야 할 경우도 많습니다. 이런 번거러운 작업들을 간단하게 처리해 주는 프로그램입니다.

- 메일 사용자 추가
[root@test root]# su_mailuser --add test.com tes tes
메일을 받을 수 있게 도메인 셋팅까지 한번에 끝내줍니다.

-사용자 삭제
[root@test root]# su_mailuser --del tes             
위와같이 간단하게 삭제 가능합니다.
그 밖에도, 포워딩 및 메일 사용자 비밀번호 변경, 메일 사용자를 보여주는 기능이 있습니다.


(6) 아파치 가상 도메인 셋팅 프로그램
 요즘은 서버 한 대에 하나의 도메인만을 셋팅해서 사용하는 분들은 거의 없다고 생각합니다. 아파치의 가상호스트 기능을 사용해서 많은 도메인을 하나의 서버에서 사용할 것입니다. 도메인이 추가 삭제 될 때마다 httpd.conf 파일을 건드려야 하고, 실수가 있을 수도 있습니다. 간단하게 이 기능을 해주는 프로그램이 있습니다.

- 도메인 추가
[root@test root]# su_vhost --add /home/doly/www doly.com
이렇게 하면 /hom/doly/www를 웹root로 하고, doly.com 및 www.doly.com 에 대한 것 까지 셋팅완료됩니다.

- 도메인 포워딩
[root@test root]# su_vhost --redirect www.doly.com www.doly.net doly.net doly.co.kr
위와같은 명령을 내리면, doly.co.kr , dol.net 모두 www.doly.com으로 포워딩 합니다.

- 도메인 삭제
[root@test root]#  su_vhost --del doly.com
위와같이 입력하면, httpd.conf 파일을 열어서 관련 도메인이 위치한 곳을 찾아 주며, dd 라는 키로 지우고, ESC ,:wq로 저장하고 나오면 끝납니다.(vi 편집기 필수기능은 숙지 하시기 바랍니다.)

(7) 사용자 설정 프로그램 (WEB, DB, Mail)
 본 프로그램은 사용자 추가, 메일설정, db 설정까지 한꺼번에 해 주는 프로그램입니다. 호스팅서버에서 사용자 추가시에 아주 유용하게 사용할 수 있습니다.

- 사용자 추가
[root@test root] su_usersetup --add home doly 1234 doly.com
위와같은 형식으로 설정합니다. home사용자 홈디렉토리입니다. /home/사용자아이디 이렇게 들어가게 되는거죠.
doly는 아이디이고, 1234는 비밀번호입니다. doly.com 은 도메인 입니다.

- 사용자 삭제
[root@test root] su_usersetup --del doly doly.com
이렇게 하면 설정된 계정 및 도메인을 삭제할 수 있습니다.

(8) 가상 쿼타 활용
  호스팅 서버를 운영하다보면 DISK용량을 제한해야 할 때가 많습니다. linux에서 제공하는 quota를 설정해 버리면, 쿼타를 넘어 버리는 사용자는 자료가 지워지는 문제가 발생하여 고객과 분쟁이 일어날 경우가 있습니다. 이런 불상사를 막기 위해서 단순히 용량제한이 넘었을 경우 사용자에게 메일로 알려 주는 시스템입니다. 여기에 db 용량 까지 관리가 가능하며, 만기일 테스트 까지 가능합니다. 가상 쿼타는 시스템점검시 하나의 항목이며, 여기서는 설정파일을 다루도록 하겠습니다.
 설정파일은 /root/bin/conf/vquota_user.cfg 입니다.
사용자계정 용량(MByte) 메일주소 DB제한용량(MByte) 만기일(년월일)
예) doly 3000 do@dol.com 200 050410
이렇게 기술해 주시면 됩니다.

4. 마치며..
 너무 강좌가 길어진 것 같습니다. 쓰는데 시간이 올래 걸렸지만, 읽는데도 시간이 오래 걸릴 것같습니다. 항상 그렇듯 새로운 것을 사용한다면, 조금의 의심을 하고 시작합니다. 이 프로그램 역시 사용하기엔 조금 거부감이 들지도 모릅니다. 하지만 사용하고나면, 편함을 알게됩니다. 강좌를 마감하는 시점은 홀까분 하면서도 부족한 것 같은 복잡한 마음입니다.
  혹시 이 프로그램에 대한 질문 및 버그를 발견하게 되면, 메일 한통 보내주기 바랍니다. 메일주소는 doly 골뱅이superuser.co.kr 입니다. 그리고 본 강좌에 대한 질문은 util.superuser.co.krQ&A게시판에 올려주시기 바랍니다. 메일 주소를 무단 수집해서 스팸메일을 보내는 이를 막기 위해서 위와 같이 표기했으며, 골뱅이 부분은 @ 치환하면 됩니다.
  본 강좌에 대한 저자권은 (주)수퍼유저에 있으며, 본 사이트외 배포를 금지합니다.
                                                         이상... 수퍼유저 운영자 doly ...

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,038 명
  • 현재 강좌수 :  35,813 개
  • 현재 접속자 :  104 명