2013년 3월 7일 목요일

우분투 서버세팅

기본명령어


#apt-get update 저장소정보 업뎃
#apt-get upgrade 패키지 업글
#apt-get dist-upgrade 패키지 업글 (wide)
#apt-get install 모듈명 모듈설치
#apt-get remove --purge 모듈명 설정파일까지 제거
#apt-get autoremove 알아서 찌꺼기 제거해줌
su 루트계정
su - userid 계정전환
cd 폴더경로 폴더이동
vi 편집
rm -r 폴더삭제
ls -al 폴더정보
chown -R 사용자 유저권한
chmod -R 777 퍼미션
init 0 종료
init 6 재부팅
top 점유율
last 접속로그


ln -s /tmp/myfolder/ myfolderlink 심볼릭링크 ( /타겟위치 /바로가기)

설치후할일


==루트접속가능하게 만들기==
sudo passwd root


==포트바꾸기==
#vi /etc/services
ssh 22 > 22222/tcp
ssh 22 > 22222/udp


#vi /etc/apache2/ports.conf
+NameVirtualHost *:8080
Listen 8080
#vi /etc/apache2/site-available/default
<VirtualHost *:8080>

#vi /etc/ssh/sshd_config
Port 22 > 22222


service ssh restart

ssh ftp 상위접속 막기


chmod 711 /
chmod 711 /bin
chmod 711 /boot
chmod 711 /dev
chmod 711 /etc
chmod 711 /home
chmod 711 /mnt
chmod 711 /opt
chmod 711 /proc
chmod 711 /usr
chmod 711 /usr/local
chmod 711 /var

==기본에디터설정==
export EDITOR=vi

방화벽설정


#ufw enable
#ufw allow 21/tcp
#ufw allow 22222/tcp
#ufw allow 80/tcp
#ufw allow 139/tcp
#ufw allow 445/tcp
#ufw allow 137/udp
#ufw allow 138/udp
#ufw allow 9091/tcp


#ufw status 현재상태
#ufw delete 규칙 규칙삭제

웹서버설치


#apt-get install apache2
#apt-get install mysql-server
#apt-get install php5 php5-mysql


==미디어위키용==
#apt-get install php-intl
#apt-get install php5-xcache


==디폴트폴더 재설정==
#vi /etc/apache2/sites-available/000-default.conf


<VirtualHost *:80>
ServerAdmin crudust@gmail.com
DocumentRoot /home/crudust/www
<Directory /home/crudust/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
Require all granted #퍼미션문제 해결, 필수
</Directory>


#service apache2 restart

FTP설치


#apt-get install vsftpd
#apt-get remove libpam-smbpass 잘못된 패키지 삭제
#vi /etc/vsftpd.conf


>포트변경
+
listen_port=2121
pasv_enable=NO
ftp_data_port=2222
>변경
anonymous_enable=NO
>주석제거
local_enable=YES
write_enable=YES
local_umask=022
>루트접속 막기
chroot_local_user=YES
passwd_chroot_enable=YES
>시작루트 설정
+ local_root=/home


==사용자추가==
#adduser 사용자
#chown -R 사용자 /home/사용자
#chmod -R 777 /home/사용자


>유저 접속시 폴더지정 (해당폴더 위로 접근금지)
#vi /etc/passwd
폴더주소를 /./home/~~~


삼바설치


#apt-get install samba
#apt-get install smbfs
#vi /etc/samba/smb.conf


[global]
workgroup = workgroup # 윈도우즈의 작업 그룹명.
+ unix charset = UTF8
+ dos charset = cp949
+ display charset = UTF8


[아이디]
comment = server
path = /home/아이디
guest ok = no
browseable = yes
writable = yes
create mask = 0755
directory mask = 0755


==사용자추가==
#smbpasswd -a 아이디


#service smbd restart

webdav설치




#a2enmod dav_fs
#a2enmod dav
#chown www-data:아이디 /home/아이디
#htpasswd -c /home/아이디/.passwd.dav 아이디
#chown www-data:아이디 /home/아이디/.passwd.dav
#chmod 660 /var/www/webdav/.passwd.dav
#vi /etc/apache2/sites-available/default
+
   Alias /webdav /home/아이디/
   <Directory /home/아이디/>
       Options Indexes MultiViews
       AllowOverride None
       Order allow,deny
       allow from all
   </Directory>
   <Location /webdav>
       DAV On
       AuthType Basic
       AuthName "webdav"
       AuthUserFile /home/아이디/.passwd.dav
       Require valid-user
   </Location>
#service apache2 restart

트랜스미션 설치


#apt-get install transmission-daemon
#vi /var/lib/transmission-daemon/info/settings.json


"download-dir": "/home/allsunday/Downloads/Torrent/download"
"rpc-username": 유저명
"rpc-password": 패스워드
"rpc-whitelist-enabled": false
"umask": 0
"watch-dir": "/home/allsunday/Downloads/Torrent/download"
"watch-dir-enabled": true
“trash-original-torrent-files”: true
}


==자동삭제==
#vi deltorrent.sh


USER=아이디
PASSWD=패스워드
REMOTE="/usr/bin/transmission-remote"
torrent_ids=$($REMOTE localhost:9091 -n $USER:$PASSWD -l | grep "100%" | cut -b 1-4)


for index in $torrent_ids;do
$REMOTE localhost:9091 -n $USER:$PASSWD -t $index --remove
done


#flexget execute 실행


==스케쥴러 등록==
crontab -e
@hourly /home/경로/deltorrent.sh
@daily
@weekly
@monthly
@yearly
@reboot


==rss자동다운==
#apt-get install python-pip
#pip install flexget
#pip install flexget --upgrade
#apt-get install python-transmissionrpc


# vi ~/.flexget/config.yml


templates:
 global:
   transmission:
     host: localhost
     port: 9091
     username:
     password:


   pushbullet:
     apikey:
     device:
     title: "{{title}}"


tasks:
 feed:
   rss: https://torrents.ohys.net/rss.php?dir=torrent
   regexp:
     accept:
       - (Mayoiga).+?(-)
       - (Flying).+?(-)
   set:
     path: /home/crudust/anime

crontab -e 등록시에 .flexget 폴더 사용자:그룹을 사용자계정(사용자:사용자)으로 변경해야 실행됨


==pushbullet 설정==
1. 안드로이드 앱을깔고
2. templates에 추가
 global:
   pushbullet:
     apikey: (자신의 pushbullet api token key)
     device: (푸쉬를 받길 원하는 device의 고유id)
     title: "{{title}} download start"
     body: "Size: {{content_size}}MB"
3. https://www.pushbullet.com/account 에서 Access Token 확인, Device 삭제가능


MYSQL 설정/복구


mysql -u root -p


==db복원==
mysql> show databases;
mysql> create database DB명;
CTRL+C
mysql -uroot -p DB명 < 백업파일명.sql


==db자동백업==
#vi /home/루트/dbbackup.sh


#!/bin/sh
time=`date +%Y%m%d`
mysqldump -uroot -p비밀번호 kancolle_wiki > $time".sql"
mv $time".sql" /home/crudust/backup/$time".sql"


#crontab -e #root권한으로 해야되서 root crontab으로
@daily /home/루트/dbbackup.sh

프록시


#install apt-get squid3
#ufw allow 3129/tcp
#vi /etc/squid/squid.conf
http_access allow all #http_access allow localhost의 localhost를 all로 수정
#http_access allow manager localhost 주석 처리
#http_access deny manager 주석 처리


==접속로그보기==
sudo tail -f /var/log/squid3/access.log


==지정ip허용==
acl mynet src 192.168.0.1/24
#접근을 허용할 ip 주소를 mynet 이라는 이름으로 지정해두자.


http_access allow mynet
#위에서 설정한 mynet 이라는 그룹의 접근을 허락.
이외의 다른 부분은 크게 건드릴 것이 없는 듯 하다.


==리눅스와 별도 계정 설정 (다이제스트 방식)==
auth_param digest program /usr/lib/squid3/digest_file_auth -c /etc/squid3/passwords
auth_param digest realm proxy
acl digest proxy_auth REQUIRED
http_access allow digest
#http_access allow all 주석 처리
#htdigest 설치
sudo aptitude install apache2-utils -y
#qm 부분은 원하는 ID로 변경
sudo htdigest -c /etc/squid3/passwords proxy qm
#이후에 패스워드 입력