Trong ứng dụng này dựng Iptables trờn mỏy chủ Linux làm IP NAT cho phộp một mạng bờn ngoài truy cập vào mạng nội bộ và cho phộp mạng nội bộ truy cập mạng bờn ngoài qua IP NAT.
- Khi một mỏy bờn trong mạng nội bộ truy cập vào tài nguyờn bờn ngoài thỡ packet đƣợc gửi đến IP NAT, IP NAT sẽ thay đổi địa chỉ nguồn của packet bằng một địa chỉ hợp lệ trong dóy địa chỉ đƣợc cấp trờn Internet nếu cũn.
- Khi một mỏy của mạng bờn ngoài truy cập tài nguyờn của mạng cục bộ qua IP NAT, khi packet đến IP NAT nú sẽ thay đổi địa chỉ đớch của packet bằng một địa chỉ của mạng nội bộ.
3.4 Mụ hỡnh kết nối mỏy Linux với mạng nội bộ và Internet
3.2.4.1 Cỏc chain do người dựng định nghĩa
- „bad_tcp_packet‟: chứa cỏc nguyờn tắc xem xột những packet TCP đi vào cú header dị hỡnh. Loại những packet cú bit SYN và ACK đƣợc bật nhƣng đƣợc
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
xem là packet đầu của kết nối mới, loại những packet khụng cú bit SYN đƣợc bắt đầu nhƣng đƣợc xem là packet đầu của kết nối mới.
- „allowed‟: Chứa cỏc nguyờn tắc xem xột những packet TCP cú bit SYN đƣợc bắt đầu và đƣợc xem là packet đầu của kết nối mới thỡ đƣợc phộp đi qua. Cho phộp những packet đến từ những kết nối đó đƣợc thiết lập (ESTABLISHED) hoặc là quan hệ với một kết nối đó thiết lập (RELATED) để thụng tin truyền đƣợc trờn hai hƣớng. Cuối cựng là huỷ tất cả cỏc trƣờng hợp cũn lại.
- „tcp_packets‟: Chỉ định những số hiệu cổng nào đƣợc phộp sử dụng trờn Firewall từ Internet (xột số hiệu cổng và trạng thỏi của packet).
- „udp_packets‟: Chứa cỏc nguyờn tắc xem xột những packet UDP cú số hiệu cổng nào đƣợc chấp nhận trờn Firewall. Internet (chỉ xột số hiệu cổng, khụng xột trạng thỏi của packet).
- „icmp_packets‟: Chứa cỏc nguyờn tắc xem xột những packet ICMP cú kiểu nào đƣợc chấp nhận.
3.2.4.2 Cấu trỳc file cấu hỡnh và file cấu hỡnh
- configuration: Phần cấu hỡnh chung cho script này. Phần này bao gồm định nghĩa cỏc giao diện, địa chỉ IP của cỏc giao diện và vị trớ của chƣơng trỡnh iptables.
- modules: Tải vào kernel những modules cần thiết cho ứng dụng - filtertr table:
* proc : Cấu hỡnh những đũi hỏi trong hệ thống file proc.
* set policies : Đặt những chớnh sỏch mặc định cho cỏc chain hệ thống. * create userspecified chains : Tạo cỏc chain do ngƣời dựng định nghĩa. * create content in userspecified chains : Tạo nội dung cho cỏc chain do ngƣời dựng định nghĩa.
* INPUT chain : cỏc nguyờn tắc cho chain INPUT.
* FORWARD chain : cỏc nguyờn tắc cho chain FORWARD. * OUTPUT chain : cỏc nguyờn tắc cho chain OUTPUT. - nat table :
* PREROUTING chain : cỏc nguyờn tắc cho chain PREROUTING. * POSTROUTING chain : cỏc nguyờn tắc cho chain POSTROUTING.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
- Chỳ ý : file script /etc/rc.d/rc.local sẽ gọi file script
/etc/rc.d/rc.Firewall_nat sau mỗi lần khởi động hệ thống Script sẽ tải tất cả những modules cần thiết cho IP NAT.
- Sau đõy là file cấu hỡnh cho IP NAT(SNAT và DNAT). #!/bin/sh
# rc.Firewall_nat – Kh.i t.o IP NAT (SNAT - DNAT) # cho Kernel Linux 2.4.x s. d.ng iptables
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 1. Configuration options.
# 1.1 Cấu hỡnh giao diện với Internet. INET_IP="203.162.76.1"
INET_IFACE="eth0"
INET_BROADCAST="203.162.76.255" # 1.2 Cấu hỡnh giao diện cục bộ
LAN_IP="192.168.0.1"
LAN_IP_RANGE="192.168.0.0/24" LAN_IFACE="eth1"
# 1.3 Cấu hỡnh giao diện Localhost. LO_IFACE="lo"
LO_IP="127.0.0.1"
# 1.4 Vị trớ chƣơng trỡnh iptables. IPTABLES="/usr/sbin/iptables"
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 2. Tải những Module cần thiết.
/sbin/depmod -a
/sbin/modprobe ip_tables /sbin/modprobe ip_conntrack /sbin/modprobe iptable_filter
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/ /sbin/modprobe iptable_mangle /sbin/modprobe iptable_nat /sbin/modprobe ipt_LOG /sbin/modprobe ipt_limit /sbin/modprobe ipt_state # # # # # # # # # # # # # # # # ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 3. Cấu hỡnh cần thiết cho hệ thống file proc.
echo "1" > /proc/sys/net/ipv4/ip_forward
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# 4. Cài đặt cỏc nguyờn tắc # 4.1 Filter table
# 4.1.1 Cài đặt cỏc chớnh sỏch mặc định cho cỏc chain hệ thống $IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP $IPTABLES -P FORWARD DROP
# 4.1.2 T.o cỏc chain do ngu.i dựng ð.nh nghia # Tạo chain bad_ tcp_packets
$IPTABLES -N bad_tcp_packets
# Tạo chain allowed, tcp_packets, udp_packets, icmp_packets #
$IPTABLES -N allowed $IPTABLES -N tcp_packets $IPTABLES -N udp_packets $IPTABLES -N icmp_packets
# 4.1.3 Tạo nội dung chain do ngƣời dựng định nghĩa # bad_tcp_packets chain
#
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
-m state --state NEW -j REJECT --reject-with tcp-reset
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \ --log-prefix "New not syn:"
$IPTABLES -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
#
# allowed chain #
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP #
# TCP rules #
$IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 21 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 22 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 80 -j allowed $IPTABLES -A tcp_packets -p TCP -s 0/0 --dport 113 -j allowed #
# UDP ports #
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 2074 -j ACCEPT
$IPTABLES -A udp_packets -p UDP -s 0/0 --destination-port 4000 -j ACCEPT
#
# ICMP rules #
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT $IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT #
# 4.1.4 INPUT chain #
# Cỏc packet dị dạng khụng muốn. #
$IPTABLES -A INPUT -p tcp -j bad_tcp_packets #
# Cỏc nguyờn tắc cho mạng khụng là phần của Internet #
$IPTABLES -A INPUT -p ALL -i $LAN_IFACE -s $LAN_IP_RANGE -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LO_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $LAN_IP -j ACCEPT $IPTABLES -A INPUT -p ALL -i $LO_IFACE -s $INET_IP -j ACCEPT #
# Nguyờn tắc cho cỏc packet đến từ Internet. #
$IPTABLES -A INPUT -p ALL -d $INET_IP -m state --state ESTABLISHED,RELATED \
-j ACCEPT
$IPTABLES -A INPUT -p TCP -i $INET_IFACE -j tcp_packets $IPTABLES -A INPUT -p UDP -i $INET_IFACE -j udp_packets $IPTABLES -A INPUT -p ICMP -i $INET_IFACE -j icmp_packets #
# Ghi lại cỏc packet khụng khớp với cỏc nguyờn tắc trờn. #
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
--log-level DEBUG --log-prefix "IPT INPUT packet died: " #
# 4.1.5 FORWARD chain
# Cỏc packet dị dạng khụng muốn. #
$IPTABLES -A FORWARD -p tcp -j bad_tcp_packets
$IPTABLES -A FORWARD –p TCP -i $INET_IFACE –o $LAN_IFACE -j ACCEPT
#
# Chấp nhận cỏc packet chỳng ta muốn forward #
$IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# Ghi lại cỏc packet khụng khớp với nguyờn tắc trờn. #
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG\ --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
#
# 4.1.6 OUTPUT chain # #
# Cỏc packet dị dạng khụng muốn #
$IPTABLES -A OUTPUT -p tcp -j bad_tcp_packets #
# Cỏc nguyờn tắc OUTPUT đƣợc phộp. #
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
$IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $INET_IP -j ACCEPT #
# Ghi lại cỏc packet khụng khớp với nguyờn tắc trờn. #
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG\ --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
# # # # # # # 4.2 Nat table #
# 4.2.1 PREROUTING chain – cho phộp DNAT #
$IPTABLES -t nat -A PREROUTING –p TCP -i $INET_IFACE -d $INET_IP – dport 23 –j DNAT –to-destination 192.168.0.254
#
# 4.2.2 POSTROUTING chain # #
# Cho phộp SNAT #
$IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to-source $INET_IP
- Cấu hỡnh cho mỏy nội bộ truy cập mạng bờn ngoài IP NAT thực hiện nhƣ trong ứng dụng IP Masquerading.
3.2.4.3 Kiểm tra NAT từ mạng nội bộ đến mạng bờn ngoài và ngược lại
- Bƣớc 1: Kiểm tra kết nối cục bộ của cỏc mỏy nội bộ ---
nat-client# ping 192.168.0.10
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
64 bytes from 192.168.0.10: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.10: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.10 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
---
- Bƣớc 2: Kiểm tra kết nối mỏy cục bộ đến server IP NAT ---
nat-client# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms --- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
---
- Bƣớc 3: Kiểm tra kết nối cục bộ của Server IP NAT ---
nat-server# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes
64 bytes from 192.168.0.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=255 time=0.5 ms ^C
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
--- 192.168.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
---
- Bƣớc 4: Kiểm tra kết nối server IP NAT đến mỏy cục bộ ---
nat-server# ping 192.168.0.10
PING 192.168.0.10 (192.168.0.10): 56 data bytes
64 bytes from 192.168.0.10: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 192.168.0.10: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 192.168.0.10: icmp_seq=3 ttl=255 time=0.5 ms ^C
--- 192.168.0.10 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
---
- Bƣớc 5: Kiểm tra kết nối giao diện với bờn ngoài của server IP NAT ---
nat-server# ping 203.162.76.1
PING 203.162.76.1(203.162.76.1): 56 data bytes
64 bytes from 203.162.76.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 203.162.76.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 203.162.76.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 203.162.76.1: icmp_seq=3 ttl=255 time=0.5 ms ^C
--- 203.162.76.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
---
- Bƣớc 6: Kiểm tra kết nối từ mỏy nội bộ đến giao diện bờn ngoài của server IP NAT
--- nat-client# ping 203.162.76.1
PING 203.162.76.1(203.162.76.1): 56 data bytes
64 bytes from 203.162.76.1: icmp_seq=0 ttl=255 time=0.8 ms 64 bytes from 203.162.76.1: icmp_seq=1 ttl=255 time=0.4 ms 64 bytes from 203.162.76.1: icmp_seq=2 ttl=255 time=0.4 ms 64 bytes from 203.162.76.1: icmp_seq=3 ttl=255 time=0.5 ms ^C
--- 203.162.76.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.8 ms
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
của cỏc nhà quản trị mạng núi riờng và của những nhà tin học núi chung.
đảm bảo an toàn cho mạng mỏy tớnh trƣớc sự tấn cụng và xõm nhập trỏi phộp, hạn chế thấp nhất cỏc rủi ro và thiệt hại là việc làm đầy khú khăn thỏch thức. Đũi hỏi ngƣời làm CNTT cần thiết phải cú kiến thức am hiểu cỏc nguy cơ cú thể cú đối với mạng mỏy tớnh.
. Mục đớch của luận văn là
về cỏc mạng mỏy tớnh; mạng mỏy tớnh để từ
đú đề ra đƣợc cỏc biện phỏp phũng chống, ngăn chặn cho mạng mỏy tớnh một cỏch hiệu quả. Kết quả nghiờn cứu hƣớng tới khả năng ỏp dụng vào thực tế việc quản lý, vận hành và sử dụng mạng mỏy tớnh trong cỏc cơ quan, tổ chức.
Cỏc kết quả đạt đƣợc cụ thể của luận văn gồm: mạng mỏy tớnh, cỏc mạng mỏy tớnh.
cỏc phƣơng phỏp mạng mỏy tớnh; cỏc mạng mỏy tớnh.
Đề xuất biện phỏp kỹ thuật mạng .
Xõy dựng mụ phỏng thử nghiệm .
Tuy nhiờn về mặt thời gian nghiờn cứu cú hạn, cỏc kết quả đạt đƣợc trong bài luận văn khụng trỏnh khỏi những hạn chế nhất định.