Ubuntu:Feisty th/Servers

From

Jump to: navigation, search

Contents

เครื่องเครือข่าย

เครื่องเครือข่าย Ubuntu Feisty LAMP

เครื่องเครือข่ายสำหรับระบบ AntiVirus

วิธีการติดตั้ง ClamAV AntiVirus บนเครื่องเครือข่าย

sudo clamscan -r /location_of_files_or_folders

วิธีการตรวจไวรัสใน ไฟล์/โฟลเดอร์ แบบอัตโนมัติ

ในหัวข้อ Automatically scan files/folders for viruses at midnight everyday
* * * * * means minute hour date month year
 export EDITOR=gedit &&  sudo crontab -e
*Append the following line at the end of file
00 00 * * *  sudo clamscan -r /location_of_files_or_folders
  • ทำการบันทึกข้อมูล

เครื่องเครือข่ายเพื่อการตรวจสอบระบบ

ถ้าคุณต้องการตรวจสอบเครื่องเครือข่ายและเครื่องลูกที่ใช้อูบุนตู ไม่ว่าจะเป็น จำนวนหน่วยความจำที่ใช้, คุณภาพการทำงานของตัวประมวลผล, ค่าเฉลี่ยของการโหลด, จำนวนเนื้อที่ที่ถูกใช้ไป, การตรวจสอบระบบ Mysql, การตรวจสอบระบบเครือข่าย, การตรวจสอบระบบในด้านอื่น คุณต้องอ่านตรงนี้

Monitor your Ubuntu Servers and Clients using Munin

เครื่องเครือข่ายสำหรับการพิมพ์ (cupsd)

วิธีการติดตั้ง cupsd

Cupsd ควรที่จะได้รับการติดตั้งอัตโนมัติโดยตัวของระบบตั้งแต่แรกอยู่แล้ว. ให้ตรวจสอบดูว่ามีไฟล์อยู่ที่นี่หรือเปล่า "/etc/init.d/cupsys". หรือถ้าคุณอยากจะติดตั้งเองก็สามารถทำได้
 sudo apt-get install cupsys*

วิธีการเพิ่มเครื่องพิมพ์เข้าไปในระบบ

  • ไปยัง System -> Administration -> Printing.
  • เลือก "Add printer".
  • ให้ทำตามคำแนะนำของ "Add printer wizard" ที่ปรากฎขึ้นบนหน้าจอ

วิธีการสั่งพิมพ์ผ่านเครือข่ายบนเครื่องอูบุนตู

  • ตรวจทานดูว่าได้ตั้งค่าเครื่องพิมพ์ไว้อย่างดีแล้ว
  • ทำการแชร์เครื่องพิมพ์ - System -> Administration -> Printing -> Global Settings menu -> Share printers
  • Server ip address: 192.168.0.1
  • Client ip address: 192.168.0.23
    • การตั้งค่าบนเครื่องเครือข่าย
 sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.backup
 gksudo gedit /etc/cups/cupsd.conf
ให้ค้นหาโค้ดข้างล่างนี้
<Location />
  ...
  Allow localhost
  ...
</Location>
และเพิ่มโค้ดชุดนี้ลงไป
 Allow 192.168.0.23
ทำการรีสตาร์ท cups.
 sudo /etc/init.d/cupsys restart
    • การตั้งค่าบนเครื่องลูก
 sudo cp /etc/cups/client.conf /etc/cups/client.conf.backup
 gksudo gedit /etc/cups/client.conf
และเพิ่มโค้ดชุดนี้ลงไป
 ServerName 192.168.0.1
ทำการรีสตาร์ท cups.
 sudo /etc/init.d/cupsys restart
ลองพิมพ์ "lpq" เข้าไปและเห็นอะไรคล้ายๆ ตัวข้างล่างนี้
 vitek@lightfox:~$ lpq
 HPLJ6P is ready
 no entries

วิธีการสั่งพิมพ์ผ่านเครือข่ายบนเครื่องวินโดว์


1.19.4.5

วิธีการตั้งค่าเครื่องพิมพ์เครือข่ายแบบ 4 port

ทำการตั้งค่า COMPUSA บนเครื่องอูบุนตู

(1) ไปยัง System -> Administration -> Printing.

(2) และทำการเพิ่มเครื่องพิมพ์โดยการเลือก Add a printer

(3) เลือกที่ Network Printer จากนั้นเลือก HP JetDirect

(4) ตรงที่เขียนว่า Host you put in the IP Address of the Print server จะมี Smb4k

(5) ตรง Port ให้ใส่ 9100 สำหรับ USB port 1, 9101 สำหรับ USB port 2, 9102 สำหรับ USB port 3, และ 9103 สำหรับ USB port 4.

(6) จากนั้นกด forward เพื่อทำการติดตั้งเครื่องพิมพ์

เครื่องเครือข่ายระบบ NFS

วิธีติดตั้งเครื่องเครือข่ายระบบ NFS

sudo apt-get install nfs-kernel-server nfs-common portmap

ทำการตั้งค่า Portmap ไม่ให้ bind กับ loopback interface:

sudo dpkg-reconfigure portmap 
sudo /etc/init.d/portmap restart

ระบุแชร์โฟลเดอร์(export):

sudo vi /etc/exports

กำหนดค่าของแชร์โฟลเดอร์(export):

วิธีข้างล่างนี้จะทำการแชร์โฟลเดอร์สำหรับ IP addresses ระหว่าง 192.168.1.1 และ 192.168.1.255 ซึ่งผู้อื่นสามารถเขียนและอ่านโฟลเดอร์นี้ได้:

/path/to/shared/files 192.168.1.1/24(rw,no_root_squash,async)

วิธีข้างล่างนี้จะทำการแชร์โฟลเดอร์สำหรับ IP addresses ระหว่าง 192.168.1.1 และ 192.168.1.255 ซึ่งผู้อื่นสามารถอ่านโฟลเดอร์นี้ได้อย่างเดียว:

/path/to/shared/files 192.168.1.1/24(ro,async)

เมื่อเสร็จแล้วให้ทำการบันทึกและเริ่มการใช้งานเครือข่ายระบบ NFS ใหม่:

sudo /etc/init.d/nfs-kernel-server restart

ทำการส่งค่าออก

sudo exportfs -a

การติดตั้งเครื่องลูก NFS

sudo apt-get install portmap nfs-common
ต่อเข้ากับระบบด้วยตนเอง
cd ~
mkdir temp
sudo mount 192.168.1.1:/path/to/shared/files temp

อาจต้องทำการรีสตาร์ทระบบ NFS เสียก่อน:

sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-common restart
ต่อเข้ากับระบบแบบอัตโนมัติ

สร้างจุดเชื่อมต่อ:

sudo mkdir /mnt/files

ปรับค่า:

sudo vi /etc/fstab

เพิ่มโค้ดคล้ายๆ กับบรรทัดล่างนี้เข้าไป:

192.168.1.1:/path/to/shared/files /mnt/files nfs rsize=8192,wsize=8192,timeo=14,intr

ทดสอบค่าที่ตั้งขึ้นไปใหม่:

sudo mount /mnt/files

ทำการรีบู๊ทเพื่อทดสอบการเชื่อมต่ออัตโนมัติ

เครื่องเครือข่าย Samba

วิธีการติดตั้งเครื่องเครือข่าย Samba เพื่อการแชร์ไฟล์หรือโฟลเดอร์

sudo apt-get install samba smbfs

วิธีการ เพิ่ม/แก้ไข/ลบ สมาชิกออกจากระบบเครือข่าย

sudo smbpasswd -a system_username
gksudo gedit /etc/samba/smbusers
    • เปิดไฟล์ขึ้นมาใหม่ แล้วเพิ่มบรรทัดข้างล่างนี้เข้าไป
system_username = "network username"
    • ทำการบันทึกข้อมูล
  • วิธีการแก้ไขข้อมูลสมาชิกในระบบเครือข่าย
sudo smbpasswd -a system_username
  • วิธีการลบข้อมูลสมาชิกในระบบเครือข่าย
sudo smbpasswd -x system_username

How to share home folders with read only permission (Authentication=Yes)

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following lines
  security = user
  username map = /etc/samba/smbusers
  • Uncomment the following lines:
;[homes]
;comment = Home Directories
;browseable = no
;valid users = %S
;writable = yes
sudo testparm
sudo /etc/init.d/samba restart

How to share home folders with read/write permissions (Authentication=Yes)

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following lines
  security = user
  username map = /etc/samba/smbusers
  • Find this section
...
# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
  writable = no
...
  • Replace with the following lines
# By default, the home directories are exported read-only. Change next
# parameter to 'yes' if you want to be able to write to them.
  writable = yes
sudo testparm
sudo /etc/init.d/samba restart

How to share group folders with read only permission (Authentication=Yes)

sudo mkdir /home/group
sudo chmod 777 /home/group/
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following lines
 security = user
 username map = /etc/samba/smbusers
  • Append the following lines at the end of file
[Group]
  comment = Group Folder
  path = /home/group
  public = yes
  writable = no
  valid users = system_username1 system_username2
  create mask = 0700
  directory mask = 0700
  force user = nobody
  force group = nogroup

sudo testparm
sudo /etc/init.d/samba restart

How to share group folders with read/write permissions (Authentication=Yes)


sudo mkdir /home/group
sudo chmod 777 /home/group/
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following lines
  security = user
  username map = /etc/samba/smbusers
  • Append the following lines at the end of file
[Group]
  comment = Group Folder
  path = /home/group
  public = yes
  writable = yes
  valid users = system_username1 system_username2
  create mask = 0700
  directory mask = 0700
  force user = nobody
  force group = nogroup
sudo testparm
sudo /etc/init.d/samba restart

How to share public folders with read only permission (Authentication=Yes)


sudo mkdir /home/public
sudo chmod 777 /home/public/
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following lines
  security = user 
  username map = /etc/samba/smbusers
  • Append the following lines at the end of file
[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = no
  create mask = 0777
  directory mask = 0777
  force user = nobody
  force group = nogroup
sudo testparm
sudo /etc/init.d/samba restart

How to share public folders with read/write permissions (Authentication=Yes)

sudo mkdir /home/public
sudo chmod 777 /home/public/
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following lines
  security = user
  username map = /etc/samba/smbusers
  • Append the following lines at the end of file
[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = yes
  create mask = 0777
  directory mask = 0777
  force user = nobody 
  force group = nogroup
sudo testparm
sudo /etc/init.d/samba restart

How to share public folders with read only permission (Authentication=No)

sudo mkdir /home/public
sudo chmod 777 /home/public/
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following line
  security = share
  • Append the following lines at the end of file
[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = no
  create mask = 0777
  directory mask = 0777
  force user = nobody
  force group = nogroup
  • Save the edited file
sudo testparm
sudo /etc/init.d/samba restart

How to share public folders with read/write permissions (Authentication=No)

sudo mkdir /home/public
sudo chmod 777 /home/public/
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
gksudo gedit /etc/samba/smb.conf
  • Find this line
...
;  security = user
...
  • Replace with the following line
  security = share
  • Append the following lines at the end of file
[public]
  comment = Public Folder
  path = /home/public
  public = yes
  writable = yes
  create mask = 0777
  directory mask = 0777
  force user = nobody
  force group = nogroup

  • Save the edited file
sudo testparm
sudo /etc/init.d/samba restart

How to print on remote Ubuntu machine via samba

 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
 gedit /etc/samba/smb.conf
Find the following lines
 ...
 # printing = cups
 # printcap name = cups
 ...
and uncomment them.
 printing = cups
 printcap name = cups
Restart cups server
 sudo /etc/init.d/cupsys restart
Now printers working on your Ubuntu machine should be acessible via samba.

เครื่องมือจัดการเครื่องเครือข่ายแซมบาผ่านเว็บ (SWAT)

วิธีติดตั้งซูเปอร์เซิร์ฟเวอร์ INETD

 sudo apt-get install netkit-inetd

วิธีติดตั้งโปรแกรม SWAT สำหรับดีมอนของเครื่องเครือข่ายแซมบา

 sudo apt-get install swat
  • เปิดโปรแกรมปรับค่า inetd
 sudo gksu gedit /etc/inetd.conf
  • หากมีตัวอักษรดังกล่าวปรากฏ:
 <#off#> swat            stream  tcp     nowait.400      root    /usr/sbin/tcpd  /usr/sbin/swat
  • เปลี่ยนเป็น:
 swat            stream  tcp     nowait.400      root    /usr/sbin/tcpd  /usr/sbin/swat
  • เริ่มโปรแกรมใหม่
 sudo /etc/init.d/inetd restart

SSH Server

How to install SSH Server for remote administration service

sudo apt-get install ssh

How to SSH into remote Ubuntu machine

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
Remote Ubuntu machine: 192.168.0.1
ssh username@192.168.0.1

How to copy files/folders from remote Ubuntu machine into local machine (scp)

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
Remote Ubuntu machine: 192.168.0.1
Remote files/folders location: /home/username/remotefile.txt
Local machine save location: . (current directory)
scp -r username@192.168.0.1:/home/username/remotefile.txt .

How to copy files/folders from local machine into remote Ubuntu machine (scp)

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
Local files/folders location: localfile.txt
Remote Ubuntu machine: 192.168.0.1
Remote Ubuntu machine save location: /home/username/
scp -r localfile.txt username@192.168.0.1:/home/username/

How to copy files/folders from remote Ubuntu machine into local machine (rsync)

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
Remote Ubuntu machine: 192.168.0.1
Remote files/folders location: /home/username/remotefile.txt
Local machine save location: . (current directory)
rsync -v -u -a --delete --rsh=ssh --stats username@192.168.0.1:/home/username/remotefile.txt .

How to copy files/folders from local machine into remote Ubuntu machine (rsync)

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
Local files/folders location: localfile.txt
Remote Ubuntu machine: 192.168.0.1
Remote Ubuntu machine save location: /home/username/
rsync -v -u -a --delete --rsh=ssh --stats localfile.txt username@192.168.0.1:/home/username/

How to mount remote folders into local Ubuntu machine (sshfs)

e.g. Assumed that remote machine has installed SSH Server service
Read #How to install SSH Server for remote administration service
Remote machine: 192.168.0.1
Remote machine folder location: /media/music
  • Install sshfs
sudo apt-get install sshfs
  • Load kernel driver for sshfs
sudo modprobe fuse
  • Join the 'fuse' user group
sudo adduser your_user_name fuse
  • Logout and login for this to take effect.
  • fix group on /dev/fuse
 sudo chgrp fuse /dev/fuse
  • Create local mountpoint in your home directory
mkdir ~/remote_music
  • Mount the remote folder into ~/remote_music
sshfs 192.168.0.1:/media/music ~/remote_music

How to SSH into remote Ubuntu machine via Windows machine

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
  • Download PuTTY: Here


How to copy files/folders from/into remote Ubuntu machine via Windows machine

e.g. Assumed that remote Ubuntu machine have installed SSH Server service
Read #How to install SSH Server for remote administration service
  • Download FileZilla: Here

How to limit the user accounts that can connect through ssh remotely

e.g. If you enable the SSH server, then any user with a valid account can connect remotely
This can lead to security risks, as there exist remote password cracking tools that
try common username/password pairs.
  • Keep a backup of the ssh server configuration file with

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ORIGINAL

  • Edit the configuration file

gksudo gedit /etc/ssh/sshd_config

  • Change the parameter PermitRootLogin from yes to no. The superuser must not be able to connect directly from remote.
  • Add the parameter AllowUsers and specify the usernames (space separated) that can connect remotely.

NOTE: This will allow ONLY the users specified to connect. You may use wildcards here (example: j* will allow jsmith to connect but not fsmith)

  • You can also use DenyUsers for fine-grained selection of users.
  • If you enable the openssh server and you have no intention for now to enable remote connections, you may add AllowUsers nosuchuserhere to disable anyone connecting.

Using SSH to Port Forward

e.g. Assumed that remote machine has installed SSH Server service
Read #How to install SSH Server for remote administration service

If is possible to create secure SSH tunnels between multiple sites. Imagine two sites (home and office). If you have an SSH server available in the office available via the Internet, you can tunnel across to this server and communicate with any local PC in the office from home.

  • Example: Make Port 80 (Web Server) on 10.0.2.10 in the office available locally on Port 81

From home:

ssh -L 81:10.0.2.10:80 user@office.net

Once logged in, you can now browse to http://localhost:81 which is really a secure tunnel to the web server in your office. You can setup multiple port forwardings.

ssh -L 81:10.0.2.10:80 -L 82:10.0.2.20:80 -L 83:10.0.2.30:80 user@office.net

Now, port 81 locally forwards to port 80 on 10.0.2.10, port 82 forwards to port 80 on 10.0.2.20 and port 83 forwards to port 80 on 10.0.2.30

For example, http://localhost:81 connects you to port 80 on 10.0.2.10 (computer at remote location)

Specify port with -p?? if SSH Server on office.net does not run on default port 22.

Explanation:

ssh -L <local port>:<remote computer>:<remote port> <user>@<remote ip>

Protecting SSH from brute force atack

It is possible to easily protect SSH from a password brute force attack with a pam_abl module. You can install it by the two ways:

To install from a repository:

And execute the following commands:

sudo aptitude update
sudo aptitude upgrade
sudo aptitude install libpam-abl
sudo /etc/init.d/ssh restart

First command is to fetch the repository listing. Second is to upgrade the openssh-server package to patched version (openssh-client will be also updated). Third is to set up a protection plugin. And the fourth is to restart a server with a new security plugin.

DHCP Server

How to install DHCP Server for automatic IP addresses assignment

e.g. Assumed that "eth0" is the interface for network card
IP Address Range: 192.168.0.100 to 192.168.0.200
Subnet Mask: 255.255.255.0
DNS Servers: 202.188.0.133, 202.188.1.5
Domains: tm.net.my
Gateway Address: 192.168.0.1
sudo apt-get install dhcp3-server
sudo cp /etc/default/dhcp3-server /etc/default/dhcp3-server_backup
gksudo gedit /etc/default/dhcp3-server
  • Find this line
...
INTERFACES=""
  • Replace with the following line
INTERFACES="eth0"
  • Save the edited file
sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_backup
gksudo gedit /etc/dhcp3/dhcpd.conf
  • Find this section
...
# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
...
  • Replace with the following lines
# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600;
#max-lease-time 7200;
  • Find this section
...
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
...
  • Replace with the following lines
# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.100 192.168.0.200;
 option domain-name-servers 202.188.0.133, 202.188.1.5;
 option domain-name "tm.net.my";
 option routers 192.168.0.1;
 option broadcast-address 192.168.0.255;
 default-lease-time 600;
 max-lease-time 7200;
}
  • Save the edited file
sudo /etc/init.d/dhcp3-server restart


ระบบสำรองข้อมูลในอูบุนตุ

ถ้าคุรต้องการจะสำรองข้อมูลในอูบุนตุ ลองใช้เครื่องมือสำรองข้อมูลดังต่อไปนี้

โปรแกรม Sbackup

โปรแกรม Dar และ Kdar

เครื่องแม่ข่ายสำหรับฐานข้อมูล

วิธีติดตั้งเครื่องแม่ข่ายสำหรับฐานข้อมูลแบบ SQL

sudo apt-get install mysql-server
  • โปรแกรม MySQL ปรกติแล้วจะอนุญาตให้เริ่มใช้จาก localhost (127.0.0.1) เราจำต้องยกเลิกข้อจำกัดนั้นถ้าคุณต้องการให้ทุกคนเข้าถึงโปรแกรมได้ผ่านอินเทอร์เนต เปิดไฟล์/etc/mysql/my.cnf
gksudo gedit /etc/mysql/my.cnf
  • หาบรรทัดที่เขียนว่า bind-address = 127.0.0.1 นำเครื่องหมายคอมเมนต์ออก
...
#bind-address           = 127.0.0.1
...
  • โปรแกรม MySQL ตั้งค่าเริ่มต้นให้ root ไม่มีรหัสผ่าน ถือว่าเป็นความเสี่ยงค่อนข้างมาก เราจำต้องกำหนดรหัสผ่านให้กับ root เรายังต้องกำหนดรหัสผ่านให้กับผู้ใช้ root ของเครื่องคอมพิวเตอร์ที่ติดตั้งนั้นด้วย ในที่นี้local-machine-name เป้นชื่อของเครื่องคอมพิวเตอร์ที่เรากำลังใช้งานอยู่ ดูข้อมูลเพิ่มเติมจาก ที่นี่
mysqladmin -u root password your-new-password
mysqladmin -h root@local-machine-name -u root -p password your-new-password
sudo /etc/init.d/mysql restart

การสำรองฐานข้อมูล MySQL ด้วยโปรแกรม AutoMySQLBackup

  • AutoMySQLBackup เป็นโปรแกรมสคริปต์ที่ใช้ในการสำรองฐานข้อมูล MYSQL แบบประจำวัน ประจำสัปดาห์ และประจำเดือน โดยใช้คำสั่ง mysqldump
  • ลักษณะของ AutoMySQLBackup
    • ทำการสำรองฐานข้อมูล MySQL ได้หลายๆ ฐานข้อมูลด้วยโปรแกรมสคริปต์เพียงชุดเดียว (ในปัจจุบันสามารถสำรองฐานข้อมูลทั้งหมดบนเครื่องแม่ข่ายอย่างง่ายดาย โดยไม่จำเป็นต้องแยกแต่ละฐานข้อมูลออกจากกัน)
    • ทำการสำรองฐานข้อมูลทั้งหมดไว้ในไฟล์เดียว หรือแยกเก็บในไดเรกทอรีและไฟล์ตามฐานข้อมูลแต่ละชุด
    • บีบอัดไฟล์สำรองข้อมูลโดยอัตโนมัติ เพื่อประหยัดเนื้อที่บนดิสก์ โดยใช้คำสั่ง gzip หรือ bzip2
    • สามารถสำรองข้อมูลจากเครื่องแม่ข่ายระยะไกล มาเก็บไว้ที่เครื่องแม่ข่ายกลางได้
    • ทำงานโดยอัตโนมัติด้วยคำสั่ง cron หรือสั่งการจากผู้ใช้โดยตรงได้
    • สามารถส่งบันทึกการสำรองข้อมูลผ่านอีเมล์ไปยังที่อยู่อีเมล์ที่กำหนดไว้ นอกเหนือจากผู้ใช้ "root" (เหมาะสำหรับการจัดการเว็บไซต์และฐานข้อมูล)
    • สามารถส่งไฟล์สำรองข้อมูลที่ถูกบีบอัดไว้ผ่านทางอีเมล์ไปยังที่อยู่ที่กำหนด
    • สามารถกำหนดขนาดสูงสุดของไฟล์สำรองข้อมูลสำหรับการส่งทางอีเมล์
    • สามารถกำหนดให้ใช้คำสั่งในการสำรองข้อมูลแบบก่อนและหลัง
    • สามารถเลือกวันที่จะทำการสำรองข้อมูลในแต่ละสัปดาห์ได้


  • AutoMySQLBackup Requirements

The AutoMySQLBackup script only requires mysqldump (A standard utility provided with the mysql client) and gzip or bzip2 for compression of the backup files. If you would like to have the log emailed to you then you will need to have permission to execute the “mail” program. If you want the compressed backup files mailed to you then Mutt must be available on the server. Finally you will need a bash shell and the standard system tools and utilities (all these requirements should be the default on most linux system.)

  • What AutoMySQLBackup does

Every day AutoMySQLBackup will run (if setup in /etc/cron.daily) and using mysqldump and gzip will dump your specified databases to the /backups/daily directory, it will rotate daily backups weekly so you should never have more than 7 backups in there..

Every Saturday AutoMySQLBackup will again backup the databases you have chosen but they will be placed into /backups/weekly, these will be rotated every 5 weeks so there should never be more than 5 backups in there..

Every 1st of the month AutoMySQLBackup will create a backup of all databases and place them into /backups/monthly. These will never be rotated so it will be up to you to do your own house keeping. I would suggest taking a copy of this offline every month or two so that if you have a hard drive failure you will be able to restore your database

  • AutoMySQLBackup Installation

The install is as simple as editing a few variables in the AutoMySQLBackup file. The full setup is documented in the AutoMySQLBackup script file below the variables section.

  • Download automysqlbackup.sh and place it into your /etc/cron.daily directory or your home directory.
  • Edit (at least) the following lines :
...
USERNAME=dbuser 
PASSWORD=password DBNAMES=”DB1 DB2 DB3″
...
  • Note:The user must have at least select privileges to the databases and make sure to keep the quotes ” ” otherwise it won’t work
  • Make the file executable :
sudo chmod u+rwx
  • Create the following directory
./backups
  • That’s it...Now you can run it using the command line “./automysqlbackup.sh” or if it is in /etc/cron.daily it will run each day when cron

How to install MYSQL Administrator

sudo apt-get install mysql-admin

How to install MySQL Query Browser (SQL Client)

sudo apt-get install mysql-query-browser

How to install Oracle Database XE

  • Add the following repository to your /etc/apt/sources.list:
deb http://oss.oracle.com/debian unstable main non-free
  • Install the software using apt-get
sudo apt-get update
sudo apt-get install oracle-xe
  • Add your login to the 'dba' group (where your login name is username)
sudo usermod -G dba -a username
  • Run the initial configuration
sudo /etc/init.d/oracle-xe configure

You can configure any ports you want as long as they don't interfere with any other services listening on ports. You can choose the defaults by pressing enter instead of entering something in.

Apache HTTP Server

How to install Apache HTTP Server for HTTP (Web) Server service

sudo apt-get install apache2

How to install PHP for Apache HTTP Server

How to install PHP4
sudo apt-get install php4
sudo apt-get install libapache2-mod-php4
sudo /etc/init.d/apache2 restart
  • To test if php4 installed correctly
gksudo gedit /var/www/testphp.php
  • Insert the following line into the new file
<?php phpinfo(); ?>
How to install PHP5
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
  • To test if php5 installed correctly
gksudo gedit /var/www/testphp.php
  • (Optional) Insert the following line into the new file
<?php phpinfo(); ?>

If that didn't work (for example, if your browser prompted you to save the testphp.php page), try these commands:

sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload

Then try opening http://localhost/testphp.php again

  • (Optional) Install recommended PHP5 modules
sudo apt-get install php5-xsl
sudo apt-get install php5-gd
sudo apt-get install php-pear
  • Restart Apache
sudo /etc/init.d/apache2 restart

Many PHP applications use XSLT technology as well as server-side graphic manipulation (via GD). Also, PEAR provides access to PHP's module repository.

pear help

How to install MYSQL for Apache HTTP Server

sudo apt-get install libapache2-mod-auth-mysql
  • Select either php4-mysql or php5-mysql depending on which version of PHP you installed
sudo apt-get install php<version-number>-mysql
sudo apt-get install phpmyadmin
  • To get PHP to work with MySQL, open the file (where <version> is either 4 or 5 depending on which PHP you installed)
gksudo gedit /etc/php<version>/apache2/php.ini
  • You'll need to uncomment the ";extension=mysql.so" line so that it looks like this
...
extension=mysql.so
...
  • Save the file then exit
sudo /etc/init.d/apache2 restart

Alternative if the above doesn't work (which it probably won't and this probably will):

 sudo apt-get install mysql-server

How to install Python for Apache 2

sudo aptitude install python
sudo aptitude install libapache2-mod-python
sudo gedit /etc/apache2/mods-available/mod_python.conf

add the following lines

AddType application/x-httpd-python .py
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On

save

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/mod_python.conf mod_python.conf
sudo /etc/init.d/apache2 restart

How to map URLs to folders outside /var/www/

gksudo gedit /etc/apache2/conf.d/alias
  • Insert the following lines into the new file
Alias /URL-path /location_of_folder/
<Directory /location_of_folder/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
  • Save the edited file
sudo /etc/init.d/apache2 restart
  • When you get "403 - Permission denied", you might try:
chmod o+x /location_of_folder/
  • If that doens't work, the following might help:
chmod o+r,o+x /location_of_folder/

How to change the default port number for Apache HTTP Server

e.g. Assumed that new port number is 78
sudo cp /etc/apache2/ports.conf /etc/apache2/ports.conf_backup
gksudo gedit /etc/apache2/ports.conf
  • Find this line
Listen 80
  • Replace with the following line
Listen 78
  • Save the edited file
sudo /etc/init.d/apache2 restart

How to parse RSS into PHP for Apache HTTP Server

e.g. Assumed that RSS is DistroWatch.com - News
wget -c http://easylinux.info/uploads/magpierss-0.71.1.tar.gz
sudo mkdir /var/www/feeds
sudo tar zxvf magpierss-0.71.1.tar.gz -C /var/www/feeds/
sudo mv /var/www/feeds/magpierss-0.71.1/* /var/www/feeds/
sudo rm -fr /var/www/feeds/magpierss-0.71.1/
sudo chown -R www-data:root /var/www/feeds/
gksudo gedit /var/www/feeds/index.php
  • Insert the following lines into the new file
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 
 <head>
 
 <title>DistroWatch.com - News</title>
 
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
 
 <style type="text/css">
 /*<![CDATA[*/
 /* 
 DEFAULT TAG STYLES
 */
 
 body {
  background: #ffffff;
  margin-left: 20px;
  font-family: bitstream vera sans,sans-serif;
  font-size: 9pt;
 }
 
 h1 {
  font-family: luxi sans,sans-serif;
  font-size: 15pt;
 }
 
 /*]]>*/
 </style>
 
 </head>
  
 <body>
 
 <?php

 require_once 'rss_fetch.inc';
 error_reporting(E_ERROR);
 
 $url = 'http://distrowatch.com/news/dw.xml';
 $rss = fetch_rss($url);
 
 if ($rss) {
 
  echo "<h1>";
  echo "<a href=$url>", $rss->channel[title], "</a><br/>";
  echo "</h1>";
 
  foreach ($rss->items as $item ) {
   $url = $item[link];
   $title = $item[title];
   $description = $item[description];
   echo "<li>";
   echo "<b>Topic:</b> <a href=$url><b><u>$title</u></b></a><br/><br/>";
   echo "$description<br/><br/>";
   echo "</li>";
  }
 
 }
 else {
  echo "<a href=$url>", $url, "</a> - Server Down!<br/>";
 }
 
 ?>
 
 </body>
 
 </html>
 

Troubleshooting Feisty Fawn


FTP Server

How to install FTP Server for File Transfer service

sudo apt-get install proftpd

How to configure FTP user to be "jailed" (chrooted) into their home directory

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Find this section
...
DenyFilter           \*.*/
...
  • Add the following line below it
DefaultRoot           ~

  • Save the edited file
sudo /etc/init.d/proftpd restart

How to configure FTP Server to allow anonymous FTP user to read only

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Append the following lines at the end of file
<Anonymous ~ftp>
 User            ftp
 Group            nogroup
 UserAlias          anonymous ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
 RequireValidShell      off
 MaxClients         10
 DisplayLogin        welcome.msg
 DisplayFirstChdir      .message
 <Directory *>
  <Limit WRITE>
   DenyAll
  </Limit>
 </Directory>
</Anonymous>
  • Save the edited file
sudo /etc/init.d/proftpd restart

How to configure FTP Server to allow anonymous FTP user to read/write

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Append the following lines at the end of file
<Anonymous ~ftp>
 User            ftp
 Group            nogroup
 UserAlias          anonymous ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
 RequireValidShell      off
 MaxClients         10
 DisplayLogin        welcome.msg
 DisplayFirstChdir      .message
</Anonymous>
  • Save the edited file
sudo /etc/init.d/proftpd restart

How to map anonymous FTP user to folders outside /home/ftp/

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Append the following lines at the end of file
<Anonymous /location_of_folder/>
 User            ftp
 Group            nogroup
 UserAlias          anonymous ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
 RequireValidShell      off
 MaxClients         10
 DisplayLogin        welcome.msg
 DisplayFirstChdir      .message
 <Directory *>
  <Limit WRITE>
   DenyAll
  </Limit>
 </Directory>
</Anonymous>
  • Save the edited file
sudo /etc/init.d/proftpd restart

How to change the default port number for FTP Server

e.g. Assumed that new port number is 77
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Find this line
Port              21
  • Replace with the following line
Port              77
  • Save the edited file
sudo /etc/init.d/proftpd restart

How to ftp into remote Ubuntu machine via Windows machine

e.g. Assumed that remote Ubuntu machine have installed FTP Server service
Read #How to install FTP Server for File Transfer service
  • Download FileZilla: Here

Personal Apt Repository

Setting Up Repository

Note: This type of repository is known as a Trivial Repository.

This type of repository does not fully comply with Debian standards, so should not be used commercially. However, it is ideal for home or personal use.

  • Install Package Tools
sudo apt-get install dpkg-dev
  • Create Repos on Filesystem
mkdir /somewhere/apt
mkdir /somewhere/apt/archives
mkdir /somewhere/apt/archives/binary
  • (Optional) Copy existing local APT cache to your Repos
cp -v /var/cache/apt/archives/*.deb /somewhere/apt/archives/binary/
  • Create Package Lists for Repos
cd /somewhere/apt/archives
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
  • Publish Repos with Apache
cd /var/www
sudo ln -s /somewhere/apt/archives apt
  • Add Repos to Sources (on all PCs) to /etc/apt/sources.list

Open /etc/apt/sources.list

sudo gedit /etc/apt/sources.list

Add the following to the bottom of the file:

# My Repos
deb http://localhost/apt binary/
  • Update APT Database
sudo apt-get update

Updating Repository

Simply copy or download ".deb" files to /somewhere/apt/archives/binary/ and then update the Packages list:

cd /somewhere/apt/archives
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz

Streaming Media Server

How to install GNUMP3d for Streaming Media Server service

e.g. /var/music/ is the directory containing multimedia files
sudo apt-get install gnump3d

How to change the default directory containing multimedia files for GNUMP3d

e.g. Assumed that new directory containing multimedia files is /home/music/
sudo cp /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d.conf_backup
gksudo gedit /etc/gnump3d/gnump3d.conf
  • Find this line
root = /var/music
  • Replace with the following line
root = /home/music
  • Find this line
user = gnump3d
  • Replace with the following line
user = root
  • Save the edited file
sudo /etc/init.d/gnump3d restart

How to change the default port number for GNUMP3d

e.g. Assumed that new port number is 7878
sudo cp /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d.conf_backup
gksudo gedit /etc/gnump3d/gnump3d.conf
  • Find this line
port = 8888
  • Replace with the following line
port = 7878
  • Save the edited file
sudo /etc/init.d/gnump3d restart


Groupware (Email/Calendaring)

How to install Meldware Communication Suite

  • Read #General Notes
  • Read #How_to_install_Java_Development_Kit_.28JDK.29_v5.0
  • Meldware Communication Suite provides a multi-platform alternative to popular groupware like Exchange or Lotus Notes including Email(SMTP/POP/IMAP) and Calendaring(iCAL,WCAP). It depends on Java and, optionally, for the webmail/webcal client, Flash.
sudo aptitude install sun-java5-jdk
sudo update-java-alternatives -s java-1.5.0-sun
  • Download the jar file for a recent milestone or build here
  • Open a new terminal (capture java path updates)
  • change directory to your download directory
  • replace below filename with correct version based on your download
sudo java -jar buni-meldware-20070225.jar
  • A series of configuration questions are asked, for destination directory specify /opt/mcs
sudo cp /etc/init.d/skeleton /etc/init.d/meldware-cs
sudo vi /etc/init.d/meldware-cs
  • Replace the value in the line beginning with PATH with "/usr/sbin:/usr/bin:/sbin:/bin:/opt/mcs/bin" excluding quotes (assuming you specified /opt/mcs as the destination directory to the installer)
  • Replace the value in the line beginning with DESC with "Meldware Communication Suite" including quotes
  • Replace the value in the line beginning with NAME with "run.sh" excluding quotes
  • Replace the value in the line beginning with DAEMON with "/opt/mcs/bin/$NAME" excluding quotes
  • Replace the value in the line beginning with DAEMON_ARGS with "-c meldware" excluding quotes
  • Replace the value in the line beginning with SCRIPTNAME with "/etc/init.d/meldware-cs" excluding quotes
  • save (ESC):wq
sudo chmod 755 /etc/init.d/meldware-cs
sudo ln -s /etc/init.d/meldware-cs /etc/rc3.d/S21meldware-cs
sudo ln -s /etc/init.d/meldware-cs /etc/rc6.d/K21meldware-cs
sudo ln -s /etc/init.d/meldware-cs /etc/rc4.d/S21meldware-cs 
  • start MCS
sudo /etc/init.d/meldware-cs restart
  • Additional documentation is available here

Image Gallery Server

  • For a comparison between Gallery1 and Gallery2 see here

Gallery1

How to install Gallery1 for Image Gallery Server service
sudo apt-get install gallery (when prompted to restart Apache, choose No or Cancel)
sudo apt-get install imagemagick
sudo apt-get install jhead
sudo apt-get install libjpeg-progs
sudo /etc/init.d/apache2 restart
sudo sh /usr/share/gallery/configure.sh
Gallery Configuration Wizard: Step 1
Next Step ->
Gallery Configuration Wizard: Step 2
General settings Tab ->
Admin password: Specify the password

Locations and URLs Tab ->
Album directory: /var/www/albums/
Temporary directory: /tmp/
Gallery URL: http://localhost/gallery
Albums URL: http://localhost/albums
Next Step -->
Gallery Configuration Wizard: Step 3
Next Step -->
Gallery Configuration Wizard: Step 4
Save Config ->
How to configure Gallery1 to be accessible via Internet (Hostname or fix IP) or LAN (fix IP)
e.g. Assumed that network and internet connections have been configured properly
Internet (Hostname or fix IP) or LAN (fix IP): http://www.url.com
sudo cp /etc/gallery/config.php /etc/gallery/config.php_backup
gksudo gedit /etc/gallery/config.php
  • Find this section
...
$gallery->app->photoAlbumURL = "http://localhost/gallery";
$gallery->app->albumDirURL = "http://localhost/albums";
...
  • Replace with the following lines
$gallery->app->photoAlbumURL = "http://www.url.com/gallery";
$gallery->app->albumDirURL = "http://www.url.com/albums";
How to configure Gallery1 to be accessible via LAN (dynamic IP)
e.g. Assumed that network connections have been configured properly
LAN (dynamic IP): 192.168.0.1
sudo cp /etc/gallery/config.php /etc/gallery/config.php_backup
gksudo gedit /etc/gallery/config.php
  • Find this section
...
$gallery->app->photoAlbumURL = "http://localhost/gallery";
$gallery->app->albumDirURL = "http://localhost/albums";
...
  • Replace with the following lines
$gallery->app->photoAlbumURL = "/gallery";
$gallery->app->albumDirURL = "/albums";
How to backup/restore Gallery1 data
sudo tar zcvf gallery.tgz /var/www/albums/ /etc/gallery/
  • To restore Gallery data
sudo tar zxvf gallery.tgz -C /

Gallery2

How to install Gallery2
How to configure Gallery2

How to install Subversion version control server (with Apache support)

  • Install Subversion and Apache 2 Module
sudo aptitude install subversion libapache2-svn
  • Enable Subversion/DAV Apache 2 Module
sudo a2enmod dav_svn
  • Configure Apache 2
sudo nano /etc/apache2/mods-enabled/dav_svn.conf

Edit the file to look something like this:

<Location /svn>
  DAV svn
  SVNPath /home/svn

  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user
</Location>
  • Create Subversion Repository
sudo mkdir /home/svn
sudo svnadmin create /home/svn
  • Give Apache 2 Permissions to Repository
sudo chown -R www-data /home/svn
  • Create Repository User

Replace 'username' with your username

sudo htpasswd2 -cm /etc/apache2/dav_svn.passwd username

Enter password when prompted.

  • Restart Apache 2
sudo /etc/init.d/apache2 restart

How to install Subversion version control server (svnserve)

  • Install Subversion and Internet services daemon
sudo apt-get install subversion xinetd
  • Create user that will own the repositories
sudo adduser --system --no-create-home --home /var/svn --group --disabled-login svn
  • Create directory that will hold the repositories
sudo mkdir /var/svn
sudo chown svn:svn /var/svn
  • Create file /etc/xinetd.d/svnserve with the following content
service svn
{
       port = 3690
       socket_type = stream
       protocol = tcp
       wait = no
       user = svn
       server = /usr/bin/svnserve
       server_args = -i -r /var/svn
}
  • Restart xinetd
sudo /etc/init.d/xinetd restart
  • Create the first repository
sudo -u svn svnadmin create /var/svn/testrepo
  • It should be possible to check out the repository and work on it
svn co svn://localhost/testrepo
Personal tools
Sponsor
   CuBox