Đồ án
Hướng dẫn cơ bản Linux Đồ án tốt nghiệp
1
Mục lục
Chơng I: Giới thiệu về Linux ...........................................................................4
1.1Sơ lợc về Linux................................................................................................4
1.1.1 Giới thiệu về hệ điều hành Unix............................................................4
1.1.2 Giới thiệu về hệ điều hành Linux..........................................................5
1.2 Tính năng của Linux. .......................................................................................7
1.3 Vấn đề bản quyền.............................................................................................8
1.4 So sánh Linux và các hệ điều hành khác..........................................................9
1.4.1 So sánh Linux với Windows 95, Windows 98. .....................................9
1.4.2 So sánh Linux với Windows NT. ........................................................10
1.5 Yêu cầu về phần cứng. ...................................................................................11
2
3.3.2 cấu hình Sharing Setting......................................................................42
3.4 Chia sẻ file......................................................................................................43
3.5 Kiểm tra cấu hình vừa thiết lập ......................................................................44
3.5.1 Kiểm tra bằng công cụ Testparm ........................................................44
3.5.2 Kiểm tra bằng công cụ smbstatus .......................................................45
3.6 Chạy samba server..........................................................................................46
3.6.1 Sử dụng câu lệnh smbclient.................................................................47
3.6.2 Truy cập từ máy Windows ..................................................................49
Chơng IV: Squid proxy server........................................................................50
4.1. Tầm quan trọng và phơng thức hoạt động của Squid cache........................50
4.2. Cài đặt............................................................................................................52
4.3. Tập tin cấu hình /etc/squid/squid.conf ..........................................................52
4.4. Cấu hình các tùy chọn cơ bản .......................................................................53
4.5. Access control list .........................................................................................54
4.6. Khởi động squid ............................................................................................56
Chơng V: Cấu hình WEB SERVER...............................................................58
5.1 Cài đặt apache, php, mysql.............................................................................58
5.1.1 Download và cài đặt Apache...............................................................58
5.1.2 Download và cài đặt php .....................................................................59
5.1.3 Download và cài đặt Mysql.................................................................60
5.2 Cấu hình Apache cơ bản.................................................................................63
5.3 Cấu hình bảo mật apache................................................................................67
5.3.1 Giới hạn địa chỉ ip. ..............................................................................67
5.3.2 Giới hạn truy cập theo tài khoản sử dụng............................................69
Chơng VI: Bảo mật với Firewall, ip tables...................................................78
6.1 FireWall..........................................................................................................78
6.1.1 Định nghĩa...........................................................................................78
6.1.2 Chức năng............................................................................................78
6.1.3 Cấu trúc của FireWall ........................................................................78
Tài liệu tham khảo..........................................................................................103
Đồ án tốt nghiệp
4
Chơng I: Giới thiệu về Linux
1.1Sơ lợc về Linux.
1.1.1 Giới thiệu về hệ điều hành Unix.
Năm 1964, Bell Labs, MIT & General Electric phát triển một hệ điều hành
gọi là MULTICS(Multiplexed Information and Computing System). Sau đó năm
1969, Ken Thompson (một lập trình hệ thống của Bell labs) nghĩ rằng ông ta có
thể làm một hệ điều hành tốt hơn. Vì vậy, ông ta đã viết một hệ điều hành trên hệ
thông máy tính PDP-7, và hệ điều hành này đợc gọi là Unix. Mục tiêu khởi đầu
là cung cấp một môi trờng máy tính hoá để mô phỏng trò chơi không gian.
Nhng có một vấn đề xảy ra là phiên bản Unix này không thể chạy đợc trên hệ
thống phần cứng khác. Do đó đến năm 1973 Ritchie và Thompson đã viết lại hệ
điều hành bằng ngôn ngữ C, khác hẳn với các hệ điều hành truyền thống ghi
bằng ngôn ngữ máy, do đó Unix rất dễ cài đặt trên các hệ máy khác. Năm 1974
hệ điều hành Unix đã đợc cài đặt trên các máy DEC PDP-11 ở hơn 100 trờng
đại học. Mục tiêu chủ yếu là cung cấp môi trờng cho các lập trình viên chuyên
nghiệp. Vì thế, Unix ngày càng thông dụng và ngày càng có thêm nhiều đặc tính
mới đợc bổ xung. Sau đó chính phủ và quân đội Mỹ đã sử dụng Unix để nối
mạng toàn cầu (Internet).
Đến nay đã có hàng trăm ngàn hệ thống Unix cài đặt trên khắp thế giới. Hầu
hết các hãng sản xuất máy đều có một phiên bản cho Unix. Tuy nhiên hiện nay
để chuẩn hoá hệ điều hành Unix, ngời ta quy ớc các tập lệnh chuẩn và gọi là
Unix System V Release 4. Trên máy PC hiện nay phổ biến hai hệ điều hành là
SCO Unix và SUN Solaris.
Các đặc điểm cơ bản của hệ điều hành Unix
Đồ án tốt nghiệp
6
Linux là phiên bản của Unix đợc phân phối miễn phí và ban đầu do Linus
Torvalds thực hiện và phát triển. Ông bắt đầu nghiên cứu Linux vào năm 1991
khi còn là sinh viên trờng đại học Helsinki ở Phần Lan. Linux đợc xây dựng và
phát triển từ hệ điều hành Minix (một phiên bản của Unix). Lúc đầu, Linus tung
ra phiên bản Linux đầu tiên trên Internet cho mọi ngời sử dụng miễn phí, điều
đó vô tình dấy lên một hiện tợng phát triển phần mềm lớn. Linux đợc xác lập
và duy trì bởi một nhóm hợp tác gồm vài ngàn nhà phát triển phần mềm tình
nguyện cùng làm việc qua Internet. Các công ty cung cấp hỗ trợ Linux để phát
triển nó thành loại sản phẩm dễ cài đặt với mục đích kinh doanh các trạm làm
việc có cài sẵn phần mềm Linux.
Vào ngày 5 tháng 10 năm 1991, Linus đã công bố phiên bản Linux chính
thức đầu tiên, phiên bản 0.02. Bắt nguồn từ hệ điều hành Minix của Andrew
Tanenbaum, Linux ban đầu chỉ là một dự án mà trong đó Linux muốn xây dựng
một hệ unix đơn giản có thể chạy trên PC 386. Phiên bản này đợc xác định nh
một hệ thống của các hacker. Vấn đề chính là phát triển kernel chứ không phải
không phải nhằm mục đích hỗ trợ ngời dùng hay để phân phối. Nhng đến nay
sự hoàn thiện thực sự trong thế giới Linux đã giải quyết đợc vấn đề môi trờng
ngời sử dụng đồ hoạ, gói sản phẩm dễ dàng cài đặt và các ứng dụng cao cấp
nh: tiện ích đồ hoạ và các bộ phiên bản sản phẩm.
Từ khi phiên bản Linux đầu tiên ra đời cho đến nay thì đã có rất nhiều
phiên bản Linux mới ra đời cùng với nhiều tính năng mới đợc thêm vào nhằm
phục vụ, hỗ trợ những tiện ích ngày càng cao của ngời dùng.
Vì Linux đợc phát triển từ hệ điều hành Minix(một phiên bản của Unix)
nên Linux cũng có những đặc tính và u điểm của hệ điều hành Unix:
- Linux cũng đợc viết bằng C.
- Linux cũng là đa ngời dùng, đa nhiệm, là hệ điều hành mạng.
Đồ án tốt nghiệp
8
Unix. Bộ nạp khởi động Linux cho phép bạn lựa chọn hệ điều hành để bắt đầu
vào thời đIểm khởi động và Linux cũng tơng thích với các bộ nạp khởi động
khác.
Linux có thể chạy trên nhiều kiến trúc CPU bao gồm:
X86(Celeron/PII/PIII/PIV/Pentium/80386/80486), SPARC, Alpha, PowerPc,
MIPS và m68k.
Linux hỗ trợ nhiều kiểu file khác nhau để lu dữ liệu.
Hỗ trợ mạng là một trong những sức mạnh lớn nhất của Linux cả về chức
năng lẫn tính năng. Linux cung cấp cài đặt hoàn hảo về mạng TCP/IP, bao gồm
các trình điều khiển thiết bị cho nhiều card Ethernet thông dụng, PPP và SLIP,
Parallel Line Internet Protocol (PLIP) và Network Fle System (NFS). Có rất
nhiều ứng dụng khách và dịch vụ TCP/IP đợc hỗ trợ nh FTP, Telnet, Simple
Mail Transfer Protocol (SMTP). Linux kernel còn hỗ trợ tờng lửa mạng hoàn
hảo, cho phép bạn cấu hình bất cứ máy Linux nào dới dạng tờng lửa.
1.3 Vấn đề bản quyền.
Linux đợc cấp giấy phép công cộng GNU General Public Licence hay
GPL.GPL đôi khi đợc gọi là giấy phép không bản quyền. Giấy phép này đa
ra các điều khoản ràng buộc việc phân phối và sửa đổi phần mềm miễn phí(free
software).
Ban đầu, Linus Torvalds tung ra Linux với giấy phép hạn chế hơn GPL. Giấy
phép này cho phép tự do phân phối và sửa đổi phần mềm nhng không cho phép
thay đổi giá thành đối với việc sử dụng và phân phối sản phẩm đó. GPL cho phép
bán và thu lợi từ phần mềm miễn phí nhng không cho phép hạn chế quyền phân
phối phần mềm của ngời khác dới bất kỳ hình thức nào.
Mọi tổ chức bán phần mềm miễn phí phải tuân theo những giới hạn nhất định
đa ra trong GPL:
10
Windows 95 và Windows 98 không tận dụng hết đợc chức năng của bộ
xử lý X86. Mặt khác, Linux hoàn toàn chạy trong chế độ bảo vệ của bộ xử lý và
khai thác triệt để các tính năng của máy, kể cả đa bộ vi xử lý.
Có thể khẳng định rằng Windows và Linux là những thực thể hoàn toàn
khác biệt. Windows có giá cả hợp lý(so với các hệ điều hành thơng mại khác)
và có vị trí vững chắc trong thế giới máy tính PC. Không có hệ điều hành nào cho
PC lại đạt đợc mức độ phổ cập nh Windows. Tuy nhiên Linux lại là hệ điều
hành miễn phí và chính điều đó cũng làm cho nó ngày càng trở nên thông dụng.
1.4.2 So sánh Linux với Windows NT.
Cũng nh Linux, Windows NT(và các phiên bản Windows phát triển từ
Windows NT) là hệ điều hành đa nhiệm đầy đủ, hộ trợ máy đa bộ xử lý, kiến trúc
CPU, bộ nhớ ảo, nối mạng, bảo mật... Tuy nhiên, khác biệt giữa Linux và
Windows NT là Linux là phiên bản của Unix. Có nhiều cài đặt từ phía công ty
cung cấp nhng có một vấn đề nan giải là việc chuẩn hoá dới dạng hệ thống mở,
nhng không một công ty nào có thể kiểm soát đợc thiết kế này. Mặt khác,
Windows NT là một hệ thống đặc quyền. Giao diện và thiết kế là do một công ty
kiểm soát, đó là Microsoft và chỉ công ty đó mới cài đặt thiết kế. Về một ý nghĩa
nào đó thì hình thức tổ chức này là có lợi: nó thiết lập tiêu chuẩn nghiêm ngặt
cho việc lập trình và giao diện ngời sử dụng không giống nh trong cộng đồng
hệ thống mở.
Windows NT là cả sức mạnh đầy đủ của bộ máy tiếp thị Microsoft, trong
khi đó Linux có cộng đồng hàng nghìn nhà lập trình đang góp phần cải tiến hệ
thống này qua mẫu Open Source. Những điểm quy chuẩn của Linux so với
Windows NT đã chứng minh rằng mỗi hệ thống có điểm mạnh và điểm yếu
riêng. Linux vợt xa Windows NT trong lĩnh vực mạng. Linux cũng nhỏ hơn NT
nhng lại thờng ổn định hơn.
Đồ án tốt nghiệp
Đồ án tốt nghiệp
12
ổ cứng: Giống nh CD-ROM, nó có thể đợc nối với IDE hay SCSI bus.
Bạn nên ghi lại số cylinders của ổ cứng - đợc chỉ ra trong BIOS (ý nghĩa
của cylinder sẽ đợc giải thích sau).
Bus nội bộ: Linux hiện tại không hỗ trợ bus với kiến trúc Micro-Chanel.
Các bus đợc hỗ trợ là PCI, ISA, EISA, VL Bus. Hầu hết các máy sản
xuất sau năm 1995 đều có PCI bus.
Bộ nhớ: Linux cần tối thiểu 8MB RAM để có thể chạy đợc.
Sound card: Không cần thiết cho quá trình cài đặt, song nếu bạn có
Creative Labs Sound Blaster hay card sound tơng thích, bạn sẽ dễ dàng
có đợc âm thanh trong quá trình cài đặt.
Video card: Thông tin cần thiết ở đây là loại chip và dung lợng bộ nhớ.
Nếu là loại card PCI thì thông tin này có thể tự động nhận biết trong quá
trình cài đặt (thông tin này chỉ thực sự cần thiết nếu bạn có ý định dùng
Xwindow).
Việc tiếp theo là so sánh danh sách phần cứng bạn có với danh sách đợc
Linux hỗ trợ:
FTP Server (optional)
Đồ án tốt nghiệp
14
Chơng II : các lệnh Linux cơ bản
2.1 Các phơng thức hoạt động của dòng lệnh
Các lệnh trong Linux đợc chia làm hai loại là câu lệnh và chơng trình.
Điểm khác nhau giữa câu lệnh và chơng trình là: đối với các câu lệnh Linux đã
có cài sẵn các phản ứng và khi bạn gõ lệnh, Linux sẽ đáp ứng các câu lệnh đó.
Còn đối với chơng trình, nó sẽ tìm chơng trình có tên thích hợp rồi thực hiện
chơng trình đó.
Nhiều lệnh trong Linux cho phép đầu ra của một lệnh này là đầu vào của
lệnh khác. Để làm đợc điều đó bạn chỉ cần đánh dấu | ngăn cách giữa hai
lệnh. Còn nếu câu lệnh dài quá bạn có thể ngắt xuống dòng bằng cách thêm dấu
\ tại cuối dòng (dấu \ phải là kí tự cuối cùng của dòng lệnh). Khi bạn muốn
đánh nhiều lệnh một lúc thì bạn chỉ cần đánh dấu , giữa các câu lệnh, từ đó các
câu lệnh sẽ đợc thực hiện một cách tuần tự.
Linux còn cung cấp nhiều sự tiện lợi khi sử dụng các lệnh, đặc biệt là khả
năng hoàn chỉnh lệnh bằng việc sử dụng phím tab. Bạn cũng có thể sử dụng mũi
tên lên/xuống trên bàn phím để nhận đợc các câu lệnh đã sử dụng lúc trớc.
Một số phím tắt để thực hiện lệnh các thao tác đơn giản khi nhập lệnh.
- Nhấn phím ESC +BACKSPACE để xoá một từ bên trái con
trỏ.
- Nhấn phím ESC +D để xoá một từ bên phải con trỏ.
- Nhấn phím ESC +F để di chuyển con trỏ sang phải một từ.
- Nhấn phím ESC +B để di chuyển con trỏ sang trái một từ.
- Nhấn phím CTRL +A di chuyển con trỏ về đầu dòng lệnh.
REPORTING BUGS
Địa chỉ liên hệ nếu gặp lỗi khi sử dụng lệnh.
Đồ án tốt nghiệp
16
AUTHOR
Tên tác giả của lệnh.
2.3 Các quy ớc.
Có một bộ quy ớc mô tả chính xác và nhất quán cú pháp lệnh trong
Linux. Bộ quy ớc này quy định tuỳ chọn hay tham số nào buộc phải dùng, tuỳ
chọn hay tham số nào không nhất thiết phải dùng...
- Bất cứ từ nào đứng một mình hay không ở trong các dấu [], {},<> thì phải
gõ y nh vậy.
- Từ nằm trong dấu ngoặc vuông ( [] ) là tuỳ ý có thể gõ hoặc không.
- Từ nào nằm trong dấu <> là bắt buộc phải có và đợc thay thế bằng từ
thích hợp.
- Từ nào nằm trong dấu {} là chọn một trong các giá trị trong ngoặc đó.
- Dấu ... thờng đợc dùng với các tham số nh tên tập tin.
- Khi cần có thể kết hợp các dấu ngoặc với nhau để tạo ra cách sử dụng
tham số mới.
Ngoài những quy ớc trên, có một điều cần lu ý nữa là trong dòng lệnh
Linux có phân biệt chữ hoa và chữ thờng.
Trong Linux có hai ký tự đại diện phổ biến là * và ?. * là ký tự đại
diện thông dụng nhất, nó thay cho một hay nhiều kí tự. Và ? là ký tự đại diện
cho một ký tự duy nhất.
2.4 Các lệnh cơ bản trong Linux.
2.4.1 Th mục và lệnh về th mục.
2.4.1.1 Một số th mục đặc biệt.
- Th mục / : Đây là th mục gốc chứa đựng tất cả các th mục con có
Đồ án tốt nghiệp
18
- Th mục /usr : Thông thờng th mục này là trung tâm lu tất cả các
câu lệnh hớng đến ngời dùng. Tuy nhiên ngày nay thì hầu hết các tập
tin nhị phân của Linux đều đợc lu trữ tại th mục này.
- Th mục /home : Lu trữ các th mục cá nhân của ngời dùng.
- Th mục /var : Đợc sử dụng để lu trữ các thông tin luôn luôn thay
đổi.
- Th mục /boot : Là th mục chứa nhân của hệ thống, system.map (tập
tin ánh xạ đến các driver để nạp các hệ thống tập tin khác),....Th mục
này cho phép khởi động và nạp lại bất kỳ trình điều khiển nào đợc yêu
cầu để đọc các hệ thống tập tin khác.
- Th mục /proc : Là th mục dành cho nhân hệ thống (kernel).
- Th mục /mise và th mục /opt : Bạn có thể lu trữ mọi thứ bạn thích
vào th mục này.
- Th mục /sbin : Lu các tập tin hệ thống thờng tự động chạy.
Ngoài ra còn hai th mục đặc biệt tồn tại trong Linux, đó là hai th mục
đợc biểu hiện bởi dấu . và ...
- Dấu . biểu hiện cho th mục hiện hành.
- Dấu .. biểu hiện cho th mục cha của th mục hiện hành.
2.4.1.2 Các lệnh chính liên quan đến th mục.
Xác định th mục hiện thời với lệnh pwd
Cú pháp lệnh:
pwd
Lệnh này cho bạn biết hiện bạn đang ở trong th mục nào.
Mặc định, Linux luôn đặt bạn vào th mục các nhân của bạn khi đăng nhập.
Xem thông tin về th mục với lệnh ls
Cú pháp lệnh :
20
2.4.2 Tập tin và các lệnh về tập tin.
2.4.2.1 Các kiểu tập tin trong Linux.
Có rất nhiều tập tin khác nhau trong Linux, nhng bao giờ cũng tồn tại một số
kiểu tập tin cần thiết cho hệ đIều hành và ngời dùng. Dới đây là một số các
kiểu tập tin cơ bản.
- Tập tin ngời dùng(user data file): Là các tập tin tạo ra do hoạt động của
ngời dùng khi kích hoạt các chơng trình ứng dụng tơng ứng. Ví dụ nh
các tập tin thuần văn bản, các tập tin cơ sở dữ liệu hay các tập tin bảng
tính.
- Tập tin hệ thống(system data file): Là các tập tin lu trữ thông tin của hệ
thống nh: cấu hình cho khởi động, tài khoản của ngời dùng, thông tin
thiết bị...thờng đợc cất trong các tập dạng văn bản để ngời dùng có thể
can thiệp, sửa đổi theo ý mình.
- Tập tin thực hiện(executable file): Là các tập tin chứa mã lệnh hay chỉ thị
cho máy tính thực hiện. Tập tin thực hiện lu trữ dới dạng mã máy. Tập
tin thực hiên đợc bắt đầu bởi dấu(*) và thờng có màu xanh lục.
- Tập tin bao hàm(directory: Là tập tin bao hàm trong nó các tập tin khác .
Trong mc, tập tin bao hàm thờng có màu trắng và bắt đầu bằng dấu ngã
(~) hoặc dấu chia (/). Ví dụ: /, /home, /bin, /usr, /usr/man, /dev...
- Tập tin thiết bị (device file): Là tập tin mô tả thiết bị dùng nh là định
danh để chỉ ra thiết bị cần thao tác.Theo quy ớc, tập tin thiết bị đợc lu
trữ trong th mục /dev. Các tập tin thiết bị hay gặp trong mục này là
tty(teletype-thiết bị truyền thông), ttyS(teletype serial- thiết bị truyền thông
nối tiếp)... Trong mc, tập tin thiết bị có màu tím và bắt đầu bằng dấu
cộng(+).
Đồ án tốt nghiệp
22
+ Tạo tập tin bằng lệnh cat.
cat > <file>
Mặc định, lệnh này cho phép bạn lấy thông tin đầu vào từ bàn phím
rồi xuất ra màn hình. Bạn có thể tuỳ ý gõ nội dung của tập tin ngay tại dấu nhắc
lệnh và gõ CTRL + d để kết thúc việc soạn thảo.
Sao chép tập tin với lệnh cp.
Cú pháp :
cp[tuỳ chọn lệnh]...<tập tin nguồn>...<tập tin đích hoặc th mục
đích>
Tác dụng lệnh và các tuỳ chọn lệnh giống với sao chép th mục ở mục
trên.
Đổi tên tập tin với lệnh mv.
Cú pháp lệnh :
mv <tên cũ> <tên mới>
Lệnh này cho phép bạn đổi tên tập từ tin cũ thành tên mới.
Xoá tập tin với lệnh rm.
Cú pháp lệnh:
rm[tuỳ chọn lệnh]...<tập tin>...
Bạn có thể sử dụng lệnh này để xoá bỏ một tập tin hoặc nhiều tập tin.
Đếm từ và dòng trong tập tin với lệnh wc.
Cú pháp lệnh:
wc [tùy chon lệnh]...[tên tập tin]
Đa ra số dòng, số từ, số ký tự có trong mỗi tập tin và một dòng tính
tổng. Nếu không có tuỳ chọn nào thì mặc định đa ra cả số dòng, số từ và số ký
tự. Không có tên tập tin thì mặc định sẽ đọc và đếm trên thiết bị vào chuẩn.
Đồ án tốt nghiệp
23
không có tên file, hoặc tên file là dấu - mặc định sẽ đọc từ thiết bị chuẩn.
Xem qua tập tin với lệnh tail.
Cú pháp lệnh:
tail [tuỳ chọn lệnh]...[tên file]...
Lệnh này sẽ đa ra 10 dòng cuối của nội dung file. Nếu có nhiều tập tin
thì lần lợt tên các tập tin và 10 dòng cuối sẽ đợc hiển thị. Nếu không có tên
file, hoặc tên file là dấu - mặc định sẽ đọc từ thiết bị chuẩn.
Tìm theo nội dung tập tin bằng lệnh grep.
Cú pháp lệnh:
grep[tuỳ chọn lệnh] <mẫu lọc> <tên file>
Lệnh grep sẽ hiển thị tất cả các dòng có chứa mẫu lọc trong tập tin đợc
đa ra (hoặc từ thiết bị vào chuẩn nếu không có tên tập tin hoặc tên tập tin có
dạng là dấu -").
Tìm theo các đặc tính của tập tin bằng lệnh find.
Cú pháp lệnh:
find [đờng dẫn] [biểu thức]
Lệnh find thực hiện việc tìm kiếm tập tin trên cây th mục theo biểu thức
đợc đa ra. Mặc định đờng dẫn là th mục hiện thời, biểu thức là - print.
2.4.3 Lệnh về Destop.
Lệnh tính biểu thức số học với lệnh bc.
Cú pháp lệnh:
bc [-lwsqv] [các tuỳ chọn dài] [file...]