Posts

Showing posts from 2009

Virtual Server With Proftpd

Lần trước có nói đến virtual user trong Proftpd. Sử dụng chức năng này giúp ta an toàn hơn vì đây là user ảo, ko phải user hệ thống.
Hn ta xét tiếp đến Virtual Hosting. Với chức năng này của proftpd ta có thể cấu hình lắng nghe trên nhiều cổng ( Multi Server). Cấu hình đơn giản lắm:
Trong /etc/proftpd thêm:

<virtualhost 1.2.3.4="">
...
</virtualhost>


hoặc:

<virtualhost ftp.mydomain.com>
... </virtualhost>

Trong tab này, ta sẽ thêm các tham số như:
Port : chỉ định port lắng nghe, không trùng với default server
Sử dụng tab:

<directory /path/to/dir;>
</directory>

Trong đó kẹp thêm tab: limit
Ngòai ra còn những tham số như bind ip hoặc allowuser để tùy chọn cho các private server. Nếu làm các các public server có thể dùng section Anonymousm, chú ý set user và group phù hợp :|

Nói về Virtual User, các bạn có inclue quota, mình chỉ bình luận về phần permision của virtual user đó. Khi bạn insert user đó và database, lưu ý tham số uid và gid, đây …

Virtual User With Proftpd And MySQL on CentOS

Xây dựng FTP server với proftpd sử dụng MySQL

Phiên bản sử dụng hiện tại là 1.3.2 stable, download tại http://proftpd.org/
Giải nén
tar xjf proftpd-1.3.2.tar.bz2
cd proftpd-1.3.2/ Ta sẽ sử dụng mySql để lưu thông tin người dùng. Do đó bạn cần đảm bảo máy bạn đã có mysql
mysql_config --help
Options:
        --cflags         [-I/usr/include/mysql  -g -pipe -DUNIV_LINUX]
        --include        [-I/usr/include/mysql]
        --libs           [-rdynamic -L/usr/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lmygcc]
        --libs_r         [-rdynamic -L/usr/lib/mysql -lmysqlclient_r -lz -lpthread -lcrypt -lnsl -lm -lpthread -lmygcc]
        --plugindir      [/usr/lib/mysql/plugin]
        --socket         [/var/lib/mysql/mysql.sock]
        --port           [0]
        --version        [5.1.41]
        --libmysqld-libs [-rdynamic -L/usr/lib/mysql -lmysqld -ldl -lz -lpthread -lcrypt -lnsl -lm -lpthread -lrt -lmygcc] để ý tham số include và lib
Configure cho proftpd integate mysql:
 ./confi…

DNS - Master and Slave

Nhớ 2k3 có cái kiểu này, mày mò làm theo :D
Thấy nó đúng là đơn giản thật :-j
Đầu tiên là cấu hình master zone trên máy master như bình thường.
zone "hbn.com" IN
{
        type master;
        file "hbn.db";
}; Trên máy slave cấu hình còn dễ hơn :(
zone "hbn.com" {
        type slave;
        file "bak.hbn.com";
        masters {192.168.153.100;};
}; Restart lại service
Dec  6 23:51:59 localhost named[1792]: client 192.168.153.101#47372: transfer of 'hbn.com/IN': AXFR started
Dec  6 23:51:59 localhost named[1792]: client 192.168.153.101#47372: transfer of 'hbn.com/IN': AXFR ended Xong.
Bonus video :D
http://www.mediafire.com/?yq34jfdokyj
---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

DNS - Triển khai Internal và External network

Trong thực tế, khi triển khai DNS, ta cần thiết lập DNS phân giải riêng cho mạng nội bộ.
VD như domain hbn.com. Trên mạng có sẵn tên miền này rồi, bây giờ ta muốn mạng nội bộ (10.0.0.0/16) của ta sẽ trỏ sang 192.168.1.100 ( server mạng nội bộ). Tuy nhiên, khi máy ngòai mạng yêu cầu, lại trỏ tới hbn.com thực sự trên mạng.
Ta triển khai như sau:
Trong file named.conf, thiết lập internal
acl internal { 10.0.0.0/16; localhost; }; Bây giờ ta tiến hành cấu hình thêm vào:
view "internal-view" {
      match-clients { internal; };
      zone "test123.com" IN
    {
            type master;
            file "internal.test123.db";
      };
    zone "." IN
    {
            type hint;
            file "named.root";
    };
    zone "0.0.127.in-addr.arpa" IN
    {
            type master;
            file "named.local";
    };
    zone "hbn.com" IN
    {
        type master;
        file "hbn.db";
    }…

DNS - Hide Version

Để tránh scan phiên bản bind, thêm dòng sau vào file cấu hình
version "YOUR Message"; Sample
options { query-source port 53; query-source-v6 port 53; listen-on { 174.ttt.xx.yy; }; directory "/var/named"; // the default dump-file "data/cache_dump.db"; statistics-file "data/named_stats.txt"; memstatistics-file "data/named_mem_stats.txt"; dnssec-enable yes; recursion no; allow-notify { 174.zzz.yy.zz; 172.xx.yy.zz; }; version "BIND"; }; Bonus:
Để xem ver của bind, dùng command sau:
$ dig @ -c CH -t txt version.bind ---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

DNS - Configure to Listen on Interface

IPv4:
Listen trên 1 ip đặc biệt:
listen-on { 202.54.1.2; }; Listen tất cả:
listen-on { any; }; tương tự với IPv6
listen-on-v6 { any; }; listen-on-v6 { ipv-6-address; }; Sample
options { //listen-on-v6 { any; }; listen-on { 202.54.1.2; }; directory "/var/named"; // the default dump-file "data/cache_dump.db"; statistics-file "data/named_stats.txt"; memstatistics-file "data/named_mem_stats.txt"; dnssec-enable yes; recursion no; allow-notify { 202.54.1.3; 202.54.1.4; }; version "go away"; };
---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

Bind - DNS server

DNS - Bind đc coi là vấn đề đơn giản nhất trong cấu hình Server Linux. Tất nhiên là DNS primary standard alone, dùng text file nhé. Thực ra với yêu cầu < 1000 record thì thế vẫn đc coi là ổn, ít ra là hơn Windows DNS service.
Về vấn đề cài bind. Có thể cài từ source rồi chroot cho nó. Đây là yêu cầu cần thiết để đảm bảo an tòan cho hệ thống. Sau khi jain, named sẽ chạy với tư cách root (chroot) , tuy nhiên, vì đã jain, nên dù bị hack, hacker vẫn sẽ bị nhốt trong thư mục /var/named.
http://www.linuxsecurity.com/docs/LDP/Chroot-BIND-HOWTO.html
Hướng dẫn khá chi tiết. nếu làm về FreeBSD nên đọc cái này
Trên CentOS, vấn đề đơn giản hơn :))
yum install bind-chroot Sau đó, thực hiện các cấu hình sau:
 chmod 755 -R /var/named/
 cp /usr/share/doc/bind-9.3.3/sample/var/named/named.local /var/named/chroot/var/named/
 cp /usr/share/doc/bind-9.3.3/sample/var/named/named.root /var/named/chroot/var/named/
 touch /var/named/chroot/etc/named.conf
  chkconfig --level 35 named on
  service named star…

Samba - Cần nhớ

Hôm nay làm Samba, mắc lỗi, mãi cuối A.Tùng phát hiện ra. Viết vào để nhớ
- Dùng rpm, cài soure lằng nhằng.
- Lệnh: yum install samba*. Cài all.
- Cài xong nên install Swat, mặc dù pro ko mấy khi dùng cái này. Cài cái này cần lưu ý 2 tham số:
+ disable = no
+ network = 192.168.1.0/24 ; mạng muốn cho truy cập
+ đăng nhập bằng root mới quản trị đc =))
- Add user: add user hệ thống: useradd
rồi add vào smb: smbpassword -a
- Trong file cấu hình, ko cấu hình là default, mà default = gì thì mở swat ra coi.
Phân quyền:
Quyền truy cập vào là giao của quuyền truy cập hệ thống và quyền truy cập cho samba. thực ra là samba đọc nó trước rồi mới trao quyền truy cập cho bạn
tóm lại là bạn cần gán quyền truy cập cho thư mục đó ( thường là 777 cho dễ), rồi gán quyền writelist cho user đó. Nhân tiện @ = nhóm :d
Quyền write list chỉ thực hiện đc khi mà read only = Yes. Để gán quyền cho nhóm dùng thêm @ ( như trên) và phân quyền cho nhóm đó ( chuyển quyền).
Mở rộng ra có thể kết hợp với setacl - geta…

Tản mạn Supper User (su)

Hôm nay tản mạn chút về chuyện sudo trong *nix. ai cũng biết là root là tối thượng trong thế giới *nix, chính vì những đặc quyền của nó mà đối với những hệ điều hành như ubuntu mặc định bạn ko thể đăng nhập vào root. Khi bạn add 1 user, user này chỉ là user thường, không thể sudo lên root để làm những việc quan trọng. Để sửa nó, làm như sau:
edit /etc/sudoers ( tất nhiên là với quyền root)
%admin ALL=(ALL) ALLAdd user bạn muốn thêm vào đây, trong đó ALL lần lượt là các đặc quyền privileges mà bạn muốn cho user đóĐối với dòng RedHat, user nào cũng có thể su lên root, :|, tuy nhiên lại thiếu lệnh ( vì biến môi trường trong./bashs_profileRiêng với FreeBSD, để su lên root có vẻ khá đơn giản, chỉ cần add user vào group wheelDùng lệnh # pw user mod username -G wheel Sau đó bạn su lên bình thường, khuyến cáo là các bạn nên disable root ( PermitRootLogin No trong sshd_config), dùng supper user rồi su lên root để đảm bảo. Dù sao thế cũng an tòan và cản chân hacker.
--------------------------…

Enable các lệnh của root cho user thường

Gặp phải vấn đề trên CentOS hay Fedora ( distro dòng Redhat) là user thường khi log vào rồi sudo lên root ko được cung cấp đủ câu lệnh. Vấn đề này cực nghiêm trọng khi đã disable root login ssh (PermitRootLogin no trong sshd_config). Để giải quyết vấn đề này có thể thay vì gõ trực tiếp command có thể type đường dân đầy đủ của file chạy. Tuy nhiên có cách làm sau:
Login vào user cần gõ lệnh, su lên root
Edit file ./bash_profile, sửa dòng PATH lại như sau:
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/local/sbin H thì exit, logout lại ra ngoài, user thường sẽ có thể gõ lệnh + tab đầy đủ.
Hôm nay học đc thêm 1 trang chuyên cung cấp shell script:D
http://www.cyberciti.biz/
 ---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

1 Cuộc đối thoại hay

Hôm nay học về CUPS, ko hứng thú lắm vì chẳng mấy khi phải triển khai Print Server trên *nix, thực sự cái này thì Windows nhà M$ tốt hơn. Ngoài ra có có giải pháp là Print Server cứng, máy in mạng.
Được ngồi nói chuyện với a.H về hosting. Server chạy ClamAV để scan Virus và Shell. Vấn đề là nó chỉ report ko diệt....
Để làm 1 web-server hoàn thiện cần mod-security + safe-mode on với gì nhỉ su php chăng =)). Quên mất rồi, lúc ấy đang làm SME Server nên ko để ý lắm.
Có một đoạn nói chuyện khá hay, giữa một attacker ( hay đúng hơn là scripter thôi) nc với SYS-Admin của Hosting.
Admin (A): Ở đây mình sử dụng ClamAV quét, báo report về. Với những virus, trojan tự động lock, Shell thì report để kill
S: Vấn đề là nếu attacker có thể up shell lên thì mất bao lâu để chiếm quyền server, với một server phân quyền khá kỹ, chmod hoàn hảo thì rất khó, đặc biệt là khi sử dụng suPHP, vào rồi chỉ nhìn. Attacker sẽ chuyển sang getroot. ( Hix, nghe pro quá).
A: Ở đây mình sử dụng kernel phiên bản mới nhấ…

Triển khai chat nội bộ với OpenFire

Die Win, h chỉ chạy sp của M$ trên VirtualBox, đến nản mấy bác ấy luôn.
Hôm trước định viết về OpenFire nhưng mà lỡ delete hết máy ảo rồi, pic của lần ấy cũng ko còn nữa, đành viết chay vậy:
Triên khai chat nội bộ với OpenFire:
Thực ra cũng chẳng có gì quá khó để setup cái này cả. Đầu tiên là chuẩn bị một con Linux, down về và cài ( nói thật là đơn giản).
Mình dùng CentOS, bản 5.3 với tùy chọn duy nhất lúc cài là base ( none - GUI).
 Tiến hành đặt IP cho em ấy, ( có entry ở dưới nói chi tiết cách đặt rồi mà).
Cấu hình lại tường lửa ( iptables chain, ai chưa quen cứ type setup là đc )
Ok, h down về xài, ngại ngồi biên dịch, down rpm:
Đầu tiên là MySQL, bạn có thể ko cần database nhưng nên dùng nó để sau này có thể integrate với mail ( trông như yahoo ấy nhỉ, mà dù sao thao tác với SQL cũng dễ hơn mà).
http://dev.mysql.com/downloads/ Chọn RPM, ngồi biên dịch mất vài tiếng ( thiên hạ đồn thế, mình chưa thử).
Ok, cài thoai:
rpm -Uvh
Lưu ý là cài xong chạy mysqladmin -u root newpassword để …

Một số Distro đặc biệt

Image
Hôm nay ngồi học hơi buồn ngủ, cuối buổi review về các Distro đặc biệt với những chức năng chuyên dụng của nó. H Nam sẽ liệt kê chống ngủ nào:
http://www.knoppix.org/:

Một Debian LiveCD có chức năng như... cứu hộ cho Ubuntu, có tất cả mọi thứ trong 1..........DVD. Tóm lại là cái luôn cần khi mang theo, nếu đã chán HirenBoot thì đó là lựa chọn tốt.
http://clonezilla.org/

Thấy rất nhiều tiếng Tàu. Một Distro dùng để Backup: "You're probably familiar with the popular proprietary commercial package Norton Ghost®, and its OpenSource counterpart, Partition Image. The problem with these software packages is that it takes a lot of time to massively clone systems to many computers. You've probably also heard of Symantec's solution to this problem, Symantec Ghost Corporate Edition® with multicasting. Well, now there is an OpenSource clone system (OCS) solution called Clonezilla with unicasting and multicasting!" Thế là đủ cho 1 Distro cần để backup, thay thế Norton Ghost và…

Cài từ Source

Hôm nay học cài từ source, có đôi điều nx:
Trước khi cài thì cần update thư viện cho c :(
Trên ubuntu: apt-get install build-essential
CentOS: yum install gcc gcc++ ( thằng này chọn bản server ko có gcc)
3 bước cài đặt:
./configure
Bước này cho nhiều tùy chọn, tất nhiên sau này thì có thể sửa đc nhưng nếu có ý định jaid thì nên làm theo cách này.
make
make install

Rồi run
Demo: Cài apache từ source
Xem xong nhớ cm cho cái để biết đã vào

--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

Gõ tiếng Việt trên Ubuntu 9.04

Image
Hiện có nhiều bộ gõ tiếng Việt cho Ubuntu, nhưng theo tôi thì chúng ta nên dùng bộ gõ Scim-Unikey, đây là sự kết hợp giữa Scim và Unikey đuợc ubuntu-vn phát triển và hỗ trợ. Nó thừa hưởngCác bạn có thể download file tự chạy .deb tại http://code.google.com/p/scim-unikey/ chọn version cho phiên bản Ubuntu tương ứng. Double Click và install bình thường. Hoặc có thể cài từ dòng lệnh như sau:
- Truớc tiên cần thêm scim-unikey vào trong Repositories của Synaptics: Menu System–>Administration–>Synaptic Package Manager –>Nhập password vào hộp thông báo hiện ra.
Trong cửa sổ Synaptic Package Manager click chọn Settings–>Repositories –>chọn tab Third-Party Software–>click Add… nhập vào các link dưới đây và click Add Source
* Ubuntu 9.04 deb http://ppa.launchpad.net/ubuntu-vn/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/ubuntu-vn/ppa/ubuntu jaunty main
* Ubuntu 8.10
deb http://ppa.launchpad.net/ubuntu-vn/ppa/ubuntu intrepid main
deb-src http://ppa.launchpad.net/ubun…

Cấu hình card mạng

1. Tìm file cấu hình card mạng
- Đối với RHEL/CentOS/Fedora: mỗi card mạng sẽ có một file với đường dẫn dạng:
/etc/sysconfig/network-scripts/ifcfg-interface_name
ở đây interface_name là tên của card mạng trong máy bạn, thường thì nếu máy bạn có 1 card mạng ethernet nó sẽ là eth0.
- Đối với Debian/Ubuntu: tất cả các card mạng trong máy được cấu hình trong cùng một file tại đường dẫn:
/etc/network/interfaces
2. Xác định hình thức cấp IP và sửa file cấu hình theo hình thức đã chọn
- Nếu là DHCP:
+ RHEL/CentOS/Fedora: sửa file thấy bên trên kia thành
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
+ Debian/Ubuntu: thêm vào file trên kia một đoạn như sau
auto eth0
iface eth0 inet dhcp
- Nếu là static IP:
+ RHEL/CentOS/Fedora: sửa file thấy bên trên kia thành dạng như sau
DEVICE=eth0
BOOTPROTO=static
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.0
GATEWAY=XXX.XXX.XXX.XXX
ONBOOT=yes
+ Debian/Ubuntu: thêm vào file trên kia một đoạn như sau
auto eth0
iface eth0 inet static
address 208.88.34.106
netmask 255…

DNS Lab

DNS/bind on Centos Lab
DNS Install
http://www.mediafire.com/?fukmfdnly2t
DNS Config
http://www.mediafire.com/?1jqydwzzuwg
DNS PTR( con trỏ ngược)
http://www.mediafire.com/?zjmnvlknmmn
--------------------------------------------------------------------------
All my Lab:
Linux Lab -- window and Cisco Lab
to be continued - I will update more.

DHCP (Dynamic Host Configuration Protocol) Lý thuyết và thực hành - Theory and Lab

Image
Định nghĩa: (DHCP - giao thức cấu hình động máy chủ) là giao thức cung cấp phương pháp thiết lập các thông số cần thiết cho hoạt động của mạng TCP/IP giúp giảm khối lượng công việc cho quản trị hệ thống (wikipedia) Các thuật ngữ: DHCP client - Máy trạm DHCP: là một thiết bị nối vào mạng và sử dụng giao thức DHCP để lấy các thông tin cấu hình như là địa chỉ mạng, địa chỉ máy chủ DNS. DHCP server - Máy chủ DHCP: là một thiết bị nối vào mạng có chức năng trả về các thông tin cần thiết cho máy trạm DHCP khi có yêu cầu. BOOTP relay agents - Thiết bị chuyển tiếp BOOTP: là một máy trạm hoặc một router có khả năng chuyển các thông điệp DHCP giữa DHCP server và DHCP client. Binding - Nối kết : là một tập hợp các thông tin cấu hình trong đó có ít nhất một địa chỉ IP, được sử dụng bởi một DHCP client. Các nối kết được quản lý bởi máy chủ DHCP. Cơ chế hoạt động: Khi một máy khách đã được cấu hình DHCP kết nối vào một mạng, client sẽ gởi các truy vấn broadcast ra toàn mạng để truy vấn các thông tin cần…

Introduction of Routing

Introduction of Routing IP Routing is process move packet to another networks using router. Câu này là mở màn Routing Basic, giáo trình Sybex. Có thể nhận xét, routing bản chất là đưa gói tin tới Interface mà nó cần đến :d. Vâng mục đích cuối cùng của Routing là vậy. Tuy nhiên ko phải Routing lúc nào cũng dùng router. Điển hình là win2k3Se cũng có routing &Remote. Trong Xp có command route. Cái này cũng như vậy trong *nix. Tuy nhiên sẽ nghiên cứu trên nền tảng Công nghệ Cisco. Ok
Routing and Routed Protocol: Routing Protocol is used by routers dynamically find all the networks in the internetwork and ensure that all route have the same routing table. Routing Protocol detemines the packet through an internetwork. Ex: Rip, IGRP, EIGRP, OSPF Routed Protocol is used to send data through the establised enterprise. Routed Protocol assign the interface and determine method of packet delivery. Ex: IP, IPX, ApplleTalk. Routing Protocol: How the Routing Protocol Works. There Step: 1. The Routing Pr…