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).
Biên dịch: Vũ
Dũng(vudung@mail.ru)
website:http://khigiacmoquayve.narod.ru
1-9-2005 Voronezh Russian