ติดตั้ง shorewall

Posted in Linux

shorewall เป็นโปรแกรมประเภท firewall เอาไว้สำหรับกรอง packet ต่างๆที่เข้ามาในเครื่องเรา เป็นเครื่องมือสำหรับป้องกันเครื่องของเราจากผู้บุกได้พอสมควร
ตัวอย่างนี้เป็นการติดตั้ง shorewall กับ debian etch

ถ้าหากติดตั้ง ipchains ให้ remove ipchains ออกก่อน
#apt-get remove ipchains

หลังจากนั้นก็ติดตั้ง shorewall
#apt-get install shorewall

หลังจากติดตั้ง shorewall เสร็จแล้วต่อไปก็เป็นการตั้ค่าให้กับ shorewall ให้เข้าไปแก้ไขที่ไฟล์ /etc/default/shorewall
#nano /etc/default/shorewall
ให้เปลี่ยน
startup=0
เป็น
startup=1

สำหรับการติดตั้งโปรแกรม shorewall ครั้งแรก จะไม่มีไฟล์ configuration ใน directory /etc/shorewall/ ต้องคัดลอกไฟล์จาก /usr/share/doc/shorewall/default-config/ มาก่อน
cp /usr/share/doc/shorewall/default-config/* /etc/shorewall/

การตั้งค่า zones
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/zones
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4 #
loc ipv4 #
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE

การตั้งค่า interfaces
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/interfaces
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect
#LAST LINE — ADD YOUR ENTRIES BEFORE THIS ONE — DO NOT REMOVE

การตั้งค่า policy
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/policy
#SOURCE DEST POLICY LOG LIMIT:BURST
# LEVEL
fw net ACCEPT
fw loc ACCEPT
net all DROP info
all all REJECT info
#LAST LINE — DO NOT REMOVE

การตั้งค่า rules เป็นการกำหนดกฎต่างๆที่ใช้ในการกรอง packet ที่เข้ามาภายในเครื่องว่าจะให้ผ่านไปได้หรือไม่ให้ผ่าน
ให้เพิ่มข้อความต่อไปนี้ในไฟล์ /etc/shorewall/rules
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT(S) PORT(S) DEST LIMIT GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
ACCEPT net fw tcp 80
ACCEPT net fw tcp 10000
#LAST LINE — ADD YOUR ENTRIES BEFORE THIS ONE — DO NOT REMOVE

ตัวอย่างด้านบนเป็นการ อนุญาติให้ packet จาก zone net ผ่านเข้าได้สองพอร์ทคือพอร์ท 80 กับ พอร์ท 10000 และโปรโตคอลต้องเป็นโปรโตคอล tcp
สำหรับใครที่ต้องการจะเพิ่มพอร์ทอื่นๆ สำหรับโปรแกรมแต่ละโปรแกรม ก็ทำได้ตามความต้องการครับ

หลังจากที่ตั้งค่าให้กับ shorewall แล้ว ให้ทำการเริ่มต้นการทำงานของ shorewall โดย
#/etc/init.d/shorewall start
ถ้าหากมีข้อผิดพลาดเกิดขึ้น สามารถดูรายละเอียดได้ในไฟล์ /var/log/shorewall-init.log

No Comments »

ทำให้ rsync backup ข้อมูลอัตโนมัติ

Posted in Linux

ในตัวอย่างนี้ผมจะเขียนคำสั่งที่ใช้สั่งให้ rsync backup ข้อมูล เป็น script แล้วใช้ crontab ทำให้มันทำงานตามเวลาที่เรา กำหนด

สร้างไฟล์ชื่อ backup.sh
nano /home/jirawat/backup.sh

พิมพ์ข้อความต่อไปในลงไปในไฟล์ backup.sh
#! /bin/sh
# file /home/jirawat/backup.sh
rsync -ax –process –update –delete /var/www/virtual/ /media/backup/var/www/virtual/

เสร็จแล้วก็บันทึกเป็นไฟล์ /home/jirawat/backup.sh

ต่อไปก็สร้างไฟล์ /etc/cron.d/backup
nano /etc/cron.d/backup

พิมพ์ข้อความต่อไปในลงไปในไฟล์ backup
* * * * * root /home/jirawat/backup.sh > /home/jirawat/backup.log

เสร็จแล้วก็บันทึกเป็นไฟล์ /etc/cron.d/backup

แล้วสั่งให้ cron reload ค่าใหม่
/etc/init.d/cron reload

รายละเีอียดเกี่ยวกับการใช้งาน crontab
crontab จะแบ่งออกเป็น 6 column ดังนี้
column 1 จะเป็นการกำหนดค่านาที (0-59)
column 2 จะเป็นการกำหนดค่าชั่วโมง (0-23)
column 3 จะเป็นการกำหนดค่าวัน (1-31)
column 4 จะเป็นการกำหนดค่าเดือน (1-12)
column 5 จะเป็นการกำหนดค่าวันในสัปดาห์ (0-6)
column 6 จะเป็นคำสั่งที่ต้องการสั่งงาน

จากตัวอย่าง
* * * * * root /home/jirawat/backup.sh > /home/jirawat/backup.log
เป็นการสั่งให้รันสคลิปต์ /home/jirawat/backup.sh ทุกๆนาที อันนี้เป็นแค่การทดสอบนะครับ ถ้าใช้งานจริงควรจะทำทุกๆวัน หรือทุกๆสัปดาห์ก็ได้ ตัวอย่างเช่น ให้ทำการสำรองข้อมูลทุกวัน เวลา ตีสาม ก็เขียนเป็น
0 3 * * * root /home/jirawat/backup.sh > /home/jirawat/backup.log

ส่วน > /home/jirawat/backup.log เป็นการเก็บผลลัพธ์ที่ได้จากการเรียกใช้คำสั่งลงในไฟล์ /home/jirawat/backup.sh

2 Comments »

การใช้ RSYNC สำรองข้อมูล

Posted in Linux

ผมเริ่มศึกษา debian linux มาได้ระยะหนึ่งแล้ว และเห็นว่าหนังสือหรือเอกสารเกี่ยวกับ linux ยังมีอยู่น้อยมาก

และผมกลัวว่าศึกษา linux ไปแล้ว คำสั่งไหน หรือโปรแกรมตัวไหนที่ไม่ได้ใช้บ่อยๆ จะลืมเอาได้ง่ายๆ (เป็นคนขี้ลืมซะด้วย) ก็เลยเอามาเขียนไว้ใน blog ดีกว่า จะได้ไม่ลืม และคนอื่นก็เอาไปอ่านต่อได้ด้วย

มาต่อกันเรื่อง rsync เป็นโปรแกรมสำหรับสำรองข้อมูลทั้งแบบ local, remote วันนี้ก็เลยจะเอาตัวอย่างการใช้งาน rsync มาเก็บไว้ใน blog ก่อนเดี๋ยวจะลืม :D

ถ้ายังไม่ได้ติดตั้ง rsync ให้ติดตั้ง rsync ก่อนนะครับในตัวอย่างนี้ผมใช้กับ debian linux ก็ใช้คำสั่ง

apt-get update

apt-get install rsync

ตัวอย่างการใช้งาน rsync

rsync -ax ––progess ––update ––delete /var/www/ /media/backup/var/www/

ตัวอย่างด้านบนจะทำการสำรองข้อมูลใน directory /var/www ไปเก็บไว้ที่ /media/backup/var/www ซึ่งผมจะเอา hard disk  อีกตัวหนึ่งมา mount ไว้ที่ /media/backup

––update ––delete ใช้เมื่อเราต้องการทำสำเนาข้อมูลให้เหมือนกับ /var/www ทุกอย่างตัวอย่างเช่น ใน directory/var/www มีไฟล์เพิ่มเข้ามาหรือถูกลบไป rsync ก็จะเพิ่มหรือลบไฟล์ใน directory /media/backup/var/www ด้วย

––progess ให้ rsync แสดงผลการทำงานด้วย

No Comments »