วันศุกร์ที่ 30 กรกฎาคม พ.ศ. 2553

scp

* Using SCP you could copy files remotely. Following is the general syntax.




scp @:



* Here are some examples.



Lets say user 'me' has to send the file with name test to the user 'you', while being in the me's account.



scp test you@192.168.1.1:



* The default destination is /home/you here. Unless you specify otherwise file will be copied on to the default location as in the example above. If you want to specify location, the following example will help you.



scp test you@192.168.1.1:/home/you/directory

วันพฤหัสบดีที่ 29 กรกฎาคม พ.ศ. 2553

web service

http://mpathirage.com/getting-started-with-web-services-in-php-with-ubuntu-804-4/

Denyhosts installed servers

164.115.5.126     http://www.knit.or.th/   denyhosts installed
202.44.11.50       http://www.turpif.or.th/  denyhosts installed
164.115.5.127     http://mail2.knit.or.th/     denyhosts installed
164.115.5.124     http://sp2.knit.or.th/ 

164.115.5.123     http://db.knit.or.th/

164.115.5.122     http://ns.knit.or.th/

164.115.5.128     http://riti.knit.or.th/        denyhosts installed

202.44.11.55      http://www.turpif.or.th/           denyhosts installed

First of all, references to WORK_DIR point to /var/lib/denyhosts/ or something similar on your system.


The default location for the hosts.deny file is /etc/hosts.deny.



Here's the method I used to unblock an IP:



Stop DenyHosts
/etc/init.d/denyhosts stop

Remove the IP address from hosts.deny

Remove all lines containing the IP address from the following files:



WORK_DIR/hosts

WORK_DIR/hosts-restricted

WORK_DIR/hosts-root

WORK_DIR/hosts-valid

WORK_DIR/users-hosts

Consider adding the IP address to WORK_DIR/allowed-hosts

Start DenyHosts

วันอาทิตย์ที่ 25 กรกฎาคม พ.ศ. 2553

uninstall install php 5.3

Check installed program
dpkg --get-selections

sudo apt-get remove --purge

http://php.net/downloads.php
PHP 5.3.3


Complete Source Code

■PHP 5.3.3 (tar.bz2) [10,412Kb] - 22 July 2010

md5: 21ceeeb232813c10283a5ca1b4c87b48

■PHP 5.3.3 (tar.gz) [13,595Kb] - 22 July 2010

md5: 5adf1a537895c2ec933fddd48e78d8a2
 
 
http://hublog.hubmed.org/archives/001924.html
Installing PHP 5.3 etc on Ubuntu Karmic (9.10)


Fetch and extract the latest version of PHP.

sudo apt-get build-dep php5

./configure --prefix=/opt/php5.3 \

--enable-mbstring \

--enable-soap \

--enable-sqlite-utf8 \

--enable-zip \

--with-bz2 \

--with-curl \

--with-gd \

--with-gettext \

--with-gmp \

--with-ldap \

--with-openssl \

--with-xmlrpc \

--with-zlib \

--with-xsl \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-apxs2=/usr/bin/apxs2

make

sudo make -i install

(-i to ignore the error about httpd.conf)

sudo ln -s /etc/php5/apache2/php.ini /opt/php5.3/lib/php.ini

Optional: install APCsudo /opt/php5.3/bin/pecl install apc-beta

sudo nano /opt/php5.3/lib/php.ini

extension_dir = "/opt/php5.3/lib/php/extensions/no-debug-non-zts-20090626"

extension=apc.so

Optional: install FirePHPsudo /opt/php5.3/bin/pear channel-discover pear.firephp.org

sudo /opt/php5.3/bin/pear install firephp/FirePHPCore

sudo apache2ctl restart

http://thirdpartycode.com/2009/08/building-php-5-3-packages-on-ubuntu-9-04-jaunty-for-apache-2/
Prep your system


Setup your development server to be able to compile things. By default, most installations will not come with compilers installed.

view sourceprint?

1 apt-get install checkinstall

Say yes, and let it follow the dependencies as needed.

Get the development headers for some of the extensions you’ll be compiling in.

view sourceprint?

1 apt-get install postgresql-8.3 postgresql-client-8.3 postgresql-client-common postgresql-common postgresql-server-dev-8.3



2 aptitude install mysql-client mysql-client-5.0 mysql-common mysql-server mysql-server-5.0 mysql-server-core-5.0



3



4 apt-get install libtidy-dev curl libcurl4-openssl-dev libcurl3 libcurl3-gnutls zlib1g zlib1g-dev libxslt1-dev libzip-dev libzip1 libxml2 libsnmp-base libsnmp15 libxml2-dev libsnmp-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev zlib1g zlib1g-dev libfreetype6 libfreetype6-dev libbz2-dev libxpm4-dev libmcrypt-dev libmcrypt4

Download PHP and Compile it

view sourceprint?

mkdir ~/srcs
cd ~/srcs
wget http://us3.php.net/get/php-5.3.0.tar.gz/from/this/mirror
tar xvfz php-5-3-0.tar.gz
cd php-5.3.0

Now, you can either do the ./configure –help and pick your options, or you can use my configure options for PHP 5.3

./configure --prefix=/opt/php5.3 \
--enable-mbstring \
--enable-soap \
--enable-sqlite-utf8 \
--enable-zip \
--with-bz2 \
--with-curl \
--with-gd \
--with-gettext \
--with-gmp \
--with-ldap \
--with-openssl \
--with-xmlrpc \
--with-zlib \
--with-xsl \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-apxs2=/usr/bin/apxs2

View sourceprint?
make
make test
checkinstall

checkinstall will ask you some basic questions about the package, answer and let it build the package for you. You will run into an interesting issue at first, apxs2 will complain about a LoadModule not being in the httpd.conf file. This is an artifact of how Ubuntu/Debian likes to handle it’s configuration files. The simplest thing is to add a line at the bottom of your httpd.conf that loads a benign module. Mod Pony seems cute .



Configure your PHP like any normal apache server. Reload apache, put the handy phpinfo(); in your documentroot, and then have fun.

Be sure to remove the phpinfo(); from your production servers.



If you want MySQL 5.1, just do apt-get install mysql-server-5.1 , be sure to change the dev header packages to the same version as well.


I got this error when trying to configure php 5.2.6:




configure: error: xml2-config not found. Please check your libxml2 installation.



I’m using Debian and it showed that I had libxml2 installed (and it was the latest version).



It turns out that the latest stable version of libxml2 doesn’t include a file named xml2-config. I suppose I could have linked that file to the config file that the stable version of libxml2 uses, but the easy fix is to just install the newer development version of libxml2 using the following command:



apt-get install libxml2-dev

Ununtu server setup

apt-get install ubuntu-desktop

Ubuntu 10.4 installation

Step 0
During installation, select apache-php-mysql server + openssh server
Change networking from auto to manual
Input   ip address, network mask, gateway, dns server



Step 1  vi /etc/ssh/sshd_config

add
AllowUsers root viroteb
to #Authentication

restart with
/etc/init.d/ssh restart

Improve vi by install vim-nox
aptitude install vim-nox


Step 2  if  you want to change IP later,
vi /etc/network/interfaces
# This file describes the network interfaces available on your system


# and how to activate them. For more information, see interfaces(5).



# The loopback network interface

auto lo

iface lo inet loopback



# The primary network interface

auto eth0

iface eth0 inet static

address 192.168.0.100

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

gateway 192.168.0.1

/etc/init.d/networking restart


Step 3 vi /etc/hosts

127.0.0.1 localhost.localdomain localhost


192.168.0.100 server1.example.com server1



# The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

echo server1.example.com > /etc/hostname


... and reboot the server:


reboot

Afterwards, run




hostname

hostname -f



Both should show server1.example.com now.




Step 4 Edit /etc/apt/sources.list. Comment out or remove the installation CD from the file and make sure that the universe and multiverse repositories are enabled. It should look like this:


vi /etc/apt/sources.list
aptitude update



to update the apt package database and


aptitude safe-upgrade



to install the latest updates (if there are any). If you see that a new kernel gets installed as part of the updates, you should reboot the system afterwards:


reboot


Step 5 aptitude install ntp ntpdate

Step  6  Install postfix
            aptitude install postfix

Step 7 Install phpmyadmin
apt-get install phpmyadmin


To set up under Apache all you need to do is include the following line in /etc/apache2/apache2.conf, first type the following command to open up this file:

vi  /etc/apache2/apache2.conf

Add the following line of code inside apache2.conf:

Include /etc/phpmyadmin/apache.conf



Now restart Apache:

sudo /etc/init.d/apache2 restart


Step 8 Install webmin
http://viroteb.blogspot.com/2010/06/how-to-install-webmin.html

Step 8 Install syslog-ng
apt-get install syslog-ng

change the path to syslog-ng in System configuration in webmin
to /etc/syslog-ng/syslog-ng.conf  so that webmin can view the syslog-ng

Step 9 Install denyhosts
apt-get install denyhosts

วันพฤหัสบดีที่ 22 กรกฎาคม พ.ศ. 2553

วันพุธที่ 21 กรกฎาคม พ.ศ. 2553

วันอังคารที่ 13 กรกฎาคม พ.ศ. 2553

วันจันทร์ที่ 12 กรกฎาคม พ.ศ. 2553

Fail2ban

http://www.cpeclub.com/board/server/fail2ban-ubuntu-9-04/

another good website explaining postfix fail2ban
http://www.howtoforge.com/forums/showthread.php?t=28781



การติดตั้ง Fail2ban บน Ubuntu 9.04


Fail2ban เป็นโปรแกรมตรวจสอบ log files และแบน IP ที่ล็อกอินผิดหลายๆครั้ง โดยสนับสนุน Service หลายตัวเช่น apache, vsftpd, proftpd, postfix, couriersmtp, named (DNS),ssl เป็นต้น

มีหลักการทำงานดังนี้ โปรแกรม Fail2ban จะตรวจสอบ Log Files เป็นระยะ ว่ามี IP ที่ล๊อคอินเข้าระบบแล้ว Fail ติดๆกัน ครบตามจำนวนที่ตั้งไว้ในไฟล์คอนฟิก จะแบน IP หมายเลขนั้นโดยไปกำหนดที่ iptable ให้ Block IP Address เมื่อแบน IP ครบตามกำหนดเวลาที่ตั้งไว้ในไฟล์คอนฟิก Fail2ban จะไปแก้ไข iptable ให้ IP Address นั้นสามารถใช้งานได้ตามเดิม

Login เป็น Root

ในการติดตั้ง Fail2ban ให้ติดตั้ง openssh ก่อน เพราะในการทดสอบ Fail2ban จะล็อกอินผ่าน openssh เพื่อทดสอบว่า Fail2ban บล็อกไอพีที่ล๊อคอินผิดเกินกว่าที่กำหนดไว้

ติดตั้ง Fail2ban โดยใช้คำสั่ง

sudo apt-get install fail2ban

โค๊ด:



ทำ การแก้ไขไฟล์คอนฟิค

โค๊ด:



cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local



โค๊ด:



nano /etc/fail2ban/jail.local





แก้ไข ไฟล์ /etc/fail2ban/jail.local ดังนี้

โค๊ด:



[DEFAULT]

ignoreip = 127.0.0.1 //กำหนด IP Address ที่ไม่มีการ Ban

bantime = 600 //กำหนดเวลา Ban IP 600 วิ = 10 นาที

//ถ้ากำหนดเป็น -1 จะหมายถึง Ban IP จนกว่าจะ Reboot

maxretry = 3 //กำหนดจำนวนครั้งของการล๊อคอินที่ผิดพลาด

destemail = mooglom@eng-ru.com //กำหนดให้ส่ง mail แจ้งเตือนไปเมล์ชื่อ mooglom@eng-ru.com



[ssh]

enabled = true

port = ssh

filter = sshd

logpath = /var/log/auth.log

maxretry = 3 //แก้จำนวนครั้งของการล๊อคอินที่ผิดพลาดจาก 6 เป็น 3



//Fail2ban สามารถตรวจสอบ Process ของโปรแกรมอื่นได้ด้วย ถ้าต้องการให้ตรวจสอบโปรแกรมใด

ให้ตั้งค่า enabled = true ตรงโปรแกรมนั้น ตัวอย่างเช่น



[ssh-ddos] //ตัวอย่างการกำหนดให้ Fail2ban ตรวจสอบ Service SSH DDos

enabled = true //เปลี่ยนจาก false เป็น true เพื่อตรวจสอบ SSH DDos

port = ssh, sftp

filter = sshd-ddos

logpath = /var/log/auth.log

maxretry = 3 //แก้จำนวนครั้งของการล๊อคอินที่ผิดพลาดจาก 6 เป็น 3



[Apache] //ในหัวข้อ Apache ให้กำหนด enabled = false

enabled = false





เมื่อ แก้ไขไฟล์ /etc/fail2ban/jail.local เสร็จ ให้บันทึกไฟล์โดยกดปุ่ม Ctrl + O แล้วกดปุ่ม Enter จากนั้นออกจากโปรแกรม nano โดยกดปุ่ม Ctrl + X

รีสตา ร์ท Fail2ban โดยใช้คำสั่ง



โค๊ด:



sudo /etc/init.d/fail2ban restart



ตรวจ สอบการทำงานของ Fail2ban

ใช้โปรแกรม PuTTY ssh เข้าไปที่เครื่องเซิพเวอร์ที่ติดตั้ง Fail2ban ลองทำการ Login โดยกรอก user และ Password ที่ผิด ตามจำนวนครั้งที่ตั้งให้แบน

ตรวจสอบ log ของ Fail2ban โดยใช้คำสั่ง

โค๊ด:



tail /var/log/fail2ban.log





จะ แสดง log ของ fail2ban



คุณไม่มีสิทธิ ในการดูไฟล์ภาพนะจ้ะ

Please register or login



จาก Log ระบบสามารถทำงานได้ปกติ โดย WARNING [ssh] Ban 192.168.130.1 คือ IP ที่ถูกแบน

ตรวจสอบไอพีที่ถูกแบนโดยใช้คำสั่ง



โค๊ด:



iptables -n -L



จะ แสดง IPtables จะพบว่า 192.168.130.1 ถูกแบนใน iptable



คุณไม่มี สิทธิ ในการดูไฟล์ภาพนะจ้ะ

Please register or login



จาก นั้นระบุ IP ที่ต้องการยกเลิกแบนไอพี โดยใช้คำสั่ง

โค๊ด:



iptables -D fail2ban-ssh -s 192.168.130.1 -j DROP



ตรวจสอบว่าได้ยกเลิกแบนไอพีหรือยัง โดยใช้คำสั่ง

โค๊ด:



iptables -n -L





จะ แสดง IPtables



คุณไม่มีสิทธิ ในการดูไฟล์ภาพนะจ้ะ

Please register or login



จะ สังเกตว่า IP 192.168.130.1 ถูกลบจาก IPtables แล้ว สามารถ login ได้ตามปกติ



เอกสารอ้างอิง

คุณไม่สามารถมองเห็นลิ้งได้.

Register or Login

crontab

http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/

How do I add jobs to cron under Linux or UNIX oses?


by Vivek Gite · 105 comments



Q. How do I add cron job under Linux or UNIX like operating system?



A. Cron job are used to schedule commands to be executed periodically i.e. to setup commands which will repeatedly run at a set time, you can use the cron jobs.



crontab is the command used to install, deinstall or list the tables used to drive the cron daemon in Vixie Cron. Each user can have their own crontab, and though these are files in /var/spool/cron/crontabs, they are not intended to be edited directly. You need to use crontab command for editing or setting up your own cron jobs.



To edit your crontab file, type the following command:



$ crontab -e

Syntax of crontab

Your cron job looks like as follows:

1 2 3 4 5 /path/to/command arg1 arg2



Where,



■1: Minute (0-59)

■2: Hours (0-23)

■3: Day (0-31)

■4: Month (0-12 [12 == December])

■5: Day of the week(0-7 [7 or 0 == sunday])

■/path/to/command - Script or command name to schedule

Same above five fields structure can be easily remembered with following diagram:



* * * * * command to be executed

- - - - -












----- Day of week (0 - 7) (Sunday=0 or 7)




------- Month (1 - 12)



--------- Day of month (1 - 31)


----------- Hour (0 - 23)

------------- Minute (0 - 59)Example(s)

If you wished to have a script named /root/backup.sh run every day at 3am, my crontab entry would look like as follows:

(a) Install your cronjob:

# crontab -e(b)Append following entry:

0 3 * * * /root/backup.shRun five minutes after midnight, every day:

5 0 * * * /path/to/commandRun at 2:15pm on the first of every month:

15 14 1 * * /path/to/commandRun at 10 pm on weekdays:

0 22 * * 1-5 /path/to/command Run 23 minutes after midnigbt, 2am, 4am ..., everyday:

23 0-23/2 * * * /path/to/commandRun at 5 after 4 every sunday:

5 4 * * sun /path/to/command





Use of operators

An operator allows you to specifying multiple values in a field. There are three operators:



1.The asterisk (*) : This operator specifies all possible values for a field. For example, an asterisk in the hour time field would be equivalent to every hour or an asterisk in the month field would be equivalent to every month.

2.The comma (,) : This operator specifies a list of values, for example: "1,5,10,15,20, 25".

3.The dash (-) : This operator specifies a range of values, for example: "5-15" days , which is equivalent to typing "5,6,7,8,9,....,13,14,15" using the comma operator.

How do I disabling Email output?

By default the output of a command or a script (if any produced), will be email to your local email account. To stop receiving email output from crontab you need to append >/dev/null 2>&1. For example:

0 3 * * * /root/backup.sh >/dev/null 2>&1To mail output to particluer email account let us say vivek@nixcraft.in you need to define MAILTO variable to your cron job:

MAILTO="vivek@nixcraft.in"

0 3 * * * /root/backup.sh >/dev/null 2>&1





Task:To list your crontab jobs use the command

Type the following command:

# crontab -lTo remove or erase all crontab jobs use the command:

# crontab -r

Use special string to save time

Instead of the first five fields, you can use any one of eight special strings. It will not just save your time but it will improve readability.



Special string Meaning

@reboot Run once, at startup.

@yearly Run once a year, "0 0 1 1 *".

@annually (same as @yearly)

@monthly Run once a month, "0 0 1 * *".

@weekly Run once a week, "0 0 * * 0".

@daily Run once a day, "0 0 * * *".

@midnight (same as @daily)

@hourly Run once an hour, "0 * * * *".



Run ntpdate every hour:



@hourly /path/to/ntpdate

Make a backup everyday:



@daily /path/to/backup/script.sh

Understanding /etc/crontab file and /etc/cron.d/* directories

/etc/crontab is system crontabs file. Usually only used by root user or daemons to configure system wide jobs. All individual user must must use crontab command to install and edit their jobs as described above. /var/spool/cron/ or /var/cron/tabs/ is directory for personal user crontab files. It must be backup with users home directory.



Typical /etc/crontab file entries:



SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/



# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthlyAdditionally, cron reads the files in /etc/cron.d/ directory. Usually system daemon such as sa-update or sysstat places their cronjob here. As a root user or superuser you can use following directories to configure cronjobs. You can directly drop your scripts here. run-parts command run scripts or programs in a directory via /etc/crontab



Directory Description

/etc/cron.d/ Put all scripts here and call them from /etc/crontab file.

/etc/cron.daily/ Run all scripts once a day

/etc/cron.hourly/ Run all scripts once an hour

/etc/cron.monthly/ Run all scripts once a month

/etc/cron.weekly/ Run all scripts once a week



How do I use above directories to put scripts?

Here is a sample shell script (clean.cache) to clean up cached files every 10 days. This script is directly created at /etc/cron.daliy/ directory i.e. create a file called /etc/cron.daily/clean.cache:



#!/bin/bash

CROOT="/tmp/cachelighttpd/"

DAYS=10

LUSER="lighttpd"

LGROUP="lighttpd"



# start cleaning

/usr/bin/find ${CROOT} -type f -mtime +${DAYS}
xargs -r /bin/rm



# if directory deleted by some other script just get it back

if [ ! -d $CROOT ]

then

/bin/mkdir -p $CROOT

/bin/chown ${LUSER}:${LGROUP} ${CROOT}

fi

how to create new ubuntu vm

how to create new ubuntu vm




Tuesday, January 19, 2010

10:56 AM



1. Solve problem of eth1

When image of VM is created as new VM the problem of eth1 will occure and we can see



cat /etc/udev/rules.d/70-persistent-net.rules

 looked like this:

# PCI device 0x1022:0x2000 (pcnet32)


SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:50:xx:xx", ATTR{type}=="1", NAME="eth0" (this first group has to be deleted)



# PCI device 0x1022:0x2000 (pcnet32)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:36:xx:xx", ATTR{type}=="1", NAME="eth1"



We have to change /etc/udev/rules.d/70-persistent-net.rules to

delete the first group and change the second group to "eth0"

# PCI device 0x1022:0x2000 (pcnet32)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:36:xx:xx", ATTR{type}=="1", NAME="eth0"



2. Change the ip of the vm to new ip as in

vi /etc/network/interfaces



3. reboot

4. check ifconfig

firewall

https://help.ubuntu.com/9.04/serverguide/C/firewall.html

http://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/


http://www.cyberciti.biz/tips/howto-block-ipaddress-with-iptables-firewall.html

How do I block specific incoming ip address?


Following iptable rule will drop incoming connection from host/IP 202.54.20.22:



iptables -A INPUT -s 202.54.20.22 -j DROP

iptables -A OUTPUT -d 202.54.20.22 -j DROPA simple shell script to block lots of IP address

If you have lots of IP address use the following shell script:



A) Create a text file:



# vi /root/ip.blocked

Now append IP address:



# Ip address block file

202.54.20.22

202.54.20.1/24

#65.66.36.87B) Create a script as follows or add following script line to existing iptables shell script:



BLOCKDB=”/root/ip.blocked”

IPS=$(grep -Ev "^#" $BLOCKDB)

for i in $IPS

do

iptables -A INPUT -s $i -j DROP

iptables -A OUTPUT -d $i -j DROP

doneC) Save and close the file.

วันอาทิตย์ที่ 11 กรกฎาคม พ.ศ. 2553

วันเสาร์ที่ 3 กรกฎาคม พ.ศ. 2553

FCKEditor

http://www.mediawiki.org/wiki/Extension:FCKeditor_%28Official%29

Internal link plugin

http://labs.groupwave.be/index.php/2007/10/23/fck-editor-plugin-internal-links/

Tar extraction

tar -xzf MeanEditor.tgz -C /usr/share/mediawiki/extensions/