1. Trang chủ
  2. » Công Nghệ Thông Tin

TÌM HIỂU VỀ SHELL SCRIPTS

66 297 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 1,28 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Shell là một cầu nối giao tiếp giữa người dùng và hệ điều hành Linux Shell quét dòng lệnh đưa vào máy tính,cấu hình môi trường thực thi và tạo tiến trình để thực hiện lênh Nói cách khác,Shell như là một thông dịch lệnh :Shell là một cầu nối giao tiếp giữa người dùng và hệ điều hành Linux Shell quét dòng lệnh đưa vào máy tính,cấu hình môi trường thực thi và tạo tiến trình để thực hiện lênh Nói cách khác,Shell như là một thông dịch lệnh :

Trang 1

TÌM HIỂU VỀ

SHELL SCRIPTS

Trang 2

• Nội Dung

• 1.Tổng Quan

• 2.giới thiệu về shell script

• 3.cú pháp của shell script

• 4.các cấu trúc phức tạp

TÌM HIỂU VỀ SHELL SCRIPT

Trang 3

• Shell là gì ?

- Shell là một cầu nối giao tiếp giữa người dùng và hệ điều hành Linux

- Shell quét dòng lệnh đưa vào máy tính,cấu hình môi

trường thực thi và tạo tiến trình để thực hiện lênh

- Nói cách khác,Shell như là một thông dịch lệnh :

TÌM HIỂU VỀ SHELL SCRIPT

Trang 7

• Để xem hệ thống hỗ trợ những loại shell nào có thể dùng lệnh:

cat /etc/shells hoặc chsh –l

TÌM HIỂU VỀ SHELL SCRIPT

Trang 8

• Để xem hệ thống đang chạy shell dùng lệnh:

#echo $SHELL

TÌM HIỂU VỀ SHELL SCRIPT

Trang 9

• Chúng ta có thể thay đổi shell mặc định sang một shell khác với sự trợ giúp của lệnh chsh.

TÌM HIỂU VỀ SHELL SCRIPT

Trang 10

• Để soạn thảo 1 shell script có thể dùng các trình soạn thảo có sẵn như:

• vi ,emacs hoặc dùng lệnh cat

• Thực thi 1 shell script:

Trang 11

• Ví dụ:

TÌM HIỂU VỀ SHELL SCRIPT

Trang 12

TÌM HIỂU VỀ SHELL SCRIPT

Trang 13

Cú pháp ngôn ngữ shell

• Biến môi trường:

- HOME : đường dẫn thư mục riêng của người dùng,

- MAIL: đường dẫn thư mục chứa hộp thư người dùng,

- PATH: thư mục dùng để tìm các file thể hiện nội dung lệnh,

- PS1: dấu mời ban đầu của shell (ngầm định là $),

- PS2: dấu mời thứ 2 của shell (ngầm định là >),

- PWD: Thư mục hiện tại người dùng đang làm,

- SHELL: Đường dẫn của shell (/bin/sh hoặc /bin/ksh)

- TERM: Số hiệu gán cho trạm cuối,

- USER: Tên người dùng đã vào hệ thống,

TÌM HIỂU VỀ SHELL SCRIPT

Trang 14

• Cú Pháp Ngôn Ngữ Shell

• Biến tự động: Biến tự động (hay biến-chỉ đọc, tham số vị trí) là các biến do shell đã có sẵn; tên các biến này cho trước Có 10 biến tự động:

-$0,$1,$2,…$9

TÌM HIỂU VỀ SHELL SCRIPT

Trang 15

• Ví dụ :

• Cú Pháp Ngôn Ngữ Shell TÌM HIỂU VỀ SHELL SCRIPT

Trang 16

• Biến người dùng:

<tên biến> = <giá trị> :phép gán.

$<tên biến> :phép lấy giá trị.

-Ta có thể khai báo một biến nhưng nó có giá trị NULL như trong những cách sau:

Trang 17

• Khai Báo Biến Bằng Lệnh Declare :

-r (readonly):Khai báo biến chỉ có một giá trị ban đầu và không thay đổi được giá trị đó.

-i (integer): Khai báo biến kiểu nguyên.

-a (array) : Khai báo mảng.

-f (function) :Khai báo hàm.

-x (export):Khai báo biến bên ngoài môi trường.

-x var =$value:Khai báo giá trị ban đầu cho biến.

TÌM HIỂU VỀ SHELL SCRIPT

• Cú Pháp Ngôn Ngữ Shell

Trang 19

• Dấu huyền (`),dấu nháy đơn(‘ ’) và nháy kép (“ “).

• Cú Pháp Ngôn Ngữ Shell TÌM HIỂU VỀ SHELL SCRIPT

Trang 20

• Dấu huyền (`),dấu nháy đơn(‘ ’) và nháy kép (“ “).

• Cú Pháp Ngôn Ngữ Shell TÌM HIỂU VỀ SHELL SCRIPT

Trang 21

• Tính toán trong shell:

-Lệnh expr : Trong biểu thức, các toán tử và toán hạng phải cách nhau bởi khoảng trắng.

+ cộng - trừ

\* nhân / chia

• Cú Pháp Ngôn Ngữ Shell TÌM HIỂU VỀ SHELL SCRIPT

Trang 22

• Tính toán trong shell:

+ cộng - trừ

\* nhân / chia

**lưu ý:lệnh expr chỏ dùng cho tính toán trên số nguyên.

• Cú Pháp Ngôn Ngữ Shell TÌM HIỂU VỀ SHELL SCRIPT

Trang 23

• Tính toán trong shell:

-để tính toán trên số thực ta phải dùng lệnh |bc

• Cú Pháp Ngôn Ngữ Shell TÌM HIỂU VỀ SHELL SCRIPT

Trang 24

• Vòng lặp for: Thi hành một hoặc nhiều lệnh trong một số

cố định lận.

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 25

• Vòng lặp for: Thi hành một hoặc nhiều lệnh trong một số

cố định lận.

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 26

• Vòng lặp while: Thi hành một hoặc nhiều câu lệnh cho đến khi một điều kiện nào đó trở thành true hoặc false.

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 27

• Vòng lặp while:

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 28

• Vòng lặp until: Thi hành một hoặc nhiều câu lệnh cho đến khi một điều kiện nào đó trở thành true hoặc false.

• Lưu ý: điều kiện ở đây ngược với điều kiện của vòng lặp while.

until [<điều kiện>]

Trang 29

• Vòng lặp until:

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 30

• Cấu trúc rẽ nhánh if …else : Thi hành một hoặc nhiều câu lệnh nếu có điều kiện là true hoặc false.

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 31

• Cấu trúc rẽ nhánh if …else :

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 32

• Cấu trúc lựa chọn case : cấu trúc hoạt động tương tự như lệnh switch của C Nó cho phép thực hiện các khổi lệnh phụ thuộc vào giá trị của biến.

Trang 33

• Cấu trúc lựa chọn case

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 34

• Cấu trúc lựa chọn case

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 35

• Hàm: có chức năng mở rộng các tiện ích có sẵn trong

shell, nó có đặc điểm lợi sau:

• + Thi hành nhanh hơn do các hàm shell luôn thường trực trong bộ nhớ.

• + Cho phép lập trình trở nên dễ dàng hơn vì có thể tổ

chức chương trình thành các module.

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 39

• Hàm.

-Biến toàn cục : khi không có khai báo local thì được xem là biến toàn cục Biến toàn cục được nhìn thấy và thay đổi vởi tất cả các hàm trong script.

Vd:

• Cấu Trúc Phức Tạp TÌM HIỂU VỀ SHELL SCRIPT

Trang 41

Sử dụng các toán tử:

• Toán tử So sánh số:

Trang 42

• Toán tử so sánh chuỗi:

So sánh chuỗi Toán tử: Ý nghĩa

string1 = string 2: string 1

-z string: string NULL

• Sử Dụng Toán Tử TÌM HIỂU VỀ SHELL SCRIPT

Trang 43

• Toán tử string:Các toán tử string, cũng được gọi là các toán tử thay thế trong tài liệu về bash, kiểm tra giá trị của biến là chưa gán giá trị hoặc khộng xác định:

• Sử Dụng Toán Tử TÌM HIỂU VỀ SHELL SCRIPT

Trang 44

• Sử Dụng Toán Tử TÌM HIỂU VỀ SHELL SCRIPT

Trang 45

Giảng viên:Th.S Trần Mạnh Hùng

IPTABLES

Trang 46

1 Giới Thiệu

Iptables do Netfilter Organiztion viết ra để tăng tính năng bảo mật trên

hệ thống Linux.Iptables cung cấp các tính năng sau:

 Tích hợp tốt với kernel của Linux

 Có khả năng phân tích package hiệu quả

 Lọc package dựa vào MAC và một số cờ hiệu trong TCP Heade

 Cung cấp chi tiết các tùy chọn để ghi nhận sự kiện hệ thống

 Cung cấp kỹ thuật NAT

 Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS

Trang 47

1 Iptables là gì ?

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 ở nhân Linux và Iptables nằm ngoài nhân Iptables chịu trách nhiệm giũa người dùng và Netfilter để đẩy các luật của người dùng vào cho Netfilter 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

Trang 48

2 Cài Đặt

Iptables được cài đặt mặc định trong hệ thống Linux, package của

iptables là iptables-version.rpm hoặc iptables-version.tgz …, ta có thể dùng lệnh để cài đặt package này:

$ rpm –ivh iptables-version.rpm đối Red Hat

$ apt-get install iptables đối với Debian

- Khởi động iptables: service iptables start

- Tắt iptables: service iptables stop

- Tái khởi động iptables: service iptables restart

- Xác định trạng thái iptables: service iptables status

Trang 49

3 Cơ Chế Xử Lý Package Trong Iptables

- Iptables sẽ kiểm tra tất cả các package khi nó đi qua iptables host, quá trình kiểm tra này được thực hiện một cách tuần tự entry đầu tiên đến entry cuối cùng

- Có ba loại bảng trong iptables:

- Mangle table: chịu trách nhiệm biến đổi quality of service bits

trong TCP header Thông thường loại table này được ứng dụng trong SOHO (Small Office/Home Office)

Trang 50

3 Cơ Chế Xử Lý Package Trong Iptables (tt)

- Filter queue: chịu trách nhiệm thiết lập bộ lọc packet

(packet filtering), có ba loại built in chains được mô tả để thực hiện các chính sách về firewall (firewall policy rules)

+ Forward chain: Cho phép packet nguồn chuyển qua

firewall

+ Input chain: Cho phép những gói tin đi vào từ firewall + Output chain: Cho phép những gói tin đi ra từ firewall.

- NAT queue: thực thi chức năng NAT (Network Address

Translation), cung cấp hai loại built-in chains sau đây:

Trang 51

3 Cơ Chế Xử Lý Package Trong Iptables (tt)

- Pre-routing chain: NAT từ ngoài vào trong nội bộ Quá trình NAT

sẽ thực hiện trước khi khi thực thi cơ chế routing Điều này thuận lợi cho việc đổi địa chỉ đích để địa chỉ tương thích với bảng định tuyến của firewall, khi cấu hình ta có thể dùng khóa DNAT để mô

tả kỹ thuật này

- Post-routing chain: NAT từ trong ra ngoài Quá trình NAT sẽ thực

hiện sau khi thực hiện cơ chế định tuyến Quá trình này nhằm thay đổi địa chỉ nguồn của gói tin Kỹ thuật này được gọi là NAT one-to-one hoặc many-to-one, được gọi là Source NAT hay SNAT

- OUPUT: Trong loại này firewall thực hiện quá trình NAT.

Trang 52

4 Target và Jumps

- Jump là cơ chế chuyển một packet đến một target nào đó để xử lý

thêm một số thao tác khác

- Target là cơ chế hoạt động trong iptables, dùng để nhận diện và

kiểm tra packet Các target được xây dựng sẵn trong iptables như:

- ACCEPT: iptables chấp nhận chuyển data đến đích.

- DROP: iptables khóa những packet.

- LOG: thông tin của packet sẽ gởi vào syslog daemon iptables

tiếp tục xử lý luật tiếp theo trong bảng mô tả luật Nếu luật cuối cùng không match thì sẽ drop packet Với tùy chọn thông dụng là log-prefix=”string”, tức iptables sẽ ghi nhận lại

những message bắt đầu bằng chuỗi “string”

Trang 53

4 Target và Jumps(tt)

- REJECT: ngăn chặn packet và gởi thông báo cho sender Với tùy

chọn thông dụng là reject-with qualifier , tức qualifier chỉ định loại reject message sẽ được gởi lại cho người gởi Các loại

qualifer sau: icmp-port-unreachable (default),

icmp-net-unreachable, icmp-host-icmp-net-unreachable, icmp-proto-icmp-net-unreachable, …

- DNAT: thay đổi địa chỉ đích của packet Tùy chọn là

Trang 54

5 Thực Hiện Lệnh Trong Iptables

 -t <table>:Chỉ định bảng cho iptables bao gồm: filter, nat,

mangle tables

 -j <target>:Nhảy đến một target chain khi packet thỏa luật hiện

tại

 -A : Thêm luật vào cuối iptables chain.

 -F : Xóa tất cả các luật trong bảng lựa chọn.

 -p <protocol-type> : Mô tả các giao thức bao gồm: icmp,

tcp, udp và all

 -s <ip-address> : Chỉ định địa chỉ nguồn

 -i <interface-name>: Chỉ định “input” interface nhận packet

 -o <interface-name>:Chỉ định “output” interface chuyển

packet ra ngoài

Trang 55

#iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p TCP -j ACCEPT

Trang 56

5 Thực Hiện Lệnh Trong Iptables(tt)

 Ví dụ: Iptables được cấu hình cho phép firewall chấp nhận các gói dữ liệu có giao tiếp (protocols) là TCP , đến từ card mạng eth0 , có bất kỳ địa chỉ IP nguồn là bất kỳ , đi đến địa chỉ 192.168.1.58 qua card mạng eth1 Số port nguồn là từ 1024 đến 65535 và port đích là 80 (www/http).

#iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP sport 1024:65535 dport 80 -j ACCEPT

Trang 57

5 Thực Hiện Lệnh Trong Iptables(tt)

 Ví dụ: Iptables được cấu hình cho phép firewall chấp nhận gởi ICMP requests(pings) và gởi trả các ICMP echo-replies

#iptables -A INPUT -p icmp icmp-type echo-reply -j ACCEPT

Trang 58

6 Sử Dụng Chain Tự Định Nghĩa

• Thay vì sử dụng các chain đã được xây dựng trong iptables, ta có thể sử dụng Use Defined chains để định nghĩa một chain name mô tả cho tất cả protocol-type cho packet Ta có thể dùng User Defined chains thay thế chain dài dòng bằng cách

sử dụng chain chính chỉ đến nhiều chain con

Trang 59

7 NAT

- Dynamic NAT : Là một kỹ thuật chuyển đổi IP NAT (Network Address Translation) Các địa chỉ IP nội bộ được chuyển sang IP NAT như sau:

Trang 60

7 NAT

- Dynamic NAT: NAT Router đảm nhận việc chuyển dãy IP nội bộ

192.168.0.x sang dãy IP mới 210.40.2.71 Khi có gói liệu với IP nguồn là

192.168.0.x đến router, router sẽ đổi IP nguồn thành 210.40.2.71sau đó 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à 210.40.2.71, router sẽ căn cứ vào bảng NAT

động hiện tại để đổi địa chỉ đích 210.40.2.71 thành địa chỉ đích mới là

192.168.0.x Quá trình này gọi là DNAT (Destination-NAT, NAT đích) Liên lạc giữa 192.168.0.x và 210.40.2.71là 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.x đến 210.40.2.71và ngược lại.

Trang 62

7 NAT

• DNAT

# 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

Trang 63

7 NAT

- Masquerade: Là một kỹ thuật khác trong NAT (Network Address Translation) Các địa chỉ IP nội bộ được chuyển sang IP NAT như sau:

Trang 64

7 NAT

- Các bước cấu hình Masquerade :

Cho phép forward các packet qua máy chủ đặt Iptables

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

B2: Đổi dãy ip nội bộ 192.186.1.0/24

# iptables -A POSTROUTING -t nat -o eth0 -s 192.168.1.0/24 -d 0/0 -j MASQUERADE

Trang 66

IPTABLES

Ngày đăng: 19/03/2018, 09:48

TỪ KHÓA LIÊN QUAN

w