Kiến Thức Cơ Bản Slackware Linux

4.2 Cấu hình mạng

4.2.1 Thiết bị mạng

Giống như phần lớn các đồ vật hấp dẫn khác mà bạn muốn làm việc với máy tính,kết nối nó với mạng cần phải có một thiết bị chuyên dụng.Có thể bạn cần phải bổ sung NIC(Network Interface Card - Interface thiết bị mạng) để kết nối vào LAN và có thể cả modem để kết nối vào internet,và cũng có thể là cả hai hoặc nhiều hơn...rất nhiều nữa.

Khi thiết lập cấu hình bạn cần xác định thiết bị phần cứng nào,PCMCIA(cho các máy laptop)và không thuộc lớp PCMCIA.Thực chất của việc phân chia là do hiện tại driver cho các thiết bị PCMCIA không có sẵn trong các phiên bản kernel mà cần phải có packages bổ sung chứa đựng các driver cần thiết(giống như modules) và một vài chương trình cho thiết lập cấu hình của các thiết bị PCMCIA.Còn lại là được cài sẵn trong nhân.

netmods

Drivers của các thiết bị mạng được chứa trong nhân và thuộc packages netmods(slackware/n3/netmods.tgz).Nếu bạn không cài đặt packages này thì hãy cài nó bây giờ đi(xem thêm phần quản lý packages để thêm thông tin về cài đặt packages).

Modules của nhân  cần phải được bật lên trong qúa trình khởi động máy tính,chúng được bật lênh từ các tập tin rc.modules thuộc catalog /etc/rc.d.Trong tập tin rc.modules có phần  ''Network device support''.Nếu như bạn mở tập tin ra bạn sẽ nhận thấy rằng đầu tiên nó sẽ kiểm tra tồn tại hay không tập tin rc.device ở catalog /etc/rc.d;rc.device được tạo thành trong trường hợp nếu như setup biết cách xác định thiết bị mạng của bạn khi cài đặt.Nếu như thế bạn sẽ không cần đọc thêm nữa còn nếu không thi hãy tiếp tục nhé.

Phía dưới block "if" là danh sách các thiết bị và dòng modprobe,Mỗi một dòng là một chú thích.Bạn hãy tìm thiết bị của bạn và gỡ bỏ những chú giải ấy theo các dòng modprobe,đừng quên lưu lại sự thay đổi trên tập tin.Nếu bạn thực hiện như root cho rc.modules thì drivers cho thiết bị của bạn sẽ được bật lên(cũng giống như các modules khác).chú ý một vài modules (như là nc2000) yêu cầu có những tham biến đi cùng,cho lên hãy thận trọng để làm đúng.

Thiết bị mạng PCMCIA

Thiết bị mạng PCMCIA được thiết kế đơn giản hơn so với những cái còn lại.Chú ý bạn phải cài đặt packages pcmcia(slackware/a11/pcmcia.tgz)(xem thêm phần quản lý packages để thêm thông tin về cài đặt packages).Khi cài đặt  thì packages pcmcia sẽ tạo ra tập tin rc.pcmcia trong catalog /etc/rc.d và trong thư mục /etc/pcmcia và tất nhiên sẽ cài vào catalog /etc/modules/<kernel serial>/pcmcia.Thật là tuyệt vời nó sẽ tự động xác định thiết bị và tự bung ra drivers cho những thiết bị pcmcia cho phép.Nếu như bạn lắp thiết bị mạng vào thì sẽ nghe thếy tín hiệu thông báo khi modules được bật lên.Khi bạn tháo thiết bị ra thì modules cũng tự động ngắt đi.

Thật đáng tiếc nếu bạn nâng cấp nhân thì sớm muộn bạn cũng phải tiến hành biên dịch lại pcmcia modules để nâng cấp.Thông thường mã gốc đi kèm cùng với phiên bản nhân,hãy tìm ở /source/a/pcmcia.Bạn có thể đọc thêm tài liệu ở đó để có thêm thông tin.

4.2.2 Các chương trình làm việc với mạng

ifconfig

Vậy là nhân hệ thống đã làm việc với thiết bị phần cứng.Bây giờ bạn học các chương trình để chỉ định nhân sẽ truyền đạt thông tin như thê nào và ngược lại.

 Chúng ta cần xây dựng cấu hình interface cho thiết bị mạng.Vậy hãy sử dụng ifconfig(8).
ifconfig tốt nhất để thực hành trên các ví dụ.Nêu bạn muốn có thể nhìn vào tập tin rc.net1 để xem chương trình được bắt nguồn từ đâu.Dạng cấu trúc như sau:

# ifconfig eth0 192.168.1.10 broadcast 192.168.1.255 \
netmask 255.255.255.0

Dòng trên có nghĩa là eth0(thiết bị mạng đầu tiên;đối với token là tr0;ppp là ppp0..) với IP 192.168.1.10,IP broadcast là 192.168.1.255 và IP netmask là 255.255.255.0(có nghĩa là ba phần đầu của IP -address là địa chỉ mạng,còn .10 là host của bạn).Bạn có thể thoải mái sử dụng IP broadcast từ ba phần đầu tiên block trên IP-address và kết thúc bằng 255.Còn netmask thì thông thường có thể sử dụng 255.255.255.0.Nếu như bạn làm được điều đó một cách thành thạo thì có thể bạn không cần phải đọc thêm phần này nữa.

ifconfig có thể sử dụng để kiểm tra cấu hình hiện tại.Thực hiện nó(bỏ qua tất cả các tham biến)để có được danh sách các thiết bị mạng trên máy tính của bạn.

#ifconfig(hoặc ifconfig -a)

eth0      Link encap:Ethernet  HWaddr 00:80:48:1F:46:AC 
          inet addr:192.168.10.50  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:885 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:58286 (56.9 Kb)  TX bytes:720 (720.0 b)
          Interrupt:11 Base address:0x4000

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:318 errors:0 dropped:0 overruns:0 frame:0
          TX packets:318 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:118206 (115.4 Kb)  TX bytes:118206 (115.4 Kb)

Khi bạn gọi lệnh /sbin/ifconfig bỏ qua tham biến "-a" mà không nhìn thấy eth0 interface thì có nghĩa là thiết bị mạng của bạn không có giá trị IP-address hoặc route.

route

Để biết được thông tin được gửi đi đâu nhân đã sử dụng routing table.Tôi không có ý định nói sâu về nó.Tuy nhiên bạn có thể xem bảng danh sách đó với sự giúp đỡ /sbin/route(8).

#route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
localnet        *               255.255.255.0   U     0      0        0 eth0
loopback        *               255.0.0.0       U     0      0        0 lo
default         192.168.10.1    0.0.0.0         UG    1      0        0 eth0

route -n sẽ thông báo cho bạn một bảng IP-address thay vì tên;nó tiện lợi khi mà nảy sinh những khó khăn với tên server của bạn hoặc chỉ đơn giản bạn không thích biểu diễn tên server của mình dưới dạng chữ.Thật may mắn khi bạn chỉ phải xây dựng một hệ thống mạng đơn giản(như bao người khác)thì 2.2.x kernel sẽ tự động tạo bảng routing-table cho bạn.

netconfig

netconfig là một chương trình được cài đặt sẵn trên Slackware giống như bao chương trình khác.Bạn có thể sử dụng nó một mình(không cần sự giúp đỡ).Netconfig không khó khi sử dụng khi hướng dẫn bạn cài đặt cho một kết nối mạng thông thường.Sau khi chạy netconfig thì sẽ có cửa sổ như sau hiện ra:

Sau đó bạn cần phải điền tên host và domain máy tính của bạn.Bạn có thể điền cái gì đó nếu như bạn không định xây dựng server mà sẽ sử dụng cho nhiều người khác nữa.Sau đó bạn sẽ phải nhập vào IP tĩnh,DHCP,hoặc đơn giản loopback.

Nếu bạn không kết nối internet thì hãy chọn loopback.Nếu bạn định kết nối với trường đại học,một văn phòng lớn thì có lẽ lên chọn DHCP.Ngược lại hãy chon IP tĩnh.Nếu như không chọn IP-address thì chương trình sẽ kết thúc.Nếu chọn IP-address tĩnh thì cần phải nhập vào:IP address,IP-broadcast,IP-netmask,IP-server.Netconfig sẽ giúp bạn hiểu rõ các giá trị này.

pppsetup

Trong Slackware có pppsetup - là một ứng dụng để thiết lập cấu hình dialup kết nối với ISP (Internet Server Provider).Nó nằm ở package ppp.tgz trong khu vực chương trình N.pppsetup cũng sử dụng interface như vậy như chương trình cài đặt.pppsetup đưa ra cho bạn nhiều câu hỏi và cài đặt tập tin cấu hình ở /etc/ppp.Từ root bạn có thể chạy pppsetup.Bạn sẽ nhìn thấy như sau.

Phone number
 
Ở đây bạn cần phải chỉ ra số ISP ở dạng tiền tố(prefix) của tổ hợp số.Nếu như số của bạn là 555-1013 thì bạn cần ghi là atdt5551013(chú ý nếu bạn sử dụng bộ âm thanh).Còn nếu như bạn sử dụng điện thoại có call waiting(đợi gọi) mà bạn muốn cắt bỏ chế độ ấy thì có thể như sau:atdt*70,5551013.Dấu "," là nhất định có.Nó cho phép dừng lại 1,5s sau *70 để ngắt bỏ chế độ call waiting.Không có dấu "," sẽ không làm việc.

Modem device

Ở đây bạn cần phải chọn modem sẽ kết nối vào đâu.Nếu bạn biết được cổng COM nào kết nối trên Windows thì bạn có thể chọn tương tự.Thông thường là ttyS0.

Modem baud rate

hãy chọn baud rate gần với modem của bạn nhất.Nếu bạn không biết baud rate thì có thể đọc thêm tài liệu kèm theo modem của bạn.

Callback

Rất ít ISP sử dụng callback vì thế bạn cứ yên tâm chọn "NO".Callback có nghĩa là đầu tiên bạn gọi cho ISP,sau đó họ gọi lại cho bạn chỉ khi bạn đã vào mạng.Nếu bạn thấy cần có thể trả lời "Yes".Khi đó bạn sẽ cần nhập số của bạn vào(kể cả login và password).Và câu cuối là cấu hình bạn sử dụng là gì:CHAP hay là PAP.Nếu là Yes thì bạn cần phải cấu hình nó.Xem phần dưới để biết cách làm,còn nếu 'No' thì hãy xem phần 'Chat script'.

Modem init string

Nếu như bạn có một modem lạ thì bạn đơn giản chỉ cần nhấn Enter để mặc định cho modem là "AT&FH0".Ngược lại hãy xem tài liệu đi kèm modem để rõ thêm.

Domain name

Bạn cần điền tên domain của bạn vào.Có thể như là "primer.net","slackware.com" hoặc đại loại như thế.

DNS IP address

ISP của bạn cần thông báo cho bạn IP-address server của chúng.Nếu bạn có hãy điền vào,ngược lại hãy xem xét lại ISP để rõ hơn.

Authentication method

Bạn cần phải biết ISP sử dụng CHAP hay là PAP hoặc là không một cái nào cả.Để đơn giản hãy gọi đến ISP của bạn và hỏi họ.Và có lẽ sau khi nhập vào bộ số để kết nối bạn sẽ nhìn thấy cửa sổ login và password.Nhưng có lẽ bạn nên sử dụng "SCRIPT".Ngược lại hãy liên hệ với ISP của bạn để biết cách sử dụng.
PAP hoặc CHAP

Nếu chọn PAP hay CHAP thì bạn sẽ phải nhập vào username và password.ISP cần được gán với username,nếu như có gì đó không đúng thì đã có cái gì đó không đúng.Bạn cần phải liên hệ lại để nhận được username của mình.Sau đó sẽ nhập vào password.
Chat Script

Nếu chọn "SCRIPT" thì có lẽ sẽ cần rất lâu để giải thích thế nào là script.Hãy đọc nó một cách cẩn thận,bởi vì nó được ghi rất là rõ ràng trong đó.
Done

Ở cuối cùng sẽ hiển thị tất cả cấu hình của ppp.Bạn không thể miêu tả nội dung của nó,nhưng có thể kiểm tra xem mọi thứ đã đúng chưa.Nhấn enter để lưu lại cấu hình và thoát ra khỏi hệ thống.Để kích hoạt kết nối bạn cần chạy root và gõ lệnh ppp-go,khi nào chương trình thông báo cho bạn biết IP-local và IP-remote thì có nghĩa là bạn đã kết nối vào internet.Khi muốn ngắt liên kết hãy thực hiện ppp-off như root.

4.2.3 /etc

/etc/inetd.conf

Đối với mỗi HĐH thì việc định hướng vào sử dụng mạng cũng như thực hiện các dịch vụ mạng
khác nhau được coi là một công việc rất bình thường.Thông thường đối với mỗi dịch vụ cần có một chương trình chuyên giám sát các kết nối.Có thể gâp áp lực lên hệ thống nếu như nó phải thực hiện công việc cho qúa nhiều dịch vụ.Để giảm trọng tải cho hệ thống người ta đã tạo ra inetd hay là internetsuper.inetd dùng để nghe các yêu cầu theo nhiều socket,khi có yêu cầu thì inetd sẽ nhường lại quyền điều khiển cho server tương ứng để làm việc với yêu cầu.tập tin cấu hình inted là /etc/inetd.conf.Trong nó có chứa các server cần được thực thi đối với các kết nối khác nhau.Bạn có thể xem trong man-pages để có thêm thông tin.

ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -i -a

Dòng trên có liên quan tới ftp server.Chú ý:đầu tiên là tên protocol "-ftp" và cuối cùng là chương trình cần chạy để trả lời cho yêu cầu.Trong ví dụ trên thì chương trình cần chạy để trả lời cho yêu cầu là /usr/sbin/tcpd.Chương trình "wraper" mà thực hiện các đòi hỏi an toàn cho server cũng được thực thi.wu.ftp khách quan là ftp của chúng ta,nhưng tcpd khởi động nó cho bạn.Bạn có thể xem phần tiếp sau để có thêm thông tin.

Giống như các tập tin hệ thống khác,chú thích trong inted,conf bắt đầu bởi dấu "#".Bạn có thể kích hoạt hoặc ngắt các dịch vụ cho inted,ngắt chú thích(biến dòng chú giải thành dòng lệnh)hoặc bật chú thích(biến dòng lệnh thành chú thích) ở trong tập tin này và cuối cùng là khởi động inted.

/etc/resolv.conf

Tập tin này thông báo trên toàn hệ thống rằng thông tin DNS từ đâu.Tất cả tên server được sử dụng sẽ liệt kê ở dưới,kể cả tên host của bạn.Dưới là một ví dụ của tập tin này(từ máy latop - nịnja.tdn):

domain tdn
nameserver 192.168.1.1
search tdn. slackware.com

Dòng đầu có nghĩa là tên domain tdn cho nịnja.Thứ hai là DNS server trên mạng nhà của bạn.Bạn có thể ghi chúng bao nhiêu tuỳ thích.Chúng sẽ được tinh chế theo thứ tự khi mà một chương trình nào đó cần tìm IP-address tương ứng với tên của domain đã nêu.

Dòng cuối cùng có lẽ là hay hơn,nó ghi ra tất cả tên của domain được gán cho hệ thống.Chẳng hạn như tôi có máy zuul.tdn và hejaz.slackware.com.Khi đó tôi có thể thực hiện ping zuul và ping hejaz.Thực chất khi ping thì lệnh ping đã bổ sung thêm".tdn" vào zuul và tìm host tương ứng.Còn đối với "hejaz" thì đầu tiên nó thử với "hejaz.tdn".Không có host nào tương ứng,cho nên nó tiến hành thử với "hejaz.slackware.com" và ping.Chú ý tất cả các domain được chỉ ra trong search cần phải được kết thúc bằng "." nhưng trừ cái cuối cùng và tất nhiên nếu chỉ có một cái duy nhât thì nó cũng chình là cuối cùng("." không cần chỉ).

/etc/host

Tập tin host làm đơn giản hoá quá trình tìm kiếm host trong domain.Nó chứa danh sách các host cùng với IP-address tương ứng.Nó tiện lợi cho các server không quá lớn,trong lúc hệ thống khởi động lại khi ấy tên các server không hoạt động.Tệp của tôi có dạng như sau:

127.0.0.1 localhost
192.168.1.32 ninja.tdn ninja

Dòng đầu tiên là cần phải có như mặc định.Dòng thứ hai có thể không.Bạn có thể chỉ ra nhiều tên cho một địa chỉ,các tên phân biệt bằng dấu cách.Như vậy là của tôi "192.168.1.32" tương ứng với "ninja.tdn" và ngược lại,còn "ninja"cũng tương tự.

4.2.4 rc.inet1
/etc/rc.d/rc.inet1 - đây là tập tin sử dụng cho thiết bị mạng hồng ngoại.Nó định hướng và cài đặt địa chỉ cùng với đường dẫn. Trong Slackware rc.inet1 được đi kèm cùng với nhiều chú thích.

4.2.5 rc.inet2
Tập tin /etc/rc.d/rc.inet2 liên quan tới một phần khác của mạng:cài đặt dịch vụ và domain.Chúng ta hãy xem ví dụ sau:

#Start the NAMED/BIND name server:
if [ -f $NET/named ]; then
   echo -n ''named''
   $NET/named -u daemon -g daemon
fi
Quan trọng là dòng thứ tư mà khởi động named(8).Tất cả còn lại chỉ là phụ thêm."If" kiểm tra tồn tại hay không named ở đúng vị trí của nó hay không?còn echo đưa ra màn hình thông báo rằng named đã chạy khi khởi động hệ thống.Hầu như các dịch vụ được chạy từ rc.inet2,chúng được khởi động theo các block.Vẫn thế rc.inet2 có rất nhiều chú  giải bạn có thể tìm trong nó nhiều điều thú vị.

4.2.6 NFS(Hệ thống tập tin mạng)

NFS sử dụng chủ yếu để phân chia tài nguyên trên mạng.NFS có cấu trúc sao cho một máy khác có thể mount(kết nối) với các phần tài nguyên trên máy khác như trong mạng nội bộ.
Để có thể xây dựng cấu hình NFS cần phải làm nhiều công việc.Đầu tiên là các dịch vụ cần phải được chạy trên máy server:potmap(8),nfsd(8)và mountd(8).Thứ hai là server cần phải tương ứng xuất (export) cây hệ thống tập tin tới máy khách(client),điều này thực hiện thông qua tập tin exports(5) từ /etc.

Phần đầu được cài đặt bởi tcpip1.tgztrong khu vực chương trình N và bổ sung quyền thực hiện cho rc.inet2.,còn /etc/exports thì hơi phức tạp hơn.

Cho rằng bạn có catalog trên "ninja.tdn"  mà chúng ta muốn kết nối tới catalog trên "battlecat.tdn" ,thì trên battlecat cần dòng như dưới đây trong /etc/exports

/var/media/images   ninja.tdn(ro)

Bây giờ trên ninja có thể thực hiện lệnh:

#mount -t nfs battlecat.tdn:/var/media/images /mnt

Nó giúp kết nối catalog images sang catalog /mnt.Tuy nhiên chúng ta đã cấm quyền hạn ghi lên trên catalog này - do có tham biến "ro" trên tập tin /etc/exports của máy battlecat.Tất cả các tham biến này được chỉ ra sau tên của client và nằm trong dấu "()" được tách nhau bởi dấu ";".

"rw" -"đọc và ghi"(Bạn có thể xem man-pages để có thêm thông tin).Vẫn còn có tham biến nữa
đó là "squash" tôi nghĩ sẽ thú vị hơn khi bạn tự thực hành với nó.Nếu bạn định làm việc với NFS thì exports(8) sẽ là một người bạn tốt.

4.2.7 tcp_wrappers

tcp_wrappers - Đấy là một hệ thống kiểm soát quyền truy cập tới các dịch vụ với những host đặc biệt.Nó làm việc theo nguyên tắc sau:

inetd khởi động nhiều dịch vụ chủ yếu là wrap bởi chương trình tcpd.Chính xác là tcpd khởi động các dịch vụ này nhưng inetd không biết được điều này(chính xác không để ý đến).Tcpd tiến hành thử kết nối sau đó kiểm tra các tập tin /etc/hosts.allow và /etc/hosts.deny để kiểm tra cho phép hay không quyền truy cập các dịch vụ này.

Xác định đúng nguyên tác làm việc cho những tập tin này rất là khó. Giải sử pyramid.tdn muốn tấn công vào mojo.tdn.Để bảo vệ thì trên mojo.tdn có thể bổ sung vào /etc/hosts.deny dòng sau:

ALL: pyramid.tdn

Có nghĩa là cấm host pyramid.tdn truy cập tới tất cả  các dịch vụ lên mojo.tdn mà được khởi động bởi tcpd.Nếu như bạn muốn ngăn chặn với tất cả các domain thì có thể thêm dong sau:

ALL: pyramid.tdn, .annoying.domain

Nếu như bạn muốn bạn của mình có thể truy cập lên hệ thống(tuy nhiên không chỉ 1 người mà cho nhiều người) thì rất đơn giản hãy làm việc với /etc/hosts.allow.Dòng dưới đây sẽ cho phép các bạn của bạn quyền truy cập lên hệ thống:

ALL: hobbes.annoying.domain

Để có thêm thông tin hãy xem thêm man-pages của các chương trình trên,tcpd(8),hosts_access(5) và hosts_options(5).
Mục Lục

Biên dịch: Vũ Dũng(vudung@mail.ru)
website:http://khigiacmoquayve.narod.ru
1-9-2005 Voronezh Russian
Hosted by uCoz