banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: tranvanminh  XML
Profile for tranvanminh Messages posted by tranvanminh [ number of posts not being displayed on this page: 7 ]
 
Chào mừng bạn đến với ``vũ điệu Samba`` trong ``Lễ hội.. Chim cánh chụt``!
Bạn có biết gần đây ``vũ điệu`` này đã có sự chuyển biến lớn hay không? Bạn đã biết, đã nghe hay đã ``vọoc`` những chức năng mới của Samba 3.0 chưa? Nếu chưa thì hãy thử nhé! Tôi sẽ cùng thử với các bạn trong bài viết này!


Như các bạn đã biết, Samba đã có một vị trí nhất định, một phần không thể thiếu trong các Distribution của giới mã mở, như Red Hat Enterprise Linux(RHEL) 3.0 Fedora Core, và trong nhiều Distributio khác.

Nếu bạn yêu thích *nix, bạn đã từng sử dụng Samba 2.2x thì bạn có có nghĩ đến việc nâng cấp lên phiên bản Samba 3.0 mới mẽ, với nhiều tính năng rất ``ăn tiền`` này chưa?

Cho dù bạn đang quản trị một mạng lớn, hay chỉ là một Iter bình thường, hoặc thậm chí là là người mới mò mẫm, mới đặt chân vào thế giới Samba thì bạn đừng do dự, hãy thử đi rồi bạn sẽ thấy thú vị với những khám phá của mình. Bạn cũng đừng lo nếu mình đang ``sở hữu`` vốn kiến thức ``tiếng Anh.. thầy chạy`` không thể sờ mó, gậm nhấm được cái mớ chỉ toàn chữ là chữ của đám Anglo Sắc xông ``mắc toi`` kia! Bởi vì những gì bạn được đọc bên dưới được viết bằng thứ ngôn ngữ mà bất cứ người Việt (không mù chữ) nào cũng có thể đọc và có thể hiểu được! greensmile.gif

Ơ kê, bắt đầu nào quý vị!


1. ``Điểm mặt`` những chức năng mới trong Samba 3.0

1.1. Internationalization

1.2. SWAT Internationalization

1.3. Unicode Support: Xử lý thông tin bằng UCS-2 (Unicode base)
Windows 2000/XP/Windows Server 2003

1.4. Kết hợp với Active Directory
Đuợc hỗ trợ xác thực (authentication) của Kerberos nên tương thích với Active Directory (Windows 2000 trở lên)

1.5. Mở rộng chức năng Winbind

Có thệ quản lý LDAP server trên mapping tables userID + Groups

1.6. Hỗ trợ nhóm toàn cụ Arbitrarry (Arbitrary Global Group support)

1.7. Hỗ trợ tính năng Attestation database
smbpasswd, và nhiều chưc năng Attestation có chất luợng bảo mật cao khác.

1.8. Mở rộng an ninh cho SMB -
SMB signature; mã hóa cho security channel, và có sự phố hợp với nhiều chức năng bảo mật cao của Windows

1.9. Mở rộng, làm phong phú thêm các Command cho các tính đồ chuộng gõ bàn phím hơn là rê chuột.

===============================

2. Cấu hình cho Samba 3.0

Phần này giới thiệu cơ bản cách cấu hình của Samba - nếu bạn đã từng ``làm việc`` với Samba 2.x bạn sẽ nhận ra nhiều cái ``lối cũ ta về`` á! Tuy nhiên, Samba 3.0 có rất nhiều chức năng mới, hoặc đã được nâng cấp, sửa đổi nên các bạn cũng cần lưu ý.

Như đã đề cập ở phần giới thiệu, Samba 3.0 được tích hợp trong các distribution của *nix nên khi bạn cài đặt các Dis này thì mặc định các bạn đã có tùy chọn xử lý với Samba.

Ngoài ra, các bạn có thể download bản Samba mới nhất ở đây: http://us1.samba.org/samba/

Đây là phiên bản mới nhất (Samba 3.0.6) và được sử dụng cho bài viết này. Bạnbạn có thể tùy chọn download các gói RPM, Tar, SRPM để cài đặt. Bài này tôi dùng SRPM, và GNU Libiconv để thực hiện cài đặt.


cd /usr/src/redhat/SRPMS/
rpm --rebuild libiconv-1.8-1.src.rpm
rpm --rebuild samba-3.0.6.src.rpm

Khi thực hiện rebluild, hệ thống của bạn sẽ tiến hành biên dịch Samba - bạn phải có các packages như GCC , LDAP , Kerberos để thi hành biên dịch. Nếu thực hiện rebuild thành công, trong /usr/src/redhat/RPM/RPMS/i386 sẽ có file RPM -- > Còn không nhanh chân dùng file này để mà cài với đặt! smilie

Ah há, nếu bạn nào có ``Coca Cola``, á lộn, có APT, bạn cụng có thể dùng chúng để để download và cài đặt cho nhanh nhanh hơn tí! greenbiggrin.gif


apt-get update
apt-get install locales
apt-get install samba


Nếu như 2 cách trên bạn không thể dùng đuợc, hoặc bạn muốn sử dụng bản Samba mới nhất này vì lý do gì đó thì bạn có thể complier Samba từ source. Muốn cài đặt Samba, như đã nó trên, bạn cần cài đặt GNU Libiconv. Để sử dụng Attestation Database hoặc AD Domain support thì bạn cần cài LADP và Kerberos.


Tiến trình cài cài đặt Samba có thể mô tả như sau:

Nếu bạn không muốn nhận các thông báo lỗi (error message) khi cấu hình Samba thì cần chọn các Options:

--with-libiconv=
: GNU libiconv install dir

--with-pam : Hữu hiệu hóa PAM

--with-ads : Active Directory

--with-ldapsam : support Attestation LDAP

cd samba-3.0.6source

./configure --with-libiconv=/usr/local --with-automount --with-smbmount --with-pam --with-pam_smbpass --with-ldapsam --with-syslog --with-quotas --with-utmp --with-winbind --with-ldap --with-ads --with-smbwrapper

$ make
$ su
# make install



Unicode Support (UCS-2、UTF-8)

/etc/smb.conf


[global]
unix charset = UTF-8
dos charset = UTF-8
display charset = UTF-8


unix charset = Nhưng char chạy trên Unix filesystem

dos charset =Nhưng char chạy trên Windows

display charset = Những chat chạy trên SWAT


Tham gia Active Directory

Khi sử dụng Kerberos Attestation, Samba 3.0 có thể tham gia Active Drectory trên Windows .

Thí dụ bạn có những yếu tố như sau:

DCOS : Windows Server 2000 (DC= Domain control )
FQDN : thanbai.w2000ad1.minh.com
Directory domain : W2000AD1.MINH.COM
Samba 3.0.3 PC : 777 (computer name )

 


Cách cấu hình /etc/krb5.conf


[realms]
W2000AD1.MINH.COM = { # Active domain name
kdc = thanbai.w2000ad1.minh.com # Dc host
}

[domain_realm]
.thanbai.w2000ad1.minh.com = W2000AD1.MINH.COM

thanbai.w2000ad1.minh.com = W2000AD1.MINH.COM
# DNS domain name và Kerberos Realm

 


đồng thời trong file /etc/smb.conf bạn cấu hình như sau

[global]
workgroup W2000AD1 <- Net BIOS name
realm = W2000AD1.MINH.COM
security = ADS 


Chuẩn bị xong, ta bắt đầu tham gia vô Active Directory:

kinit administrator@W2000AD1.MINH.COM <--- Nhập chữ IN
Password for administrator@W2000AD1.MINH.COM: <--- Nhập Password cũa Administrator


Kau khi login thành công, bạn dùng cmd:

net ads join

Joined...

cái ni chắc bạn đã thấy rồi......

Support of an attestation database

Tiếp theo tôi xin giới thiệu một trong các tính năng hay ho của Samba là hỗ trợ nhiều chức năng bảo mật tốt cho auth database.


Default attestation modules

smbpasswd : (default)
tdbsam : Databse dạng TDB
ldapsam : Set URL LDAP server

example config

[global]
passdb backend = ldapsam:ldap://ldap.minh.com smbpasswd



pdbedit command
cmd này dùng cho ta quản lý acount như add user , modify user ,


pdbedit -u 777 -v


Unix username: 777
NT username:
Account Flags: [U ]
User SID: S-1-5-21-3899892270-3850540773-3613385630-12000
Primary Group SID: S-1-5-21-3899892270-3850540773-3613385630-10201
Full Name:
Home Directory: \777
HomeDir Drive: G:
Logon Script:
Profile Path: \777profile
Domain: SAMBA30
Account desc:
Workstations:
.............
..............
.............




Mỏ rộng security cho SMB

Samba protocol đuợc mỡ rộng và có rất nhiều chức năng năng cao bảo mật cho samba.

Một số tính năng mới của Samba3.0:

encrypt passwords、client plaintextauth

lanman auth、client lanman auth

ntlm auth、client ntlmv2auth

ntlmv2 auth、client ntlmv2auth

server signing、client signin

server schannel、client schannel

disable netbios


Global group support in NT domain

Trong Samba 2.2 chỉ có hỗ trợ Domain Admins và Domain Users, nhưng đối với samba3.0.x thì hoàn toàn đuợc cải thiện trong vấn đề này, samba3.0.x có thể dùng tất cả domain trong Windows

Bạn có thể dùng command net groupsmap để cấu trúc global group. Khi dùng net groupsmap command cần có sự phối họp của *nix groups, bạn có thể mapping hoặc make một *nix group dành cho bên *nix


Phối hợp Domain Admins và *nix omadm group


# net groupmap modify NTgroup=`Domain Admins` UNIXgroup=domadm

# net groupmap add NTgroup=`Samba 1` UNIXgroup=samba1 type=d

No rid or sid specified, choosing algorithmic mapping
Successully added group Samba 1 to the mapping db


check setting

# net groupmap list

Domain Admins (S-1-5-21-3665834988-2389521404-3181922140-512) - > domadm
Domain Guests (S-1-5-21-3665834988-2389521404-3181922140-514) - > -1
...............................
..........................
...........................
......................
.....................

Samba 1 (S-1-5-21-2348584241-585622575-4239557047-1000) - > samba1
con số là SID 


==========

3. Tổng kết

Còn rất nhiều chức năng tôi không nêu trong bài viết đuợc trong khuôn khổ giới hạn của bài viết này. Hy vọng có thời gian để bổ túch thêm trong các version tíep theo của bài này ngõ hầu giúp các bạn có nguồn tài liệu bằng Việt ngữ để có thể tìm hiểu, học hỏi, nâng cao thêm kiến thức về Samba.

4. Các tài liệu tham khảo

Active Directory

/forum/showtopic_3...tml#entry206869

LDAP

http://www.gracion.com/server/whatldap.html

SWAT

http://www.sjoerd-visser.demon.nl/net-linux/swat.html

Các site khác:

http://us1.samba.org/samba/docs/

http://samba.sernet.de/

http://www.ifn.ing.tu-bs.de/ifn/sonst/samba-vms.html

http://www.osnews.com/story.php?news_id=6684

777-Diemxua
Snort với ACID+MySQL

Intro

Snort đối với một số người thì nó chỉ là “mất bò mới lo làm chuồng.” Đối vơi tôi thì nó là một cái dụng cụ có ích cho việc làm của mình. Ý tôi là nói khong phải chỉ nhất thiết dành cho việc tìm kiếm, ngăn ngừa hackers, mà nó có thể dành cho việc tìm kiếm những nguyên nhân đang gây ra một chuyện rắc rối nào đó dễ dàng hơn.


Ví dụ như ngày hôm qua cái server có thay đổi một chút làm cho nó không chạy tốt. Tôi có thể nhìn vô Snort log mà biết ai đã xử dụng VNC, telnet, ssh, Terminal Services, PCAnywhere, vv… vô máy đó. Mặc dù không nhất thiết là người này đã làm gì sai, nhưng mình có thể rút ngắn được thời gian tìm ra nguyên nhân bằng cách này.


Hoặc là một hôm tôi tìm thấy có người sử dụng formmail.cgi (version cũ) để gửi spam emails. Snort phát hiện ra IP nào đang bị tấn công và máy đó được chỉnh lại ngay lập tức.


Cho dù firewall có thể ngăn chặn đuoc một số tấn công từ ngòai vào. Tôi vẫn chạy Snort ở trong LAN. Virus/trojans có thể vô bằng nhiều cách khác như emails, web sites, downloads. Snort có thể phát hiện một số lớn.


Installing


Tôi sẽ không đi sâu vào chuyện cài đặt này. Tôi chỉ trình bày qua sơ trên Debian thôi. Nhưng bạn cần nhớ là khi cài Snort từ source thì cần phải có –with-mysql. Trong đây, tôi cho rằng MySQL đã đuoc cài sẵn.


MySQL:

1. Cần database cho Snort.

mysql> create database snort;

SNORT:



Cài đặt Snort trên Debian:


apt-get install snort-mysql 


Bạn phải trả lời một số câu hỏi sau:

1. Do you want to continue? [Y/n] Y

2. When should snort be started? boot

3. On which interface should Snort listen? Eth0

4. Please enter the address range that Snort will listen on? blank

5. Should I disable the promiscous mode? No

6. Should snort's rules testing order be changed to Pass|Alert|Log? No

7. If you want to specify custom options to 'snort', please specify them here: blank

8. Who should receive the daily statistics mails? root

9. An alert needs to appear more than this times to go to the stats. 1

Cài đặt Snort trên Fedora hoặc Mandrake:

http://www.snort.org/dl/binaries/linux/

ACID: Acid cần có Apache+PHP đã được cài sẵn.



Cài đặt Acid trên Debian:

apt-get install acidlab

Which web server would you like to reconfigure automatically? apache

Which database would you like to use? mysql

Alert database name: snort

Alert database hostname: localhost

Alert database user: root

Alert database password: <password>

Archive database hostname: localhost

Archive database user: root

Archive database password: <password>

Cài đặt Acid trên Fedora hoặc Mandrake:

http://dag.wieers.com/packages/php-acid/


Configuration



Tìm cái snort.conf. Trong Debian thì bạn sẽ thấy nó ở trong /etc/snort/snort.conf. Trong đó bạn sẽ tìm thấy dòng chữ này:


output database: log, mysql, user=username password=ilikelinux dbname=snort host=localhost 



Nếu có ‘#’ ở đằng trước thì xóa nó đi.


Running Snort


Truoc khi chạy Snort, MySQL cần được chạy trước.


/etc/init.d/mysql start


Sau đó chạy Snort


/etc/init.d/snort start


Nếu bạn muốn nhìn alerts trong console thì tìm trong /var/log/snort/alert

tail –f /var/log/snort/alert 


Còn nếu bạn muốn nhìn trong browser thì vô http://yourdomain.com/acid


Bạn sẽ thấy những thông báo của Snort trên browser.


Conclusion

Những thông báo này sẽ có thể làm bạn giật mình. Đừng quá lo lắng. Snort thông báo khá chi tiết và đôi khi có thông báo sai lầm (false alarm). Vì vậy, bạn phải cần hiểu rõ là những thông báo nào mình nên nhìn sâu thêm và lọai bỏ đi cái không cần chú ý đến. Tất cả những gì bạn cần sửa đổi sau khi cài đặt là hòan tòan ở trong /etc/snort. Bạn có thể xóa bỏ những rules bạn không muốn thông báo bằng cách edit /etc/snort/*rules


Questions/Comments

foobar@infinipress.com
vsftpd - very secure file transfer daemon

-------------------------------------------------

Làm thế nào khi muốn chạy ftp server mà không muốn FTP user có login shell, system account và dạo chơi trên cái HDD của server ? chroot ? quá phức tạp.
Câu trả lời là vsftpd và virtual user

Yêu cầu:
----------
Cần có Linux PAM module.

Cài đặt PAM Modules:
---------------------------
Download tại kernel.org

chairuou@slackware10:~/download$ wget http://www.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.77.tar.gz

Giải nén:

chairuou@slackware10:~/download$ tar zxvf Linux-PAM-0.77.tar.gz
chairuou@slackware10:~/download/Linux-PAM-0.77$ ./configure
chairuou@slackware10:~/download/Linux-PAM-0.77$ make
chairuou@slackware10:~/download/Linux-PAM-0.77$ make install

kiểm tra lại:

chairuou@slackware10:~/download/Linux-PAM-0.77$ ls -l /lib/security

Cài đặt vsftpd:
------------------

Download tại ftp://vsftpd.beasts.org/users/cevans/vs … 0.1.tar.gz
Tạo user để chạy vsftpd

root@slackware10:~/useradd -d /no/where -s /bin/false nobody

Tạo thư mục /usr/share/empty

root@slackware10:~/mkdir /usr/share/empty

Giải nén:

chairuou@slackware10:~/download/tar zxvf vsftpd-2.0.1.tar.gz
chairuou@slackware10:~/download/cd vsftpd-2.0.1
chairuou@slackware10:~/download/vsftpd-2.0.1/make
chairuou@slackware10:~/download/vsftpd-2.0.1/su
root@slackware10:~/download/vsftpd-2.0.1/make install
root@slackware10:~/download/vsftpd-2.0.1/cp vsftpd.conf /etc/vsftpd.conf

Cài đặt virtual user:
-----------------------

root@slackware10:/#useradd my_ftp -s /bin/false -d /var/ftp_pub
root@slackware10:/#passwd my_ftp my_password
root@slackware10:/#vi /etc/vsftpd.conf

#----------------------
# vsftpd config file
#----------------------
anonymous_enable=NO # turn off anonymous login
local_enable=YES # turn on local user account login, need for mapping virtual user
write_enable=YES # user writeable
anon_upload_enable=NO # no anonymous upload
anon_mkdir_write_enable=NO # no anonymous MAKE DIR
anon_other_write_enable=NO # anonymous write disable
chroot_local_user=YES # local user chroot
guest_enable=YES # required for virtual user
guest_username=my_ftp # real user using for mapping virtually
listen=YES # don't use inetd/xinetd to run
listen_port=21 # FTP Port
pasv_min_port=30000 # Min/Max port to use in PASS mode
pasv_max_port=30999
virtual_use_local_privs=YES # required for virtuall user mapping permission from real user
xferlog_enable=YES # Log related settings
vsftpd_log_file=/var/log/vsftpd.log 


Tạo virtual user database
------------------------------
Cần tạo 1 file text với cấu trúc như sau :

user
password
user
password 


Ví dụ:
-------

$vi vuser.txt
ftp1
password1
ftp2
password2 


Dùng lệnh sau:

root@slackware10:/#db_load -T -t hash -f vuser.txt /etc/vsftpd_login.db
root@slackware10:/#chmod 600 /etc/vsftpd_login.db


Tạo 1 file vsftpd.pam có nội dung như sau:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
 

Sau đó copy file này vào /etc/pam.d
Mã:

root@slackware10:/#cp vsftpd.pam /etc/pam.d/ftp

---------------------------------------

Tác giả : chairuou
Nguồn : http://forum.vnoss.org/viewtopic.php?id=240
Gỏ lệnh : rpm --import public.gpg.key thử xem ?

Khi cài đặt chương trình chỉ cần gỏ
yum install package-name
http://hvaonline.net/hvaonline/posts/list/110.html

- xem các bài giới thiệu tổng quát về linux

Thân

anhxa wrote:
Cảm ơn bạn nhìu...
Nhân tiện cho mình hỏi thêm:
1/ đoạn code sau:

Code:
#include <stdio.h>
#include <conio.h>
main ()
{ int n, i, s = 0;
clrscr ();
printf("\nCho gia tri n = "); scanf("%d", &n);
for (i = 0; i <= n; i++) s += i;
printf("\nKet qua: %d", s);
getch ();
return 0;
}


Mình không hiểu là tại sao lại phải cần khai báo: Code:
int s = 0;

 


Vì cuối dòng for (i = 0; i <= n; i++) bạn có dùng s += i ,
khúc này cùng nghĩa với s = s + i , từ đây nếu không khai báo int s =0 thì nó sẽ không hiểu s là bao nhiêu để + với i .

Code:
2/ Các bạn cho mình hỏi ý nghĩa 2 đoạn code sau:
a += b++


a += là cộng cái gì đó (bên phải )cho a (nó cũng giống như câu hỏi đâu trên của bạn )
b++ là cộng thêm 1 cho b sau khi đánh giá .
++b là cộng thêm 1 cho b trước khi đánh giá .



Đã giải thích quá rành mạch , xin phép được đóng topic .

Lý do - Không chịu đọc nội qui và vi phạm nội qui .


ps :Tham gia hoạt động vào đâu cũng thế trước tiên bạn cần phải đọc nội quy của nơi bạn tham gia .

cigcof wrote:
Đây là ý kiến chủ quan của mình thôi. Mình nhận thấy HVA là một diễn đàn với lượng thành viên và bài viết cực lớn. Nhiều khi mình muốn tìm kiếm theo User. ( Chẳng hạn các bài viết của anh Conmale) thì potay. Mong lắm !!! 


Bấm vào nick của thành viên nào muốn xem rồi vào link " Messages posted by xxx"

ví dụ của bạn :
http://hvaonline.net/hvaonline/posts/listByUser/67588.html
bmuht_gpj.76252_a9753dd0257efecf683ccbc63f641a2a/6/8/6002/daolpu/enilnoavh/052.831.141.302//:ptth
Cài đặt nhanh và cấu hình qmail + vpopmail+procmail + daemontools

Bài viết này dành cho những bạn reinstall qmail và các thiết bị quản lý qmail .
thực hiện theo quá trình trong bài viết bạn có thể sử dụng được qmail , vpopmail , procmail , daemontools nhanh chóng mà không cần phải đi kiếm link hoặc các patch và đọc documents . tuy nhiên ý nghĩa của từng chương trình và lệnh sẽ không có dính kèm giải thích nào . nếu bạn chưa cài đặt qmail lần nào xin đọc bài viết "Qmail as a Mail Gateway" để biết thêm chi tiếc và cơ cấu cu. thể của qmail tại các link sau .

Phần 1 : /hvaonline/posts/list/119.html
Phần 2 : /hvaonline/posts/list/120.html
Phần 3 : /hvaonline/posts/list/121.html
Phần 4 : /hvaonline/posts/list/122.html


1. Qmail
ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
2. Tcpserver
ftp://ftp.jp.qmail.org/qmail/ucspi-tcp-0.88.tar.gz
3. Vpopmail
http://www.inter7.com/index.php?page=vpopmail
qmail-smtpd-relay-reject
http://www.qmail.org/qmail-smtpd-relay-reject
4. Patch files
http://www.qmail.org/rpms/
5. Procmail
http://www.procmail.org/
6. daemontools
http://cr.yp.to/daemontools/daemontools-0.76.tar.gz

Tạo các thư mục cần thiết cho qmail

[root ]# mkdir /var/qmail
[root ]# groupadd -g 710 nofiles
[root ]# useradd -M -u 710 -g nofiles -s /bin/false -d /var/qmail/alias alias
[root ]# useradd -M -u 711 -g nofiles -s /bin/false -d /var/qmail qmaild
[root ]# useradd -M -u 712 -g nofiles -s /bin/false -d /var/qmail qmaill
[roott]# useradd -M -u 713 -g nofiles -s /bin/false -d /var/qmail qmailp
[root ]# groupadd -g 711 qmail
[root ]# useradd -M -u 714 -g qmail -s /bin/false -d /var/qmail qmailq
[root ]# useradd -M -u 715 -g qmail -s /bin/false -d /var/qmail qmailr
[root ]# useradd -M -u 716 -g qmail -s /bin/false -d /var/qmail qmails

Vpopmail User and group
[root ]# groupadd -g 721 vchkpw
[root ]# useradd -g vchkpw -u 721 vpopmail -M -s /bin/false
[root ]# mkdir /home/vpopmail
[root ]# chown vpopmail:vchkpw /home/vpopmail


Patch and compile qmail
[root src]# tar zxvf qmail-1.03.tar.gz
[root src]# cd qmail-1.03
[root src]# wget http://www.qmail.org/rpms/patches/qmail-1.03.errno.patch
[root src]# wget http://www.qmail.org/qmail-smtpd-relay-reject
[root qmail-1.03]# patch -p1 < ../qmail-smtpd-relay-reject
[root qmail-1.03]# patch -p1 < ../qmail-1.03.errno.patch
[root qmail-1.03]# make setup check
[root qmail-1.03]# ./config-fast mail.example.jp


Cài đặt tcpserver

# tar xvfz ../ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88/
#wget http://www.qmail.org/rpms/patches/ucspi-tcp-0.88.errno.patch
#patch -p1 < ucspi-tcp-0.88.errno.patch
patching file error.h
# make setup check


Cài đặt vpopmail

[root src]# tar zxvf vpopmail-5.3.20.tar.gz
[root src]# cd vpopmail-5.3.20
[rootvpopmail-5.3.20]#./configure \
--enable-roaming-users=y \
--enable-relay-clear-minutes=10 \
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-logging=y \
[root vpopmail-5.3.20]# make
[root vpopmail-5.3.20]# make install-strip

Khi chạy configure nếu bị error
configure: error: Unable to find your tcp.smtp file, specify --enable-tcpserver-path=/full/path/to/tcp.smtp 


dùng lệnh sau để giải quyết
# cp /etc/tcpserver/tcp.smtp /home/vpopmail/etc/

Create virtual domain for vpopmail

[root etc]# cd /home/vpopmail/bin
[root bin]# ./vadddomain example.jp
Please enter password for postmaster:
enter password again:

your virtual domain was create into /home/vpopmail/domains/example.jp

Tạo default domain cho vpopmail
# echo 'example.jp' > /home/vpopmail/etc/defaultdomain

Create user for vpopmail

[root bin]# ./vadduser test@example.jp
Please enter password for test@example.jp:*****
enter password again:******

POP before SMTP

Create file tcp.smtp.cdb for access control

# touch /home/vpopmail/etc/tcp.smtp

File : /home/vpopmail/etc/tcp.smtp

Code:
127.:allow,RELAYCLIENT=""


[root etc]# tcprules /home/vpopmail/etc/tcp.smtp.cdb Code:
/home/vpopmail/etc/tcp.smtp.tmp < /home/vpopmail/etc/tcp.smtp


[root etc]# crontab -e
Code:
0,10,20,30,40,50 * * * * /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null



Cài đặt Daemontools

# mkdir -p /package
# chmod 755 /package
# chmod +t /package

# cd /package
# wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
# tar xvpfz daemontools-0.76.tar.gz
# cd daemontools-0.76/src
# wget http://www.qmail.org/rpms/patches/daemontools-0.76.errno.patch
# patch -p1 < daemontools-0.76.errno.patch
(error.h)
# cd admin/daemontools-0.76
# ./package/install

Creating /service...
Adding svscanboot to inittab...
init should start svscan now. 


chương trình sẽ tự động thêm dòng sau vào /etc/initab để khi khởi động linux svscan có thể tự động chạy .

Code:
SV:123456:respawn:/usr/local/bin/svscanboot



Tạo directory cho svscan

# mkdir -p /var/service
# chmod 0755 /var/service

File : /usr/local/bin/svscanboot ( không cần thay đổi các dấu .......)

Code:
#!/bin/sh
# WARNING: This file was auto-generated. Do not edit!
PATH=:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin
exec </dev/null
exec >/dev/null
exec 2>/dev/null
svc -dx /var/service/* /var/service/*/log
env - PATH=$PATH svscan /var/service 2>&1 | \
env - PATH=$PATH readproctitle service errors: .........................(kéo dài )



Cấu hình cho daemontools : setup chương trình cho deamontơols giám sát

mkdir -p /var/qmail/supervise/qmail
mkdir /var/qmail/supervise/pop3d
mkdir /var/qmail/supervise/smtpd
chmod +t /var/qmail/supervise/qmail
chmod +t /var/qmail/supervise/pop3d
chmod +t /var/qmail/supervise/smtpd

File : /var/qmail/supervise/qmail/run
# cp /usr/local/src/qmail-1.03/home /var/qmail/supervise/qmail/run

Chuyển file rc của qmail từ ./Mailbox thành ./Maildir/ (/var/qmail/rc)

Code:
#!/bin/sh
# Using splogger to send the log through syslog.
# Using qmail-local to deliver messages to ~/Mailbox by default.
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail


File : /var/qmail/supervise/smtpd/run

Code:
#!/bin/bash
#
# smtpd/run : qmail-smtpd starting script
#
exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb -R -H -l0 -u `id -u qmaild` -g `id -g qmaild` 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1


Tạo quyền thi hành cho file run
# chmod +x /var/qmail/supervise/smtpd/run

file : /var/qmail/supervise/pop3d/run
Code:
#!/bin/bash
#
# pop3d/run : qmail-pop3d starting script
#
exec env - PATH="/var/qmail/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin" \
tcpserver -v -x /etc/tcpserver/tcp.pop3.cdb -R -H 0 pop3 qmail-popup mail.example.jp \
/home/vpopmail/bin/vchkpw \
qmail-pop3d Maildir 2>&1


Tạo quyền thi hành cho file run
# chmod +x /var/qmail/supervise/pop3d/run

Tạo symlink
# ln -s /var/qmail/supervise/qmail /var/service/qmail
# ln -s /var/qmail/supervise/smtpd /var/service/smtpd
# ln -s /var/qmail/supervise/pop3d /var/service/pop3d

Khỏi động lại init để enable svscan bằng lệnh sau
# kill -HUP 1

Kiểm tra các service có hoạt động hay không
# svstat /var/service/*
/var/service/pop3d: up (pid 5021) 4 seconds
/var/service/qmail: up (pid 5022) 4 seconds
/var/service/smtpd: up (pid 5023) 4 seconds

* up seconds chỉ báo 0 hay 1 thì check lại permission của run scripts hoặc syntax của chúng .

Qmail configuration
/var/qmail/control/locals
Code:
localhost (add)
mail.example.jp
example.jp (add)


/var/qmail/control/rcpthosts
Code:
localhost (add)
mail.example.jp
example.jp (add)



Start up scirpt cho qmail

#!/bin/sh

[ -f /var/qmail/rc ] || exit 0
PATH=$PATH:/var/qmail/bin:/usr/local/bin

case "$1" in
start)
echo -n "Starting... qmail"
csh -cf '/var/qmail/rc &'

################ SMTP #####################

/usr/local/bin/tcpserver -H -R -l mail.example.jp -v \
-x /home/vpopmail/etc/tcp.smtp.cdb -u 711 -g 710 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 2 &

################ POP #####################

/usr/local/bin/tcpserver -H -R -l mail.example.jp -v 0 pop3 \
/var/qmail/bin/qmail-popup mail.example.jp /home/vpopmail/bin/vchkpw \
/var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3d 2 &

touch /var/lock/qmail
;;
stop)
echo "Shutting down qmail."
PID=`/bin/ps -aefw | grep qmail | awk '{print $2}'`
if [ ! -z "$PID" ] ; then
/bin/kill ${PID} 1> /dev/null 2>&1
fi
rm -f /var/lock/qmail
;;
*)
echo "Usage: "$0" {start|stop}"
exit 1
esac
exit 0 


[root init.d]# chmod +x qmail
[root init.d]# cd ../rc3.d/
[root rc3.d]# ln -s ../init.d/qmail S84qmail

Check process tree


pstree -ah

|-svscanboot /usr/local/bin/svscanboot
| |-readproctitle service errors: ...
| `-svscan /var/service
| |-supervise qmail
| | `-qmail-send
| | |-qmail-clean
| | |-qmail-lspawn ./Maildir/
| | |-qmail-rspawn
| | `-splogger qmail
| |-supervise smtpd
| | `-tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb -R -H -l0 -u ... 


Remove sendmail

[root root]# rm /usr/lib/sendmail
[root root]# rm /usr/sbin/sendmail
[root root]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
[root root]# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

Install procmail

# cd /usr/local/src
# tar xfvz procmail-3.21.tar.gz
# cd procmail-3.21
# make
# make install
# make install-suid

Tạo file .qmail vào ~vpopmail/domains/example.jp/777/.qmail với nội dung sau
Code:
| /usr/bin/procmail -m ./.procmailrc


chú ý khi thêm vào không được thêm space vào trước dấu | .


Tại file .procmailrc vào ~vpopmail/domains/example.jp/777/.procmailrc với nội dung sau

PATH=/usr/bin:/bin:/usr/local/bin
HOME=/var/vpopmail/domains/example.jp/777
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/procmail.lock

 


=================================

06/07/25 :
Thêm bước patch error cho qmail
Thêm bước patch cho tcpserver (ucspi-tcp-0.88.errno.patch )

06/07/27 :
Chỉnh sửa và thêm chi tiếc cấu hình daemontools
Sửa đổi start up script cho qmail

Tác giả : 777
Nguồn : www.vnhacker.org


Sử dụng SYSLINUX làm bootloader

April 13th 2006

Để tạo một đĩa (đĩa mềm hay CD) khởi động Linux, bạn cần phải ghi nhân Linux (Linux kernel) lên sector 0 của đĩa, hoặc dùng các chương trình bootloader như LILO, GRUB để đọc Linux kernel vào bộ nhớ. Tôi chưa sử dụng GRUB, nhưng với cách ghi thẳng Linux kernel lên sector 0 hay dùng LILO thì chúng ta cần phải làm một số việc như copy Linux kernel, sau đó thiết lập thông số ramdisk word và cuối cùng là copy root filesytem lên đĩa.

SYSLINUX là một chương trình bootloader và tiện ích giúp ta làm toàn bộ các công việc trên một cách đơn giản chỉ với một dòng lệnh. Việc tạo một đĩa CD khởi động cũng đơn giản hơn rất nhiều khi sử dụng SYSLINUX. SYSLINUX được sử dụng trong rất nhiều các hệ thống Linux trên đĩa mềm phổ biến, cũng như trong các bản phân phối Linux (như đĩa cài đặt Fedora Core). Nếu khi khởi động một hệ thống Linux bằng đĩa mềm hay CD mà bạn thấy đầu tiên hiện ra dòng chữ SYSLINUX (với đĩa mềm) hay ISOLINUX (với CD) thì tức là hệ thống đó sử dụng SYSLINUX làm bootloader. Ngoài ra SYSLINUX còn có thể sử dụng cho network booting (với tên gọi PXELINUX).
Đặc điểm của SYSLINUX

SYSLINUX chỉ có thể khởi động Linux từ một đĩa sử dụng hệ thống file FAT. Do đó nó chỉ thích hợp để khởi động hệ thống Linux với các file kernel và root filesystem ghi trên đĩa mềm hay CD, chứ không thích hợp dùng để khởi động một hệ thống Linux cài đặt trên ổ cứng (thường sử dụng hệ thống file ext2 hay ext3).

Lưu ý rằng điều này không có nghĩa là hệ thống Linux của bạn phải ghi trên FAT filesystem. Chỉ là yêu cầu về đĩa chứa file kernel và root filesystem. Sau khi Linux kernel đã được load lên, nó có thể hoạt động với bất kỳ hệ thống file nào mà nó hỗ trợ (được thiết lập khi biên dịch kernel).
Cơ bản về cách tạo đĩa khởi động Linux với SYSLINUX

Để tạo một đĩa khởi động Linux dùng SYSLINUX làm bootloader, cần chuẩn bị file nhân Linux (là file bzImage thu được khi compile kernel bằng lênh make bzImage, thường có tên là bzImage, vmlinuz hay kernel.bzi ...), một file chứa root filesystem (thường được nén lại và đặt tên là initrd.gz), một file cấu hình SYSLINUX trong đó báo cho bootloader biết tên của file nhân Linux và root filesystem. Dĩ nhiên là còn cần có chương trình syslinux để cài đặt bootloader hay chương trình mkisofs để tạo CD image. Hai chương trình này thường được cài sẵn trong nhiều hệ thống Linux (như Fedora Core hay RedHat).

Cách tạo file nhân Linux hay file chứa root filesystem nằm ngoài phạm vi bài viết giới thiệu về SYSLINUX. Xem như bạn đã biết cách tạo hai file đó (nếu không thì chưa thể nghĩ đến việc làm đĩa khởi động Linux làm gì). Việc duy nhất còn lại phải chuẩn bị là tạo file cấu hình cho SYSLINUX, một công việc tương đối đơn giản. Khi có 3 file này là có thể sử dụng SYSLINUX để làm đĩa khởi động.

Cơ bản về file cấu hình SYSLINUX

File này có tên là syslinux.cfg. Một file syslinux.cfg điển hình như sau:

Code:
# Đặt giá trị này thành 0 nếu bạn muốn bỏ qua dấu nhắc lúc khởi động.
# Dấu nhắc cho phép bạn lựa chọn nhiều cấu hình khởi động khác nhau
# bằng cách gõ tên của cấu hình đó tại dấu nhắc
# (đã được định nghĩa sẵn trong file syslinux.cfg)
PROMPT 1
# Cấu hình khởi động mặc định.
# Nếu bạn ấn ENTER tại dấu nhắc lúc khởi động (mà không nhập tên cấu hình),
# cấu hình mặc định sẽ được sử dụng.
DEFAULT cauhinh1
LABEL cauhinh1
KERNEL vmlinuz
APPEND initrd=initrd.gz root=/dev/ram0 init=/rc
LABEL cauhinh2
KERNEL vmlinuz
APPEND initrd=initrd.gz root=/dev/ram0 init=/rc vga=0x301
LABEL chỉ tên cấu hình, KERNEL báo cho SYSLINUX biết phải load file nhân Linux nào, APPEND thêm các thông số truyền cho nhân kernel.
Nếu chỉ có một cấu hình duy nhất, thì file syslinux.cfg có thể chỉ đơn giản như sau:
DEFAULT vmlinuz initrd=initrd.gz root=/dev/ram0 init=/rc


Tạo đĩa mềm khởi động Linux

Chép 3 file kernel, root filesystem, syslinux.cfg vào đĩa mềm rồi gõ lệnh:
syslinux /dev/fd0
(giả sử đĩa mềm là /dev/fd0).
Tạo đĩa CD khởi động Linux

Dùng chương trình mkisofs để tạo một CD image của đĩa khởi động Linux. Sau đó dùng một chương trình burn CD (trên Fedora Core có thể dùng k3b) để burn file này vào đĩa.

Tạo một thư mục bất kỳ, rồi chép 3 file: nhân linux, file chứa root filesystem và file cấu hình (giống file syslinux.cfg như ở trên, nhưng đặt tên là isolinux.cfg). Sau đó chép thêm một file tên là isolinux.bin vào trong thư mục này. File này nằm trong package syslinux, có thể download về từ trang web của syslinux.

Vào trong thư mục này rồi gõ lệnh sau:
Code:
mkisofs -o ../output.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

Lệnh này sẽ tạo ra một file CD image tên là output.iso nằm ởparent directory của thư mục hiện tại. Toàn bộ các file đặt trong thư mục hiện tại (không chỉ 4 file đã được đề cập ở trên) sẽ được chép vào CD image.

Cú pháp của lệnh mkisofs là:

Code:
mkisofs -o file output iso \
-b <file isolinux.bin> -c <file boot.cat> \
-no-emul-boot -boot-load-size 4 -boot-info-table \
root-of-iso-tree


trong đó file isolinux.bin và file boot.cat phải nằm trong root-of-iso-tree và được mô tả với đường dẫn tương đối tính từ root-of-iso-tree.
Toàn bộ thư mục root-of-iso-tree là cấu trúc file và thư mục của CD muốn tạo, sẽ được chép vào CD image.

Tham khảo:

* Trang web của SYSLINUX http://syslinux.zytor.com/index.php
* Tạo đĩa khởi động Linux http://www.tldp.org/HOWTO/Bootdisk-HOWTO/x70


Trần Trung Thành : vnhacker.org
uClibc và BusyBox

October 28th 2005
uClibc

uClibc là một thư viện C có thể được dùng để phát triển phần mềm cho các hệ thống Linux nhỏ (ví dụ như embedded Linux system).

Thư viện C được sử dụng trên Linux là thư viện GNU C (glibc). Khi viết một chương trình C và compile với glibc, chương trình của bạn sẽ được link tới các file thư viện của glibc để sử dụng các hàm của chúng. Nếu bạn tự tạo ra một hệ thống Linux cho mình, để chạy được chương trình đã compile với glibc, bạn phải copy tất cả các file thư viện cần thiết vào hệ thống của mình. Điều này không dễ dàng với các hệ thống bị hạn chế không gian lưu trữ, ví dụ như một hệ thống Linux chứa trên đĩa mềm, do file thư viện glibc có dung lượng rất lớn.

uClibc là một thư viện có kích thước nhỏ hơn rất nhiều so với glibc, và có chức năng gần đầy đủ so với glibc. Có thể nói uClibc tương thích với glibc, nên phần lớn các chương trình viết để compile với glibc có thể compile được với uClibc. Sử dụng uClibc thay thế cho glibc khi bạn muốn tạo ra một hệ thống chạy Linux mà nó không đủ sức chứa các file thư viện cần thiết của glibc.

BusyBox

Khi tạo một hệ thống Linux, thường bạn cần có các chương trình tiện ích như shell, các chương trình làm việc với file... Các chương trình tiện ích chuẩn của GNU có kích thước lớn, nhiều khi không tiện để đưa vào các hệ thống bị giới hạn không gian lưu trữ và bộ nhớ. BusyBox cung cấp hầu hết các chương trình tiện ích đó, nhưng có đặc điểm là được thiết kế để có kích thước nhỏ và sử dụng ít tài nguyên hệ thống.

Thực ra, BusyBox là sự tích hợp các tiện ích phổ dụng của Linux vào trong một file thực thi (executable file) duy nhất, và nó có kích thước rất nhỏ.

BusyBox có thể được compile với uClibc.

Kết hợp uClibc và BusyBox

Khi tự tạo ra một hệ thống Linux, bạn phải copy vào hệ thống đầy đủ các file thư viện mà các chương trình bạn sẽ sử dụng cần tới (để biết một chương trình cần những thư viện nào, sử dụng lệnh ldd). Ngồi liệt kê ra các thư viện cần thiết cho các chương trình đó khá nhàm chán và dễ gây nhầm lẫn. uClibc và BusyBox có thể giúp bạn tránh được việc này. uClibc đủ nhỏ để đưa lên một hệ thống Linux chạy trên đĩa mềm, và BusyBox là một file duy nhất chứa tất cả các tiện ích bạn cần đến. Hơn nữa, đi kèm mã nguồn của uClibc và BusyBox là tiện ích tự cài đặt chúng lên file system của hệ thống Linux, nên sẽ đỡ cho bạn nhiều công sức.

Cho tới phiên bản 0.9.21 của uClibc, bạn dùng lệnh make PREFIX=<prefix> install_target để cài đặt uClibc lên một Linux file system. BusyBox cũng có lệnh để cài đặt lên Linux file system (tham khảo)

Tuy nhiên, sau này đã xuất hiện Buildroot, là một tiện ích giúp bạn tạo ra môi trường để sử dụng uClibc (gọi là uClibc toolchain), đồng thời tạo ra Linux root filesystem với uClibc và BusyBox được cài đặt sẵn. Dưới đây sẽ giới thiệu cách sử dụng Buildroot.

Sử dụng Buildroot

Buildroot được sử dụng để tạo ra môi trường giúp bạn compile chương trình với uClibc, đồng thời tạo sẵn một Linux root filesystem chứa thư viện uClibc và tiện ích BusyBox để bạn có thể sử dụng nếu muốn tạo ra hệ thống Linux của riêng mình.

1. Download buildroot

Buildroot có thể download từ homepage, hoặc sử dụng svn tool trên hệ thống Linux của bạn (nếu có) bằng cách gõ lệnh:

Code:
svn co svn://uclibc.org/trunk/buildroot


2. Sử dụng Buildroot

Cấu hình Buildroot

Code:
make menuconfig


Bạn có thể thiết lập cấu hình cho uClibc và BusyBox, cũng như root filesystem mà Buildroot sẽ tạo ra, nhưng lần đầu tiên, có lẽ nên để tất cả theo mặc định (tôi có thay đổi một số thiết lập là ... và ... thì không sao, như một số thay đổi khác có thể gây ra lỗi khi chạy Buildroot lần đầu tiên).

Chạy Buildroot

Code:
make


Buildroot sẽ download các mã nguồn cần thiết, tiến hành compile, cài đặt, cũng như tạo ra hệ thống root filesystem cho bạn. Việc này mất khá nhiều thời gian.
Nếu mọi việc kết thúc êm đẹp, bạn sẽ có một uClibc toolchain dùng để compile các chương trình C, và một root fileystem được chứa trong file root_fsXXX (XXX là cái gì gì đó). Dùng lệnh mount với tham số -o loop để mount file này vào một thư mục nào đó, bạn có thể xem bên trong nó có những gì smilie

Chú ý: Ở thời điểm hiện tại (Ngày 28 tháng 10 năm 2005), tôi không thể chạy được Buildroot khi khởi động Fedora Core 3 với kernel support SMP. Luôn bị lỗi khi compile file nào đó (không nhớ) liên quan đến pthread. Nếu khởi động FC3 với kernel không support SMP thì OK.

3. Cấu hình root filesystem

Nếu nhìn vào trong root file system mà Buildroot đã tạo ra (chứa trong file root_fsXXX), bạn sẽ thấy có nhiều thứ có thể không cần thiết (quá nhiều device entry trong thư mục dev, các file cấu hình trong etc, một đống terminfo trong usr/share/terminfo). Bạn có thể giảm bớt những thứ này, cũng như thêm các file mà mình muốn.

Để thêm/bớt các device entry trong dev, sửa file target/generic/device_table.txt

Để xóa bớt các file không cần thiết trong etc, usr/share/, vào trong thư mục target/generic/target_skeleton/ và xóa chúng. Có thể thêm các file vào các thư mục có sẵn trong target_skeleton.

Để tạo lại root filesystem, chạy make Buildroot (nhớ umount nếu đang mount file root_fsXXX).

4. Cấu hình uClibc

Bạn có thể muốn cấu hình lại uClibc (thêm/bớt một số tính năng cho thư viện uClibc). Vào thư mục toolchain_build_XXX/uClibc/, chạy make menuconfig, cấu hình nó. Sau đó copy file .config vào thư mục toolchain/uClibc/uClibc.config và chạy make Buildroot lại.

5. Cấu hình BusyBox

BusyBox đã được cài đặt vào root filesystem có thể có nhiều tiện ích không cần thiết, bạn muốn bỏ đi hoặc muốn thêm các tiện ích khác (mà BusyBox có nhưng chưa được cài đặt). Vào build_XXX/busybox/, chạy make menuconfig, cấu hình BusyBox. Sau đó copy file .config vào thư mục package/busybox/busybox.config và chạy make Buildroot lại.

Reference

* uClibc : http://www.uclibc.org/
* BusyBox : http://busybox.net/
* Buildroot : http://buildroot.uclibc.org/


Trần Trung Thành - vnhacker.org
Tăng cường an ninh cho hệ thống Linux (Phần 2)


Tiếp theo phần 1



AN TOÀN CHO CÁC GIAO DỊCH TRÊN MẠNG


Có rất nhiều dịch vụ mạng truyền thống giao tiếp thông qua giao thức văn bản không mã hoá, như TELNET, FTP, RLOGIN, HTTP, POP3. Trong các giao dịch giữa người dùng với máy chủ, tất cả các thông tin dạng gói được truyền qua mạng dưới hình thức văn bản không được mã hoá. Các gói tin này có thể dễ dàng bị chặn và sao chép ở một điểm nào đó trên đường đi. Việc giải mã các gói tin này rất dễ dàng, cho phép lấy được các thông tin như tên người dùng, mật khẩu và các thông tin quan trọng khác. Việc sử dụng các giao dịch mạng được mã hoá khiến cho việc giải mã thông tin trở nên khó hơn và giúp bạn giữ an toàn các thông tin quan trọng. Các kỹ thuật thông dụng hiện nay là IPSec, SSL, TLS, SASL và PKI.

Quản trị từ xa là một tính năng hấp dẫn của các hệ thống UNIX. Người quản trị mạng có thể dễ dàng truy nhập vào hệ thống từ bất kỳ nơi nào trên mạng thông qua các giao thức thông dụng như telnet, rlogin. Một số công cụ quản trị từ xa được sử dụng rộng rãi như linuxconf, webmin cũng dùng giao thức không mã hoá. Việc thay thế tất cả các dịch vụ mạng dùng giao thức không mã hoá bằng giao thức có mã hoá là rất khó. Tuy nhiên, bạn nên cung cấp việc truy cập các dịch vụ truyền thống như HTTP/POP3 thông qua SSL, cũng như thay thế các dịch vụ telnet, rlogin bằng SSH.

LINUX FIREWALL

An toàn hệ thống luôn luôn là một vấn đề sống còn của mạng máy tính và firewall là một thành phần cốt yếu cho việc đảm bảo an ninh.

Một firewall là một tập hợp các qui tắc, ứng dụng và chính sách đảm bảo cho người dùng truy cập các dịch vụ mạng trong khi mạng bên trong vẫn an toàn đối với các kẻ tấn công từ Internet hay từ các mạng khác. Có hai loại kiến trúc firewall cơ bản là : Proxy/Application firewall và filtering gateway firewall. Hầu hết các hệ thống firewall hiện đại là loại lai (hybrid) của cả hai loại trên.

Nhiều công ty và nhà cung cấp dịch vụ Internet sử dụng máy chủ Linux như một Internet gateway. Những máy chủ này thường phục vụ như máy chủ mail, web, ftp, hay dialup. Hơn nữa, chúng cũng thường hoạt động như các firewall, thi hành các chính sách kiểm soát giữa Internet và mạng của công ty. Khả năng uyển chuyển khiến cho Linux thu hút như là một thay thế cho những hệ điều hành thương mại.

Tính năng firewall chuẩn được cung cấp sẵn trong kernel của Linux được xây dựng từ hai thành phần : ipchains và IP Masquerading.

Linux IP Firewalling Chains là một cơ chế lọc gói tin IP. Những tính năng của IP Chains cho phép cấu hình máy chủ Linux như một filtering gateway/firewall dễ dàng. Một thành phần quan trọng khác của nó trong kernel là IP Masquerading, một tính năng chuyển đổi địa chỉ mạng (network address translation- NAT) mà có thể che giấu các địa chỉ IP thực của mạng bên trong.

Để sử dụng ipchains, bạn cần thiết lập một tập các luật mà qui định các kết nối được cho phép hay bị cấm. Ví dụ:

# Cho phép các kết nối web tới Web Server của bạn
Code:
/sbin/ipchains -A your_chains_rules -s 0.0.0.0/0 www -d 192.16.0.100 1024: -j ACCEPT


# Cho phép các kết nối từ bên trong tới các Web Server bên ngoài
Code:
/sbin/ipchains -A your_chains_rules -s 192.168.0.0/24 1024: -d 0.0.0.0/0 www -j ACCEPT


# Từ chối truy cập tất cả các dịch vu khác
Code:
/sbin/ipchains -P your_chains_rules input DENY


Ngoài ra, bạn có thể dùng các sản phẩm firewall thương mại như Check Point FireWall-1, Phoenix Adaptive Firewall, Gateway Guardian, XSentry Firewall, Raptor, ... hay rất nhiều các phiên bản miễn phí, mã nguồn mở cho Linux như T.Rex Firewall, Dante, SINUS, TIS Firewall Toolkit, ...

DÙNG CÔNG CỤ DÒ TÌM ĐỂ KHẢO SÁT HỆ THỐNG


Thâm nhập vào một hệ thống bất kỳ nào cũng cần có sự chuẩn bị. Hacker phải xác định ra máy đích và tìm xem những port nào đang mở trước khi hệ thống có thể bị xâm phạm. Quá trình này thường được thực hiện bởi các công cụ dò tìm (scanning tool), kỹ thuật chính để tìm ra máy đích và các port đang mở trên đó. Dò tìm là bước đầu tiên hacker sẽ sử dụng trước khi thực hiện tấn công. Bằng cách sử dụng các công cụ dò tìm như Nmap, hacker có thể rà khắp các mạng để tìm ra các máy đích có thể bị tấn công. Một khi xác định được các máy này, kẻ xâm nhập có thể dò tìm các port đang lắng nghe. Nmap cũng sử dụng một số kỹ thuật cho phép xác định khá chính xác loại máy đang kiểm tra.

Bằng cách sử dụng những công cụ của chính các hacker thường dùng, người qun trị hệ thống có thể nhìn vào hệ thống của mình từ góc độ của các hacker và giúp tăng cường tính an toàn của hệ thống. Có rất nhiều công cụ dò tìm có thể sử dụng như: Nmap, strobe, sscan, SATAN, ...

Dưới đây là một ví dụ sử dụng Nmap:

# nmap -sS -O 192.168.1.200
Starting nmap V. 2.54 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on comet (192.168.1.200):
Port State Protocol Service
7 open tcp echo
19 open tcp chargen
21 open tcp ftp
...
TCP Sequence Prediction: Class=random positive increments
Difficulty=17818 (Worthy challenge)
Remote operating system guess: Linux 2.2.13
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds
 

Tuy nhiên, sử dụng các công cụ này không thể thay thế cho một người quản trị có kiến thức. Bởi vì việc dò tìm thường dự báo một cuộc tấn công, các site nên ưu tiên cho việc theo dõi chúng. Với các công cụ dò tìm, các nhà quản trị hệ thống mạng có thể phát hiện ra những gì mà các hacker có thể thấy khi dò trên hệ thống của mình.


PHÁT HIỆN SỰ XÂM NHẬP QUA MẠNG

Nếu hệ thống của bạn có kết nối vào internet, bạn có thể trở thành một mục tiêu bị dò tìm các lỗ hổng về bảo mật. Mặc dù hệ thống của bạn có ghi nhận điều này hay không thì vẫn không đủ để xác định và phát hiện việc dò tìm này. Một vấn đề cần quan tâm khác là các cuộc tấn công gây ngừng dịch vụ (Denial of Services - DoS), làm thế nào để ngăn ngừa, phát hiện và đối phó với chúng nếu bạn không muốn hệ thống của bạn ngưng trệ.

Hệ thống phát hiện xâm nhập qua mạng (Network Intrusion Detection System - NIDS) theo dõi các thông tin truyền trên mạng và phát hiện nếu có hacker đang cố xâm nhập vào hệ thống (hoặc gây gây ra một vụ tấn công DoS). Một ví dụ điển hình là hệ thống theo dõi số lượng lớn các yêu cầu kết nối TCP đến nhiều port trên một máy nào đó, do vậy có thể phát hiện ra nếu có ai đó đang thử một tác vụ dò tìm TCP port. Một NIDS có thể chạy trên máy cần theo dõi hoặc trên một máy độc lập theo dõi toàn bộ thông tin trên mạng.

Các công cụ có thể được kết hợp để tạo một hệ thống phát hiện xâm nhập qua mạng. Chẳng hạn dùng tcpwrapper để điều khiển, ghi nhận các dịch vụ đã được đăng ký. Các chương trình phân tích nhật ký hệ thống, như swatch, có thể dùng để xác định các tác vụ dò tìm trên hệ thống. Và điều quan trọng nhất là các công cụ có thể phân tích các thông tin trên mạng để phát hiện các tấn công DoS hoặc đánh cắp thông tin như tcpdump, ethereal, ngrep, NFR (Network Flight Recorder), PortSentry, Sentinel, Snort, ...

Khi hiện thực một hệ thống phát hiện xâm nhập qua mạng bạn cần phải lưu tâm đến hiệu suất của hệ thống cũng như các chính sách bảo đảm sự riêng tư.

KIỂM TRA KHẢ NĂNG BỊ XÂM NHẬP

Kiểm tra khả năng bị xâm nhập liên quan đến việc xác định và sắp xếp các lỗ hổng an ninh trong hệ thống bằng cách dùng một số công cụ kiểm tra. Nhiều công cụ kiểm tra cũng có khả năng khai thác một số lỗ hổng tìm thấy để làm rõ quá trình thâm nhập trái phép sẽ được thực hiện như thế nào. Ví dụ, một lỗi tràn bộ đệm của chương trình phục vụ dịch vụ FTP có thể dẫn đến việc thâm nhập vào hệ thống với quyền ‘root’. Nếu người quản trị mạng có kiến thức về kiểm tra khả năng bị xâm nhập trước khi nó xảy ra, họ có thể tiến hành các tác vụ để nâng cao mức độ an ninh của hệ thống mạng.

Có rất nhiều các công cụ mạng mà bạn có thể sử dụng trong việc kiểm tra khả năng bị xâm nhập. Hầu hết các quá trình kiểm tra đều dùng ít nhất một công cụ tự động phân tích các lỗ hổng an ninh. Các công cụ này thăm dò hệ thống để xác định các dịch vụ hiện có. Thông tin lấy từ các dịch vụ này sẽ được so sánh với cơ sở dữ liệu các lỗ hổng an ninh đã được tìm thấy trước đó.

Các công cụ thường được sử dụng để thực hiện các kiểm tra loại này là ISS Scanner, Cybercop, Retina, Nessus, cgiscan, CIS, ...

Kiểm tra khả năng bị xâm nhập cần được thực hiện bởi những người có trách nhiệm một cách cẩn thận. Sự thiếu kiến thức và sử dụng sai cách có thể sẽ dẫn đến hậu quả nghiêm trọng không thể lường trước được.

ĐỐI PHÓ KHI HỆ THỐNG CỦA BẠN BỊ TẤN CÔNG

Gần đây, một loạt các vụ tấn công nhắm vào các site của những công ty lớn như Yahoo!, Buy.com, E-Bay, Amazon và CNN Interactive gây ra những thiệt hại vô cùng nghiêm trọng. Những tấn công này là dạng tấn công gây ngừng dịch vụ "Denial-Of-Service" mà được thiết kế để làm ngưng hoạt động của một mạng máy tính hay một website bằng cách gửi liên tục với số lượng lớn các dữ liệu tới mục tiêu tấn công khiến cho hệ thống bị tấn công bị ngừng hoạt động, điều này tương tự như hàng trăm người cùng gọi không ngừng tới 1 số điện thoại khiến nó liên tục bị bận.

Trong khi không thể nào tránh được mọi nguy hiểm từ các cuộc tấn công, chúng tôi khuyên bạn một số bước mà bạn nên theo khi bạn phát hiện ra rằng hệ thống của bạn bị tấn công. Chúng tôi cũng đưa ra một số cách để giúp bạn bảo đảm tính hiệu qủa của hệ thống an ninh và những bước bạn nên làm để giảm rủi ro và có thể đối phó với những cuộc tấn công.

Nếu phát hiện ra rằng hệ thống của bạn đang bị tấn công, hãy bình tĩnh. Sau đây là những bước bạn nên làm:

Tập hợp 1 nhóm để đối phó với sự tấn công:
- Nhóm này phải bao gồm những nhân viên kinh nghiệm, những người mà có thể giúp hình thành một kế hoạch hành động đối phó với sự tấn công.

Dựa theo chính sách và các quy trình thực hiện về an ninh của công ty, sử dụng các bước thích hợp khi thông báo cho mọi người hay tổ chức về cuộc tấn công.
Tìm sự giúp đỡ từ nhà cung cấp dịch vụ Internet và cơ quan phụ trách về an ninh máy tính:
- Liên hệ nhà cung cấp dịch vụ Internet của bạn để thông báo về cuộc tấn công. Có thể nhà cung cấp dịch vụ Internet của bạn sẽ chặn đứng được cuộc tấn công.

- Liên hệ cơ quan phụ trách về an ninh máy tính để thông báo về cuộc tấn công

Tạm thời dùng phương thức truyền thông khác (chẳng hạn như qua điện thoại) khi trao đổi thông tin để đảm bo rằng kẻ xâm nhập không thể chặn và lấy được thông tin.
Ghi lại tất cả các hoạt động của bạn (chẳng hạn như gọi điện thoại, thay đổi file, ...)
Theo dõi các hệ thống quan trọng trong qúa trình bị tấn công bằng các phần mềm hay dịch vụ phát hiện sự xâm nhập (intrusion detection software/services). Điều này có thể giúp làm giảm nhẹ sự tấn công cũng như phát hiện những dấu hiệu của sự tấn công thực sự hay chỉ là sự quấy rối nhằm đánh lạc hướng sự chú ý của bạn(chẳng hạn một tấn công DoS với dụng ý làm sao lãng sự chú ý của bạn trong khi thực sự đây là một cuộc tấn công nhằm xâm nhập vào hệ thống của bạn).
- Sao chép lại tất cả các files mà kẻ xâm nhập để lại hay thay đổi (như những đoạn mã chương trình, log file, ...)

Liên hệ nhà chức trách để báo cáo về vụ tấn công.


Những bước bạn nên làm để giảm rủi ro và đối phó với sự tấn công trong tương lai :

Xây dựng và trao quyền cho nhóm đối phó với sự tấn công
Thi hành kiểm tra an ninh và đánh giá mức độ rủi ro của hệ thống
Cài đặt các phần mềm an toàn hệ thống phù hợp để giảm bớt rủi ro
Nâng cao khả năng của mình về an toàn máy tính
Các bước kiểm tra để giúp bạn bảo đảm tính hiệu quả của hệ thống an ninh

Kiểm tra hệ thống an ninh mới cài đặt : chắc chắn tính đúng đắn của chính sách an ninh hiện có và cấu hình chuẩn của hệ thống.
Kiểm tra tự động thường xuyên : để khám phá sự “viếng thăm” của những hacker hay những hành động sai trái của nhân viên trong công ty.
Kiểm tra ngẫu nhiên: để kiểm tra chính sách an ninh và những tiêu chuẩn, hoặc kiểm tra sự hiện hữu của những lỗ hổng đã được phát hiện (chẳng hạn những lỗi được thông báo từ nhà cung cấp phần mềm)
Kiểm tra hằng đêm những file quan trọng: để đánh giá sự toàn vẹn của những file và cơ sở dữ liệu quan trọng
Kiểm tra các tài khoản người dùng: để phát hiện các tài khoản không sử dụng, không tồn tại, ...
Kiểm tra định kỳ để xác định trạng thái hiện tại của hệ thống an ninh của bạn


BẠN CÓ THỂ XEM THÊM THÔNG TIN TẠI

Các trung tâm giúp đối phó tai nạn trên Internet

http://www.cert.org
http://www.first.org
http://ciac.llnl.gov/
http://www.cert.dfn.de/eng/csir/europe/certs.html
Một số website về an toàn máy tính

http://www.cs.purdue.edu/coast/
http://www.linuxsecurity.com
http://www.securityportal.com
http://www.tno.nl/instit/fel/intern/wkinfsec.html
http://www.icsa.net
http://www.sans.org
http://www.iss.com
http://www.securityfocus.com
Thông tin về an toàn từ nhà cung cấp

http://www.calderasystems.com/news/security/
http://www.debian.org/security/
http://www.redhat.com/cgi-bin/support/
Một số sách về an toàn máy tính

Actually Useful Internet Security Techniques by Larry J. Hughes Jr.
Applied Cryptography: Protocols, Algorithms and Source Code in C by Bruce Schneier
Building Internet Firewall by Brent Chapman & Elizabeth D. Zwicky
Cisco IOS Network Security by Mike Kaeo
Firewalls and Internet Security by Bill Cheswick & Steve Bellovin
Halting the Hacker: A practical Guide To Computer Security by Donal L. Pipkin
Intrusion Detection: An Introduction to Internet Surveillance, Correlation, Traps, Trace Back and Response by Edward G. Amoroso
Intrusion Detection: Network Security Beyond the Firewall by Terry Escamilla
Linux Security by Jonh S. Flowers


prof - hvaonline
Tăng cường an ninh cho hệ thống Linux (Phần 1)

Linux đã tạo ra một sự bùng nổ trong lĩnh vực tin học và ngày càng trở nên phổ biến hiện nay. Rất nhiều các công ty, tổ chức trên thế giới chấp nhận Linux như là một platform cho sản phẩm của họ, cũng như nhiều công ty, ISPs sử dụng máy chủ Linux như là các Internet gateway. Vấn đề an toàn an ninh cho hệ thống Linux ngày càng trở nên quan trọng và bức thiết hơn. Tài liệu này sẽ cho bạn một cái nhìn tổng quát về an toàn hệ thống và những hướng dẫn giúp tăng cường mức độ an toàn cho hệ thống Linux của bạn. (Tài liệu này được báo cáo tại hội thảo Linux Việt Nam vào tháng 12/2000 nên có một số phần đã cũ so với hiện nay.)



GIỚI THIỆU

Cùng với sự phát triển không ngừng của truyền thông kỹ thuật số, Internet và sự phát triển nhảy vọt của nền công nghiệp phần mềm, bảo mật máy tính là một vấn đề ngày càng trở nên quan trọng. Cần phải hiểu rằng không có hệ thống máy tính nào là an toàn tuyệt đối. Tất cả những gì bạn có thể làm là giúp cho hệ thống của bạn trở nên an toàn hơn.

Kể từ khi Linux được phát triển một cách rộng rãi và nhanh chóng, đặc biệt là trong các giao dịch kinh doanh quan trọng, an ninh là một vấn đề quyết định sự sống còn của Linux. Với hàng trăm công cụ bảo vệ sẵn có, người dùng Linux được trang bị tốt hơn để ngăn chặn và duy trì một hệ thống an toàn. Linux không những hoạt động tốt mà còn có những tính năng và sản phẩm liên quan cho phép xây dựng một môi trường tương đối an toàn.

NHỮNG NGUY CƠ AN NINH TRÊN LINUX

Linux và các ứng dụng trên nó có thể không ít các lỗ hổng an ninh hơn những hệ điều hành khác. Theo quan điểm của một số chuyên gia máy tính, Linux có tính an toàn cao hơn các hệ điều hành của Microsoft, vì các sản phẩm của Microsoft không được xem xét kỹ lưỡng và chặt chẽ bằng các sản phẩm mã nguồn mở như Linux. Hơn nữa, Linux dường như là "miễn nhiễm" với virus máy tính (hiện tại đã có xuất hiện một vài loại virus hoạt động trên môi trường Linux nhưng không ảnh hưởng gì mấy đến người dùng Linux). Nhưng một hệ thống Linux được cấu hình không tốt sẽ tệ hơn nhiều so với một hệ thống Microsoft được cấu hình tốt !!! Khi có được một chính sách an ninh tốt và hệ thống được cấu hình theo đúng chính sách đó thì sẽ giúp bạn tạo được một hệ thống an toàn (ở mức mà chính sách của bạn đưa ra).

Nhưng sự an toàn không phải là thứ có thể đạt được như một mục tiêu cuối cùng. Đúng hơn đó là tập hợp của những cách cài đặt, vận hành và bảo trì một hệ điều hành, mạng máy tính, ... Nó phụ thuộc vào các hoạt động hàng ngày của hệ thống, người dùng và người quản trị. Bạn phải bắt đầu từ một nền tảng ban đầu và từ đó cải thiện tính an toàn của hệ thống của bạn nhiều nhất có thể được mà vẫn đảm bảo các hoạt động bình thường của hệ thống.

XEM XÉT CHÍNH SÁCH AN NINH CỦA BẠN

Kết nối vào Inernet là nguy hiểm cho hệ thống mạng của bạn với mức an toàn thấp. Từ những vấn đề trong các dịch vụ TCP/IP truyền thống, tính phức tạp của việc cấu hình máy chủ, các lỗ hổng an ninh bên trong quá trình phát triển phần mềm và nhiều nhân tố khác góp phần làm cho những hệ thống máy chủ không được chuẩn bị chu đáo có thể bị xâm nhập và luôn tồn tại những nguy cơ tiềm tàng về vấn đề an toàn trong đó.

Mục đích của một chính sách an toàn hệ thống là quyết định một tổ chức sẽ phải làm như thế nào để bảo vệ chính nó. Để có được một chính sách an ninh hiệu quả, người xây dựng các chính sách này phải hiểu và có thể kết hợp tất cả các thông tin, yêu cầu, ...

Khi một tình huống xảy ra nằm ngoài dự kiến, chẳng hạn một sự xâm nhập trái phép vào hệ thống của bạn, câu hỏi lớn nhất là "sẽ phải làm gì đây ?"

Không may là có hàng triệu câu trả lời khác nhau cho câu hỏi đó. Nếu một người mà chưa từng phải đối phó với một kẻ xâm nhập trước đây thì kẻ xâm nhập có thể dễ dàng biến mất vì các dấu vết đã trở nên qúa cũ và không còn hữu ích nữa.

Những sai sót trong chính sách an ninh không chỉ liên quan đến những kẻ xâm nhập, mà còn liên quan đến những vấn đề bình thường như thời tiết, thiên tai, cháy, nổ, hư hỏng thiết bị,... Do vậy, việc thiết lập một chính sách an ninh tốt cho việc giải quyết những sự cố phải được lên kế hoạch kỹ lưỡng, được xem xét và chứng nhận bởi người có quyền hạn trong công ty.

Một chính sách an ninh tốt nên bao gồm các vấn đề sau :

Chính sách phục hồi dữ liệu khi có sự cố
Chính sách phục hồi hệ thống trong trường hợp hư hỏng thiết bị
Chính sách, cách thức điều tra những kẻ xâm nhập trái phép
Chính sách, cách thức điều tra khi công ty bị cáo buộc xâm nhập vào các hệ thống khác
Cách thức, quy trình và nơi thông báo sự xâm nhập trái phép từ bên ngoài hay gây ra bởi các nhân viên của mình.
Chính sách an ninh về mặt vật lý của hệ thống
...

Bạn có thể nhờ tư vấn của các công ty, tổ chức làm dịch vụ tư vấn về an toàn máy tính để giúp bạn xây dụng một chính sách an ninh tốt. Các công ty này có các chuyên gia về an toàn máy tính, họ có sẵn các biểu mẫu chính sách an ninh nên có thể thiết lập nhanh chóng các chính sách mà bao gồm tất cả các mặt trong việc an toàn hệ thống máy tính.

TĂNG CƯỜNG AN NINH CHO KERNEL

Mặc dù thừa hưởng những đặc tính của hệ thống UNIX và khá an ninh hơn một số hệ điều hành khác, hệ thống GNU/Linux hiện nay vẫn tồn tại những nhược điểm sau:

Quyền của user ‘root’ có thể bị lạm dụng. User ‘root’ có thể dễ dàng thay đổi bất kỳ điều gì trên hệ thống.
Nhiều file hệ thống có thể dễ dàng bị sửa đổi. Nhiều file hệ thống quan trọng như /bin/login có thể bị sửa đổi bởi hacker để cho phép đăng nhập không cần mật khẩu. Nhưng những file loại này lại hiếm khi nào thay đổi trừ phi khi nâng cấp hệ thống.
Các module có thể được dùng để chặn kernel. “Loadable Kernel Module” là một thiết kế tốt để tăng cường tính uyển chuyển, linh hoạt cho kernel. Nhưng sau khi một module được nạp vào kernel, nó sẽ trở thành một phần của kernel và có thể hoạt động như kernel nguyên thủy. Vì vậy, các chưng trình mục đích xấu có thể được viết dạng module và nạp vào kernel, rồi sau đó hoạt động như một virus.
Các process không được bảo vệ. Các process như web server có thể trở thành mục tiêu bị tấn công của hacker sau khi thâm nhập hệ thống.
Để cải thiện tính an ninh cho các server Linux, chúng ta cần có một kernel an toàn hơn. Điều này có thể thực hiện được bằng cách sửa đổi kernel nguyên thuỷ bằng các ‘patch’ tăng cường tính an ninh cho hệ thống. Các patch này có các tính năng chính yếu sau:

Bảo vệ – bảo vệ các file hệ thống quan trọng khỏi sự thay đổi ngay cả với user root. Bảo vệ các process quan trọng khỏi bị ngừng bởi lệnh ‘kill’. Chặn các tác vụ truy cập IO mức thấp (RAW IO) của các chương trình không được phép.
Phát hiện – Phát hiện và cảnh báo với người quản trị khi server bị scan. Cũng như khi có các tác vụ trên hệ thống vi phạm các luật (rules) định trước.
Đối phó – Khi phát hiện sự vi phạm trên hệ thống, các ghi nhận chi tiết sẽ được thực hiện cũng như có thể ngừng lập tức phiên làm việc gây ra
Một vài công cụ sửa đổi kernel được sử dụng rộng rãi là LIDS (Linux Intrusion Detection System), Medusa, ...

AN TOÀN CHO CÁC GIAO DỊCH TRÊN MẠNG


Có rất nhiều dịch vụ mạng truyền thống giao tiếp thông qua giao thức văn bản không mã hoá, như TELNET, FTP, RLOGIN, HTTP, POP3. Trong các giao dịch giữa người dùng với máy chủ, tất cả các thông tin dạng gói được truyền qua mạng dưới hình thức văn bản không được mã hoá. Các gói tin này có thể dễ dàng bị chặn và sao chép ở một điểm nào đó trên đường đi. Việc giải mã các gói tin này rất dễ dàng, cho phép lấy được các thông tin như tên người dùng, mật khẩu và các thông tin quan trọng khác. Việc sử dụng các giao dịch mạng được mã hoá khiến cho việc giải mã thông tin trở nên khó hơn và giúp bạn giữ an toàn các thông tin quan trọng. Các kỹ thuật thông dụng hiện nay là IPSec, SSL, TLS, SASL và PKI.

Quản trị từ xa là một tính năng hấp dẫn của các hệ thống UNIX. Người quản trị mạng có thể dễ dàng truy nhập vào hệ thống từ bất kỳ nơi nào trên mạng thông qua các giao thức thông dụng như telnet, rlogin. Một số công cụ quản trị từ xa được sử dụng rộng rãi như linuxconf, webmin cũng dùng giao thức không mã hoá. Việc thay thế tất cả các dịch vụ mạng dùng giao thức không mã hoá bằng giao thức có mã hoá là rất khó. Tuy nhiên, bạn nên cung cấp việc truy cập các dịch vụ truyền thống như HTTP/POP3 thông qua SSL, cũng như thay thế các dịch vụ telnet, rlogin bằng SSH.


prof - hvaonline
Sử dụng virtual host (tên ảo) trong Apache

Người dùng sử dụng tên ảo với mục đích chạy được nhiều tên (hostnames) khác nhau trên một máy chủ. Có hai loại tên ảo có thể sử dụng trong Apache: cách dựa vào tên (name-based virtual host) và cách dựa vào IP (IP-based virtual host).

Sử dụng tên ảo bằng cách dựa vào tên có lợi điểm là bạn chỉ cần dùng một địa chỉ IP cho tất cá các tên.

Điều quan trọng là bạn phải khai báo tất cả các tên bạn muốn dùng với Apache trong máy chủ DNS trước. Nếu bạn chỉ khai báo thoải mái các tên khác nhau trong httpd.conf (hay apache.conf) mà trong máy chủ DNS không hề có thông tin của các tên thì người dùng sẽ không thấy được trang web của bạn. Cái điểm yếu của việc sử dụng tên ảo dựa vào tên là bạn không thể xài SSL https://) cho tất cả các tên vì SSL yêu cầu mỗi tên phải có riêng một IP trong khi sử dụng tên ảo dựa vào tên thì bạn chỉ có một IP duy nhất cho nhiều tên khác nhau.

Ví dụ cụ thể:

vnlinux.org có địa chỉ là 24.153.136.146. Tại sao mình biết? Chỉ việc gõ host vnlinux.org thì bạn sẽ thấy trả lời giống bên dưới:

Code:
rhs@gw rhs $ host vnlinux.org
vnlinux.org has address 24.153.136.146


Mỗi lần ghé thăm trang web vnlinux.org, thì người dùng có thể gõ http://www.vnlinux.org hay http://vnlinux.org sẽ đều thấy cả hai địa chỉ khác nhau nhưng nội dung thì như nhau. Tại sao vậy? Nếu bạn gõ host www.vnlinux.org thì bạn sẽ thấy trả lời là

Code:
rhs@gw rhs $ host www.vnlinux.org
www.vnlinux.org is an alias for vnlinux.org.


Lý do là vì mình đã khai báo trong DNS record, www.vnlinux.org sẽ là alias (hay còn gọi là CNAME khi thiết lập máy chủ DNS) của vnlinux.org Bên dưới là những hàng mình lấy ra từ tập tin db.vnlinux.org của máy chủ DNS

Code:
vnlinux.org. IN A 24.153.136.146
www.vnlinux.org. IN CNAME vnlinux.org.


Trong httpd.conf (hay apache.conf), mình khai báo ServerName www.vnlinux.org
Ví dụ trên chỉ đơn thuần giải thích cách dùng CNAME cho trang web .

Kế tiếp mình sẽ giải thích cách cấu hình dns và apache cho việc sử dụng tên ảo dựa vào tên (name-based virtual host).
Ví dụ trên bạn cũng đã thấy www.vnlinux.org có IP là 24.153.136.146 Mình cũng đã có những trang web sau cùng có chung IP với vnlinux.org bằng cách sử dụng tên ảo dựa vào tên.
howto.vnlinux.org
i18n.vnlinux.org
dịchthuật.vnlinux.org *
Bên dưới là kết quả của lệnh host cho những tên phía trên.
Code:
rhs@gw rhs $ host howto.vnlinux.org
howto.vnlinux.org has address 24.153.136.146

Code:
rhs@gw rhs $ host i18n.vnlinux.org
i18n.vnlinux.org has address 24.153.136.146


Code:
rhs@gw rhs $ host xn--dchthut-5p4c4j.vnlinux.org
xn--dchthut-5p4c4j.vnlinux.org has address 24.153.136.146


* xn--dchthut-5p4c4j là punycode format cho dịchthuật
Xem thêm về punycode bằng cách nhấn đây http://search.yahoo.com/search?ei=UTF-8&fr=sfp&p=punycode

Thông tin khai báo cho DNS (Nhớ khởi động lại máy chủ DNS):

Code:
howto.vnlinux.org. IN A 24.153.136.146
i18n.vnlinux.org. IN A 24.153.136.146
xn--dchthut-5p4c4j.vnlinux.org. IN A 24.153.136.146

Thông tin khai báo trong httpd.conf (hay apache.conf hay VHost.conf...)
Code:
NameVirtualHost 24.153.136.146:80
(VirtualHost 24.153.136.146:80)
ServerAdmin <a href="mailto:me@here.com">me@here.com</a>
DocumentRoot /Nơi/các/tập/tin/nằm/trong/htdocs
ServerName www.vnlinux.org
ErrorLog logs/VietLUG_error_log
CustomLog logs/VietLUG_access_log common
DirectoryIndex index.html
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}
RewriteRule .* - [F]
(/VirtualHost)


Thay () với <> trước và sau chữ VirtualHost. Đừng quên thay hàng đầu phía trên.
Code:
(VirtualHost 24.153.136.146:80)
ServerAdmin <a href="mailto:me@here.com">me@here.com</a>
DocumentRoot /Nơi/các/tập/tin/nằm/trong/htdocs
ServerName xn--dchthut-5p4c4j.vnlinux.org
ErrorLog logs/dichthuat_error_log
CustomLog logs/dichthuat_access_log common
DirectoryIndex index.html
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^{TRACE|TRACK}
RewriteRule .* - [F]
(/VirtualHost)


Thay () với <> trước và sau chữ VirtualHost. Đừng quên thay hàng đầu phía trên.

Làm y chang như trên cho hai tên howto và i18n. Sau khi khai báo các hàng trên, bạn phải khởi động lại apache.

Lưu ý: những dòng trên là những khai báo căn bản trong httpd.conf. Tùy vào nhu cầu phục vụ trang web mà bạn rất có thể cần thêm bớt các giá trị tùy thích

Nếu bạn đã khai báo trong DNS và apache đầy đủ mà vẫn không thấy các tên ảo hoạt động, rất có thể bạn phải chờ trong vòng một ngày (hoặc sớm hơn, hoặc lâu hơn) để DNS records chứa những thông tin bạn vừa thành lập được cập nhật.

Muốn kiểm tra ngay lập tức xem các tên ảo đã được thiết lập đúng chưa bạn có thể gõ httpd -S (hay apache -S)

Bài viết trên đã hướng dẫn cách thiết lập dns và apache cần thiết cho việc sử dụng tên ảo dựa vào tên (name-based virtual host). Bạn có thể đọc thêm tài liệu của Apache tại đây với hướng dẫn cách sử dụng tên ảo dựa trên IP (IP-based virtual host) và các ví dụ phức tạp hơn

Larry - vnLinux
Ứng dụng tập tin htaccess trên máy chủ Apache

Bạn đã từng nghe về tập tin .htaccess trên các máy chủ hệ Unix (FreeBSD, Linux, Solaris, True64...)? Bạn biết rằng tập tin này có thể điều khiển được khá nhiều thứ, thậm chí thay đổi được cả thiết lập mặc định của máy chủ Apache http://apache.org/. Thế nhưng bạn đã tận dụng được bao nhiêu lệnh trong tập tin này để làm cho website của mình mạnh mẽ, an toàn hơn?

Trong bài viết tổng hợp này, tác giả sẽ cùng bạn nghiên cứu, ứng dụng một số lệnh thông dụng nhất để thực hiện các tác vụ bảo vệ, điều khiển website theo ý bạn muốn. Nào, xin mời bạn!

Tạo trang báo lỗi mang màu sắc cá nhân

Trong quá trình làm việc với client, nếu có lỗi xảy ra (ví dụ như không tìm thấy tập tin) thì Apache sẽ báo lỗi bằng một trang có sẵn hiển thị mã số của lỗi đó, rất không đẹp và khó hiểu.

Với .haccess thì bạn có thể tự tạo các trang báo lỗi hay hơn. Để làm được điều này thì trong tập tin .htaccess bạn thêm dòng sau:

ErrorDocument mã số lỗi /trangloi.html

Trong đó mã số lỗi là mã số của lỗi phát sinh, sau đây là những lỗi hay gặp:

- 401 - Authorization Required (cần password để truy nhập)
- 400 - Bad request (Lỗi do yêu cầu)
- 403 - Forbidden (không được vào)
- 500 - Internal Server Error (lỗi server)
- 404 - Wrong page (lỗi trang, không tìm thấy...) 


còn trangloi.html là trang web mà bạn muốn hiển thị khi lỗi phát sinh, có thể đưa vào tập tin này nội dung hay đồ hoạ gì tùy bạn, chẳng hạn liên kết trở về trang chính của trang web. Ví dụ: ErrorDocument 404/trangloi.html hoặc: ErrorDocument500/loi/500.html

Bây giờ bạn hãy tải (upload) 2 tập tin .htaccess và trangloi.html lên hosting của mình.

Chống ăn cắp băng thông (bandwidth)

Thông thường những dịch vụ lưu trữ web chỉ cung cấp cho bạn một lượng dữ liệu luân chuyển (data transfer) nhất định hàng tháng và khi bạn sử dụng hết lượng dữ liệu này, website của bạn sẽ tự động bị đóng cửa. Bạn sẽ phải trả thêm tiền cho lượng băng thông vượt quá hoặc phải buộc lòng chờ đến tháng sau.

Nếu hình ảnh, dữ liệu, … của bạn bị các website khác “ăn trộm” (bằng các thủ thuật đơn giản) làm cho lượng dữ liệu luân chuyển của bạn tăng lên, thì có nghĩa là bạn sẽ phải trả tiền cho cái mà bạn không sử dụng. Sử dụng tập tin .htaccess là một giải pháp hoàn hảo, để ngăn chặn việc sử dụng hình ảnh trái phép trên website của bạn. Bạn chỉ việc đưa vào tập tin .htaccess nội dung sau :

Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ - [F]


Ở đoạn mã trên tôi sử dụng module Rewrite của máy chủ Apache, bạn chỉ việc thay đổi trangweb.com thành địa chỉ website của mình.

Có thể sử dụng một hình ảnh nào đó cảnh cáo những kẻ “ăn trộm” băng thông, bạn dùng dòng lệnh sau:

Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?trangweb\.com/.*$ [NC]
RewriteRule \.(gif|jpg)$ http://www.trangweb.com/diehotlinker.jpg [R,L]


Không cho hiện danh sách tập tin trong thư mục

Trong trường hợp một thư mục nào đó không có tập tin index hoặc default, Apache sẽ hiển thị một danh sách liệt kê những tập tin có trong thư mục đó. Tuy nhiên nếu đây là những tài liệu nhạy cảm, bạn không muốn người khác thấy, hãy thêm lệnh sau vào tập tin .htaccess

Options –Indexes

Thay thế trang index


Thông thường khi truy nhập vào một trang web, Apache sẽ tìm tập tin index.htm hoặc default.htm trả kết quả về cho trình duyệt, bạn có thể dùng .htaccess thay đổi mặc định này.

Code:
DirectoryIndex index.php index .php3 messagebrd.pl index.html index.htm


Với dòng lệnh này thì tất cả các tập tin được liệt kê sẽ được tìm theo thứ tự khi có yêu cầu tới thư mục hiện hành, trang nào được tìm thấy đầu tiên sẽ thành trang index của thư mục.

Cấm/hạn chế IP truy nhập

Một số người muốn làm ngập (flood) trang web của bạn, việc cần làm là ngăn cấm những IP của những người này truy nhập vào trang web, bạn thêm đoạn mã sau vào .htaccess: deny from 203.262.110.20; cho phép IP truy nhập: allow from 203.262.110.20.

Nếu bạn chỉ viết IP dưới dạng: 203.262.110 thì sẽ cấm tất cả IP trong dải từ 203.262.110.1 đến 203.262.110.254.

Sử dụng dòng lệnh sau: Deny from all sẽ cấm tất cả mọi truy nhập đến các trang web trong thư mục, tuy nhiên các tập tin trong đó vẫn có thể được sử dụng từ bên ngoài thông qua các lệnh dạng require hay include (trong lập trình PHP), có thể xem thêm mã nguồn của PHPBB forum,IBF... để hiểu rõ hơn.

Tự động chuyển đến địa chỉ mới (Redirection)

Bạn chuyển trang web của mình đến địa chỉ mới nhưng không phải ai cũng biết điều này, wwwect truy nhập từ xa một cách đơn giản bằng lệnh sau:

Redirect/olddirectory http://www.trangwebmoi.com/thumucmoi ;

Tuỳ biến đuôi tập tin

Thông thường, tuỳ thuộc vào ngôn ngữ lập trình web mà bạn sử dụng tập tin sẽ có phần mở rộng khác nhau như: html, htm, asp, aspx, php, cgi, …Tuy nhiên nếu sử dụng .htaccess bạn có thể tác động vào máy chủ Apache, Apache sẽ gọi đến tập tin của bạn và trả về cho trình duyệt web của người dùng với phần mở rộng do bạn quy định trong .htaccess. Bạn sử dụng đoạn lệnh sau trong tập tin .htaccess:

Code:
RewriteEngine on
RewriteRule (.*)\.dll$ $1.html


Html là phần mở rộng thực sự của những tập tin trên website, dll là phần mở rộng do bạn lựa chọn. Lưu ý trong liên kết trên trang web, bạn phải gọi đúng đường dẫn đến tập tin với phần mở rộng mới (ở trên là dll), ví dụ http://www.trangweb.com/in dex.dll

Lưu ý khi sử dụng tập tin .htaccess:

- Chỉ áp dụng trên máy chủ Apache đã bật chế độ .htaccess, nếu chưa bạn hãy thử liên hệ với nhà cung cấp dich vụ hosting.

- Để tạo ra tập tin này bạn có thể sử dụng ngay chương trình Notepad của Windows: chọn chế độ save as với tên .htaccess, nhưng khi lưu nhớ bỏ đuôi txt.

-.htaccess chỉ có tác dụng đối với những tập tin ngang hàng (trong cùng thư mục với nó) hoặc thư mục con. Với thư mục, nó chỉ có tác dụng trong thư mục chứa nó và thư mục con, còn vô tác dụng với thư mục mẹ (parent directory).

- Bạn có thể dùng một số chương trình FTP (Leaf FTP, WS FTP, Cute FTP) để tải tập tin .htaccess lên hosting của mình với chế độ ASCII, nếu nó không hoạt động bạn thử CHMOD với giá trị 644.

Hoàng Nghĩa Hạnh

Cách anh dùng là chỉ cho database service lắng nghe trên localhost (127.0.0.1). Để truy cập trực tiếp vào database, anh dùng SSH và tạo tunnel đến cổng dịch vụ của database ở 127.0.0.1. Bên ngoài có muốn connect vào cũng không được vì database service không "LISTEN" trên IP nào khác ngoài loopback IP
 


Pó tay với anh luôn , khi nghĩ ra đến cách làm này Để truy cập trực tiếp vào database, anh dùng SSH và tạo tunnel đến cổng dịch vụ của database ở 127.0.0.1  


Thấy anh conmale và nhiều huynh nhắc vụ tunnel nhưng trên hva chưa có thảo luận gì về vụ này , thêm vào đó có vẻ anh thích vụ này nên em đã viết 1 bài về linux tunnel tại http://hvaonline.net/hvaonline/posts/list/1522.html để anh em có thêm đề tài bàn tán :wink:

Apr 15th 2006

Table of Contents

1 . First
2 . Install
3 . Configuration
4 . Use
5 . Reference

First :
Khi sử dụng môi trường net của trường hoặc của công ty chúng ta gặp không ít khó khăn . bài viết này sẽ giới thiệu cho bạn đọc sử dụng chương trình httptunnel để khắc phục những giới hạn trong các môi trường đó .
bài viết sẽ chú trọng việc tạo tunnel khi client nằm sau proxy của các môi trường như trên và để tránh khỏi những giới hạn từ proxy của các môi trường đó .


Mô hình tunnel trong bài viết :
bmuht_fig.76252_9917744031946595406781be0c952956/6/8/6002/daolpu/enilnoavh/ten.murofavh.www//:ptth


Ngoài httptunnel , còn có rất nhiều loại tunnel trên linux như

* stone http://www.gcd.org/sengoku/stone/
* Zebedee http://www.winton.org.uk/zebedee/
* stunnel http://stunnel.mirt.net/
* sslwrap http://www.quiltaholic.com/rickk/sslwrap/
* OpenSSH http://www.openssh.org/

Ngoài httptunnel cá nhân tôi rất thích sử dụng chương trình tưunel stone , trong thời gian tới tôi sẽ viết bài giới thiệu cách sử dụng của stone .

2 . Install (from readme in package)

1. `cd' to the directory containing the package's source code and type

`./configure' to configure the package for your system. If you're

using `csh' on an old version of System V, you might need to type

`sh ./configure' instead to prevent `csh' from trying to execute

`configure' itself.

Running `configure' takes awhile. While running, it prints some

messages telling which features it is checking for.

2. Type `make' to compile the package.

3. Optionally, type `make check' to run any self-tests that come with

the package.

4. Type `make install' to install the programs and any data files and

documentation.

5. You can remove the program binaries and object files from the

source code directory by typing `make clean'. To also remove the

files that `configure' created (so you can compile the package for

a different kind of computer), type `make distclean'. There is

also a `make maintainer-clean' target, but that is intended mainly

for the package's developers. If you use it, you may have to get

all sorts of other programs in order to regenerate files that came

with the distribution. 


3 . Configuration

Trên server bên ngoài bạn dùng lệnh

Code:
$hts -F localhost:22 8888


Trên windows từ xa bạn dùng lệnh sau để establish connection với server

$ htc -F 2222 -P ccproxy2.company.ac.jp:10080 221.222.222.22:8888 


* -P ccproxy2.company.ac.jp:10080 là proxy

* 221.222.222.22:8888 là máy chủ của mình đã config bước trên server bên ngoài

4 . Use

Cách kết nối đến tunnel server trên linux

Code:
[inhost]$ ssh -p 2222 -l username localhost

* username là user của bạn trong server (outside)

* localhost là host server của bạn

Cách kết nối đến tunnel server trên windows

Download client của httptunnel trên nền Windows tại .
http://userpages.umbc.edu/~tmoses1/hypertunnelNT.zip

giải nén và khởi động chương trình trên DOS và dùng lệnh .

Code:
$ htc -F 2222 -P ccproxy2.company.ac.jp:10080 221.222.222.22:8888


sau đó dùng chương trình putty (hoặc các chương trình giống putty) kết nối đến server

Code:
Địa chỉ : localhost
Port : 8888


-----------------------

Có vài người bạn tôi có làm theo hướng dẫn như bị thất bại . tôi xin đưa ra những trường họp thường xãy ra và giải pháp của chúng .

1 . Firewall chưa mở .

giải pháp : Allow các packet đi vào từ port 8888

2 . Trong hosts.alllow không set allow 127.0.0.1 .

giải pháp : mở file /etc/hosts.alllow và thêm vào như sau

All : 127.0.0.1

3. Chỉ định tunnel server sai địa chỉ của sshd daemon .

phần giới thiệu trên tôi đã viết là

Code:
$hts -F localhost:22 8888


nếu bạn không biết được ssh deamon đang listen tại đia chị nào , trong trường họp này , mở file /etc/ssh/sshd_config kiếm đến dòng

Code:
ListenAddress 192.168.11.5:22


từ địa chỉ trên , ta đã xác thực được ssh daemon listen trên địa chỉ 192.168.11.5 và port 22 , từ đó , ta có thể đổi lại server của httptunnel listen trên địa chỉ này với dòng lệnh sau để cho tương ứng .


Code:
$hts -F 192.168.11.5:22 8888



5 . Reference


Official home page :
http://www.nocrew.org/software/httptunnel.html
FAQ :
http://www.nocrew.org/software/httptunnel/faq.html
Other sites :
http://www.hirochan.org/freebsd/setup/httptunnel.html (copy mô hình trên)


Tác giả : 777
Nguồn : vnhacker.org
Cảnh cáo bạn conan1212 lần thứ 1 về việc phát ngôn đã kích trong bài trả lời .
Ví tớ không hiễu ở điểm, có rất nhiều dịch vụ đang chạy trên hệ điều hành Linux nhưng không biết dịch vụ nào quan trọng và dịch vụ nào không quan trọng, chĩ biết mấy cái dịch vụ của webserver . Các dịch vụ này nếu bật lên mà các dịch vụ này có lỗ hỗng thì hacker họ khai thác như thế nào vào các dịch vụ này Vậy giả sử hacker họ dùng sniffer để nghe lén mạng chẳng hạn thì trên linux họ dùng công cụ gì để làm điều này, tớ đọc tài lệu họ bảo các dịch vụ này rsh, rcp, telnet và rlogin phải Off vì khi truyền nó không được mã hoá như ssh . Họ bảo mình off mà mình không biết tại sao nó off thì ... tức lắm . Xin cho tớ biết một công cụ sniffer mà anh em thường dùng (câu hỏi phụ :mrgreen . 

Anh dùng tcpdump xem ... cách dùng thì đọc bài ký sự của anh conmale xong là anh biết dùng ngay smilie

Bài toán thứ 4 : Cái này thì mình học hỏi anh em sau vậy, xét về mặt cấu hình cho nó thì tớ thấy 1.x nó cấu hình dễ dàng hơn 2.x còn các mặt khác thì học hỏi anh em sau vậy .  


Nói 1 cách tổng quát thì em nhận định 1.x và 2.x mổi cái có điểm mạnh / điểm yếu của nó (về mặt tính năng ) cho nên khi anh chọn 1 trong 2 thì nên chọn version theo mục đích của anh thì sau này dể phát triển theo hướng của anh hơn . (dạo này không theo dõi tin nên không chắc nó có kết họp và mở rổng tính năng hay không , anh tham khảo thêm trong trang chủ của nó nha )

Hẹn gặp anh tại thread : Cấu hình Apache :lol:
3. Nếu các bài toán của G.A phải đồng thời thoả mãn thì cách giải quyết của 777 chưa hợp lý lắm vì sau bài toán 1, thì sẽ không thoả mãn bài toán 3 vì user Trường không được cấp shell 


á !!! đau quá đừng chọt mà :lol: nhột ..... nhột ......

đúng là tôi không đọc kĩ bài 3 . mà đọc cũng không hiểu từ ứng dụng của apache chỉ định cái gì của apache nên không tiện trả lời ............ ok vậy thì xét lại đã smilie

- Bài toán thứ 3 : Mình có các user ở trên, mình muốn thiết lập cho user Trường được phép chạy các ứng dụng từ root ví dụ như chạy ứng dụng của webserver và 2 user còn lại thì không được phép sử dụng ứng dụng webserver này .  


Miển cưỡng trả lời thì ..... nếu không cho Trường sài ssh mà có thể "chạy apache" thì không được rồi, vì lấy gì để chạy ứng dụng apache dưới quyền user Trường đây ?

ps :
Bài 5 củng không đọc kĩ nên trả lời sai bét may quá .. chưa ai nhìn ... edit thôi :lol: mà tôi thấy có vài điểm mâu thuẩn tại câu trả lời trên của bạn giti nhưng nói dài dòng sợ thầy "choáng" mất ...... đành đợi thầy ra bài vào chấm điểm và díp kịp xong rồi tính tiếp vậy :wink:
Em cũng sài GAIM đây anh .. nhưng mà của thàng Win chuối quá không tài nào thay đổi được kích thước của nó , không hiển thị được tv có dấu , lại không dùng được emo smilie

anh có tuyệt chiêu gì chỉ em với
smilie

---------
good job ! Mr zorro :wink:
Bổ sung thêm cho trả lời của bạn giti

Mình có 3 user sau : user A ứng với tên là Phúc, B ứng với tên là Trường, C ứng với tên là An và 1 tài khoản root.
- Bài toán đưa ra như sau mình là account root mình muốn thiết lập user A này được quyền truy cập, sử dụng SSH, 2 user còn lại không được quyền sử dụng, truy cập SSH . 


Khi add user anh dùng lệnh như sau

Case 1 : Cấp quyền sử dụng shell
useradd -s /bin/bash Phuc

Case 2 : Không cấp quyền sử dụng shell
useradd -s /bin/false Truong

- Bài toán thứ 2 : khi cài đặt một server xong, những dịch vụ nào mình cần chú ý mục đích bảo mật cho các dịch vụ này bây giờ và về sau nhằm tránh bị khai thác . Server này dự định làm webserver chĩ chạy các ứng dụng như apache, mysql . 


Muốn thực hiện vấn đề này anh cần phải tắt hết tất cả những service không cần thiết .

Ví dụ cụ thể - nếu như server của anh chỉ chạy MySQl và Apache thì chỉ cần turn on các service như sau là "đủ để chạy" .

[minh@tech minh]$ chkconfig --list | grep 3:on
syslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
random 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:off 3:on 4:off 5:on 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
mysql 0:off 1:off 2:off 3:on 4:off 5:off 6:off

Tham khảo về chkconfig tại đây .
http://www.mediacollege.com/cgi-bin/man/page.cgi?topic=chkconfig

sau khi hoàng tất việc này anh chỉ còn việc cấu hình apache và mysql cho hoàng chỉnh là xong . còn về việc cấu hình nó làm sao cho tốt thì phục thưộc vào anh service cái gì trên các application đó . cần nhất là phải đọc nát hết manual của nó :lol:



- Bài toán thứ 5 liên quan đến Mysql : Ví dụ mình có một hosting địa chĩ IP sau 10.1.32.4 (địa chĩ IP này cho đại, đừng quan tâm đến nó) chứa database của diễn đàn Invision Power Board và một hosting khác có địa chỉ IP sau 10.1.36.5 và ở hosting này chứa sourcecode của Invision (cả hai host này đều đặt không cùng server và không có CPANEL để quản lý) . Câu hỏi đặt ra, làm thế nào để sử dụng kết nối database từ xa, tức là IP 10.1.36.5 này kết nối với database của hosting 10.1.32.4 . Trong Invision thì mình biết chĩnh sửa cấu hình, nhưng còn trên hệ điều hành Linux thì việc cấu hình này ra sao (mình chĩ quan tâm đến cấu hình cho mysql ở server như thế nào, không quan tâm đến sourcecode của diễn đàn)  


# mysql -h 10.1.32.4 -u truong -p
Enter pass :

để thực hiện lệnh trên cần phải tạo user / pass / permission trước / (xem manual của mysql ) sau đó vào sửa file của diễn đàn thành .

host : 10.1.32.4
user : truong
pass : xxxx

và thêm rule vào firewall để có thể access từ remote .
Nội dung

1. Giới thiệu
2. Cấu hình SNMP
3. Tham khảo

Giới thiệu

SNMP: Simple Network Management Protocol

Cấu hình SNMP

Phần 1: Cài đặt snmp

Cài những gói net-snmp, net-snmp-utils

Cho người dùng FC:

# yum install net-snmp net-snmp-utils

Phần 2: Cấu hình

Chỉnh sửa file cấu hình snmpd.conf (FC user: /etc/snmp/snmpd.conf)

###########################################
# Access Control (Quyền truy nhập thông tin)
###########################################
# First, map the community name "public" into a "security name"
# thay "MậtkhẩuSNMP" bằng một chuỗi ký tự
com2sec local localhost MậtkhẩuSNMP
com2sec myLAN 192.168.1.0/24 MậtkhẩuSNMP

# Second, map the security name into a group name:
# RWGroup: quyền đọc/viết (Read, Write)
# ROGroup: chỉ có quyền đọc (Read Only)
group RWGroup v1 local
group RWGroup v2c local
group RWGroup usm local
group ROGroup v1 myLAN
group ROGroup v2c myLAN
group ROGroup usm myLAN

# Third, create a view for us to let the group have rights to:
view all included .1 80

# Finally, grant the group read-only access to the systemview view.
# group context sec.model sec.level prefix read write notif
access ROGroup "" any noauth exact all none none
access RWGroup "" any noauth exact all all none

##############################
# System contact information
##############################
syslocation Công ty XXX
syscontact Admin <email@domain.name>

#######################################
# disk checks (kiểm tra dung lượng HDD)
#######################################
# báo lỗi nếu / partition còn ít hơn 100 MB, /var còn ít hơn 500 MB
disk / 100000
disk /var 500000

############################################
# load average checks (kiểm tra tải của CPU)
############################################
# báo lỗi nếu vượt mức trung bình sau đây (1, 5, 15 phút)
# load [1MAX=12.0] [5MAX=13.0] [15MAX=14.0]
load 12 13 14 


Phần 3: Khởi động snmpd

Cho người dùng FC

// tự động chạy mỗi khi bật máy
# chkconfig --level 3 snmpd on
// khởi động cho lần đầu tiên
# /etc/init.d/snmpd start

Phần 4: Kiểm tra hoạt động

Sử dụng lệnh snmpwalk để xem một số thông tin hệ thống

// -----------------------------------
// phần memory còn thừa (chưa sử dụng)
$snmpwalk -v 1 -c MậtkhẩuSNMP localhost .1.3.6.1.4.1.2021.4.6.0
// kết quả: 120 MB RAM chưa sử dụng
UCD-SNMP-MIB::memAvailReal.0 = INTEGER: 120400

// -----------------------------------
// dung lượng HDD, / partition
$ snmpwalk -v 1 -c MậtkhẩuSNMP localhost .1.3.6.1.4.1.2021.9.1.9.1
// kết quả: đã sử dụng 13%
UCD-SNMP-MIB::dskPercent.1 = INTEGER: 13

// -----------------------------------
// số user đang login vào hệ thống
$ snmpwalk -v 1 -c MậtkhẩuSNMP localhost hrSystemNumUsers.0
// có 70 users
HOST-RESOURCES-MIB::hrSystemNumUsers.0 = Gauge32: 70

// -----------------------------------
// số TCP connection đang mở
$ snmpwalk -v 1 -c MậtkhẩuSNMP localhost .1.3.6.1.2.1.6.9.0
// có 123 open connections
TCP-MIB::tcpCurrEstab.0 = Gauge32: 123 


Tham khảo, thông tin thêm

1. Xem MIB tree: Mbrowse is an SNMP MIB browser based on GTK and net-snmp. It is released under the GPL.


James Nguyen.
 
Go to Page:  First Page Page 11 12 13 14 Page 16 Last Page

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|