Xử lý các loại virus làm ẩn folder

Xử lý các loại virus làm ẩn folder

.:: Xử lý các loại virus làm ẩn folder ::.

1. Khắc phục lỗi bị ẩn (hidden) file và folder dữ liệu (Không sáng dấu check trong hidden của các folder va file)

Triệu chứng: Thấy biến mất dữ liệu. Mở Folder Options, chọn show all files lên thì nhìn thấy dữ liệu tự động bị ẩn (bị đặt thuộc tính Hidden hoặc System). Bỏ check Hidden đi thì không bỏ được. Thuộc tính System thì Windows đã bỏ không cho sử dụng, mặc dù thuộc tính này của file vẫn tồn tại.

Khắc phục: Mở cửa sổ Explorer ra, chuyển đến chỗ có chứa các file ẩn, bấm chuột phải vào đâu đó trên vùng trống của cửa sổ Explorer. Tại menu bật ra, chọn New/Shortcut.

Một cửa sổ Creat Shortcut sẽ xuất hiện. Tại ô Type the location of the item, bạn copy và dán dòng sau đây vào đó:

attrib.exe -s -r -h

Bấm Next. Tại ô Type a name for this shortcut, bạn đặt tên cho Shortcut, ví dụ như showfile chẳng hạn. Bạn sẽ có một file shortcut có tên là Showfile.lnk.

Sau đó, bất cứ file hay folder nào bị đặt thuộc tính "không bình thường" (bị Read Only, bị Hidden, bị System) bạn cứ kéo file hoặc folder đó thả vào biểu tượng của Shortcut Showfile.

2. Mất Folder Option

Triệu chứng: Mở Explorer, tại Menu Tools, thấy biến mất menu Folder Option.
Khắc phục: Có 2 cách sau đây:

Cách 1
Bấm Start > Run gõ vào Regedit:
Nếu Registry bị khoá thì thực hiện theo phần 1.
Nếu mục Run bị khoá thì thực hiện theo phần 6 ở bên dưới.
Tìm đến khoá sau:
User Key: HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer
System Key: HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ Explorer
Bên cửa sổ bên phải bạn sẽ thấy một giá trị REG-DWORD có tên là "NoFolderOptions"
Bạn click double để chỉnh sửa giá trị của nó như sau:
Value: 0 - hiện menu , 1 - ẩn menu.

Cách 2
Bây giờ vào Start > Run.
Nếu mục Run bị khoá thì thực hiện theo phần 6 của bài viết này.
Gõ vào GPEdit.msc rồi chọn OK.
Sau đó vào tiếp User Configuration/Administrative Template/Windows Component/Windows Explorer
Nhấn đúp chuột vào mục REMOVE THE FOLDER OPTIONS... và chọn Disable. Xong đóng lại, ra Run gõ GPUPDATE /FORCE rồi bấm OK.

3. Không hiển thị được file ẩn

Triệu chứng: Bạn thấy biến mất dữ liệu, không nhìn thấy nó mặc dù biết chắc chắn là nó vẫn ở đó. Mở Explorer, bấm Menu Tools, chọn Folder Options (nếu không nhìn thấy Folder Options thì thực hiện mục 2 của bài viết này). Vào tab View/Advanced Settings, mục "Hidden files and folders". Cho dù bạn có bấm xuống "Show Hidden Files and Folders" rồi bấm Apply hay OK thì file ẩn vẫn cứ ẩn. Mở lại Setting đó thì nó lại như cũ.

Khắc phục: Mở Notepad ra, copy và dán đoạn mã này vào và save nó lại thành file ShowHiddenFile.reg

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\Microsoft...
CurrentVersion\explorer\Advanced\Folde... WALL]
"RegPath"="Software\\Microsoft\\Window... rsion\\
Explorer\\Advanced"
"Text"="@shell32.dll,-30500"
"Type"="radio"
"CheckedValue"=dword:00000001
"ValueName"="Hidden"
"DefaultValue"=dword:00000000
"HKeyRoot"=dword:80000001
"HelpID"="update.hlp#51105"

Sau khi save, bạn nhấn đúp chuột vào nó để import vào registry. Nếu cần restart lại máy. Rồi vào Folder Options để hiệu chỉnh Show Hidden Files and Folder.

4. Bị khoá Task Manager

Triệu chứng: Bấm Ctrl-Alt-Del, chỉ thấy nhận được thông báo "Task Manager has been disabled by your administrator".

Khắc phục: Chọn một trong hai cách sau:

Cách 1. Thay đổi Registry
Bấm Start > Run gõ vào Regedit:
Tìm đến khoá sau:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies \System
Tại cửa sổ bên phải, bạn sẽ thấy một giá trị REG-DWORD có tên "DisableTaskMgr"
Bạn click double để chỉnh sửa giá trị của nó như sau:
Value: 1= Cấm Task manager.
Value: 0= Mở khoá TaskManager.
Hoặc đơn giản là xoá đi, bạn sẽ mở được Task Manager.

Cách 2. Dùng Administrative Tool
Bây giờ hãy vào START --> RUN
Nếu mục Run bị khoá thì thực hiện theo mục 6 của bài viết này.
Gõ vào GPEdit.msc rồi chọn OK
Ở cửa sổ Group Policy settings, chọn User Configuration\Administrative Templates\System
Chọn Options Ctrl+Alt+Delete
Chọn Remove Task Manager
Nhấn đúp chuột vào vào mục Remove Task Manager và chọn Disable.
Xong đóng lại, ra Run gõ GPUPDATE /FORCE rồi bấm OK.

5. Mất mục Run

Triệu chứng: Đáng nhẽ ở menu Start, phải có mục Run để chúng ta chạy các phần mềm không nằm trong Start Menu. Nhưng giờ nó đã biến mất.
Khắc phục: Bấm Start/All Programs/Accessories. Mở Command Prompt.

Cửa sổ Command Prompt sẽ xuất hiện. Giờ thì gõ thẳng "Regedit.exe" vào dòng lệnh của Command Prompt. Bạn sẽ mở được Registry Editor.
Bạn tìm đến khoá sau:
HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Explorer\Advanced
Ở cửa sổ bên phải, Bạn sẽ thấy một giá trị REG-DWORD với tên "StartMenuRun".
Sửa giá trị thành 0 nếu muốn tắt, 1 nếu muốn khoá
"Could not start the Print Spooler service on Local Computer. Error 2: The system cannot find the file specified."

"Could not start the Print Spooler service on Local Computer. Error 2: The system cannot find the file specified."

..............................................................................................................
"Could not start the Print Spooler service on Local computer.
Error 2: The system cannot find the file specified."
..............................................................................................................
+ From Support Microsoft
To resolve this issue, follow these steps:
  1. Click Start, click Run, type regedit in the Open box, and then click OK.
  2. In Registry Editor, locate and then click the following registry subkey:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
  3. Right-click the DependOnService value, and then click Modify.
  4. In the Value data box, delete the event that is mentioned in the "Symptoms" section.

    Note Typically, RPCSS is the only service that is in the DependOnService value.
+ From website Computing.net
1. Run regedit.exe.
2. Navigate to
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler
3. Make sure that ImagePath is of the Reg_Expand_SZ type.
4. Replace its data with %SystemRoot%\system32\spoolsv.exe
5. Run services.exe.
6. Double-click the Spooler service.
7. Verify that the executable is now c:\windows\system32\spoolsv.exe
8. Start the service.

If could not find file spoolsv.exe, we will copy it from other computer
Xoá bỏ thông báo Genuine của Microsoft...

Xoá bỏ thông báo Genuine của Microsoft...

Xoá bỏ thông báo Genuine của Microsoft...

1. Đăng nhập vào Windows với quyền hạn Administrative.
2. Đổi tên mở rộng của các file sau đây thành .old:
Windows\system32\WgaLogon.dll, Windows\system32\WgaTray.exe
3. Khởi động lại máy.
* Gỡ bỏ WGA Notifications bằng tay:
1-3. Như trên

4. Bấm Start > Run, gõ cmd và bấm OK > trong cửa sổ DOS gõ
lệnh Regsvr32 %Windir%\system32\LegitCheckControl.dll /u rồi Enter.
5. Khởi động lại máy.
6. Bấm Start > Run, gõ cmd và bấm OK > trong cửa sổ DOS lần
lượt gõ các lệnh xóa file sau:
Del %Windir%\system32\wgalogon.old
Del %Windir%\system32\WgaTray.old
Del %Windir%\system32\LegitCheckControl.dll
7. Gõ lệnh regedit > trong cửa sổ Registry Editor tìm đến khóa:

-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\
CurrentVersion\Winlogon\Notify\, xóa mục WgaLogon
-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Uninstall\, xóa mục WgaNotify
Cách chèn nhạc vào powerpoint...

Cách chèn nhạc vào powerpoint...

Cách chèn nhạc:
Insert > Movies and Sounds > Sound from file…

Chọn file nhạc mà bạn muốn chèn.
Có 2 tùy chọn Automatic (tự động phát bài nhạc khi mở slide) và When clicked (khi click vào biểu tượng hình cái loa thì mới phát nhạc) –> tùy mục đích mà bạn chọn sao cho phù hợp!

Có những điều sau bạn cần phải lưu ý:
1. Nếu muốn nhạc phát suốt quá trình presentation thì bắt buộc khi chọn nhạc bạn phải chọn chế độ Automatic.

2. Nếu muốn nhạc chỉ phát ở một số slide nhất định nào đó, bạn hãy làm theo các bước sau:
Click chuột phải vào biểu tượng cái loa, chọn Custom Animation.
Nhìn phía tay phải, bạn sẽ thấy trong mục Custom Animation, click vào nút add effects --> Sound actions --> có chỗ cho bạn điều chỉnh thời gian phát nhạc.
Đến đây thì bạn có thể tự mò được rồi, bạn có thể chọn phát nhạc theo khoảng thời gian là bao nhiêu giây, hoặc bao nhiêu slide.

3. Nhạc chỉ phát 1 lần theo chiều dài thời gian của file. Ví dụ, bản nhạc chỉ có 5′ thôi thì nhạc cũng chỉ phát 5′, không tự động lặp lại. Nếu muốn điều chỉnh cho nhạc tự động lặp lại khi bản nhạc kết thúc, bạn làm như sau:
Click chuột phải lên biểu tượng cái loa, chọn Edit Sound Object.
Trong hộp thoại Sound Options, chọn Loop until stopped.
Tổng Quan về ARP - ARP là gì?

Tổng Quan về ARP - ARP là gì?

Tổng Quan về ARP - ARP là gì?

Mạng LAN nhỏ hoạt động dựa trên hai lớp một và hai trong mô hình OSI ( lớp physical và datalink). Nhưng các giao thức liên mạng ( internet-work ) lại dựa trên địa chỉ lớp ba (lớp network). Việc phân giải địa chỉ giữa lớp datalink và lớp network nhằm giúp cho việc truyền dữ liệu được liên tục qua mạng.
Có hai phương pháp phân giải địa chỉ là : map trực tiếpphân giải động. Việc map trực tiếp gặp nhiều khó khăn do địa chỉ MAC (lớp datalink) là địa chỉ 48 bit trong khi địa chỉ IP là 32 bit. Bên cạnh đó các nhà phát triển muốn tạo ra một cơ chế linh hoạt trong sử dụng. Chính vì vậy họ phát triển ARP ( Address Resolution Protocol ). Giao thức này được định nghĩa trong RFC 826

ARP là gì ?

- ARP là phương thức phân giải địa chỉ động giữa địa chỉ lớp network và địa chỉ lớp datalink. Quá trình thực hiện bằng cách: một thiết bị IP trong mạng gửi một gói tin broadcast đến toàn mạng yêu cầu thiết bị khác gửi trả lại địa chỉ phần cứng ( địa chỉ lớp datalink ) của mình.

- Ban đầu ARP chỉ được sử dụng trong mạng Ethernet để phân giải địa chỉ IP và địa chỉ MAC. Nhưng ngày nay ARP đã được ứng dụng rộng rãi và dùng trong các công nghệ khác dựa trên lớp hai.

2. Cơ chế hoạt động

· Quá trình thực hiện ARP được bắt đầu khi một thiết bị nguồn trong mọt mạng IP có nhu cầu gửi một gói tin IP. Trước hết thiết bị đó phải xác định xem địa chỉ IP đích của gói tin có phải nằm cùng trong mạng nội bộ của mình hay không. Nếu đúng vậy thì thiết bị sẽ gửi trực tiếp gói tin đến thiết bị đích. Nếu địa chỉ IP đích nằm trên mạng khác, thì thiết bị sẽ gửi gói tin đến một trong các router nằm cùng trên mạng nội bộ để router này làm nhiệm vụ forward gói tin. Cả hai trường hợp ta đều thấy được là thiết bị phải gói tin IP đến một thiết bị IP khác trên cùng mạng nội bộ. Ta biết rằng việc gửi gói tin trong cùng mạng thông qua Switch là dựa vào địa chỉ MAC hay địa chỉ phần cứng của thiết bị. Sau khi gói tin đựoc đóng gói thì mới bắt đầu được chuyển qua quá trình phân giải địa chỉ ARP và được chuyển đi

· ARP về cơ bản là một quá trình 2 chiều request/response giữa các thiết bị trong cùng mạng nội bộ. Thiết bị nguồn request bằng cách gửi một bản tin broadcast trên toàn mạng. Thiết bị đích response bằng một bản tin unicast đến thiết bị nguồn

Các loại bản tin ARP

Có hai dạng bản tin trong ARP : một được gửi từ nguồn đến đích, và một được gửi từ đích tới nguồn.

· Request : Khởi tạo quá trình, gói tin được gửi từ thiết bị nguồn tới thiết bị đích
· Reply : Là quá trình đáp trả gói tin ARP request, được gửi từ máy đích đến máy nguồn

Có 4 loại địa chỉ trong một bản tin ARP :

1. Sender Hardware Address : địa chỉ lớp hai của thiết bị gửi bản tin
2. Sender Protocol Address : Địa chỉ lớp ba ( hay địa chỉ logic ) của thiết bị gửi bản tin
3. Target Hardware Address : Địa chỉ lớp hai ( địa chỉ phần cứng ) của thiết bị đích của bản tin
4. Target Protocol Address : Địa chỉ lớp ba ( hay địa chỉ logic ) của thiết bị đích của bản tin

Các bước hoạt động của ARP :

1. Source Device Checks Cache : Trong bước này, thiết bị sẽ kiểm tra cache ( bộ đệm ) của mình. Nếu đã có địa chỉ IP đích tương ứng với MAC nào đó rồi thì lập tức chuyển lên bước 9
2. Source Device Generates ARP Request Message : Bắt đầu khởi tạo gói tin ARP Request với các trường địa chỉ như trên
3. Source Device Broadcasts ARP Request Message : Thiết bị nguồn quảng bá gói tin ARP Request trên toàn mạng
4. Local Devices Process ARP Request Message : Các thiết bị trong mạng đều nhận được gói tin ARP Request. Gói tin được xử lý bằng cách các thiết bị đều nhìn vào trường địa chỉ Target Protocol Address. Nếu trùng với địa chỉ của mình thì tiếp tục xử lý, nếu không thì hủy gói tin
5. Destination Device Generates ARP Reply Message : Thiết bị với IP trùng với IP trong trường Target Protocol Address sẽ bắt đầu quá trình khởi tạo gói tin ARP Reply bằng cách lấy các trường Sender Hardware Address và Sender Protocol Address trong gói tin ARP nhận được đưa vào làm Target trong gói tin gửi đi. Đồng thời thiết bị sẽ lấy địa chỉ datalink của mình để đưa vào trường Sender Hardware Address
6. Destination Device Updates ARP Cache : Thiết bị đích ( thiết bị khởi tạo gói tin ARP Reply ) đồng thời cập nhật bảng ánh xạ địa chỉ IP và MAC của thiết bị nguồn vào bảng ARP cache của mình để giảm bớt thời gian xử lý cho các lần sau
7. Destination Device Sends ARP Reply Message : Thiết bị đích bắt đầu gửi gói tin Reply đã được khởi tạo đến thiết bị nguồn. Gói tin reply là gói tin gửi unicast
8. Source Device Processes ARP Reply Message : Thiết bị nguồn nhận được gói tin reply và xử lý bằng cách lưu trường Sender Hardware Address trong gói reply như địa chỉ phần cứng của thiết bị đích
9. Source Device Updates ARP Cache : Thiết bị nguồn update vào ARP cache của mình giá trị tương ứng giữa địa chỉ network và địa chỉ datalink của thiết bị đích. Lần sau sẽ không còn cần tới request

3. ARP Caching

ARP là một giao thức phân giải địa chỉ động. Quá trình gửi gói tin Request và Reply sẽ tiêu tốn băng thông mạng. Chính vì vậy càng hạn chế tối đa việc gửi gói tin Request và Reply sẽ càng góp phần làm tăng khả năng họat động của mạng.Từ đó sinh ra nhu cầu của ARP Caching

Static and Dynamic ARP Cache Entries

ARP Cache có dạng giống như một bảng tương ứng giữa địa chỉ hardware và địa chỉ IP. Có hai cách đưa các thành phần tương ứng vào bảng ARP :
· Static ARP Cache Entries: Đây là cách mà các thành phần tương ứng trong bảng ARP được đưa vào lần lượt bởi người quản trị. Công việc được tiến hành một cách thủ công
· Dynamic ARP Cache Entries: Đây là quá trình mà các thành phần địa chỉ hardware/IP được đưa vào ARP cache một cách hoàn toàn tự động bằng phần mềm sau khi đã hoàn tất quá trình phân giải địa chỉ. Chúng được lưu trong cache trong một khoảng thời gian và sau đó sẽ được xóa đi

Dynamic Cache được sử dụng rộng rãi hơn vì tất cả các quá trình diễn ra tự động và không cần đến sự tương tác của người quản trị. Tuy nhiên static cache vẫn có phạm vi ứng dụng nhất định của nó. Đó là trường hợp mà các workstation nên có static ARP entry đến router và file server nằm trong mạng. Điều này sẽ hạn chế việc gửi các gói tin để thực hiện quá trình phân giải địa chỉ.

Tuy nhiên ngoài hạn chế của việc phải nhập bằng tay, static cache còn thêm hạn chế nữa là khi địa chỉ IP của các thiết bị trong mạng thay đổi thì sẽ dẫn đến việc phải thay đổi ARP cache

Quá trình xóa thông tin trong cache

Ta xét trường hợp bảng cache của một thiết bị A, trong đó có chứa thông tin về thiết bị B trong mạng. Nếu các thông tin trong cache được lưu mãi mãi, sẽ có một số vấn đề như sau xảy ra :
· Địa chỉ phần cứng thiết vị đựoc thay đổi : Đây là trường hợp khi thiết bị B được thay đổi card mạng hay thiết bị giao tiếp, làm thay đổi địa chỉ MAC của thiết bị. Điều này làm cho các thông tin trong cache của A không còn đúng nữa
· Địa chỉ IP của thiết bị được thay đổi : Người quản trị hay nhà cung cấp thay đổi địa chỉ IP của B, cũng làm cho thông tin trong cache của A bị sai lệch
· Thiết bị được rút ra khỏi mạng : Khi B được rút ra khỏi mạng nhưng A không được biết, và gây lãng phí về tài nguyên của A để lưu thông tin không cần thiết và tốn thời gian để tìm kiếm.

Để tránh được những vấn đề này, các thông tin trong dynamic cache sẽ được tự động xóa sau một khoảng thời gian nhất định. Quá trình này được thực hiện một cách hoàn toàn tự động khi sử dụng ARP với khoảng thời gian thường là 10 hoặc 20 phút. Sau một khoảng thời gian nhất định được lưu trong cache , thông tin sẽ được xóa đi. Lần sử dụng sau, thông tin sẽ được update trở lại

4. Proxy ARP

ARP được thiết kế cho các thiết bị nằm trong nội mạng, có tính chất local. Tuy nhiên nếu hai thiết bị A và B bị chia cắt bởi 1 router thì chúng sẽ được coi như là không local với nhau nữa. Khi A muốn gửi thông tin đến B, A sẽ không gửi trực tiếp được đến B theo địa chỉ lớp hai, mà phải gửi qua router và được coi là cách nhau 2 hop ở lớp ba.

Vì sao cần phải có Proxy ARP ?

Khác với các trường hợp thông thường, nhiều trường hợp hai thiết bị A và B nằm trên 2 segment vật lý khác nhau nhưng được kết nối qua một router và cùng nằm trong một mạng IP hay một IP subnet. Lúc này A và B sẽ coi nhau có quan hệ local.

Giả sử ta có tình huống A muốn gửi thông tin cho B. A nghĩ B trong cùng nội mạng và tìm trong bảng ARP cache. A không lưu địa chỉ MAC của B và bắt đầu tiến hành quá trình phân giải địa chỉ. A broadcast gói ARP request trong nội mạng để tìm địa chỉ MAC của B. Sẽ có vấn đề xảy ra : B không cùng nằm trong mạng và sẽ không nhận được gói tin broadcast cũng như router kết nối sẽ không forward gói broadcasr từ A qua B ( router không truyền các gói broadcast ở lớp datalink )

VÌ vậy B không bao giờ nhận được request từ A cũng như A sẽ không bao giờ có được địa chỉ MAC của B

Hoạt động của Proxy ARP

Giải pháp cho tình huống này được gọi là ARP proxying hay Proxy ARP. Trong công nghệ này, router nằm giữa 2 mạng local sẽ được cấu hình để đáp ứng các gói tin broadcast gửi từ A thay cho B. Router sẽ không gửi cho A địa chỉ MAC của B, vì dù thế nào A và B cũng nằm trên hai mạng khác nhau và không thể gửi trực tiếp đến nhau được. Thay vào đó router sẽ gửi cho A các địa chỉ MAC cảu chính router. A sau đó sẽ gửi thông các gói tin cho router, và router sẽ forward sang cho B. Quá trình cũng hoàn toàn diễn ra tương tự khi B muốn gửi thông tin cho A, hay cho bất cứ thiết bị nào mà đích đến của gói tin là một thiết bị ở một mạng khác.

Ta xem thêm minh họa trong hình phía dưới :

Trong ví dụ, một router kết nối hai mạng LAN cùng trong một mạng IP hoặc subnet với nhau. Router sẽ không truyền các gói tin ARP broadcast nhưng được cấu hình để hoạt động như một ARP proxy. Hai thiết bị A và D có nhu cầu gửi các gói tin IP cho nhau, chính vì vậy chúng broadcast các gói ARP request. Router sẽ đáp ứng lại các gói tin request từ A như thể là D ( router không truyền gói request đến D ). Tương tự, router cũng sẽ dùng địa chỉ của mình để gửi trả các gói tin từ D gửi cho A.

Ưu điểm và nhược điểm của Proxying

Ưu điểm dễ nhận thấy của Proxy ARP là các router hoạt động nhưng các thiết bị không hề cảm nhận được sự hoạt động của nó. Các hoạt động gửi nhận giữa hai thiết bị thuộc hai LAN khác nhau vẫn diễn ra bình thường

Tuy nhiên nó vẫn có những mặt trái và những điểm hạn chế của mình :

· Thứ nhất, nó làm tăng độ phức tạp của mạng
· Thứ hai, nếu nhiều hơn một router kết nối tới hai LAN cùng nằm trong một mạng IP, nhiều vấn đề có thể phát sinh
· Thứ ba, công nghệ này cũng tạo nên những mối nguy cơ tiềm ẩn về an ninh và bảo mật, khi các router được cấu hình proxy, tạo nguy cơ về giả mạo địa chỉ

Do vậy, giải pháp tốt nhất là thiết kế lại topo mạng để chỉ một router kết nối tới hai LAN nằm trong một mạng IP.
(From Internet)
KHÔI PHỤC MẬT KHẨU CHO LINUX

KHÔI PHỤC MẬT KHẨU CHO LINUX

KHÔI PHỤC MẬT KHẨU CHO LINUX

- Chúng ta có quá nhiều mật khẩu: mail, forum, Windows, Linux...và đôi khi bạn quên mất password của root trong Linux thì sao ? Cài lại? Có thể nhưng bất tiện.

- Bạn có thể khôi phục password cho Linux dễ dàng mà không phải cài lại.

- Đối với Redhat:

+ sử dụng boot loader là GRUB:

Khi màn hình của GRUB xuất hiện chọn chọn mục khởi động vào Linux, bấm phím "e" để vào chức năng Edit, mành hình mới xuất hiện (thường sẽ có 3 mục) bạn dịch chuyển thanh chọn đến mục có chữ kernel, bấm phím "e" để edit tham số khởi động. Rồi nhập vào số 1 hoặc chữ single cũng được rồi enter, tiếp theo nhấn "b" để khởi động (phải chọn mục có chữ kernel vừa mới sửa tham số) . Mục đích là vào level 1 (single user).

Khi dấu nhắc lệnh xuất hiện bạn gõ lệnh passwd root để đổ password cho root. Khởi động lại máy là OK.

+ Sử dụng Lilo (hầu như không còn)
Khi dâu nhắc của Lilo xuất hiện, bạn gõ vào linux single. Sau khi khởi động xong,bạn gõ lệnh passwd root để đổi pass.
Các phiên bản khác:
vào www.toms.net/rb
để down về file ảnh cần thiết, sau đó làm đĩa mềm hoặc đĩa CD khởi động. Sau đó khởi độ̣ng với cái đĩa vừa tạo.
Sau khi khởi động thì ta đăng nhập vào hệ thống với account root.(không phải là root của Linux đang cài trên máy) mà là của cái đĩa mới khởi động.
Mở file /etc/shadow để xóa password hiện tại của root (root của linux của máy mình)
dùng lệnh vi /etc/shadow nhấn phím Insert để chuyển sang chế độ ghi, ở dòng đầu tiên sẽ là root:cái gì đó (pass đã mã hóa) rồi tới dấu : xóa các ký tự "lạ" nằm giữa 2 dấu này--> mục đích là tạo password trống (blank) cho root.
Nhấn ESC, gõ ":"
rồi lưu file với lệnh wq
Khởi động lại máy. Lúc này root không có password nữa muốn đổi gì mà không được.

MẠNG TCP/IP TRONG LINUX

MẠNG TCP/IP TRONG LINUX

MẠNG TCP/IP TRONG LINUX

  1. Tiến trình quản lý dịch vụ mạng – xinetd

Red Hat Linux sử dụng xinetd (Extended Internet Services Daemon) để quản lý nhiều dịch vụ mạng cơ sở như Finger, IMAP, Telnet, …
Tập tin cấu hình của xinetd là /etc/xinetd.conf.
Cấu hình cho mỗi dịch vụ mà xinetd quả lý được đặt trong các tập tin riêng lẻ ở trong thư mục /etc/xinetd.d
Để bật tắt một dịch vụ do xinetd quản lý, ta chỉ cần sửa tập tin cấu hình của nó trong thư mục /etc/xinetd.d/. Nếu thuộc tính Disable được gán bằng Yes, dịch vụ sẽ bị tắt và ngược lại.
Để bật tắt hay khởi động xinetd, ta sử dụng script khởi động trong thư mục /etc/rc.d/initd.d như sau:

/etc/ rc.d/initd.dxinetd restart | stop | start

  1. Các tập tin cấu hình cơ bản và khởi động dịch vụ mạng

Cấu hình một mạng TCP/IP trên hệ thống linux được thực hiện bằng cách sử dụng một tập hợp các tập tin cấu hình mạng nằm trong thư mục /etc/etc/sysconfig/. Những tập tin này xác định các thông tin về mạng như tên máy, tên miền, địa chỉ IP, …
RH sử dụng một số tập tin cấu hình cơ bản như:

/etc/sysconfig/network à có chứa các khai báo của hệ thống về một số thông tin cơ bản về trạng thái mạng, được khởi nạp khi hệ thống khởi động. bao gồm: tên máy, GW, …

/etc/sysconfig/network-scripts/ifcfg-eth0 à chứa tập tin khởi động giao tiếp mạng eth0.

/etc/sysconfig/static-routes à chứa thông tin về định tuyến cho các gói tin trên mạng.

Khởi nạp lại thông tin cấu hình mạng:

Sau khi đã có sự thay đổi trong các script, ta cần thông báo lại cho nhân hệ điều hành biết được những sự thay đổi này bằng cách thi hành script sau:

/etc/rc.d/init.d/network restart | start | stop

  1. Cấu hình giao tiếp mạng

*Cơ sở cài đặt phần cứng
RH Linux có các trình điều khiển thiết bị cho nhiều kiểu card mạng khác nhau, được lưu trong thư mục /lib/modules/2.4.20-8/kernel/drivers/net (trong đó 2.4.20-8 là phiên bản của kernel).

Để phát hiện và cấu hình một thiết bị phần cứng mới hay được thay đổi, ta sử dụng lệnh kudzu. Khi hệ thống khởi động, kudzu phát hiện các phần cứng hiện có và kiểm tra nó dựa trên cơ sở dữ liệu lưu trong tập tin /etc/sysconfig/hwconfig. Nếu tập tin /etc/sysconfig/hwconfig không tồn tại, kudzu thực hiện xác định những thiết bị nào đó đã được cấu hình, bằng cách đọc thông tin trong các tập tin /etc/modules.conf, /etc/sysconfig/network-script/

Tên của một số giao tiếp mạng trong RH linux được định nghĩa như sau:

lo: giao tiếp mạng looback
eth0, eth1, … : đây là tên của giao tiếp mạng, được sử dụng hầu hết cho các card mạng ethernet.

*Cấu hình giao tiếp mạng – lệnh ifconfig
Mỗi giao tiếp mạng được cấu hình trên hệ thống linux thường có 1 tập tin script khởi động nằm trong thư mục /etc/sysconfig/network-scripts/. Thí dụ: card mạng thứ nhất (eth0) có tập tin script tương ứng là ifcfg-eth0.

Lệnh ifconfig là chương trình tiện ích trong hệ thống linux, được sử dụng để hiện thị thông tin và cấu hình các giao tiếp mạng trên hệ thống linux.

Một số tham số trong lệnh ifconfig

Address địa chỉ ip gán cho giao tiếp mạng
Netmask khai báo subnet mask cho giao tiếp mạng
Up kích hoạt giao tiếp mạng interface được chỉ ra
Down tắt giao tiếp mạng interface được chỉ ra
Irq addr khai báo địa chỉ ngắt mà card mạng sử dụng
Io_addr addr khai báo địa chỉ cổng mà card mạng sử dụng

Có 2 chế độ hoạt động của lệnh ifconfig

- Chế độ thông báo: hiển thị các thông tin về tham số hoạt động của các thiết bị mạng đã được cài đặt và cấu hình.

Cú pháp: ifconfig [interface]

- Chế độ cấu hình:

Cú pháp: ifconfig interface [aftype] options | address …

Chú ý: trong trường hợp thay đổi địa chị card mạng bằng lệnh ifconfig thì khi khởi động lại máy hay khi khởi động lại dịch vụ mạng, địa chỉ card mạng sẽ được gán lại theo các thông số được khai báo trong tập tin cấu hình giao tiếp mạng. (trong thu mục /etc/sysconfig/network-scripts)

Vd: lệnh sau đây sẽ gán địa chỉ ip 192.168.1.56 cho giao tiếp mạng thứ hai (eth1) và kích hoạt card mạng này

# ifconfig eth1 192.168.1.56 netmask 255.255.255.0 up

Để tắt giao tiếp card mạng eth0, ta thực hiện

# ifconfig eth0 down

Để cấu hình cho card mạng eth0 sử dụng ngắt 9 cổng 310, ta thi hành lệnh:

# ifconfig eth0 irq 9 io_addr 0x310

*Script khởi động giao tiếp mạng

Các hệ thống linux đều có 1 thư mục /etc/sysconfig/ chứa đựng các tập tin cấu hình để khởi động mạng một cách tự động

Nội dung cơ bản của script này bao gồm các khai báo sau:

DEVICE=name Tên giao tiếp mạng
IPADDR=address Địa chỉ ip
NETMASK=mask Netmask của giao tiếp địa chỉ ip

GATEWAY=ip_address Địa chỉ gateway mà card mạng ket noi

ONBOOT=yes|no onboot= yes thì mỗi lần dịch vụ mạng khởi động, giao tiếp mạng sẽ được kích hoạt và ngược lại

BOOTPROTO=static|dhcp BOOTPROTO=static, giao tiếp mạng nhận ip, netmask của script. Nếu BOOTPROTO=dhcp thì giao tiếp mạng nhập ip từ dhcp server

Vd: một khai báo cho giao tiếp mạng đầu tiên, trong script của nó:

DEVICE=
IPADDR=
NETMASK=
GATEWAY=
ONBOOT=
BOOTPROTO=

*Khai báo nhiều ip cho 1 card mạng

Cú pháp:

# ifconfig interfacename:clonename

Vd:

# ifconfig eth0:0 192.168.1.2
# ifconfig eth0:1 192.168.1.200

  1. Định tuyến

*Default Gateway
Để chỉ ra default gateway, ta mở tập tin /etc/sysconfig/network và bổ sung thêm dòng.

GATEWAY=ip_address

Ta cũng có thể khai báo Default Gateway trong tập tin script khởi động giao tiếp mạng.

*Chuyển tiếp gói tin – ip forwarding

Trong trường hợp hệ thống ta có 2 card mạng trở lên ta cần bật chức năng chuyễn tiếp gói tin để các gói tin có thể được chuyển tiếp giữa các card mạng (mặc định hệ thống kh bật chức năng này). Thi hành một trong các cách sau để bật chức năng này:

Thi hành lệnh sau để bật chức năng:

echo 1 > /proc/sys/net/ipv4/ip_forward

Khai báo trong tập tin /etc/sysctl.conf mục từ sau (để có hiệu lực mỗi khi khởi động lại máy)

net.ipv4.ip_forward=1

*Định tuyến – routing

Để thiết lập đường dẫn tĩnh ta sử dụng lệnh route, hay khai báo trong tập tin /etc/sysconfig/static-routes. Việc thực hiện dẫn đường rất quan trọng trong trường hợp máy tính đóng vai trò là default gateway

Để xem bảng định tuyến ta sữ dụng lệnh route không tham số.
Dùng cú pháp lệnh sau để ta thêm hay delete trong bảng định tuyến.

Route add [-net|-host] target [netmask Nm] [gw Gw]

Route del [-net|-host] target [netmask Nm] [gw Gw]

Trong đó:

add bổ sung thêm tuyến đường vào bảng định tuyến
del xóa tuyến đường vào bảng định tuyến
-net khai báo định tuyến tới mạng đích
-host khai báo định tuyến tới máy đích
target là địa chỉ của mạng hay máy cần thực hiện định tuyến
netmask Nm khai báo netmask của mạng(target)/máy cần thực hiện định tuyến
gw Gw Ip của Gateway thực hiện xử lý chuyển tiếp các gói tin.

Vd: để thêm một đường dẫn chỉ ra các gói tin được chuyển đến mạng 192.168.10.0/24 sẽ đi qua gateway 172.16.10.1, ta thực hiện lệnh sau:

# route add –net 192.16.10.0 netmask 255.255.255.0 gw 172.16.10.1

Script quản lý các route là /etc/sysconfig/static-routes, mỗi dòng trong nó chứa một khai báo tuyến đường tĩnh với định dạng như sau:

Device net network netmask netmask gw gateway.

Chú ý: divice có thể là any, khi đó nó đại diện cho all các giao tiếp mạng

  1. Một số tiện ích theo dõi mạng và đăng nhập từ xa.

*ping: sử dụng giao thức ICMP, lệnh ping liên tục gởi 1 gói tin ICMP tới máy đích. Muốn dừng ta nhấn Ctrl+C.

Cú pháp: ping host (host – là địa chỉ ip hay tên máy)

*traceroute: Cho biết đường đi tới máy tính có thông hay không.

Cú pháp: traceroute host (host – là địa chỉ ip hay tên máy)

*netstat: là tập hợp của nhiều công cụ được kết hợp lại với nhau, cung cấp thông tin theo thời gian thực về trạng thái của các kết nối mạng.

Cú pháp:

netstat [options]

Các lựa chọn:

-t Hiển thị các thông tin các kết nối TCP socket
-u Hiển thị các thông tin các kết nối UCP socket
-i Hiển thị các thông tin tất cả các giao tiếp mạng
-a Hiển thị thông tin các kết nối của tất cả các internet socket
-r Hiển thị bảng dẫn đường
-n Không thực hiện chuyển đổi địa chỉ ip thành tên
-c Thực hiện cập nhật liên tục trạng thái.

Ví dụ:

*tcpdump: Nó có thể theo dõi tất cả các gói tin được gửi broadcast trên mạng.

Cú pháp:

tcpdump [options]

Các lựa chọn:

-i if Chỉ thu thập các giao tác đi qua giao tiếp mạng if. Nếu kh có option này, lệnh tcpdump sẽ lắng nghe trên all các giao tiếp mạng

host host Chỉ thực hiện thu thập các giao tác liên quan đến máy tính có ip/tên là host
net net Chỉ thực hiện thu thập các giao tác liên quan đến mạng có địa chỉ net
port port Chỉ thực hiện thu thập các giao tác được thực hiện trên cổng port
-t Không in ra nhãn thời gian tại mỗi dòng của kết quả xuất
-n Kh thực hiện chuyển đổi dc máy thành tên ở kết quả xuất
-N Kh thực hiện xuất ra tên miền đầy đủ của các tên máy.

Vd:

*Đăng nhập từ xa: Trên RH linux hổ trợ 2 chương trình (telnet và ssh) cho phép đăng nhập từ xa vào một máy khác để thi hành lệnh trên máy từ xa đó.

Cú pháp:

ssh username@hostname

vd:

*who, w, finger
Lệnh who, w, finger cung cấp thông tin về các người dùng đang đăng nhập hệ thống.

Đồng Hồ Trên Linux - Network Time Protocol ( NTP )

Đồng Hồ Trên Linux - Network Time Protocol ( NTP )

Đồng Hồ Trên Linux - Network Time Protocol ( NTP )

Chỉnh đồng hồ

Câu lệnh date được dùng để truy cập và thiết lập đồng hồ hệ thống

[root@centos ~]# date
Mon Jun 23 16:47:43 ICT 2008

Chúng ta có thể thiết lập định dạng thời gian cho câu lệnh date với tùy chọn "+"

[root@centos ~]# date '+%D %T'
06/23/08 16:48:19
[root@centos ~]# date '+%H:%M:%S %d/%m/%y'
16:49:16 23/06/08

Ngoài ra, ta cũng có thể hiển thị các ngày khác với ngày hiện thời

[root@centos ~]# date -d 'yesterday'
Sun Jun 22 16:49:41 ICT 2008
[root@centos ~]# date -d '3 months ago'
Sun Mar 23 16:50:02 ICT 2008

date cũng có thể được dùng để hiển thị ngày cuủ một file cụ thể:

[root@centos ~]# date -r /etc/ntp.conf
Sat Nov 10 19:34:05 ICT 2007

hwclock là câu lệnh dùng để kiểm soat đông hồ phần cứng do BIOS quản lý. Khi dùng date để thay đổi giờ thì đồng hồ phần cứng sẽ không bị ảnh hưởng, do đó tại lần khởi động máy kế tiếp, hệ thống sẽ lấy thông tin thời gian từ đồng hồ phần cứng. Để dùng câu lệnh hwclock, ta phải dùng account root.

foo:~ # hwclock
Fri 27 Jun 2003 14:01:24 SAST -0.462635 seconds

Đồng hồ phần cứng có thể được thiết lập theo thời gian của vùng bạn ở hay theo UTC. Khi hệ thống khởi động, đồng hồ hệ thống sẽ lấy giá trị từ đông hồ phần cứng bằng một trong hai câu lệnh sau:

hwclock --hctosys --utc        # BIOS clock is UTC
hwclock --hctosys --localtime
# BIOS clock is local time

Thiết lập giờ hiện tại và giờ hệ thống (BIOS)

hwclock –-hctosys // set đồng hồ hệ thống (BIOS) cho đồng hồ hiện tại
hwclock --systohc // ngược với hctosys

Tùy theo phiên bản Linux, ta cần thay đổi một trong những file sau để thiết lập thời gian, tìm ra timezone của hệ thống.

/etc/sysconfig/clock   # Redhat, newer SuSE – HWCLOCK value
/etc/rc.config
# SuSE – GMT value
/etc/defaults/rcS
# Debian – UTC value

/etc/localtime là một symbolic link hoặc là một bản sao của /usr/share/zoneinfo. Điều này được thiết lập lúc cài đặt hệ thống.

Câu lệnh zic dùng để thiết lập nội dung file /etc/localtime. Ví dụ

% zic -l "Africa/Johannesburg"

Network Time Protocol (NTP)

The Network Time Protocol (NTP) is a protocol used to help synchronize your Linux system's clock with an accurate time source. There are that allow the general public to synchronize with them.

  • Stratum 1: NTP sites using an atomic clock for timing.
  • Stratum 2: NTP sites with slightly less accurate time sources.

NTP cho phép đồng bộ đồng hồ của hệ thống với UTC (Universal Coordinate Time) thông qua một máy chủ thời gian. Cách dùng NTP đơn giản nhất là truy vấn thời gian của máy chủ bằng câu lệnh ntpdate. Câu lệnh này sẽ lấy thời gian từ máy chủ và cập nhật đồng hồ hệ thống.

Kiểm tra, cài đặt NTP:

Kiểm tra xem ntp có chạy không:

$ ps -ef | grep ntp
root 3275 3112 0 16:07 pts/2 00:00:00 vi /etc/ntp.conf
ntp 3557 1 0 17:27 ? 00:00:00 ntpd -u ntp:ntp -p /var/run/ntpd.pid -g
root 3563 3402 0 17:27 pts/3 00:00:00 grep ntp

Kiểm tra xem trên Server đã cài ntp chưa:

[root@centos ~]# rpm -qa | grep ntp
chkfontpath-1.10.1-1.1
ntp-4.2.2p1-7.el5

Nếu chưa có thì cài nó lên.

# yum -y install ntp

Sau đó cấu hình cho ntpd start khi hệ thống khởi động:

$ chkconfig ntpd on

Làm việc với ntpd bằng các lệnh:

$ service ntpd stop
$ service ntpd start
$ service ntpd restart
$ service ntpd status

File cấu hình mặc định:

$ /etc/ntp.conf
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 0.rhel.pool.ntp.org
server 1.rhel.pool.ntp.org
server 2.rhel.pool.ntp.org
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/drift
keys /etc/ntp/keys

Kiểm tra ntp làm việc

[root@centos ~]# ntpq -p

remote refid st t when poll reach delay offset jitter
=================================================
ips61.reverse.n 132.239.1.6 2 u 28 64 3 10.472 148790. 8.879
LOCAL(0) .LOCL. 10 l 26 64 3 0.000 0.000 0.001

Cập nhật thời gian tại một server khác:

ntpdate –q <địa chỉ time_server>

Một số phím tắt hữu ích khi sử dụng Linux

Một số phím tắt hữu ích khi sử dụng Linux

Dưới đây là một số tổ hợp phím tắt hữu ích mà cheva thu thập được trong quá trình sử dụng Linux, danh sách này sẽ được bổ sung dần dần:

1. Trong terminal

  • + L: xoá toàn bộ màn hình, giống lệnh clear
  • + D: exit session, giống lệnh exit
  • + R: tìm một lệnh đã chạy trước đây, nhấn + R sau đó bắt đầu gõ một phần của câu lệnh, hệ thống sẽ tự hoàn tất phần còn lại dựa trên các câu lệnh đã được thực hiện trước đó
  • : tự động hoàn tất câu lệnh
  • + : dán (paste) nội dung đã copy vào terminal
  • + PageUp: cuộn màn hình lên trên một trang
  • + + F2 ( + F2> nếu đang ở chế độ console): chuyển sang virtual terminal thứ 2, tương tự với F3, F4 ...

2. Trong GNOME

  • + + D: hiển thị desktop, giống + D trong Windows
  • + + : chuyển sang workspace trước/kế tiếp
  • + W: đóng cửa sổ hiện thời
  • + Q: thoát khỏi chương trình hiện thời
  • + F1: Hiển thị main menu
  • + F2: Hiển thị hộp thoại chạy dòng lệnh, giống + R trong Windows
  • + F5: Bỏ phóng to cửa sổ hiện thời
  • + F9: Thu nhỏ cửa sổ hiện thời
  • + F10: Phóng to cửa sổ hiện thời

3. Trong OpenOffice:

  • + + B: chuyển font sang dạng subscript, giống + '+' trong MS Word
  • + + P: chuyển font sang dạng supperscript, giống + + '+' trong MS Word
  • + 1: Single line spacing
  • + 2: Double line spacing
  • + 5: 1.5 line spacing
Xem danh sách chi tiết các phím tắt của OpenOffice tại http://www.entropy.ch/software/macosx/docs/openoffice-mac/shortcuts.html

4. Trong vi (vim)

Các phím sau đây được sử dụng trong chế độ nhập lệnh (không phải chế độ nhập văn bản). Để viết về vi thì cần một bài riêng, nên ở đây cheva chỉ nêu ra một số phím/lệnh chính, chú ý các phím/lệnh sau đây có phân biệt chữ hoa và chữ thường:

  • G: tới cuối file
  • #G: tới dòng thứ # (ví dụ 10G, 100G)
  • H: tới đầu trang
  • dd: xóa dòng hiện thời
  • yy: copy dòng hiện thời
  • p: dán xuống dòng dưới dòng hiện thời
  • P: dán vào trước vị trí con trỏ
  • /: bắt đầu tìm kiếm
  • ^: tới đầu dòng
  • $: tới cuối dòng
  • %: tới dấu đóng (mở) ngoặc tương ứng
  • %s/old_text/new_text/g: thay thế tất cả các old_text bằng new_text
  • Ở chế độ nhập văn bản, gõ + P để sử dụng auto text completion
cheva

Hệ thống tập tin và thư mục trên Linux

Các thư mục và hệ thống tập tin

Hệ thống tập tin của Linux và Unix được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng vạch chéo “/” (root directory). Đối với các hệ điều hành Unix và Linux tất các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, kể cả những linh kiện như ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB. Điều này có nghĩa là tất cả các tập tin và thư mục đều nằm dưới thư mục gốc, ngay cả những tập tin biểu tượng cho các ổ đĩa cứng.

Ví dụ, /home/User//linux/arp.doc chỉ toàn bộ đường dẫn đến tập tin arp.doc có trong thư mục User là thư mục phụ nằm trong thư mục home, ngay dưới thư mục gốc (/).

Nằm dưới thư mục gốc (/) có một loạt các thư mục quan trọng của hệ thống tập tin được công nhận ở tất cả các bản phân phối Linux khác nhau. Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) :

  • /bin – chứa các ứng dụng quan trọng (binary applications),
  • /boot – các tập tin cấu hình cho quá trình khởi động hệ thống (boot configuration files),
  • /dev – chứa các tập tin là chứng nhận cho các thiết bị của hệ thống (device files)
  • /etc – chứa các tập tin cấu hình của hệ thống, các tập tin lệnh để khởi động các dịch vụ của hệ thống...
  • /home – thư mục này chứa các thư mục cá nhân của những người có quyền truy cập vào hệ thống (local users' home directories),
  • /lib – thư mục này lưu các thư viện chia sẻ của hệ thống (system libraries)
  • /lost+found – thư mục này được dùng để lưu các tập tin không có thư mục mẹ mà được tìm thấy dưới thư mục gốc (/) sau khi thực hiện lệnh kiểm tra hệ thống tập tin (fsck).
  • /media – thư mục này được dùng để tạo ra các tập tin gắn (loaded) tạm thời được hệ thống tạo ra khi một thiết bị lưu động (removable media) được cắm vào như đĩa CDs, máy ảnh kỹ thuật số...
  • /mnt – thư mục này được dùng để gắn các hệ thống tập tin tạm thời (mounted filesystems),
  • /opt – thư mục dùng dể chứa các phần mềm ứng dụng (optional applications) đã được cài đặt thêm,
  • /proc – đây là một thư mục đặc biệt linh động để lưu các thông tin về tình trạng của hệ thống, đặc biệt về các tiến trình (processes) đang hoạt động,
  • /root – đây là thư mục nhà của người quản trị hệ thống (root),
  • /sbin – thư mục này lưu lại các tập tin thực thi của hệ thống (system binaries)
  • /sys – thư mục này lưu các tập tin của hệ thống (system files),
  • /tmp – thư mục này lưu lại các tập tin được tạo ra tạm thời (temporary files),
  • /usr – thư mục này lưu và chứa những tập tin của các ứng dụng chính đã được cài đặt cho mọi người dùng (all users),
  • /var – thư mục này lưu lại tập tin ghi các số liệu biến đổi (variable files) như các tập tin dữ liệu và tập tin bản ghi (logs and databases).

Ổ đĩa và các Partition

  • /dev/hda Ổ đĩa cứng IDE đầu tiên (chính)
  • /dev/hdb Ổ đĩa cứng IDE thứ hai (thứ cấp)
  • /dev/sda Ổ đĩa cứng SCSI đầu tiên
  • /dev/sdb Ổ đĩa cứng SCSI thứ hai
  • /dev/fd0 Ổ đĩa mềm đầu tiên
  • /dev/fd1 Ổ đĩa mềm thứ hai

Ví dụ chúng ta chạy lệnh ls –l firstdoc.txt thấy kết quả như sau:

-rwxrw-r-- 1 User1 Testers 512 Oct 24 19:42 firstdoc.txt

Ý nghĩa của các field là:

  • File Access Permission: -rwxrw-r--
  • Số liên kết: 1
  • File Owner: User1
  • Group: Testers
  • File Size (bytes): 512
  • Lần hiệu chỉnh cuối: Oct 24
  • Last Modification Time: 19:42
  • File name: firstdoc.txt

Ngoài ra, qua lệnh ls –l chúng ta sẽ biết được firstdoc.txt là tập tin hay thư mục dựa theo:

  • Nếu kí tự đầu tiên là (-), thì đây là tập tin.
  • Nếu kí tự đầu tiên là d, thì đối tượng là thư mục.
  • Nếu kí tự đầu tiên là l, thì đầy là một liên kết (symbolic link) trỏ đến một file khác (gần giống với shortcut trên Windows OS).
  • Nếu kí tự đầu tiên là b, đối tượng là block device ví dụ như disk drive.
  • Nếu kí tự đầu tiên là c, đối tượng là character device như serial port.

Object Ownership

Trong ví dụ trên chúng ta thấy các tập tin đều có một group owner và file owner. Trong trường hợp muốn thay đổi ownership cho group hay user khác hãy đăng nhập với quyền root và thự hiện lệnh sau để đổi quyền ownership đối với tập tin payroll.doc cho người dùng vp_finance

chown vp_finance payroll.doc

Nếu muốn đổi quyền ownership cho group accounting hãy thực hiện lệnh

chown vp_finance.accounting payroll.doc

Trong trường hợp muốn chuyển quyền ownership toàn bộ thư mục và các tập tin bên trong thì thự hiện lệnh chown với tùy chọn –R:

chown -R vp_marketing.marketing /marketing/June
chown -R .marketing /marketing/June

Ngoài ra, nếu muốn chuyển quyền ownership mà không có quyền root thì có thể dùng lệnh chgrp nhưng lúc này bạn phải thuộc group có quyền ownership và group muốn chuyển quyền này.

Xem thông tin sử dụng đĩa cứng dùng lệnh df -h:

Mounting thiết bị, ổ đĩa

Để có thể sử dụng các ổ đĩa như CDROM, FDD.. chúng ta cần mount các ổ đĩa này bằng lệnh mount như:

# mount /dev/cdrom /mnt/cdrom

Kết quả lệnh sẽ là:

Mount: block device /dev/cdrom is write-protected. mounting
read-only

Tuy nhiên, đối với các phiên bản Linux mới thì việc sử dụng CDROM đa số được hệ thống mount tự động. Ngoài ra, chúng ta có thể mount cdrom hay các ổ usb, fdd đến các thư mục do chúng ta tạo ra như:

mkdir /cdrom
mount /dev/cdrom /cdrom

Và sau khi sử dụng xong chúng ta có thể sử dụng lệnh umount trước khi lấy đĩa ra (có nhiều trường hợp phải lấy CD ra bằng cách tắt nguồn)

Các quyền truy cập

Tất cả các tập tin của một hệ thống tâp tin Linux được gắn các quyền truy cập khác nhau theo từng người dùng của hệ thống, liên quan đến các phép đọc, viết và thực hiện. Người quản trị hệ thống (super user "root") có phép truy cập bất kỳ tập tin của hệ thống. Mỗi tập tin là sở hữu của một người nhất định và được gắn những hạn chế truy cập tùy theo người dùng và được gắn một nhóm người dùng.

Vậy mỗi tập tin được bảo đảm an toàn bởi 3 bộ quyền truy cập được gắn theo 3 nhóm người dùng như sau, theo thứ tự từ cao đến thấp:

  • user (người dùng) những quyền truy cập của nhóm này áp dụng cho người sở hữu tập tin,
  • group (nhóm người dùng) những quyền truy cập của nhóm này áp dụng cho nhóm đã được gắn với tập tin,
  • other (những người khác) những quyền truy cập của nhóm này áp dụng cho tất cả những người còn lại.

Mỗi bộ quyền truy cập sẽ xác định cụ thể các quyền truy cập thực tế đối với các tập tin và các thư mục như sau:

  • read (đọc)
    quyền xem nội dung tập tin hoặc mở tập tin
    quyền xem nội dung của tập tin thư mục
  • write (ghi, viết)
    quyền ghi và sửa lại nội dung tập tin hoặc xoá tập tin
    quyền sửa lại nội dung của tập tin thư mục
  • execute (thực thi)
    quyền này được gắn với các tập tin lệnh, nhóm người dùng đã nhận được quyền này có thể thực hiện các tập tin lệnh, quyền vào các thư mục.

Các quyền trên hệ thống Linux có thể được mô tả qua các số từ 0 đến 7 trong hệ thập phân. Ví dụ một user hay group có quyền R (read), W (write), E (execute) đối với 1 file/folder thì được kí hiệu là 1, ngược lại là 0 nếu không có quyền tương ứng (-). Và với phép chuyển từ số nhị phân sang thập phân chúng ta có bảng giá trị sau:


Vậy nếu một user/group có quyền đối với file/folder nào đó thì tương ứng với xác lập 111 ở hệ nhị phân hay 7 trong hệ thập phân, vậy quyền 777 là cho phép RWE đối với tất cả.


Người dùng và nhóm người dùng

Muốn bổ sung thêm người dùng, hoặc nhóm người dùng, cho hệ thống, bạn có thể dùng chương trình Users And Groups, trong thực đơn System -> Administration -> Users and Groups.

Để bổ sung một người dùng mới, ấn chuột vào Add user, điền các thông tin cần thiết rồi ấn chuột vào nút ghi OK. Để chỉnh lại các thuộc tính của từng người dùng, bạn có thể ấn chuột vào nút ghi Properties có trong cửa sổ chính của Users.

Để bổ sung một nhóm người dùng mới, chọn tab Groups tab và ấn chuột vào Add group. Xác định tên của nhóm mới và nếu muốn có thể thay đổi số ấn định cho nhóm (Group ID). Nếu bạn định dùng một số Group ID đã dùng rồi, hệ thống sẽ có thông báo.

Để bổ sung người dùng cho nhóm vừa mới được tạo ra, chỉ cần chọn một người dùng từ danh sách bên trái và ấn vào nút ghi Add. Muốn loại trừ một người dùng ra khỏi một nhóm cũng đơn giản bằng việc bổ sung: sau khi đã chọn tên người dùng trong cửa sổ bên phải, ấn chuột vào nút đã ghi.

Remove. Khi nào xong, ấn vào nút OK để kết thúc và thực sự tạo ra nhóm người dùng mới, cùng những người dùng thuộc nhóm đó.

Muốn sửa lại các thuộc tính của một nhóm người dùng, chọn tên của một nhóm trong cửa sổ Groups và ấn chuột vào nút đã ghi Properties.

Để xoá hoàn toàn một người dùng, hoặc một nhóm người dùng, từ hệ thống, chọn tên người dùng hoặc tên nhóm người dùng muốn xoá và ấn chuột vào nút đã ghi Delete.

Tương tự hệ thống Windows, khi cài đặt Linux (FC Core) sẽ tạo ra một tài khoản có quyền quản trị hệ thống và có thể dùng để tạo ra các tài khoản khác, đây là tài khoản cao cấp nhất có tên gọi là root. Để cấp quyền truy cập hệ thống chúng ta cần tạo ra các tài khoản người dùng, và mỗi tài khoản người dùng được gán một UID. Các tài khoản có chung thuộc tính sẽ được xếp vào các nhóm như trên hệ thống Windows và mỗi nhóm sẽ có các GID riêng.

Trên hệ thống Linux chúng ta có thể xem các User hiện có thông qua nội dung của tập tin /etc/passwd :

Trong tập tin passwd này chúng ta thấy có nhiều record với các filed khác nhau như:

  • User Account Name: login name của tài khoản người dùng.
  • Password: login password của tài khoản người dùng. Nếu chỉ thấy kí tự x trong ô này thì mật mã đã được mã hóa và bảo vệ trong tập tin shadow password.
  • User ID: số hiệu của user (UID)
  • Group ID: số hiệu Grioup mà người dùng này là thành viên (GID).
  • Full Name: tên đầy đủ của người dùng.
  • Home Directory: thư mục chủ của người dùng sau khi đăng nhập.
  • Shell: trình diễn dịch lệnh, ví dụ bash.

Khi một tài khoản mới được tạo nó sẽ được gán 1 UID, bắt đầu từ 500 trở đi và tăng dần khi các tài khoản mới được tạo ra.

Cũng như trên hệ điều hành Windows, sau khi cài đặt một số tài khoản và group mặc định sẽ được tạo như:


Tìm lại menu "Install new font" bị mất

Tìm lại menu "Install new font" bị mất

Tìm lại menu "Install new font" bị mất

Ðôi khi cài xong Windows và các trình ứng dụng, đến lúc cài đặt font chữ tiếng Việt từ Control Panel\ Fonts, dòng menu Install new font lại bị mất. Sau đây là một số cách giúp bạn tìm lại menu này.

Cách 1: Bạn dùng Windows Explorer copy trực tiếp các font cần sử dụng vào thư mục C:\Windows\Fonts , sau đó khởi động lại máy .

Cách 2: Bạn khởi động máy ở chế độ DOS và gõ lệnh sau : Attrib +S C:\Windows\Fonts. Sau đó bạn dùng NC mở tâp tin desktop.ini trong thư mục C:\Windows\Fonts xóa hết nội dung trong đó và gõ các dòng lệnh sau :

[.ShellClassInfo]
UICLSID={BD84B380-8CA2-1069-AB1D-08000948F534}

Sau đó bạn lưu lại và trở về Windows. menu Install new font đã xuất hiện trở lại trong Control Panel\ Fonts

Liệt Kê tất cả các ứng dụng đang chạy từ dòng lệnh

Liệt Kê tất cả các ứng dụng đang chạy từ dòng lệnh

Liệt Kê tất cả các ứng dụng đang chạy từ dòng lệnh

Bạn có thể sử dụng công cụ WMIC (Windows Management Instrumentation Command line) để liệt kê tất cả các ứng dụng đang chạy trong hệ điều hành của bạn .
Vào Command Prompt, bạn nhập vào dòng lệnh sau: WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,CommandLine,Processid
- Bây giờ bạn chỉ việc vào ổ đĩa C: mở tập tin ProcessList.txt xem chi tiết danh sách các ứng dụng đang chạy trên hệ điều hành của bạn.

Nếu bạn muốn xem thuộc tính đặc biệt của các ứng dụng này, hãy gõ vào Command Prompt như sau: WMIC PROCESS GET Name, Handle, PageFaults

Bạn muốn biết chính xác tập tin Explorer.exe nằm ở đâu ngày giờ tạo nó, bạn gõ như sau: WMIC PROCESS WHERE (Description=”explorer.exe”)

(Sưutầm)

Thay đổi địa chỉ MAC trong win xp.

Thay đổi địa chỉ MAC trong win xp.
Cách đơn giản đế biết NIC trên PC sử dụng địa chỉ nào bạn mở command prompt sử dụng lệnh getmac hoặc ipconfig /all
Có 3 cách thay đổi địa chỉ MAC trên hệ điều hành Windows .

- Cách 1 : Thay đổi thông qua giao diện đồ hoạ
Nhấn chuột phải ở MyComputer chọn Properties chọn thanh Hardware - Device Manager. Tìm mục Network Adapters chọn NIC của bạn, chọn tiếp mục Advanced. Trong mục Property tìm mục Network Address hoặc Locally Administered Address . Ở mục Value nhập vào địa chỉ MAC của bạn .
Chú ý : không cần nhập dấu - hoặc dấu : ở giữa các số địa chỉ MAC.

Ví dụ: địa chỉ MAC của bạn là :
00:1A:A0:AE:22:D7 thì bạn nhập vào 001AA0AE22D7
Sau khi thay đổi xong, bạn nên restart máy tính .

- Cách 2 : Thay đổi thông qua Registry Editor
Mở Registry Editor tìm khoá sau
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
Trong đây có rất nhiều subkeys được đánh dấu từ 0001 đến 0017 (con số này có thể khác trên PC của bạn).
Vậy làm sao biết chính xác NIC của tôi, nó đang “chiếm dụng” subkey nào ?
Bạn mở lần lượt các subkey này lên, tìm ở phần bên phải có giá trị mang tên DriverDesc tìm NIC của bạn (giả sử NIC của tôi mang tên là Intel(R) PRO/100 VE Network Connection ) thì nó hiển thị trong đây, sau khi biết chính xác NIC của tôi xong .
Bạn tiếp tục tìm khoá NetCfgInstanceId trong khoá này có giá trị trùng với giá trị mà bạn sử dụng getmac ở trên {6EF0400C-B1F8-4A55-BB89-F2DC735417C4}

Vậy là OK rồi, chính xác địa chỉ MAC trên PC của tôi nằm trong subkey này .

Bạn tìm tiếp mục NetworkAddress có địa chỉ là : 001AA0AE26D9

Địa chỉ 001AA0AE26D9 này là điạ chỉ MAC cho NIC của bạn, bạn chỉ cần thay thế địa chỉ MAC này thành địa chỉ MAC mới và khởi động lại máy tính .

- Cách 3 : Sử dụng phần mềm

Sở dĩ bắt buộc sử dụng phần mềm là có nguyên do vì ở cả 2 cách trên khi thay đổi địa chỉ MAC xong thì bắt buộc bạn phải restart lại máy tính .

Phần mềm mang tên là SMAC sẽ giúp bạn thực hiện được điều này .

Bạn chỉ cần nhập địa chỉ MAC mới vào New Spoofed MAC Address và nhấn Update MAC vậy là xong .

(Sưutầm)
ARP và nguyên lý làm việc trong LAN

ARP và nguyên lý làm việc trong LAN

Như ta đã biết tại tầng Network của mô hình OSI , chúng ta thường sử dụng các loại địa chỉ mang tính chất quy ước như IP, IPX… Các địa chỉ này được phân thành hai phần riêng biệt là phần địa chỉ mạng (NetID) và phần địa chỉ máy ( HostID). Cách đánh số địa chỉ như vậy nhằm giúp cho việc tìm ra các đường kết nối từ hệ thống mạng này sang hệ thống mạng khác được dễ dàng hơn. Các địa chỉ này có thể được thay đổi theo tùy ý người sử dụng.

Trên thực tế, các card mạng (NIC) chỉ có thể kết nối với nhau theo địa chỉ MAC, địa chỉ cố định và duy nhất của phần cứng. Do vậy ta phải có một cơ chế để chuyển đổi các dạng địa chỉ này qua lại với nhau. Từ đó ta có giao thức phân giải địa chỉ: Address Resolution Protocol (ARP).

Nguyên tắc làm việc của ARP trong một mạng LAN

Khi một thiết bị mạng muốn biết địa chỉ MAC của một thiết bị mạng nào đó mà nó đã biết địa chỉ ở tầng network (IP, IPX…) nó sẽ gửi một ARP request bao gồm địa chỉ MAC address của nó và địa chỉ IP của thiết bị mà nó cần biết MAC address trên toàn bộ một miền broadcast. Mỗi một thiết bị nhận được request này sẽ so sánh địa chỉ IP trong request với địa chỉ tầng network của mình. Nếu trùng địa chỉ thì thiết bị đó phải gửi ngược lại cho thiết bị gửi ARP request một gói tin (trong đó có chứa địa chỉ MAC của mình). Trong một hệ thống mạng đơn giản, ví dụ như PC A muốn gửi gói tin đến PC B và nó chỉ biết được địa chỉ IP của PC B. Khi đó PC A sẽ phải gửi một ARP broadcast cho toàn mạng để hỏi xem “địa chỉ MAC của PC có địa chỉ IP này là gì ?” Khi PC B nhận được broadcast này, nó sẽ so sánh địa chỉ IP trong gói tin này với địa chỉ IP của nó. Nhận thấy địa chỉ đó là địa chỉ của mình, PC B sẽ gửi lại một gói tin cho PC A trong đó có chứa địa chỉ MAC của B. Sau đó PC A mới bắt đầu truyền gói tin cho B.

Nguyên tắc hoạt động của ARP trong môi trường hệ thống mạng:

Hoạt động của ARP trong một môi trường phức tạp hơn đó là hai hệ thống mạng gắn với nhau thông qua một Router C. Máy A thuộc mạng A muốn gửi gói tin đến máy B thuộc mạng B. Do các broadcast không thể truyền qua Router nên khi đó máy A sẽ xem Router C như một cầu nối hay một trung gian (Agent) để truyền dữ liệu. Trước đó, máy A sẽ biết được địa chỉ IP của Router C (địa chỉ Gateway) và biết được rằng để truyền gói tin tới B phải đi qua C. Tất cả các thông tin như vậy sẽ được chứa trong một bảng gọi là bảng định tuyến (routing table). Bảng định tuyến theo cơ chế này được lưu giữ trong mỗi máy. Bảng định tuyến chứa thông tin về các Gateway để truy cập vào một hệ thống mạng nào đó. Ví dụ trong trường hợp trên trong bảng sẽ chỉ ra rằng để đi tới LAN B phải qua port X của Router C. Bảng định tuyến sẽ có chứa địa chỉ IP của port X. Quá trình truyền dữ liệu theo từng bước sau :

· Máy A gửi một ARP request (broadcast) để tìm địa chỉ MAC của port X.
· Router C trả lời, cung cấp cho máy A địa chỉ MAC của port X.
· Máy A truyền gói tin đến port X của Router.
· Router nhận được gói tin từ máy A, chuyển gói tin ra port Y của Router. Trong gói tin có chứa địa chỉ IP của máy B. Router sẽ gửi ARP request để tìm địa chỉ MAC của máy B.
· Máy B sẽ trả lời cho Router biết địa chỉ MAC của mình. Sau khi nhận được địa chỉ MAC của máy B, Router C gửi gói tin của A đến B.

Trên thực tế ngoài dạng bảng định tuyến này người ta còn dùng phương pháp proxyARP, trong đó có một thiết bị đảm nhận nhiệm vụ phân giải địa chỉ cho tất cả các thiết bị khác.Theo đó các máy trạm không cần giữ bảng định tuyến nữa Router C sẽ có nhiệm vụ thực hiện, trả lời tất cả các ARP request của tất cả các máy .
(Vietnamnet)
Thiết Lập Firewall Trên Linux

Thiết Lập Firewall Trên Linux

Thiết Lập Firewall Trên Linux

Lời mở đầu
Trong bài viết này, mình sẽ hướng dẫn cho bạn cách thiết lập tường lửa Iptables trên Linux. Bài viết gồm hai phần chính: phần I sẽ giới thiệu cơ bản về cách thức hoạt động của Iptables và phần II sẽ hướng dẫn bạn lập cấu hình Iptables cho một máy chủ phục vụ Web cụ thể.

Phần I: Giới thiệu về Iptables

Iptables là một tường lửa ứng dụng lọc gói dữ liệu rất mạnh, miễn phí và có sẵn trên Linux.. Netfilter/Iptables gồm 2 phần là Netfilter ở trong nhân Linux và Iptables nằm ngoài nhân. Iptables chịu trách nhiệm giao tiếp giữa người dùng và Netfilter để đẩy các luật của người dùng vào cho Netfiler xử lí. Netfilter tiến hành lọc các gói dữ liệu ở mức IP. Netfilter làm việc trực tiếp trong nhân, nhanh và không làm giảm tốc độ của hệ thống.

Cách đổi địa chỉ IP động (dynamic NAT)

Trước khi đi vào phần chính, mình cần giới thiệu với các bạn về công nghệ đổi địa chỉ NAT động và đóng giả IP Masquerade. Hai từ này được dùng rất nhiều trong Iptables nên bạn phải biết. Nếu bạn đã biết NAT động và Masquerade, bạn có thể bỏ qua phần này.

NAT động là một trong những kĩ thuật chuyển đổi địa chỉ IP NAT (Network Address Translation). Các địa chỉ IP nội bộ được chuyển sang IP NAT như sau:

NAT Router đảm nhận việc chuyển dãy IP nội bộ 169.168.0.x sang dãy IP mới 203.162.2.x. Khi có gói liệu với IP nguồn là 192.168.0.200 đến router, router sẽ đổi IP nguồn thành 203.162.2.200 sau đó mới gởi ra ngoài. Quá trình này gọi là SNAT (Source-NAT, NAT nguồn). Router lưu dữ liệu trong một bảng gọi là bảng NAT động. Ngược lại, khi có một gói từ liệu từ gởi từ ngoài vào với IP đích là 203.162.2.200, router sẽ căn cứ vào bảng NAT động hiện tại để đổi địa chỉ đích 203.162.2.200 thành địa chỉ đích mới là 192.168.0.200. Quá trình này gọi là DNAT (Destination-NAT, NAT đích). Liên lạc giữa 192.168.0.200 và 203.162.2.200 là hoàn toàn trong suốt (transparent) qua NAT router. NAT router tiến hành chuyển tiếp (forward) gói dữ liệu từ 192.168.0.200 đến 203.162.2.200 và ngược lại.

Cách đóng giả địa chỉ IP (masquerade)

Đây là một kĩ thuật khác trong NAT.

NAT Router chuyển dãy IP nội bộ 192.168.0.x sang một IP duy nhất là 203.162.2.4 bằng cách dùng các số hiệu cổng (port-number) khác nhau. Chẳng hạn khi có gói dữ liệu IP với nguồn 192.168.0.168:1204, đích 211.200.51.15:80 đến router, router sẽ đổi nguồn thành 203.162.2.4:26314 và lưu dữ liệu này vào một bảng gọi là bảng masquerade động. Khi có một gói dữ liệu từ ngoài vào với nguồn là 221.200.51.15:80, đích 203.162.2.4:26314 đến router, router sẽ căn cứ vào bảng masquerade động hiện tại để đổi đích từ 203.162.2.4:26314 thành 192.168.0.164:1204. Liên lạc giữa các máy trong mạng LAN với máy khác bên ngoài hoàn toàn trong suốt qua router.

Cấu trúc của Iptables

Iptables được chia làm 4 bảng (table): bảng filter dùng để lọc gói dữ liệu, bảng nat dùng để thao tác với các gói dữ liệu được NAT nguồn hay NAT đích, bảng mangle dùng để thay đổi các thông số trong gói IP và bảng conntrack dùng để theo dõi các kết nối. Mỗi table gồm nhiều mắc xích (chain). Chain gồm nhiều luật (rule) để thao tác với các gói dữ liệu. Rule có thể là ACCEPT (chấp nhận gói dữ liệu), DROP (thả gói), REJECT (loại bỏ gói) hoặc tham chiếu (reference) đến một chain khác.

Quá trình chuyển gói dữ liệu qua Netfilter

Gói dữ liệu (packet) chạy trên chạy trên cáp, sau đó đi vào card mạng (chẳng hạn như eth0). Đầu tiên packet sẽ qua chain PREROUTING (trước khi định tuyến). Tại đây, packet có thể bị thay đổi thông số (mangle) hoặc bị đổi địa chỉ IP đích (DNAT). Đối với packet đi vào máy, nó sẽ qua chain INPUT. Tại chain INPUT, packet có thể được chấp nhận hoặc bị hủy bỏ. Tiếp theo packet sẽ được chuyển lên cho các ứng dụng (client/server) xử lí và tiếp theo là được chuyển ra chain OUTPUT. Tại chain OUTPUT, packet có thể bị thay đổi các thông số và bị lọc chấp nhận ra hay bị hủy bỏ. Đối với packet forward qua máy, packet sau khi rời chain PREROUTING sẽ qua chain FORWARD. Tại chain FORWARD, nó cũng bị lọc ACCEPT hoặc DENY. Packet sau khi qua chain FORWARD hoặc chain OUTPUT sẽ đến chain POSTROUTING (sau khi định tuyến). Tại chain POSTROUTING, packet có thể được đổi địa chỉ IP nguồn (SNAT) hoặc MASQUERADE. Packet sau khi ra card mạng sẽ được chuyển lên cáp để đi đến máy tính khác trên mạng.

Các tham số dòng lệnh thường gặp của Iptables
1. Gọi trợ giúp

Để gọi trợ giúp về Iptables, bạn gõ lệnh $ man iptables hoặc $ iptables --help. Chẳng hạn nếu bạn cần biết về các tùy chọn của match limit, bạn gõ lệnh $ iptables -m limit --help.

2. Các tùy chọn để chỉ định thông số
- chỉ định tên table: -t , ví dụ -t filter, -t nat, .. nếu không chỉ định table, giá trị mặc định là filter
- chỉ đinh loại giao thức: -p , ví dụ -p tcp, -p udp hoặc -p ! udp để chỉ định các giao thức không phải là udp
- chỉ định card mạng vào: -i , ví dụ: -i eth0, -i lo
- chỉ định card mạng ra: -o , ví dụ: -o eth0, -o pp0
- chỉ định địa chỉ IP nguồn: -s <địa_chỉ_ip_nguồn>, ví dụ: -s 192.168.0.0/24 (mạng 192.168.0 với 24 bít mạng), -s 192.168.0.1-192.168.0.3 (các IP 192.168.0.1, 192.168.0.2, 192.168.0.3).
- chỉ định địa chỉ IP đích: -d <địa_chỉ_ip_đích>, tương tự như -s
- chỉ định cổng nguồn: --sport , ví dụ: --sport 21 (cổng 21), --sport 22:88 (các cổng 22 .. 88), --sport :80 (các cổng <=80), --sport 22: (các cổng >=22)
- chỉ định cổng đích: --dport , tương tự như --sport

3. Các tùy chọn để thao tác với chain

- tạo chain mới: iptables -N
- xóa hết các luật đã tạo trong chain: iptables -X
- đặt chính sách cho các chain `built-in` (INPUT, OUTPUT & FORWARD): iptables -P , ví dụ: iptables -P INPUT ACCEPT để chấp nhận các packet vào chain INPUT
- liệt kê các luật có trong chain: iptables -L
- xóa các luật có trong chain (flush chain): iptables -F
- reset bộ đếm packet về 0: iptables -Z

4. Các tùy chọn để thao tác với luật

- thêm luật: -A (append)
- xóa luật: -D (delete)
- thay thế luật: -R (replace)
- chèn thêm luật: -I (insert)
Mình sẽ cho ví dụ minh họa về các tùy chọn này ở phần sau.

Phân biệt giữa ACCEPT, DROP và REJECT packet

- ACCEPT: chấp nhận packet
- DROP: thả packet (không hồi âm cho client)
- REJECT: loại bỏ packet (hồi âm cho client bằng một packet khác)

Ví dụ:

# iptables -A INPUT -i eth0 --dport 80 -j ACCEPT chấp nhận các packet vào cổng 80 trên card mạng eth0

# iptables -A INPUT -i eth0 -p tcp --dport 23 -j DROP thả các packet đến cổng 23 dùng giao thức TCP trên card mạng eth0

# iptables -A INPUT -i eth1 -s ! 10.0.0.1-10.0.0.5 --dport 22 -j REJECT --reject-with tcp-reset gởi gói TCP với cờ RST=1 cho các kết nối không đến từ dãy địa chỉ IP 10.0.0.1..5 trên cổng 22, card mạng eth1

# iptables -A INPUT -p udp --dport 139 -j REJECT --reject-with icmp-port-unreachable gởi gói ICMP `port-unreachable` cho các kết nối đến cổng 139, dùng giao thức UDP

Phân biệt giữa NEW, ESTABLISHED và RELATED

- NEW: mở kết nối mới
- ESTABLISHED: đã thiết lập kết nối
- RELATED: mở một kết nối mới trong kết nối hiện tại

Ví dụ:

# iptables -P INPUT DROP đặt chính sách cho chain INPUT là DROP

# iptables -A INPUT -p tcp --syn -m state --state NEW -j ACCEPT chỉ chấp nhận các gói TCP mở kết nối đã set cờ SYN=1

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT không đóng các kết nối đang được thiết lập, đồng thời cũng cho phép mở các kết nối mới trong kết nối được thiết lập

# iptables -A INPUT -p tcp -j DROP các gói TCP còn lại đều bị DROP

Tùy chọn --limit, --limit-burst

--limit-burst: mức đỉnh, tính bằng số packet
--limit: tốc độ khi chạm mức đỉnh, tính bằng số packet/s(giây), m(phút), d(giờ) hoặc h(ngày)

Mình lấy ví dụ cụ thể để bạn dễ hiểu:

# iptables -N test
# iptables -A test -m limit --limit-burst 5 --limit 2/m -j RETURN
# iptables -A test -j DROP
# iptables -A INPUT -i lo -p icmp --icmp-type echo-request -j test

Đầu tiên lệnh iptables -N test để tạo một chain mới tên là test (table mặc định là filter). Tùy chọn -A test (append) để thêm luật mới vào chain test. Đối với chain test, mình giới hạn limit-burst ở mức 5 gói, limit là 2 gói/phút, nếu thỏa luật sẽ trở về (RETURN) còn không sẽ bị DROP. Sau đó mình nối thêm chain test vào chain INPUT với tùy chọn card mạng vào là lo, giao thức icmp, loại icmp là echo-request. Luật này sẽ giới hạn các gói PING tới lo là 2 gói/phút sau khi đã đạt tới 5 gói.

Bạn thử ping đến localhost xem sao?

$ ping -c 10 localhost

Chỉ 5 gói đầu trong phút đầu tiên được chấp nhận, thỏa luật RETURN đó. Bây giờ đã đạt đến mức đỉnh là 5 gói, lập tức Iptables sẽ giới hạn PING tới lo là 2 gói trên mỗi phút bất chấp có bao nhiêu gói được PING tới lo đi nữa. Nếu trong phút tới không có gói nào PING tới, Iptables sẽ giảm limit đi 2 gói tức là tốc độ đang là 2 gói/phút sẽ tăng lên 4 gói/phút. Nếu trong phút nữa không có gói đến, limit sẽ giảm đi 2 nữa là trở về lại trạng thái cũ chưa đạt đến mức đỉnh 5 gói. Quá trình cứ tiếp tục như vậy. Bạn chỉ cần nhớ đơn giản là khi đã đạt tới mức đỉnh, tốc độ sẽ bị giới hạn bởi tham số--limit. Nếu trong một đơn vị thời gian tới không có gói đến, tốc độ sẽ tăng lên đúng bằng --limit đến khi trở lại trạng thái chưa đạt mức --limit-burst thì thôi.

Để xem các luật trong Iptables bạn gõ lệnh $ iptables -L -nv (-L tất cả các luật trong tất cả các chain, table mặc định là filter, -n liệt kê ở dạng số, v để xem chi tiết)

# iptables -L -nv
Chain INPUT (policy ACCEPT 10 packets, 840 bytes)
pkts bytes target prot opt in out source destination
10 840 test icmp -- lo * 0.0.0.0/0 0.0.0.0/0 icmp type 8

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 15 packets, 1260 bytes)
pkts bytes target prot opt in out source destination

Chain test (1 references)
pkts bytes target prot opt in out source destination
5 420 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 limit: avg 2/min burst 5
5 420 DROP all -- * * 0.0.0.0/0 0.0.0.0/0
# iptables -Z reset counter
# iptables -F flush luật
# iptables -X xóa chain đã tạo

Redirect cổng

Iptables hổ trợ tùy chọn -j REDIRECT cho phép bạn đổi hướng cổng một cách dễ dàng. Ví dụ như SQUID đang listen trên cổng 3128/tcp. Để redirect cổng 80 đến cổng 3128 này bạn làm như sau:

# iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128

Lưu ý: tùy chọn -j REDIRECT cho có trong chain PREROUTING

SNAT & MASQUERADE

Để tạo kết nối `transparent` giữa mạng LAN 192.168.0.1 với Internet bạn lập cấu hình cho tường lửa Iptables như sau:

# echo 1 > /proc/sys/net/ipv4/ip_forward cho phép forward các packet qua máy chủ đặt Iptables
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 210.40.2.71 đổi IP nguồn cho các packet ra card mạng eth0 là 210.40.2.71. Khi nhận được packet vào từ Internet, Iptables sẽ tự động đổi IP đích 210.40.2.71 thành IP đích tương ứng của máy tính trong mạng LAN 192.168.0/24.

Hoặc bạn có thể dùng MASQUERADE thay cho SNAT như sau:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

(MASQUERADE thường được dùng khi kết nối đến Internet là pp0 và dùng địa chỉ IP động)

DNAT

Giả sử bạn đặt các máy chủ Proxy, Mail và DNS trong mạng DMZ. Để tạo kết nối trong suốt từ Internet vào các máy chủ này bạn là như sau:

# echo 1 > /proc/sys/net/ipv4/ip_forward
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j DNAT --to-destination 192.168.1.3
# iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to-destination 192.168.1.4

Phần II: Lập cấu hình Iptables cho máy chủ phục vụ Web

Phần này mình sẽ trình bày qua ví dụ cụ thể và chỉ hướng dẫn các bạn lọc packet vào. Các packet `forward` và 'output' bạn tự làm nha.

Giả sử như máy chủ phục vụ Web kết nối mạng trực tiếp vào Internet qua card mạng eth0, địa chỉ IP là 1.2.3.4. Bạn cần lập cấu hình tường lửa cho Iptables đáp ứng các yêu cầu sau:

- cổng TCP 80 (chạy apache) mở cho mọi người truy cập web
- cổng 21 (chạy proftpd) chỉ mở cho webmaster (dùng để upload file lên public_html)
- cổng 22 (chạy openssh) chỉ mở cho admin (cung cấp shell `root` cho admin để nâng cấp & patch lỗi cho server khi cần)
- cổng UDP 53 (chạy tinydns) để phục vụ tên miền (đây chỉ là ví dụ)
- chỉ chấp nhận ICMP PING tới với code=0x08, các loại packet còn lại đều bị từ chối.

Bước 1: thiết lập các tham số cho nhân

echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 > /proc/sys/net/ipv4/conf/eth0/accept_source_route

tcp_syncookies=1 bật chức năng chống DoS SYN qua syncookie của Linux
tcp_fin_timeout=10 đặt thời gian timeout cho quá trình đóng kết nối TCP là 10 giây
tcp_keepalive_time=1800 đặt thời gian giữ kết nối TCP là 1800 giây
...

Các tham số khác bạn có thể xem chi tiết trong tài liệu đi kèm của nhân Linux.

Bước 2: nạp các môđun cần thiết cho Iptables

Để sử dụng Iptables, bạn cần phải nạp trước các môđun cần thiết. Ví dụ nếu bạn muốn dùng chức năng LOG trong Iptables, bạn phải nạp môđun ipt_LOG vào trước bằng lệnh # modprobe ipt_LOG.

MODULES="ip_tables iptable_filter ipt_LOG ipt_limit ipt_REJECT ipt_state
for i in $MODULES; do
/sbin/modprobe $MODULES
done

Bước 3: nguyên tắc đặt luật là "drop trước, accept sau"

Đây là nguyên tắc mà bạn nên tuân theo. Đầu tiên hãy đóng hết các cổng, sau đó mở dần cách cổng cần thiết. Cách này tránh cho bạn gặp sai sót trong khi đặt luật cho Iptables.

iptables -P INPUT DROP thả packet trước

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT giữ các kết nối hiện tại và chấp nhận các kết nối có liên quan

iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT chấp nhận các gói vào looback từ IP 127.0.0.1
iptables -A INPUT -i lo -s 1.2.3.4 -j ACCEPT và 1.2.3.4

BANNED_IP="10.0.0.0/8 192.168.0.0/16 172.16.0.0/12 224.0.0.0/4 240.0.0.0/5"
for i in $BANNED_IP; do
iptables -A INPUT -i eth0 -s $i -j DROP thả các gói dữ liệu đến từ các IP nằm trong danh sách cấm BANNER_IP
done

Bước 4: lọc ICMP vào và chặn ngập lụt PING

LOG của Iptables sẽ được ghi vào file /var/log/firewall.log. Bạn phải sửa lại cấu hình cho SYSLOG như sau:

# vi /etc/syslog.conf
kern.=debug /var/log/firewall.log
# /etc/rc.d/init.d/syslogd restart

Đối với các gói ICMP đến, chúng ta sẽ đẩy qua chain CHECK_PINGFLOOD để kiểm tra xem hiện tại đamg bị ngập lụt PING hay không, sau đó mới cho phép gói vào. Nếu đang bị ngập lụt PING, môđun LOG sẽ tiến hành ghi nhật kí ở mức giới hạn --limit $LOG_LIMIT và --limit-burst $LOG_LIMIT_BURST, các gói PING ngập lụt sẽ bị thả hết.

LOG_LEVEL="debug"

LOG_LIMIT=3/m
LOG_LIMIT_BURST=1

PING_LIMIT=500/s
PING_LIMIT_BURST=100

iptables -A CHECK_PINGFLOOD -m limit --limit $PING_LIMIT --limit-burst $PING_LIMIT_BURST -j RETURN
iptables -A CHECK_PINGFLOOD -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=PINGFLOOD:warning a=DROP "
iptables -A CHECK_PINGFLOOD -j DROP

iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j CHECK_PINGFLOOD
iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT

Bước 5: reject quét cổng TCP và UDP

Ở đây bạn tạo sẵn chain reject quét cổng, chúng ta sẽ đẩy vào chain INPUT sau. Đối với gói TCP, chúng ta reject bằng gói TCP với cờ SYN=1 còn đối với gói UDP, chúng ta sẽ reject bằng gói ICMP `port-unreachable`

iptables-N REJECT_PORTSCAN
iptables-A REJECT_PORTSCAN -p tcp -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=PORTSCAN:tcp a=REJECT "
iptables-A REJECT_PORTSCAN -p udp -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=PORTSCAN:udp a=REJECT "
iptables-A REJECT_PORTSCAN -p tcp -j REJECT --reject-with tcp-reset
iptables-A REJECT_PORTSCAN -p udp -j REJECT --reject-with icmp-port-unreachable

Bước 6: phát hiện quét cổng bằng Nmap

iptables-N DETECT_NMAP
iptables-A DETECT_NMAP -p tcp --tcp-flags ALL FIN,URG,PSH -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:XMAS a=DROP "
iptables-A DETECT_NMAP -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:XMAS-PSH a=DROP "
iptables-A DETECT_NMAP -p tcp --tcp-flags ALL ALL -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:XMAS-ALL a=DROP "
iptables-A DETECT_NMAP -p tcp --tcp-flags ALL FIN -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:FIN a=DROP "
iptables-A DETECT_NMAP -p tcp --tcp-flags SYN,RST SYN,RST -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:SYN-RST a=DROP "
iptables-A DETECT_NMAP -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:SYN-FIN a=DROP "
iptables-A DETECT_NMAP -p tcp --tcp-flags ALL NONE -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=NMAP:NULL a=DROP "
iptables-A DETECT_NMAP -j DROP
iptables-A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DETECT_NMAP

Đối với các gói TCP đến eth0 mở kết nối nhưng không đặt SYN=1 chúng ta sẽ chuyển sang chain DETECT_NMAP. Đây là những gói không hợp lệ và hầu như là quét cổng bằng nmap hoặc kênh ngầm. Chain DETECT_NMAP sẽ phát hiện ra hầu hết các kiểu quét của Nmap và tiến hành ghi nhật kí ở mức --limit $LOG_LIMIT và --limit-burst $LOG_LIMIT_BURST. Ví dụ để kiểm tra quét XMAS, bạn dùng tùy chọn --tcp-flags ALL FIN,URG,PSH nghĩa là 3 cờ FIN, URG và PSH được bật, các cờ khác đều bị tắt. Các gói qua chain DETECT_NMAP sau đó sẽ bị DROP hết.

Bước 7: chặn ngập lụt SYN

Gói mở TCP với cờ SYN được set 1 là hợp lệ nhưng không ngoại trừ khả năng là các gói SYN dùng để ngập lụt. Vì vậy, ở dây bạn đẩy các gói SYN còn lại qua chain CHECK_SYNFLOOD để kiểm tra ngập lụt SYN như sau:

iptables-N CHECK_SYNFLOOD
iptables-A CHECK_SYNFLOOD -m limit --limit $SYN_LIMIT --limit-burst $SYN_LIMIT_BURST -j RETURN
iptables-A CHECK_SYNFLOOD -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=SYNFLOOD:warning a=DROP "
iptables-A CHECK_SYNFLOOD -j DROP
iptables-A INPUT -i eth0 -p tcp --syn -j CHECK_SYNFLOOD

Bước 8: giới hạn truy cập SSH cho admin

SSH_IP="1.1.1.1"
iptables -N SSH_ACCEPT
iptables -A SSH_ACCEPT -m state --state NEW -j LOG --log-level $LOG_LEVEL --log-prefix "fp=SSH:admin a=ACCEPT "
iptables -A SSH_ACCEPT -j ACCEPT
iptables -N SSH_DENIED
iptables -A SSH_DENIED -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=SSH:attempt a=REJECT "
iptables -A SSH_DENIED -p tcp -j REJECT --reject-with tcp-reset
for i in $SSH_IP; do
iptables -A INPUT -i eth0 -p tcp -s $i --dport 22 -j SSH_ACCEPT
done
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -j SSH_DENIED

Bước 9: giới hạn FTP cho web-master

FTP_IP="2.2.2.2"
iptables -N FTP_ACCEPT
iptables -A FTP_ACCEPT -m state --state NEW -j LOG --log-level $LOG_LEVEL --log-prefix "fp=FTP:webmaster a=ACCEPT "
iptables -A FTP_ACCEPT -j ACCEPT
iptables -N FTP_DENIED
iptables -A FTP_DENIED -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=FTP:attempt a=REJECT "
iptables -A FTP_DENIED -p tcp -j REJECT --reject-with tcp-reset
for i in $FTP_IP; do
iptables -A INPUT -i eth0 -p tcp -s $i --dport 21 -j FTP_ACCEPT
done
iptables -A INPUT -i eth0 -p tcp --dport 21 -m state --state NEW -j FTP_DENIED

Bước 10: lọc TCP vào

iptables -N TCP_INCOMING
iptables -A TCP_INCOMING -p tcp --dport 80 -j ACCEPT
iptables -A TCP_INCOMING -p tcp -j REJECT_PORTSCAN
iptables -A INPUT -i eth0 -p tcp -j TCP_INCOMING

Bước 11: lọc UDP vào và chặn ngập lụt UDP

iptables -N CHECK_UDPFLOOD
iptables -A CHECK_UDPFLOOD -m limit --limit $UDP_LIMIT --limit-burst $UDP_LIMIT_BURST -j RETURN
iptables -A CHECK_UDPFLOOD -m limit --limit $LOG_LIMIT --limit-burst $LOG_LIMIT_BURST -j LOG --log-level $LOG_LEVEL --log-prefix "fp=UDPFLOOD:warning a=DROP "
iptables -A CHECK_UDPFLOOD -j DROP
iptables -A INPUT -i eth0 -p udp -j CHECK_UDPFLOOD

iptables -N UDP_INCOMING
iptables -A UDP_INCOMING -p udp --dport 53 -j ACCEPT
iptables -A UDP_INCOMING -p udp -j REJECT_PORTSCAN
iptables -A INPUT -i eth0 -p udp -j UDP_INCOMING

Để hạn chế khả năng bị DoS và tăng cường tốc độ cho máy chủ phục vụ web, bạn có thể dùng cách tải cân bằng (load-balacing) như sau:

Cách 1: chạy nhiều máy chủ phục vụ web trên các địa chỉ IP Internet khác nhau. Ví dụ, ngoài máy chủ phục vụ web hiện tại 1.2.3.4, bạn có thể đầu tư thêm các máy chủ phục vụ web mới 1.2.3.2, 1.2.3.3, 1.2.3.4, 1.2.3.5. Điểm yếu của cách này là tốn nhiều địa chỉ IP Internet.

Cách 2: đặt các máy chủ phục vụ web trong một mạng DMZ. Cách này tiết kiệm được nhiều địa chỉ IP nhưng bù lại bạn gateway Iptables 1.2.3.4 - 192.168.0.254 có thể load nặng hơn trước và yêu cầu bạn đầu tư tiền cho đường truyền mạng từ gateway ra Internet.


Bạn dùng DNAT trên gateway 1.2.3.4 để chuyển tiếp các gói dữ liệu từ client đến một trong các máy chủ phục vụ web trong mạng DMZ hoặc mạng LAN như sau:

# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1-192.168.0.4
(Sưu tầm)