UBUNTU

มาทำ FTP server กันครับ
 
หวัดดีครับเพื่อนๆ วันนี้ rooney เอาเรื่อง FTP server มาให้เพื่อนๆลอง solo กันดูน่ะครับเผื่อใครอยากจะลองทำใช้กันดู แต่ว่าเนื้อหาอาจจะยังไม่ละเอียดมากนะครับ เอาเป็นว่าวันนี้ขอเขียนประมาณนี้ก่อนละกัน เดี๋ยววันหลังมีเวลาว่างมากกว่านี้จะไปหาวิธีที่ advance ขึ้นอีก level มาเขียนให้เพื่อนๆได้ลองทำกันดูครับ (หรือใครรู้ละเอียดกว่านี้ จะช่วยเขียนอธิบายเพิ่มเติมเลยก็จะ thank you หลายๆครับ)
 
 
เริ่มเลยละกันนะ
 
 
1. sudo aptitude install vsftpd > install program ที่จะใช้ทำ FTP server
 
2. sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.original > copy config file เก็บไว้ก่อนเผื่อแก้ไปแก้มาแล้วมึน จำของเดิมไม่ได้
 
3. sudo chmod 555 /etc/vsftpd.conf > แก้สิทธิ์ไม่ให้เขียนไฟล์ config ได้
 
4. sudo gedit /etc/vsftpd.conf > เข้าไปแก้ config file ของ FTP server
 
 
แต่ละบรรทัดจะมีความหมายดังนี้ (เอาแค่หลักๆพอนะ)
 
 
anonymous_enable=YES > หมายความว่าระบบจะยอมให้ผู้ใช้ login โดยใช้ username เป็น anonymous ได้ ถ้าไม่ต้องการก็เปลี่ยนเป็น NO หรือจะใส่ # ก็ได้ ซึ่งถ้าไม่ให้anonymous FTP ได้ หมายความว่า คนที่มีสิทธิ์ FTP ได้ต้องเป็น user ที่มี account อยู่ในเครื่อง FTP server เท่านั้นอ่ะ
 
#local_enable=YES > ถ้าเอา comment ออกจะทำให้ user ใน local zone (network วงเดียวกะ server) สามารถ FTP ได้
 
#write_enable=YES > ถ้าไม่เอา comment ออก user จะไม่สามารถ upload file เข้า server ได้ download ได้อย่างเดียว
 
#anon_upload_enable=YES > ถ้าไม่เอา comment ออก anonymous user จะไม่สามารถ upload file เข้า server ได้ download ได้อย่างเดียว หลังจากแก้ file เสร็จก็ save ซะ
 
5. sudo chmod 555 /etc/vsftpd.conf > แก้สิทธิ์ไม่ให้ใครบังอาจมาแหยมแก้ไฟล์ config เราได้ เดี๋ยวปั๊ดเหนี่ยวเลย
 
6. sudo /etc/init.d/vsftpd restart > แล้วก็ restart service เป็นอันใช้ได้ก็ประมาณนี้แหละครับ ไม่ลองไม่รู้ครับ
DHCP server เจ้าค่า
หวัดดีครับ วันนี้ที่มาเขียนเรื่องนี้ เผอิญว่าวันก่อนตอนกะลังออน msn ก็ดันไปเจอกะน้องคนนึงเข้า (คนใน ubuntuclub) เห็นน้องเค้าบอกว่า want มากเลย อยากเป็น admin แต่เผอิญเพิ่งจับ linux เลยอยากให้ทาง ubuntuclub ช่วยเขียนเนื้อหาที่เกี่ยวกะพวก network ,server ,security เพิ่มขึ้นอีกสักกะติ๊ด ก็เลยกะว่าจะใช้ความรู้ที่มีอยู่ (น้อยนิด) ลอง test ทำนู่นทำนี่ไปเรื่อย ถ้าอันไหนมัน work ก็จะเอามาเขียนเป็นบทความขึ้น web เอาไว้ เผื่อใครสนใจ จะได้ลอง solo ตาม อันดับแรกก็ขอเริ่มที่การทำ DHCP server ก่อนละกัน เพราะมันไม่ค่อยยากเท่าไร
 
วิธีทำก็ตามนี้เลยครับพี่น้องครับ
 
step 1 : sudo aptitude install dhcp3-server > ติดตั้ง package สำหรับทำ DHCP server
 
step 2 : sudo /etc/init.d/dhcp3-server stop > stop process ของ dhcp ซะก่อน
 
step 3 : sudo gedit /etc/dhcp3/dhcpd.conf > เปิดไฟล์ config ของ program ขึ้นมาแก้เล่น
 
 
เนื้อหาใน file ก็ให้แก้ประมาณนี้ครับ
 
option domain-name "hq.intra.sipa.or.th"; > ในเครื่องหมาย " " ให้ใส่ค่า domain ของเราลงไป ( ถ้าไม่ใช้ก็ไม่ต้องเอา comment หน้าบรรทัดนี้ออก )
 
option domain-name-server 192.168.20.1; > ให้กรอกค่า ipaddress ของ DNS server เราลงไป แต่ถ้ามี DNS server 2 ตัวก็ให้ใช้ comma ช่วย ประมาณนี้ 192.168.20.1, 192.168.20.2;
 
option subnet-mask 255.255.255.0; > ให้ใส่ค่า subnet mask เราลงไป
 
default-lease-time 600; > ปกติ DHCP server มันจะจำ user ที่มันจ่าย ip ให้เอาไว้ช่วงเวลานึงอ่ะครับ เช่น client ยิงสัญญานไปขอ ip address จาก server แล้วเผอิญได้ ip มาค่านึง หลังจากนั้น ไอ้เจ้า client เกิดปวดอึ และกลัวจะเปลืองไฟ เลยปิด com ไปชั่วขณะ พอกลับมาเปิด com อีกทีถ้าไม่เกินช่วงเวลาที่ server มันกำหนด ip adress ค่าที่ client เคยได้ก่อนไปอึ ไอ้เจ้า server มันก็จะแจกให้ client คนเดิมใช้อีกรอบครับ ในกรณีนี้ คือ 600 (วินาที)
 
max-lease-time 7200; > ไม่รู้อ่ะ อ่าน manual แล้วยังงงๆ ว่าจะมีมันทำแมวอะไร ใครรู้ตอบหน่อยดิครับ
 
subnet 192.168.20.0 netmask 255.255.255.0 { > หลัง subnet ให้กรอกค่า network address ของเราลงไป และก็ตามด้วยค่า subnet mask
 
range 192.168.20.10 192.168.20.100; > หมายความว่าจะให้ DHCP server เราจ่ายค่า ip address ให้ client ในช่วง range นี้
 
range 192.168.20.150 192.168.20.200; > ถ้าต้องการให้ DHCP server จ่ายค่า ipaddress อีกช่วงนึงด้วย ก็ให้เติมไปอีก range ( จะอีกสัก range ก็ยังได้นะ )
 
option broadcast-address 192.168.20.255; > ใส่ค่า broadcast address ลงไป
 
option routers 192.168.20.254; > นี่คือค่า ip address ของ default gateway ที่เราจ่ายให้กับเครื่อง client
 
step 4 : sudo /etc/init.d/dhcp3-server start > start service ซะ
 
จบแล้วจ้า สู้ๆ สู้ตาย
 
* ปล. ไฟล์ config ของแต่ละคนเปิดมา การเรียงบรรทัด ของส่วนที่ต้องแก้อาจจะไม่ตรงตามที่ผมเขียนนะ แบบว่า ใน manual มันเรียงอย่าง ลอง apt มาเล่นที่ทำงานมันก็เรียงอีกอย่าง พอลอง apt มาเล่นที่บ้านมันก็ดันเรียงอีกอย่าง ฮ่วย! จะเอาไรแน่นอนกะชีวิตฟะ - - "
ที่มา UBUNTUclub
*****------------------*********
สำหรับผมได้ทดลองทำตามแล้ว และได้ค่า config ไฟล์ดังนี้ซึ่งทำงานได้
แต่อย่าลืมว่า หากเรากำหนดไอพีของ network card อะไรก็ต้องมีค่านั้นด้วยเช่น ค่า config file ของผมที่ได้ผมมี Ip เครื่อง 192.168.254.1

ddns-update-style interim;
#ad-hoc;
ignore client-updates;

# v102
subnet 192.168.254.0 netmask 255.255.255.0 {
default-lease-time 21600;
max-lease-time 43200;

#server-name "43200";
#max-lease-time 21600;
# option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
# option domain-name-servers 192.168.1.1 , 203.155.33.1;
option time-offset -18000;
range dynamic-bootp 192.168.254.128 192.168.254.252;
# notebookpd
host nsnotebook {
hardware ethernet 00:0d:60:7b:f2:b9;
fixed-address 192.168.254.5;
}
}

# v101
subnet 192.168.50.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option time-offset -18000;
range dynamic-bootp 192.168.50.128 192.168.50.254;
}
# 103
subnet 192.168.103.0 netmask 255.255.255.0 {
option routers 192.168.103.254;
range dynamic-bootp 192.168.103.101 192.168.103.200;
}
#v104
subnet 192.168.104.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
option time-offset -18000;
range dynamic-bootp 192.168.104.128 192.168.104.254;
}

# 101
subnet 192.168.101.0 netmask 255.255.255.0 {
option routers 192.168.101.254;
range dynamic-bootp 192.168.101.101 192.168.101.200;
}

ค่าที่ได้ของผมจะมีการกำหนด การจ่าย ip หลายกลุ่ม ซึ่งผมใช้ร่วมกับการ config router กำหนดเป็น vlan โดยแต่ละ VLAN จะมีกลุ่ม IP ที่ต่างกันออกไปครับ
edit @ 2007/04/23 23:01:48
edit @ 2007/05/10 19:14:01
edit @ 2007/05/23 11:46:11
Apache Config ง่ายๆ สำหรับนักพัฒนาเว็บไซต์
เจอคำถามพวกนี้ออกบ่อยๆ ครับ เลยเอามาเขียนลงซะเลย แรงบันดาลใจมาจากกระทู้นี้
 
หลังจากลง LAMP แล้วนะครับ ทีนี้จะเอา File Script หรือ Html ไว้ตรงไหนดี สำหรับ Ubuntu โดย Default แล้ว html root จะอยู่ที่ /var/www/ แต่ไม่สะดวกแน่เพราะมีแต่ root เท่านั้นที่จะเข้าไปจัดการกับมันได้ ทีนี้ User เค้าก็ไม่สนับสนุนให้เป็น root ใช่ไหมเล่าครับ

วันนี้ผมมีทางให้เลือก 2 วิธี คือใช้ UserDir กับ การสร้าง Virtual Host

1. การสร้าง Virtual Host ให้เข้าไปแก้ไขที่ /etc/apache2/sites-available/default จะใช้ editor ไรก็ได้ไม่ว่ากัน เพิ่มส่วนข้างล่างไปเลยครับ อันนี้เป็นตัวอย่าง สำหรับ user tee น่ะครับ ผมกำหนดไว้ใน บ้านตัวเองเลย

Listen 9001
NameVirtualHost *:9001
<VirtualHost *:9001>
ServerAdmin webmaster@localhost
DocumentRoot /home/tee/VHosts/mydomain.com
<Directory /home/tee/VHosts/mydomain.com>
Options Includes Indexes FollowSymLinks MultiViews
AllowOverride All
#Order allow,deny
#allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
#RedirectMatch ^/$ /apache2-default/
</Directory>

#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#<Directory "/usr/lib/cgi-bin">
# AllowOverride None
# Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Order allow,deny
# Allow from all
#</Directory>

#ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
#CustomLog /var/log/apache2/access.log combined
ServerSignature On
#Alias /doc/ "/usr/share/doc/"
#<Directory "/usr/share/doc/">
# Options Indexes MultiViews FollowSymLinks
# AllowOverride None
# Order deny,allow
# Deny from all
# Allow from 127.0.0.0/255.0.0.0 ::1/128
#</Directory>
</VirtualHost>

อธิบายส่วนสำคัญๆ ไดัดังนี้

1.1 Listen 9001 - ให้เปิด port นี้เอาไว้ (จริงๆ สำหรับ Ubuntu ส่วนนี้ default เค้าจะเอาไว้ใน /etc/apache2/ports.conf แต่เอาไว้ตรงนี้ก็ได้ ไม่ผิดแต่อย่างใด)
1.2 DocumentRoot /home/tee/VHosts/mydomain.com - ก็กำหนด ที่อยู่ของ file เว็บไซต์เลย อย่าลืมสร้างด้วยล่ะ
1.3 <Directory /home/tee/VHosts/mydomain.com>....</Directory> - ภายใต้ tag นี้ก็เพื่อจะกำหนด option ต่างๆ ของ folder อันนี้ต้องไปศึกษาเพิ่มเติมครับว่าอะไรทำไรบ้าง ขืนเขียนหมด จะยาวไม่จบเสร็จแล้วก็ reboot apache $sudo /etc/init.d/apache2 restart วิธิการเรียกใช้งานมาดูก็ http://localhost:9001/ ครับ
ส่วนที่ผม comment จาก default ก็คือผมไม่ต้องการจะใช้มันเช่น /cgi-bin/ /doc/ แล้วก็พวก error log เพราะมันจะทำเอา harddisk เต็มแบบไม่รู้ตัวนะครับ เผลอๆ ทำ apache เดี้ยงไปเลย

จบครับ Virtual Host ง่ายโคด (เว็บนี้ censor ป่าว) เมื่อย เอ้ายังมีอีกเรื่อง

2. การสร้าง UserDir สำหรับผู้ที่มี User บนระบบ เข้าไปแก้ไข /etc/apache2/apache2.conf หาบรรทัดนี้ครับ

# UserDir is now a module
UserDir Htdocs

<Directory /home/*/Htdocs>
AllowOverride FileInfo AuthConfig Limit
Options Indexes SymLinksIfOwnerMatch IncludesNoExec
</Directory>

อธิบายส่วนสำคัญๆ ไดัดังนี้

2.1 UserDir Htdocs - กำหนดชื่อ folder ในที่นี้ผมกำหนดเป็น Htdocs โดย default จะชื่อ public_html จะอะไรก็ได้
2.2 <Directory /home/*/Htdocs>...</Directory> - ก็กำหนด option แหละครับ

เสร็จแล้วสร้าง folder Htdocs ลงไปที่ home ตัวเอง เช่น $mkdir /home/tee/Htdocs

ทีนี้ไม่ว่าเราจะยัดอะไรลงไปใน folder นี้ก็จะปรากฏใน http://localhost/~tee/ ครับ เย่ จบแล้วเมื่อยข้อมือ

** ไม่ว่าจะแก้อะไรใน config ถ้าจะให้ take effect ต้อง reboot apache ทุกครั้งนะครับ

http://ubuntuclub.com/node/47