Ãʺ¸¿¡ ÀÇÇÑ, Ãʺ¸¸¦ À§ÇÑ Cent OS 6.5 ·Î NAS ¸¸µé¾îº¸±â.
http://www.yongcloud.co.kr/nas_wiki/doku.php?id=linux%EB%A5%BC_%EC%9D¡¦ (1583)
강좌라고 하기엔 부끄럽지만, 삽질의 결과물을 공유하고 싶어서 여기에 올립니다.
전혀 새로울 거 없습니다. 검색하면 다 나오지만, 손가락 덜 아프시라고 한 데 모아두었습니다.
## 작업의 배경 : 기성NAS는 재미없고, 윈도우+기능추가는 뭔가 아쉽고, 핵놀은 불안하고, 시간은 많고, 그래 직접 만들어보자!!
# #참고사이트 : 링크주소 참조
## 하드웨어 : TX100 + 8GB ram + 1TB HDD
## 운영체제 : 바위같은 안정성!! cent os 6.5 minimal( 최소설치, 한글폰트만 추가 )
## ip : 192.168.1.51
## 기능 : APM, FTP, SAMBA, OWNCLOUD, TRANSMISSION, PLEX, MUNIN(모니터링)
comment
** 리눅스를 설치, vi 다루실 정도의 스킬만 있어도 위의 기능을 모두 구현하실 수 있습니다. **
** 아래 명령문들을 드래그 해서 putty 프롬프트에 그대로 붙여 넣으시면 됩니다. **
** 설치/관리의 편의상 모두 패키지로 설치합니다. 설정도 최대한 간편하게 작업하도록 하였습니다.**
** 한 줄씩 드래그/붙여넣기가 귀찮으시면 아래 전체를 복사하셔서 메모장에서 프롬프트( # )를 미리 제거하고 여러 줄을 한꺼번에 붙여넣기 하시면 됩니다. **
그럼 시작합니다!!
==== 업데이트 및 주요 유틸리티 설치 ====
# yum -y update
# yum -y install ntsysv system-config-network-tui setuptool unzip wget rdate crontabs parted
# yum -y install fail2ban jwhois system-config-firewall-tui openssh-clients
==== 시간 동기화 ====
# rdate -s time.bora.net
==== SELinux 비활성화 ====
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
==== iptables 비활성화 ====
#저는 공유기 아래에서 사용할거라 일단 iptables 는 껐습니다. 사용하실 분은 해당 포트만 iptables 에 추가해 주시면 됩니다.
# service iptables stop
# chkconfig iptables off
==== APM 설치 ====
# yum -y install httpd php mysql
# yum -y install gd gd-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel fontconfig fontconfig-devel libxml2 libxml2-devel openssl openssl-devel gmp gmp-devel mhash mhash-devel libmcrypt libmcrypt-devel mysql-server php-mysql php-devel php-gd php-mbstring php-mhash php-xml perl
=== apache 설정 ===
설정파일 백업
# cp -av /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.ori
설정
# sed -i 's/KeepAlive Off/KeepAlive On/' /etc/httpd/conf/httpd.conf
# sed -i 's/#ServerName www.example.com:80/ServerName 127.0.0.1:80/' /etc/httpd/conf/httpd.conf
# sed -i 's/AddDefaultCharset UTF-8/#AddDefaultCharset UTF-8/' /etc/httpd/conf/httpd.conf
# sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/httpd/conf/httpd.conf
# sed -i 's/ServerSignature On/ServerSignature Off/' /etc/httpd/conf/httpd.conf
# sed -i 's/AllowOverride None/AllowOverride All/' /etc/httpd/conf/httpd.conf
=== php 설정 ===
설정파일 백업
# cp -av /etc/php.ini /etc/php.ini.ori
설정
# sed -i 's/short_open_tag = Off/short_open_tag = On/' /etc/php.ini
# sed -i 's/;date.timezone =/date.timezone = "Asia\/Seoul"/' /etc/php.ini
# sed -i 's/allow_call_time_pass_reference = Off/allow_call_time_pass_reference = On/' /etc/php.ini
# sed -i 's/expose_php = On/expose_php = Off/' /etc/php.ini
# sed -i 's/error_reporting = E_ALL \& ~E_DEPRECATED/error_reporting = E_ALL \& ~E_NOTICE \& ~E_DEPRECATED \& ~E_USER_DEPRECATED/' /etc/php.ini
# sed -i 's/register_globals = Off/register_globals = On/' /etc/php.ini
# sed -i 's/magic_quotes_gpc = On/magic_quotes_gpc = Off/' /etc/php.ini
=== mysql 설정 ===
설정파일 백업
# cp -av /etc/my.cnf /etc/my.cnf.ori
# cp -av /usr/share/mysql/my-huge.cnf /etc/my.cnf
--> overwrite : yes
# sed -i 's/skip-locking/skip-external-locking/' /etc/my.cnf
=== 서비스 시작 ===
# service httpd start
# service mysqld start
부팅시 데몬 시작
# chkconfig httpd on
# chkconfig mysqld on
=== mysql 초기설정 ===
# /usr/bin/mysql_secure_installation
--> root 암호 생성
--> 나머지 모두 엔터
=== ftp 서버 ===
# yum install -y vsftpd ftp
# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.ori
설정
# vi /etc/vsftpd/vsftpd.conf
빈 파일에 그대로 입력
--------------------------------------+
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=51000
pasv_max_port=51100
--------------------------------------+
공유기 포트포워딩에서 51000 ~ 51100 열어주세요.
# service vsftpd start
# chkconfig vsftpd on
사용자 추가
# adduser ftpuser
# passwd ftpuser
==== samba ====
# yum -y install samba
# cp /etc/samba/smb.conf /etc/samba/smb.conf.ori
# sed -i 's/MYGROUP/WORKGROUP/' /etc/samba/smb.conf
# sed -i 's/security = user/security = share/' /etc/samba/smb.conf
# sed -i 's/server string = Samba Server Version %v/server string = NAS-51/' /etc/samba/smb.conf
위 빨강 글씨는 탐색기에서 보여질 이름입니다.
설정추가
# vi /etc/samba/smb.conf
아래 내용을 맨 끝에 넣어줍니다.
//--------------------------------------+
[nas-51]
comment = NAS-51
browseable = yes
writable = yes
path = /home/ftpuser
--------------------------------------//
경로는 실제 경로를 넣어줍니다.
# chkconfig smb on
# service smb start
사용자 인증 추가
# smbpasswd -a root
--> 패스워드 입력
# service smb restart
==== owncloud ====
# cd /tmp
# tar -xvf owncloud-latest.tar.bz2
# mv owncloud /var/www/html
# chown -R apache:apache /var/www/html/owncloud
# mysql -uroot -p
sql> CREATE DATABASE owncloud;
sql> quit;
실행:
==== transmission ====
리포지토리 추가
# rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm
# yum repolist
설치:
# yum -y install transmission-daemon
한번 시작/종료
# service transmission-daemon start
# service transmission-daemon stop
# chkconfig transmission-daemon on
사용자 추가:
빨강 글씨는 임의로 넣으세요.
# useradd -m transmission
# passwd transmission
# mkdir -p /home/transmission/Downloads
# mkdir -p /home/transmission/Incoming
# cp /var/lib/transmission/.config/transmission/settings.json /var/lib/transmission/.config/transmission/settings.json.ori
# sed -i 's/rpc-whitelist-enabled": true/rpc-whitelist-enabled": false/' /var/lib/transmission/.config/transmission/settings.json
# sed -i 's/rpc-authentication-required": false/rpc-authentication-required": true/' /var/lib/transmission/.config/transmission/settings.json
# sed -i 's/rpc-username": ""/rpc-username": "transmission"/' /var/lib/transmission/.config/transmission/settings.json
# sed -i 's/rpc-password":.*/rpc-password": "password",/' /var/lib/transmission/.config/transmission/settings.json
# sed -i 's/"download-dir": ".*/"download-dir": "\/home\/transmission\/Downloads",/' /var/lib/transmission/.config/transmission/settings.json
# sed -i 's/"incomplete-dir": ".*/"incomplete-dir": "\/home\/transmission\/Incoming",/' /var/lib/transmission/.config/transmission/settings.json
# sed -i 's/"incomplete-dir-enabled": false,/"incomplete-dir-enabled": true,/' /var/lib/transmission/.config/transmission/settings.json
# chown -R transmission.transmission /home/transmission/Downloads/ /home/transmission/Incoming/
# chmod g+w /home/transmission/Downloads/ /home/transmission/Incoming/
# service transmission-daemon start
--- 실행 ---
==== plex server ====
# yum localinstall plexmediaserver-0.9.8.18.290-11b7fdd.x86_64.rpm
# service plexmediaserver start
실행
==== 모니터링 도구 ====
# yum -y install munin
# vi /etc/munin/munin.conf
아래 주석 제거
//---------------------------------------+
dbdir /var/lib/munin
htmldir /var/www/html/munin
logdir /var/log/munin
rundir /var/run/munin
---------------------------------------//
# vi /etc/munin/munin-node.conf
---------------------------------------+
allow ^127\.0\.0\.1$
allow 192.168.1.51
---------------------------------------+
환경설정파일
# vi /etc/httpd/conf.d/munin.conf
//---------------------------------------+
AuthName "munin"
---------------------------------------//
사용자 munin 의 패스워드 생성
# htpasswd -cm /etc/munin/munin-htpasswd munin
실행:
http://192.168.1.51/munin/
휴~ 여기까지 별 문제 없이 따라오신 분은 위의 기능들이 모두 작동할 거라 생각됩니다.
## 남은 숙제:
사용자/그룹 관리
공유폴더( ftp, samba, owncloud 등등 ) 관리
이 외 기능추가 및 최적화
실제로 사용에 들어가시기 전 위의 단계를 몇번이고 반복해서 본인만의 최적의 조건을 찾으시길 바랍니다.
혹 에러나거나 막히는 부분이 있으시면 답글 달아주세요. 능력이 닿는 한 도와드리겠습니다.
º£ÀÌÆ®·¹ÀÏ Äõµå ¼¼Æ®·Î´Ù°¡ Çؼ Ç®·Îµå ¾à 60¿ÍÆ® ¹Ì¸¸À¸·Î Çϳª ¸¸µé¾îº¼°¡ »ý°¢Áß¿¡ ÀÖÁö¸¸.. ÀÚ±ÝÀÌ ÇÏÇÏ ... ³Ê¹« °¨»çÇÕ´Ï´Ù.OWNCLOUD, TRANSMISSION, PLEX ÀÌ 3 ÇÁ·Î±×·¥Àº ¾î¶²°Ç°¡¿ä? ³Ê¹« ±Ã±ÝÇÏ³×¿ä ´ëÃæ ¼³¸íÀ» ºÎŹµå·Áº¾´Ï´Ù...
http://121.160.93.79:5180/owncloud test / test
Transmission Àº À¥ºê¶ó¿ìÀú¿¡¼ Å䷻Ʈ¸¦ °ü¸®ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.
http://121.160.93.79:9090/transmission/web/
plex ´Â µ¿¿µ»ó ¼¹ö¶ó »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. °ø½Ä»çÀÌÆ®.
https://plex.tv/
Àú°¡ Å¥³À¶§¹®¿¡ ´ä´äÇØÇÏ°í ÀÖ¾ú´Âµ¥...
½Ã°£µµ ³ª°í ÀÌÁ¦ ½½½½ ³ë´ÚÁúÀ» ½ÃÀÛÇØ º¸·Á±¸¿ä....
°¨»çÇÕ´Ï´Ù.
Áý¿¡ ÀÖ´Â ³ëÆ®ºÏ¿¡ Çѹø µµÀü ÇØ ºÁ¾ß °Ú³×¿ä ^^
ÀÚ¹Ù±â¹ÝÇÁ·Î±×·¥À̶ó ÀÎÅÍÆäÀ̽ºµµ ´Ù¸¥ Ç÷§Æû°úµµ µ¿ÀÏÇÏ°í ±â´Éµµ ÁÁ¾Æ¼ ¸¸Á·ÇÏ°í »ç¿ëÁßÀÔ´Ï´Ù.