Thứ Ba, 23 tháng 6, 2015

Tấn công DoS và DDoS toàn tập


I. Lịch sử của tấn công DoS
1. Mục tiêu
- Mục tiêu các cuộc tấn công thường vào các trang web lớn và các tổ chức thương mại điện tử trên Internet.
2. Các cuộc tấn công.
- Vào ngày 15 tháng 8 năm 2003, Microsoft đã chịu đợt tấn công DoS cực mạnh và làm gián đoạn websites trong vòng 2 giờ.
- Vào lúc 15:09 giờ GMT ngày 27 tháng 3 năm 2003: toàn bộ phiên bản tiếng anh của website Al-Jazeera bị tấn công làm gián đoạn trong nhiều giờ
II. Định nghĩa về tấn công DoS
Tấn công DoS là kiểu tấn công vô cùng nguy hiểm, để hiểu được nó ta cần phải lắm rõ định nghĩa của tấn công DoS và các dạng tấn công DoS.
- Tấn công DoS là một kiểu tấn công mà một người làm cho một hệ thống không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống.
- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục vụ người dùng bình thường đó là tấn công Denial of Service (DoS).
Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệ thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp. Như định nghĩa trên DoS khi tấn công vào một hệ thống sẽ khai thác những cái yếu nhất của hệ thống để tấn công, những mục đích của tấn công DoS:
1. Các mục đích của tấn công DoS
- Cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood), khi đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ khác cho người dùng bình thường.
- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cập vào dịch vụ.
- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó
- Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truy cập vào.
- Khi tấn công DoS xảy ra người dùng có cảm giác khi truy cập vào dịch vụ đó như bị:
+ Disable Network - Tắt mạng
+ Disable Organization - Tổ chức không hoạt động
+ Financial Loss – Tài chính bị mất
2. Mục tiêu mà kẻ tấn công thường sử dụng tấn công DoS
Như chúng ta biết ở bên trên tấn công DoS xảy ra khi kẻ tấn công sử dụng hết tài nguyên của hệ thống và hệ thống không thể đáp ứng cho người dùng bình thường được vậy các tài nguyên chúng thường sử dụng để tấn công là gì:
- Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên
- Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, và CPU Time hay cấu trúc dữ liệu đều là mục tiêu của tấn công DoS.
- Tấn công vào hệ thống khác phục vụ cho mạng máy tính như: hệ thống điều hoà, hệ thống điện, hệt hống làm mát và nhiều tài nguyên khác của doanh nghiệp. Bạn thử tưởng tượng khi nguồn điện vào máy chủ web bị ngắt thì người dùng có thể truy cập vào máy chủ đó không.
- Phá hoại hoặc thay đổi các thông tin cấu hình.
- Phá hoại tầng vật lý hoặc các thiết bị mạng như nguồn điện, điều hoà…
III. Các dạng tấn công
Tấn công Denial of Service chia ra làm hai loại tấn công
- Tấn công DoS: Tấn công từ một cá thể, hay tập hợp các cá thể.
- Tấn công DDoS: Đây là sự tấn công từ một mạng máy tính được thiết kế để tấn công tới một đích cụ thể nào đó.
1. Các dạng tấn công DoS
- Smurf
- Buffer Overflow Attack
- Ping of Death
- Teardrop
- SYN Attack
a. Tấn công Smurf
- Là thủ phạm sinh ra cực nhiều giao tiếp ICMP (ping) tới địa chỉ Broadcast của nhiều mạng với địa chỉ nguồn là mục tiêu cần tấn công.
* Chúng ta cần lưu ý là: Khi ping tới một địa chỉ là quá trình hai chiều – Khi máy A ping tới máy B máy B reply lại hoàn tất quá trình. Khi tôi ping tới địa chỉ Broadcast của mạng nào đó thì toàn bộ các máy tính trong mạng đó sẽ Reply lại tôi. Nhưng giờ tôi thay đổi địa chỉ nguồn, thay địa chỉ nguồn là máy C và tôi ping tới địa chỉ Broadcast của một mạng nào đó, thì toàn bộ các máy tính trong mạng đó sẽ reply lại vào máy C chứ không phải tôi và đó là tấn công Smurf.
- Kết quả đích tấn công sẽ phải chịu nhận một đợt Reply gói ICMP cực lớn và làm cho mạng bị dớt hoặc bị chậm lại không có khả năng đáp ứng các dịch vụ khác.
- Quá trình này được khuyếch đại khi có luồng ping reply từ một mạng được kết nối với nhau (mạng BOT).
- tấn công Fraggle, chúng sử dụng UDP echo và tương tự như tấn công Smurf.
Hình hiển thị tấn công DoS - dạng tấn công Smurf sử dụng gói ICMP làm ngập các giao tiếp khác.
b. Tấn công Buffer overflow.
- Buffer Overflow xảy ra tại bất kỳ thời điểm nào có chương trình ghi lượng thông tin lớn hơn dung lượng của bộ nhớ đệm trong bộ nhớ.
- Kẻ tấn công có thể ghi đè lên dữ liệu và điều khiển chạy các chương trình và đánh cắp quyền điều khiển của một số chương trình nhằm thực thi các đoạn mã nguy hiểm. - Tấn công Buffer Overflow tôi đã trình bày cách khai thác lỗi này trong bài viết trước về hacking windows cũng trên trang www.vnexperts.net.
- Quá trình gửi một bức thư điện tử mà file đính kèm dài quá 256 ký tự có thể sẽ xảy ra quá trình tràn bộ nhớ đệm.
c. Tấn công Ping of Death
- Kẻ tấn công gửi những gói tin IP lớn hơn số lương bytes cho phép của tin IP là 65.536 bytes.
- Quá trình chia nhỏ gói tin IP thành những phần nhỏ được thực hiện ở layer II.
- Quá trình chia nhỏ có thể thực hiện với gói IP lớn hơn 65.536 bytes. Nhưng hệ điều hành không thể nhận biết được độ lớn của gói tin này và sẽ bị khởi động lại, hay đơn giản là sẽ bị gián đoạn giao tiếp.
- Để nhận biết kẻ tấn công gửi gói tin lớn hơn gói tin cho phép thì tương đối dễ dàng.
d. Tấn công Teardrop
- Gói tin IP rất lớn khi đến Router sẽ bị chia nhỏ làm nhiều phần nhỏ.
- Kẻ tấn công sử dụng sử dụng gói IP với các thông số rất khó hiểu để chia ra các phần nhỏ (fragment).
- Nếu hệ điều hành nhận được các gói tin đã được chia nhỏ và không hiểu được, hệ thống cố gắng build lại gói tin và điều đó chiếm một phần tài nguyên hệ thống, nếu quá trình đó liên tục xảy ra hệ thống không còn tài nguyên cho các ứng dụng khác, phục vụ các user khác.
e. Tấn công SYN
- Kẻ tấn công gửi các yêu cầu (request ảo) TCP SYN tới máy chủ bị tấn công. Để xử lý lượng gói tin SYN này hệ thống cần tốn một lượng bộ nhớ cho kết nối.
- Khi có rất nhiều gói SYN ảo tới máy chủ và chiếm hết các yêu cầu xử lý của máy chủ. Một người dùng bình thường kết nối tới máy chủ ban đầu thực hiện Request TCP SYN và lúc này máy chủ không còn khả năng đáp lại - kết nối không được thực hiện.
- Đây là kiểu tấn công mà kẻ tấn công lợi dụng quá trình giao tiếp của TCP theo – Three-way.
- Các đoạn mã nguy hiểm có khả năng sinh ra một số lượng cực lớn các gói TCP SYN tới máy chủ bị tấn công, địa chỉ IP nguồn của gói tin đã bị thay đổi và đó chính là tấn công DoS.
- Hình bên trên thể hiện các giao tiếp bình thường với máy chủ và bên dưới thế hiện khi máy chủ bị tấn công gói SYN đến sẽ rất nhiều trong khi đó khả năng trả lời của máy chủ lại có hạn và khi đó máy chủ sẽ từ chối các truy cập hợp pháp.
- Quá trình TCP Three-way handshake được thực hiện: Khi máy A muốn giao tiếp với máy B. (1) máy A bắn ra một gói TCP SYN tới máy B – (2) máy B khi nhận được gói SYN từ A sẽ gửi lại máy A gói ACK đồng ý kết nối – (3) máy A gửi lại máy B gói ACK và bắt đầu các giao tiếp dữ liệu.
- Máy A và máy B sẽ dữ kết nối ít nhất là 75 giây, sau đó lại thực hiện một quá trình TCP Three-way handshake lần nữa để thực hiện phiên kết nối tiếp theo để trao đổi dữ liệu.
- Thật không may kẻ tấn công đã lợi dụng kẽ hở này để thực hiện hành vi tấn công nhằm sử dụng hết tài nguyên của hệ thống bằng cách giảm thời gian yêu cầu Three-way handshake xuống rất nhỏ và không gửi lại gói ACK, cứ bắn gói SYN ra liên tục trong một thời gian nhất định và không bao giờ trả lời lại gói SYN&ACK từ máy bị tấn công.
- Với nguyên tắc chỉ chấp nhận gói SYN từ một máy tới hệ thống sau mỗi 75 giây nếu địa chỉ IP nào vi phạm sẽ chuyển vào Rule deny access sẽ ngăn cản tấn công này.
IV. Các công cụ tấn công DoS
- Jolt2
- Bubonic.c
- Land and LaTierra
- Targa
- Blast20
- Nemesy
- Panther2
- Crazy Pinger
- Some Trouble
- UDP Flood
- FSMax
1. Tools DoS – Jolt2
- Cho phép kẻ tấn từ chối dịch vụ (DoS) lên các hệ thống trên nền tảng Windows
- Nó là nguyên nhân khiên máy chủ bị tấn công có CPU luôn hoạt động ở mức độ 100%, CPU không thể xử lý các dịch vụ khác.
- Không phải trên nền tảng Windows như Cisco Router và một số loại Router khác cũng có thể bị lỗ hổng bảo mật này và bị tools này tấn công.
2. Tools DoS: Bubonic.c
- Bubonic.c là một tools DoS dựa vào các lỗ hổng bảo mật trên Windows 2000
- Nó hoạt động bằng cách ngẫu nhiên gửi các gói tin TCP với các thiết lập ngẫu nhiên làm cho máy chủ tốn rất nhiều tài nguyên để xử lý vấn đề này, và từ đó sẽ xuất hiện những lỗ hổng bảo mật.
- Sử dụng bubonic.c bằng cách gõ câu lệnh: bubonic 12.23.23.2 10.0.0.1 100
3. Tools DoS: Land and LaTierra
- Giả mạo địa chỉ IP được kết hợp với quá trình mở các kết nối giữa hai máy tính.
- Cả hai địa chỉ IP, địa chỉ nguồn (source) và địa chỉ IP đích, được chỉnh sửa thành một địa chỉ của IP đích khi đó kết nối giữa máy A và máy B đang được thực hiện nếu có tấn công này xảy ra thì kết nối giữa hai máy A và B sẽ bị ngắt kết nối.
- Kết quả này do địa chỉ IP nguồn và địa chỉ IP đích của gói tin giống nhau và gói tin không thể đi đến đích cần đến.
4. Tools DoS: Targa
- Targa là một chương chình có thể sử dụng 8 dạng tấn công DoS khác nhau.
- Nó được coi như một bộ hướng dẫn tích hợp toàn bộ các ảnh hưởng của DoS và thường là các phiên bản của Rootkit.
- Kẻ tấn công sử dụng một trong các phương thức tấn công cụ thể tới một hệ thống bao giờ đạt được mục đích thì thôi.
- Targa là một chương trình đầy sức mạnh và nó có khả năng tạo ra một sự nguy hiểm rất lớn cho hệ thống mạng của một công ty.
5. Tools DoS Blast 2.0
- Blast rất nhỏ, là một công cụ dùng để kiểm tra khả năng của dịch vụ TCP nó có khả năng tạo ra một lưu lượng rất lớn gói TCP và có thể sẽ gay nguy hiểm cho một hệ thống mạng với các server yếu.
- Dưới đây là cách sử dụng để tấn công HTTP Server sử dụng Blast2.0
+ Blast 192.168.1.219 80 40 50 /b "GET /some" /e "url/ HTTP/1.0" /nr /dr /v
- Tấn công máy chủ POP
+ Blast 192.168.1.219 110 15 20 /b "user te" /e "d" /v
6. Tools DoS – Nemesys
- Đây là một chương trình sinh ra những gói tin ngẫu nhiên như (protocol, port, etc. size, …)
- Dựa vào chương trình này kẻ tấn công có thể chạy các đoạn mã nguy hiểm vào máy tính không được bảo mật.
7. Tool DoS – Panther2.
- Tấn công từ chối dịch vụ dựa trên nền tảng UDP Attack được thiết kế dành riêng cho kết nối 28.8 – 56 Kbps.
- Nó có khả năng chiếm toàn bộ băng thông của kết nối này.
- Nó có khả năng chiếm băng thông mạng bằng nhiều phương pháp ví như thực hiện quá trình Ping cực nhanh và có thể gây ra tấn công DoS
8. Tool DoS – Crazy Pinger
- Công cụ này có khả năng gửi những gói ICPM lớn tới một hệ thống mạng từ xa.
9. Tool DoS – Some Trouble
- SomeTrouble 1.0 là một chương trình gây nghẽn hệ thống mạng
- SomeTrouble là một chương trình rất đơn giản với ba thành phần
+ Mail Bomb (tự có khả năng Resole Name với địa chỉ mail có)
+ ICQ Bomb
+ Net Send Flood
10. DoS Tools – UDP Flood
- UDPFlood là một chương trình gửi các gói tin UDP
- Nó gửi ra ngoài những gói tin UDP tới một địac hỉ IP và port không cố định
- Gói tin có khả năng là một đoạn mã văn bản hay một số lượng dữ liệu được sinh ngẫu nhiên hay từ một file.
- Được sử dụng để kiểm tra khả năng đáp ững của Server
11. Tools DoS – FSMAX
- Kiểm tra hiệu năng đáp ứng của máy chủ.
- Nó tạo ra một file sau đó chạy trên Server nhiều lần lặp đi lặp lại một lúc.
- Tác dụng của tools này là tìm cách tấn công làm chàn bộ nhớ đệm và tấn công DoS tới máy chủ.
V. Kết luận phần I.
- Khi sử dụng một Tool tấn công DoS tới một máy chủ đôi khi không gây ảnh hưởng gì cho máy chủ - Giả sử bạn sử dụng tool Ping of Death tới một máy chủ, trong đó máy chủ kết nối với mạng tốc độ 100Mbps bạn kết nối tới máy chủ tốc độ 3Mbps - Vậy tấn công của bạn không có ý nghĩa gì.
- Nhưng bạn hãy tưởng tượng có 1000 người như bạn cùng một lúc tấn công vào máy chủ kia khi đó toàn bộ băng thông của 1000 người cộng lại tối đa đạt 3Gbps và tốc độ kết nối của máy chủ là 100 Mbps vậy kết quả sẽ ra sao các bạn có khả năng tưởng tượng.
- Trong phần II của loạt bài viết tôi sẽ trình bày với các bạn những nội dung về định nghĩa BOT, BOTNET, cách xây dựng, cách sử dụng các BOTNET từ đó chúng ta hiểu cách hoạt động và tìm ra những giải pháp để chống tấn công DDoS một cách hiệu quả nhất.
 

Scan Port toàn tập với công cụ nmap


I. Nguyên tắc truyền thông tin TCP/IP
1. Cấu tạo gói tin TCP



Trong bài viết này tôi chỉ chú trọng tới các thiết lập Flag trong gói tin TCP nhằm mục đích sử dụng để Scan Port:
- Thông số SYN để yêu cầu kết nối giữa hai máy tính
- Thông số ACK để trả lời kết nối giữa hai máy có thể bắt đầu được thực hiện
- Thông số FIN để kết thúc quá trình kết nối giữa hai máy
- Thông số RST từ Server để nói cho Client biết rằng giao tiếp này bị cấm (không thể sử dụng)
- Thông số PSH sử dụng kết hợp với thông số URG
- Thông số URG sử dụng để thiết lập độ ưu tiên cho gói tin này.
à Thật ra toàn bộ các thông số này trong gói tin nó chỉ thể hiện là 1 hoặc 0 nếu là 0 thì gói tin TCP không thiết lập thông số này, nếu là 1 thì thông số nào đó được thực hiện nó sẽ lần lượt trong 8 bits trong phần Flag.
2. Khi Client muốn thực hiện một kết nối TCP với Server đầu tiên:


+ Bước I: Client bắn đến Server một gói tin SYN
+ Bước II: Server trả lời tới Client một gói tin SYN/ACK
+ Bước III: Khi Client nhận được gói tin SYN/ACK sẽ gửi lại server một gói ACK – và quá trình trao đổi thông tin giữa hai máy bắt đầu.
3. Khi Client muốn kết thúc một phiên làm việc với Server


+ Bước I: Client gửi đến Server một gói tin FIN ACK
+ Bước II: Server gửi lại cho Client một gói tin ACK
+ Bước III: Server lại gửi cho Client một gói FIN ACK
+ Bước IV: Client gửi lại cho Server gói ACK và quá trình ngắt kết nối giữa Server và Client được thực hiện.
II. Nguyên tắc Scan Port trên một hệ thống.
1. TCP Scan
Trên gói TCP/UDP có 16 bit dành cho Port Number điều đó có nghĩa nó có từ 1 – 65535 port. Không một hacker nào lại scan toàn bộ các port trên hệ thống, chúng chỉ scan những port hay sử dụng nhất thường chỉ sử dụng scan từ port 1 tới port 1024 mà thôi.
Phần trên của bài viết tôi đã trình bày với các bạn nguyên tắc tạo kết nối và ngắt kết nối giữa hai máy tính trên mạng. Dựa vào các nguyên tắc truyền thông tin của TCP tôi có thể Scan Port nào mở trên hệ thống bằng nhưng phương thức sau đây:
- SYN Scan: Khi Client bắn gói SYN với một thông số Port nhất định tới Server nếu server gửi về gói SYN/ACK thì Client biết Port đó trên Server được mở. Nếu Server gửi về cho Client gói RST/SYN tôi biết port đó trên Server đóng.
- FIN Scan: Khi Client chưa có kết nối tới Server nhưng vẫn tạo ra gói FIN với số port nhất định gửi tới Server cần Scan. Nếu Server gửi về gói ACK thì Client biết Server mở port đó, nếu Server gửi về gói RST thì Client biết Server đóng port đó.
- NULL Scan Sure: Client sẽ gửi tới Server những gói TCP với số port cần Scan mà không chứa thông số Flag nào, nếu Server gửi lại gói RST thì tôi biết port đó trên Server bị đóng.
- XMAS Scan Sorry: Client sẽ gửi những gói TCP với số Port nhất định cần Scan chứa nhiều thông số Flag như: FIN, URG, PSH. Nếu Server trả về gói RST tôi biết port đó trên Server bị đóng.
- TCP Connect: Phương thức này rất thực tế nó gửi đến Server những gói tin yêu cầu kết nối thực tế tới các port cụ thể trên server. Nếu server trả về gói SYN/ACK thì Client biết port đó mở, nếu Server gửi về gói RST/ACK Client biết port đó trên Server bị đóng.
- ACK Scan: dạng Scan này nhằm mục đích tìm những Access Controll List trên Server. Client cố gắng kết nối tới Server bằng gói ICMP nếu nhận được gói tin là Host Unreachable thì client sẽ hiểu port đó trên server đã bị lọc.
Có vài dạng Scan cho các dịch vụ điển hình dễ bị tấn công như:
- RPC Scan: Cố gắng kiểm tra xem hệ thống có mở port cho dịch vụ RPC không.
- Windows Scan tương tự như ACK Scan, nhưng nó có thể chỉ thực hiện trên một số port nhất định.
- FTP Scan: Có thể sử dụng để xem dịch vụ FTP có được sử dụng trên Server hay không
- IDLE cho phép kiểm tra tình trạng của máy chủ.
2. UDP Scan.
Nếu như gói tin truyền bằng TCP để đảm bảo sự toàn vẹn của gói tin sẽ luôn được truyền tới đích. Gói tin truyền bằng UDP sẽ đáp ứng nhu cầu truyền tải dữ liệu nhanh với các gói tin nhỏ. Với quá trình thực hiện truyền tin bằng TCP kẻ tấn công dễ dàng Scan được hệ thống đang mở những port nào dựa trên các thông số Flag trên gói TCP.
Cấu tạo gói UDP

Như ta thấy gói UDP không chứa các thông số Flag, cho nên không thể sử dụng các phương thức Scan port của TCP sử dụng cho UDP được. Thật không may hầu hết hệ thống đều cho phép gói ICMP.
Nếu một port bị đóng, khi Server nhận được gói ICMP từ client nó sẽ cố gắng gửi một gói ICMP type 3 code 3 port với nội dung là "unreachable" về Client. Khi thực hiện UDP Scan bạn hãy chuẩn bị tinh thần nhận được các kết quả không có độ tin cây cao.
III. Scan Port với Nmap.
Nmap là một tool scan port rất mạnh và đã nổi danh từ lâu được giới hacker tin dùng. Nó hỗ trợ toàn bộ các phương thức scan port, ngoài ra nó còn hỗ trợ các phương thức scan hostname, service chạy trên hệ thống đó….
Nmap hiện giờ có cả giao diện đồ hoạ và giao diện command line cho người dùng, chạy trên cả môi trường .NIX và Windows.
Phần mềm nmap miễn phí các bạn download tại địa chỉ: http://nmap.org/download.html
Dưới đây là cách sử dụng Nmap để scan
*******************************************
C:\nmap-3.93>nmap -h
Nmap 3.93 Usage: nmap [Scan Type(s)] [Options] <host or net list>
Some Common Scan Types ('*' options require root privileges)
* -sS TCP SYN stealth port scan (default if privileged (root))
-sT TCP connect() port scan (default for unprivileged users)
* -sU UDP port scan
-sP ping scan (Find any reachable machines)
* -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only)
-sV Version scan probes open ports determining service and app names/versions
-sR/-I RPC/Identd scan (use with other scan types)
Some Common Options (none are required, most can be combined):
* -O Use TCP/IP fingerprinting to guess remote operating system
-p <range> ports to scan. Example range: '1-1024,1080,6666,31337'
-F Only scans ports listed in nmap-services
-v Verbose. Its use is recommended Use twice for greater effect.
-P0 Don't ping hosts (needed to scan www.microsoft.com and others)
* -Ddecoy_host1,decoy2[,...] Hide scan using many decoys
-6 scans via IPv6 rather than IPv4
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane > General timing policy
-n/-R Never do DNS resolution/Always resolve [default: sometimes resolve]
-oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile>
-iL <inputfile> Get targets from file; Use '-' for stdin
* -S <your_IP>/-e <devicename> Specify source address or network interface
--interactive Go into interactive mode (then press h for help)
--win_help Windows-specific features

************************************************** *************
Nmap Scan
a. Các dạng Scan nmap hỗ trợ.
Nmap –sT: trong đó chữ s – là Scan, còn chữ T là dạng TCP scan
Nmap –sU: đó là sử dụng UDP Scan
Nmap –sP: sử dụng Ping để scan
Nmap –sF: sử dụng FIN Scan
Nmap –sX: sử dụng phương thức XMAS Scan
Nmap –sN: sử dụng phương thức NULL Scan
Nmap –sV: sử dụng để Scan tên các ứng dụng và version của nó
Nmap –SR /I RPC sử dụng để scan RPC
b. Các option cao cấp kết hợp với các dạng Scan trong Nmap.
- O: sử dụng để biết hệ điều hành chạy trên máy chủ ví như ta dùng Nmap sử dụng phương thức scan là XMAS Scan và đoán biết hệ điều hành của: www.viettel.com.vn ta dùng câu lệnh: nmap –sX –o viettel.com.vn
- P: giải port sử dụng để scan
- F: Chỉ những port trong danh sách scan của Nmap
- V: Sử dụng Scan hai lần nhằm tăng độ tin cậy và hiệu quả của phương thức scan nào ta sử dụng.
- P0: không sử dụng ping để Scan nhằm mục đích giảm thiểu các quá trình quét ngăn chặn scan trên các trang web hay máy chủ.
Ví như tôi muốn Scan trang web www.viettel.com.vn .net bằng phương thức UDP Scan số port tôi sử dụng là từ 1 tới 1024 và sử dụng hai lần để nâng cao hiệu quả, khi scan sẽ không ping tới trang này:
Nmap –sU –P ‘1-1024’ –V –P0 www.viettel.com.vn
Ngoài ra nmap còn hỗ trợ tính năng scan ẩn nhằm tránh những quá trình quét trên server như sử dụng:
-Ddecoy_host1, decoy2… để sử ẩn quá trình Scan.
-6: Scan IPv6
Ngoài ra nmap còn cho chúng ta những options để output kết quả ra nhiều định dạng file khác nhau.
IV. Kết luận.
Scan port là một trong những bước đầu tiên để tấn công vào một hệ thống, để hiểu được các phương thức scan chúng ta có thể dùng nmap để thực hiện. Sau đó cách chúng ta cấm Scan đó là sử dụng các thiết bị chuyên dụng như IPS, IDS để detect và ngăn chặn tấn công
 
Nguồn vnexprest.net

Thứ Hai, 22 tháng 6, 2015

HA (High Avaibility) trong Linux với Keepalived

1. Cài đặt keepalived trên 2 máy chủ MTA và Proxy

Chuẩn bị 4 IP Vir bao gồm:
10.58.71.72 proxy1
10.58.71.73 proxy2
10.58.71.74 mta1
10.58.71.75 mta2

Cài đặt keepalived trên 4 máy chủ
# yum --disablerepo=\* --enablerepo=c6-media install gcc kernel-headers kernel-devel keepalived
Sửa file cấu hình luật iptables /etc/sysconfig/iptables
Thêm 2 dòng sau: vào đầu phần luật INPUT
-A INPUT -d 224.0.0.0/8 -j ACCEPT
-A INPUT -p vrrp -j ACCEPT
Sau đó khởi động lại iptables
# service iptables restart
2. Cấu hình keepalived trên máy chủ MTA

Chỉnh sửa file  /etc/keepalived/keepalived.conf (backup lại file cũ trước)

Trên máy chủ MTA1

[root@mta1 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
 global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_smtp {
       script "</dev/tcp/127.0.0.1/465"
       interval 1
       weight -20
       fall 2
       rise 2
}

    vrrp_script chk_haproxy {        
    script "killall -0 haproxy"   
    interval 2                   
    weight 2                      
    }

vrrp_instance VI_3 {
        interface eth0
        state BACKUP
        virtual_router_id 53
        priority 100
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
                10.58.71.74
        }
    track_script {
        chk_smtp
      }
}

vrrp_instance VI_4 {
        interface eth0
        state MASTER
        virtual_router_id 54
        priority 101
        authentication {
            auth_type PASS
            auth_pass 123456a@
        }
        virtual_ipaddress {
        10.58.71.75
        }
    track_script {
        chk_smtp
      }
}

Trên máy chủ mta2 :


[root@mta2 ~]# cat /etc/keepalived/keepalived.conf
/bin/bash: Configuration: command not found
bal_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_smtp {
       script "</dev/tcp/127.0.0.1/465"
       interval 1
       weight -20
       fall 2
       rise 2
}
    vrrp_script chk_haproxy {        
    script "killall -0 haproxy"   
    interval 2                   
    weight 2                      
    }

vrrp_instance VI_3 {
        interface eth0
        state MASTER
        virtual_router_id 53
        priority 101
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
                10.58.71.74
        }
    track_script {
        chk_smtp
      }
}

vrrp_instance VI_4 {
        interface eth0
        state BACKUP
        virtual_router_id 54
        priority 100
        authentication {
            auth_type PASS
            auth_pass 123456a@
        }
        virtual_ipaddress {
        10.58.71.75
        }
    track_script {
        chk_smtp
      }
}


3. Cấu hình keepalived trên máy chủ Proxy

[root@proxy1 ~]# cat /etc/keepalived/keepalived.conf

bal_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_pop3 {
       script "</dev/tcp/127.0.0.1/995"
       interval 1
       weight -20
       fall 2
       rise 2
}

vrrp_script chk_imap {
       script "</dev/tcp/127.0.0.1/993"
       interval 1
       weight -20
       fall 2
       rise 2
}

vrrp_script chk_web {
       script "</dev/tcp/127.0.0.1/443"
       interval 1
       weight -20
       fall 2
       rise 2
}

vrrp_script chk_haproxy {        
    script "killall -0 haproxy"   
    interval 2                   
    weight 2                      
    }

vrrp_instance VI_1 {
        interface eth0
        state BACKUP
        virtual_router_id 51
        priority 100
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
                10.58.71.72
        }
    track_script {
        chk_pop3
        chk_imap
        chk_web
    }
}

vrrp_instance VI_2 {
        interface eth0
        state MASTER
        virtual_router_id 52
        priority 101
        authentication {
            auth_type PASS
            auth_pass 123456a@
        }
        virtual_ipaddress {
        10.58.71.73
        }
    track_script {
        chk_pop3
        chk_imap
        chk_web
    }
}

Trên máy chủ proxy 2

[root@proxy2 ~]# cat /etc/keepalived/keepalived.conf
/bin/bash: Configuration: command not found
bal_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_pop3 {
       script "</dev/tcp/127.0.0.1/995"
       interval 1
       weight -20
       fall 2
       rise 2
}

vrrp_script chk_imap {
       script "</dev/tcp/127.0.0.1/993"
       interval 1
       weight -20
       fall 2
       rise 2
}

vrrp_script chk_web {
       script "</dev/tcp/127.0.0.1/443"
       interval 1
       weight -20
       fall 2
       rise 2

}
    vrrp_script chk_haproxy {        
    script "killall -0 haproxy"   
    interval 2                   
    weight 2                      
    }

vrrp_instance VI_1 {
        interface eth0
        state MASTER
        virtual_router_id 51
        priority 101
        authentication {
            auth_type PASS
            auth_pass 123456
        }
        virtual_ipaddress {
                10.58.71.72
        }
    track_script {
        chk_pop3
        chk_imap
        chk_web
    }
}

vrrp_instance VI_2 {
        interface eth0
        state BACKUP
        virtual_router_id 52
        priority 100
        authentication {
            auth_type PASS
            auth_pass 123456a@
        }
        virtual_ipaddress {
        10.58.71.73
        }
    track_script {
        chk_pop3
        chk_imap
        chk_web
    }
}

Tài liệu tham khảo thêm tại đây