|
||||||||
|
||||||||
|
|
Công Cụ | Xếp Bài |
20-07-2009, 10:05 AM | #1 |
Guest
Trả Lời: n/a
|
Top 5 công cụ bảo mật trên CentOS
Top 5 công cụ bảo mật trên CentOS Top Five Linux Security Tools
Đầu tiên, tôi muốn nói rằng không có 1 chương trình nào giúp bạn bảo vệ hệ thống mạng của bạn an toàn mãi mãi. Bảo mật là một quá trình không ngừng hoàn thiện, đánh giá và hoàn thiện hơn nữa. May mắn thay, trên hệ thống Linux có rất nhiều công cụ hổ trợ bạn trong quá trình bảo mật hệ thống. Trong bài viết này, tôi xin trình bày 5 công cụ được yêu thích nhất, giúp bạn ngăn chặn, phát hiện và phản ứng lại các cuộc xâm nhập hệ thống. Mặc dù phòng bệnh là hơn chữa bệnh, nhưng đôi lúc bạn phải đối mặt với vấn đề, phát hiện và phản ứng lại. Nghĩa là bạn cũng cần phải làm quen với các tình huống xấu nhất có thể xảy đến cho hệ thống của bạn. 1. Nmap Để đánh giá mức độ bảo mật của hệ thống, bạn cần phải biết bao nhiêu dịch vụ mạng đang mở ra ngoài cho những kẻ tấn công có thể truy cập vào. Một công cụ xuất sắc cho công việc này là Fyodor's Network Mapper Nmap. Trên Debian hay Ubuntu bạn có thể cài đặt thông qua lệnh apt-get install nmap. Một trong những cách sử dụng đơn giản nhất của Nmap là phát hiện các máy tinh alive hay dead trên mạng nội bộ. Chúng ta sẽ yêu cầu Nmap gửi các gói tin ICMP echo request (pings) đến mỗi host trong vùng địa chỉ IP. $ nmap -sP 10.0.0.1-254 Starting nmap 3.81 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. ) at 2006-11-01 14:46 NZDT Host 10.0.0.25 appears to be up. MAC Address: 00:0C:F1:AE:E6:08 (Intel) Host 10.0.0.51 appears to be up. MAC Address: 08:00:09:9A:1A:AA (Hewlett Packard) Host 10.0.0.70 appears to be up. MAC Address: 00:0F:EA:64:4E:1E (Giga-Byte Tech Co.) ... Hơn thế nữa, Nmap được sử dụng để khám phá dịch vụ nào đang chạy trên hệ thống. Theo cách kết nối TCP three-way handshake, chúng ta có thể phát hiện ra các cổng(port) đang mở mà không cần kết nối đến chúng. Cách này được gọi là SYN hay quét half-open và đây là chế độ mặc định khi chạy user root. Nếu được thực thi với user thường, Nmap sẽ cố gắng kết nối đầy đủ với từng cổng theo chế độ full-connect. #nmap -sS 10.0.0.89 Starting nmap 3.81 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. ) at 2006-11-01 14:52 NZDT Interesting ports on 10.0.0.89: (The 1637 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 42/tcp open nameserver 80/tcp open http 110/tcp open pop3 ... Fyodor cũng thêm vào trong công cụ Nmap các tinh năng nhận dạng loại dịch vụ mạng + phiên bản của dịch vụ, bạn có thể thực hiện việc này với tùy chọn -sV: # nmap -sV 10.0.0.89 Starting nmap 3.81 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. ) at 2006-11-01 14:47 NZDT Interesting ports on 10.0.0.89: (The 1637 ports scanned but not shown below are in state: closed) PORT STATE SERVICE VERSION 21/tcp open ftp? 22/tcp open ssh OpenSSH 3.8.1p1 Debian-8.sarge.4 (protocol 2.0) 42/tcp open nameserver? 80/tcp open http Apache httpd 1.3.33 ((Debian GNU/Linux) mod_gzip/1.3.26.1a PHP/4.3.10-16) 110/tcp open pop3? ... Để phát hiện loại hệ điều hành (Linux, Windows, Solaris...) của máy tinh từ xa, bạn có thể sử dụng Nmap với tuỳ chọn -O. # nmap -O -sS 10.0.0.89 Starting nmap 3.81 ( Nmap - Free Security Scanner For Network Exploration & Security Audits. ) at 2006-11-02 09:02 NZDT Interesting ports on 10.0.0.89: (The 1637 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 21/tcp open ftp ... Device type: general purpose Running: Linux 2.4.X|2.5.X|2.6.X OS details: Linux 2.5.25 - 2.6.3 or Gentoo 1.2 Linux 2.4.19 rc1-rc7), Linux 2.6.3 - 2.6.8 Uptime 30.906 days (since Mon Oct 2 11:18:59 2006) 2. OpenSSH Khi kết nối từ đến hệ thống của bạn để làm việc, bạn cần một kết nối an toàn và bảo mật. Điều này có nghĩa là bạn sẽ không sử dụng Telnet hoặc rcp hay bất kỳ các giao thức nào khác mà truyền mật khẩu đi trên mạng mà không được mã hoá và bảo vệ. OpenSSH là một sự thay thế tuyệt vời cho Telnet/rcp, có tính năng mã hoá dữ liệu khi truyền đi trên mạng, tránh giả mạo kết nối đến hệ thống. Trên Debian người dùng có thể cài đặt thông qua lệnh apt-get install openssh-server. Trên Redhat, Centos bạn có thể sử dụng lệnh sudo yum install opensssh 3. tcpdump Tcpdump có thể được xem là 1 ứng dụng tốt nhất để kiểm tra lưu thông mạng ở định dạng thô. Trên Debian có thể cài thông qua lệnh apt-get install tcpdump. Tcpdump files thường đưọc gọi là pcap files, bởi vì pcap là một thư viện hổ trợ bắt các gói tin mạng. Trong ví dụ này, chúng ta sẽ bắt hết tất các gói tin mạng mà có địa chỉ nguồn là 53 (các gói tin thuộc dịch vụ DNS). Để dễ hiểu hơn, bạn có thể sử dụng "src port 53 or dst port 53". Tôi đã sử dụng tùy chọn -n, tcpdump sẽ phần giải địa chỉ IP sang tên miền để nhìn thân thiện hơn # tcpdump -n 'port 53' tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 11:19:58.302298 IP 192.168.0.8.1037 > 192.168.128.1.53: 36224+ A? Slashdot: News for nerds, stuff that matters. (34) 11:19:58.360227 IP 192.168.128.1.53 > 192.168.0.8.1037: 36224 1/5/5 A 66.35.250.151 (239) ... 4. Snort Snort là 1 trong những phần mềm mã nguồn mở hàng đầu về phát hiện xâm nhập mạng. Snort sẽ giám sát giao thông mạng (network traffic), phân tích và cảnh báo cho người quản trị. Trên debain bạn có thể cài đặt Snort bằng lệnh apt-get install snort . Mặc đinh, Snort sẽ đặt card mạng ở chế độ "promiscous mode" - có nghĩa là sẽ bắt tất cả các gói tin (packets) đến card mạng này không chỉ những gói tin đúng với MAC address của card mạng. If you're trying to protect a network, a common place to put your Snort sensor is on a SPAN port on a major router, so it has a view of all the network traffic traversing that router. (A SPAN port presents an aggregation of all the traffic that is passing through the router, within certain limits.) If you are trying to protect only a single host, simply install it on that host. Nếu bạn muốn bảo vệ hệ thống mạng, người ta thường đặt "Snort sensor" trên cổng SPAN của router chính, vì vậy "Snort sensor" sẽ bắt hết tất cả các giao thông mạng (network traffic) ra vào router. (SPAN port là port trên router có tinh năng tập hợp hết tất cả các gói tin trong router về port này). Nếu bạn muốn bảo vệ 1 host, đơn giản chỉ việc cài đặt Snort trên host đó. Snort làm việc bằng cách kiểm tra các gói tin (packets) theo 1 cơ sở dữ liệu các tập luật. Và đây là một ví dụ từ /etc/snort/rules/bad-traffic.rules: alert tcp $EXTERNAL_NET any <> $HOME_NET 0 (msg:"BAD-TRAFFIC tcp port 0 traffic"; flow:stateless; classtype:misc-activity; sid:524; rev:8 Snort ghi nhật ký các cảnh báo (alerts) vào 1 file, thường là /var/log/snort/alert. [**] [1:2002801:3] BLEEDING-EDGE WEB Google Desktop User-Agent Detected [**] [Classification: Potential Corporate Privacy Violation] [Priority: 1] 11/02-11:27:58.855143 10.0.0.82:3449 -> 66.35.250.209:80 TCP TTL:128 TOS:0x0 ID:35935 IpLen:20 DgmLen:399 DF ***AP*** Seq: 0x847921EE Ack: 0x1A7D5C20 Win: 0xFFFF TcpLen: 20 [Xref => ]Google Desktop 3 criticized - CNET News.com Snort cũng có thể được cấu hình để ghi nhật ký các gói tin thoả 1 tiêu chí nào đó vào 1 file theo định dạng tcpdump, xem bên dưới: # log_tcpdump: log packets in binary tcpdump format # ------------------------------------------------- # The only argument is the output file name. # output log_tcpdump: tcpdump.log Bạn có thể đọc lại file tcpdump trên với câu lệnh như sau: # tcpdump -r /var/log/snort/tcpdump.log.1161106015 reading from file /var/log/snort/ ↪tcpdump.log.1161106015, link-type EN10MB (Ethernet) 06:37:50.839942 IP 10.0.0.82.1410 > 10.10.218.95.www: P 2352360050:2352360119(69) ack 1723804156 win 65535 06:53:07.792492 IP 10.0.0.82.1421 > 10.10.218.95.www: P 2124589760:2124589829(69) ack 2684875377 win 65535 ... Nếu bạn muốn thấy nội dung gói tin, sử dụng option -S trong câu lệnh tcpdump -X -r /var/log/snort/tcpdump.log.1161106015. Snort cũng có tính năng ngắt kết nối dựa trên tập luật (gọi là tính năng phản ứng lại) và Snort cũng có rất nhiều tập rules third-party (do 1 công ty thứ 3 phát triển), xem phần tham khảo bên dưới. 5. iptables Iptables là 1 phần mềm statefull firewall (là firewall có tính năng lưu vết các kết nối đã được thiết lập), có sẵn hầu hết trong các hệ điều hành Linux. Bạn có thể sử dụng công cụ Iptables để điều khiển truy cập và hệ thống máy chủ của bạn dựa trên địa chỉ IP của máy tính kết nối từ xa đến máy chủ và dựa trên loại yêu cầu kết nối. Trên Debian bạn có thể cài bằng lệnh apt-get install iptables conntrack. Sau đây là 1 đoạn script minh họa việc thiết lập 1 firewall dựa trên công cụ Iptables. Rất cơ bản nhưng sẽ giúp bạn hiểu cơ bản về cách làm việc của Iptables: #!/bin/bash # example iptables script # flush the old rules iptables -F # set the default policy of the chain to accept iptables -P INPUT ACCEPT # create a new table for logging and discarding # unwanted packets iptables -N LOGDROP # use rate limiting on the logging, and # add a prefix of 'filter: ' iptables -A LOGDROP -m limit -j LOG ↪--log-prefix "filter: " # drop unwanted TCP connections with a # TCP ReSeT packet iptables -A LOGDROP -p tcp -j REJECT ↪--reject-with tcp-reset # drop other packets by sending an ICMP # port unreachable in response iptables -A LOGDROP -j REJECT ↪--reject-with icmp-port-unreachable # now drop the packet iptables -A LOGDROP -j DROP #allow anything on the local interface iptables -A INPUT -i lo -j RETURN # allow packets that are related to # an on-going conversation iptables -A INPUT -p tcp -m conntrack ↪--ctstate RELATED,ESTABLISHED -j RETURN iptables -A INPUT -p udp -m conntrack ↪--ctstate RELATED,ESTABLISHED -j RETURN # allow SSH traffic iptables -A INPUT -p tcp -m tcp ↪--dport 22 -j RETURN # allow HTTP and HTTPS traffic iptables -A INPUT -p tcp -m tcp ↪--dport 443 -j RETURN iptables -A INPUT -p tcp -m tcp ↪--dport 80 -j RETURN # accept the following ICMP types - # echo, echo reply, source quench, ttl exceeded, # destination unreachable - and drop the rest iptables -A INPUT -p icmp -m icmp ↪--icmp-type 0 -j RETURN iptables -A INPUT -p icmp -m icmp ↪--icmp-type 3 -j RETURN iptables -A INPUT -p icmp -m icmp ↪--icmp-type 4 -j RETURN iptables -A INPUT -p icmp -m icmp ↪--icmp-type 8 -j RETURN iptables -A INPUT -p icmp -m icmp ↪--icmp-type 11 -j RETURN # if we haven't accepted it, drop and log it. iptables -A INPUT -j LOGDROP Nếu bạn đang thắc mắc logs của Iptables được lưu ở đâu, đây là 1 ví dụ về logs iptables được lầy từ /var/log/messages (syslog). Ở đây, gói tin UDP có IP nguồn 192.168.50.40, port nguồn 30766 đến Server có IP 192.168.0.8 và port đích là 1026 bị Iptables loại bỏ. Có thể đây là 1 dịch vụ Messenger. Nov 22 06:24:00 localhost kernel: filter: IN=eth0 OUT=MAC=00:0a:e6:4e:6d:49:00:14:6c:67:cc:9a:08:00 SRC=192.168.50.40 DST=192.168.0.8 LEN=402 TOS=0x00 PREC=0x00 TTL=47 ID=3345 PROTO=UDP SPT=30766 DPT=1026 LEN=382 Khi thiết lập 1 firewall, chắc chắn rằng bạn phải chạy công cụ Nmap để kiểm tra các tính năng của Firewall. Kết luận Security is all about a constant cycle of enhancing and evaluating your protection measures. The tools above allow you to protect your servers, ensure it is working as required and analyse the traffic on your network for unexpected events. Remember, the unexpected is usually the same as undesirable! As one of Larry Niven's characters says, “anything you don't understand is dangerous until you do understand it”. Bảo mật là một chu trình của việc tăng cường và đánh giá khả năng bảo vệ của hệ thống bạn. Các công cụ ở trên cho phép bạn bảo vệ hệ thống máy chủ, bảo đảm rằng hệ thống của bạn làm việc theo đúng yêu cầu và phân tích giao thông trên mạng để phát hiện các sự kiện bất thường xảy ra trong hệ thống. Hãy nhớ rằng, những điều không trông mông xảy đến thường là những điều bạn không ưa thích! Một trong những câu nói của nhà văn Larry Niven là "Những gì mà bạn không hiểu là 1 điều nguy hiểm cho đến khi bạn hiểu được nó". Khi sử dụng những công cụ này, cố gắng nghĩ về 3 giai đoạn bảo mật: ngăn chặn, phát hiện và phản ứng lại. Tốt nhất là bạn nên ngăn chặn nếu có thể. Tuy nhiên, nếu phát hiện xâm nhập, nên tập trung xử lý càng sớm càng tốt. Tham khảo Nmap: insecure.org/nmap OpenSSH: OpenSSH tcpdump TCPDUMP/LIBPCAP public repository Snort Snort - the de facto standard for intrusion detection/prevention Bleeding Edge Threats: Bleeding Edge Threats Netfilter/iptables: netfilter/iptables project homepage - The netfilter.org project Nguồn: Top Five Linux Security Tools - Hack2Learn Top Five Linux Security Tools - Hackingart |
|
|