Tải bản đầy đủ (.pdf) (5 trang)

Đề án tốt nghiệp: Công nghệ bảo mật trên đà phát triển của công nghệ thông tin phần 5 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (187.28 KB, 5 trang )

Đề tài: An toàn và bảo mật trên hệ điều hành Linux
Page 21


GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện:
Lê Thị Huyền Trang
Nguyễn Huy Chương
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
Đề tài: An toàn và bảo mật trên hệ điều hành Linux

Page 22


GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện:
Lê Thị Huyền Trang
Nguyễn Huy Chương
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:
Đề tài: An toàn và bảo mật trên hệ điều hành Linux
Page 23



GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện:
Lê Thị Huyền Trang
Nguyễn Huy Chương
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


IV. Xây dựng hệ thống mạng Linux

Hướng dẫn cài đặt Linux
1.Tạo đĩa boot và tiến trinh boot
Điều đầu tiên cần làm là tạo một đĩa mềm cài đặt cũng được hiểu như đĩa khởi
động . Nếu máy tính của bạn có hỗ trợ boot trực tiếp từ CD ROM thì bạn có thể đi
tiếp dến bước hai ,còn không bạn có thể boot từ đĩa mềm ,bằng cách tạo ra nó như
sau :
Bước 1:
Trước khi tạo đĩa boot , đĩa CD-ROM Red Hat Linux vào trong ổ CD trên máy tính
của bạn đang chạy hệ thống windows . Mở Command Prompt dưới windows .

C:\d:
D:\ cd \ dosutils
D:\ cd \ dosutils> rawrite
Enter disk image source file name : \images \boot .img
Enter target diskette drive : a:
Please insert a formatted diskette into A drive; nad press Enter
D:\dosutils>
Chương trình rawrite.exe hỏi tên tập tin của disk image (ảnh đĩa):Gỏ vào
boot.img và đưa đĩa mềm vào đĩa A .Sau đó sẽ hỏi đĩa nào sẽ được ghi vào ,gõ
vàp a: bạn dã hoàn thành bước này và bạn có một đĩa mềm với tên là “ Red Hat
boot disk”
Bước 2 : Đưa đĩa boot vào trong đĩa A trên muốn cài đặt Red Hat Linux và khởi
động máy ,sau đó làm các bước sau :
Đề tài: An toàn và bảo mật trên hệ điều hành Linux
Page 24


GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện:
Lê Thị Huyền Trang
Nguyễn Huy Chương
x Chọn ngôn ngữ .
x Chọn kiểu bàn phím
x Chọn kiểu chuột .
Các cách cài đặt và phương pháp của chúng
Red Hat Linux 6.1 và 6.2 có 4 lớp càu đặt khác nhau là;
GNOME Workstation
KDE Workstation
Server
Custom
Cả 3 cách cài đặt trên đều cho bạn sự lựa chọn đơn giản của tiến trình cài đặt , ở đó

máy tính tự động làm hết mọi thứ và bạn mất đi đáng kể tính linh hoạt trong việc
cấu hình mà chúng ta không nên bỏ qua và sẽ đề cập chi tiết trong những bước tiếp
theo . Vì lý do trên mà chúng ta nên cài đặt custom .Cách này cho phép bạn chọn
những dịch vụ nào sẽ được thêm vào và làm thế ào để phân hoạch hệ thống .
Cài đặt đĩa (Disk setup)
Chúng ta giả sữ bạn đang cài đặc server Linux mới trên một ổ đĩa mới không
có hệ điều nào được cìa đặt trước đó .Một chiến lược phân hoạch tốt là tạo từng
partion riêng lẻ cho mỗi hệ thống tập tin chính .Việc này làm tăng khả năng bảo mật
và ngăn chận tấn công hoặc khai thác của những chương trình SUID.
Bước 1:
Để đạt hiệu quả cao , ổn định và an toàn bạn nên tạo các partition như những
partition được liệt kê dưới đây trên máy tính của bạn .Chúng tôi cũng giả sử rằng
thực tế bạn ổ cứng từ 3.2 GB trở lên để phân hoạch và dĩ nhiên bạn chọn kích thước
partition tuỳ theo nhu cầu cần.
Những partition bạn phải tạo trên hệ thống của bạn :
/boot 5MB Tất cả các kernel images thì được lưu giử ở đây .
/usr 512MB Partition này cần phải lớn trước khi tất cả các chương
trình ở dạng binary được cài đặt ở đây .
/home 1146MB Cân đối số người sử dụng bạn có ý định tạo ra trên
máy này.Ví dụ 10MB/người như vậy với 114 người
cần 1140MB.
/chroot 256MB Nếu bạn không muốn cài đặt trong môi trường không
tự do chẳng hạn như DNS tức alf môi trường chỉ có
root mới có quyền thực thi .
/cache 256MB Đây là partition lưu trữ của proxy server(VD Squid)
/var 256MB Chứa đựng những tập tin thay đổi khi hệ thống chạy
bình thường (VD các tập tin log)
<swap> 128MB Đây là Swap partition được coi như bộ nhớ ảo của hệ
thống ,bạn nên chia kích thước của partition này lớn
hơn hoặc bằng dung lượng Ram hiện có trên máy của

bạn
/tmp 256MB Partition chứa những tập tin tạm thời
/ 256MB Root partition của chúng ta .

Chúng ta có thể tạo nên hai partition đặc biệt là ”/chroot” và “/cache”, partition
/chroot có thể được sử dụng cho DNS server , Apache server và những chương trình
khác theo dạng như DNS và Apache .Partition /cache có thể được sử dụng cho Squid
proxy server .Nếu bạn không có ý định cài đặt Squid proxy server thì bạn không cần
tạo partition /cache.
Đặt /tmp và /home trên các partition riêng biệt thì rất hay và có tính chất bắt
buột nếu người sử dụng cío shell truy cập tới server (sự bảo vệ chống lại những
Đề tài: An toàn và bảo mật trên hệ điều hành Linux
Page 25


GVHD:Nguyễn Tấn Khôi Sinh viên thực hiện:
Lê Thị Huyền Trang
Nguyễn Huy Chương
chương trình SUID) ,ngăn chặn chương trình này vào những partition riêng lẻ và
ngăn cản người sử dụng làm suy yếu hoạt động của bất kỳ hệ thống nào trên server.
Đặt /var và /usr trên các partition riêng lẻ cũng là một ý rất hay vì cách ly partition
/var sẽ làm partition root của bạn không bị tràn đầy .
Trong cấu hình partition chúng ta sẽ dành riêng 256MB đĩa trống cho những
chương trình chuyển đổi root (chrooted program) giống Apache,DNS và những
chương trình khác .Việc này cần thiết vì những tập tài liệu gốc ,những tập tin nhị
phân ,những chương trình liên quan tới Apache sẽ được cìa đặt trong partition này
nếu bạn có ý định chạy Web server Apache trong vùng riêng biệt đó .
Nếu bạn không có ý định cài đặt và sử dụng Apache trên server của bạn ,có thể giảm
bớt kích thước của partition này xuống khoảng 10MB và chỉ sử dụng cho DNS là dịch
vụ luôn cần trong môi trường chroot vì lý do bảo mật.


Các kích thước tối thiểu của các partition
/ 35MB
/boot 5MB
/chroot 10MB
/home 100MB
/tmp 30MB
/usr 232MB
/var 25MB
/swap 50MB
Disk Druid
Disk Druid là chương trình sử dụng để phân chia đĩa cho bạn. Chọn Add để thêm
một partition mới Edit để hiệu chỉnh một partition ,Delete để xoá một partition và
Reset để xác lập partition về trạng thái ban đầu .Khi bạn thêm một partiton mới
,một cửa sổ sẽ xuất hiện trên màn hình và công việc của bạn là chọn những thông số
cho partition đó .Sự khác nhau của các thông số đó là :

Mount Point:vị trí trong hệ thống tập tin bạn muốn mount partition mới của
bạn tới .
Size (Megs) :kích thước của partition mới tính trên megabytes.
Partiton Type: có hai là Linux native dùng cho Linux filesystem và Swap dùng
cho Linux Swap Partiton .
Nếu bạn có đĩa cứng loại SCSI thì tên thiết bị là /dev/sda và nếu bạn có đĩa
cứng kiểu IDE thì tên sẽ là /dev/hda .Nếu bạn cần hệ thống có hiệu quả và độ ổn
định thì SCSI là sự lựa chọn tốt nhất .

Partition Swap được sử dụng để hổ trợ bộ nhớ ảo .Nếu máy tính của bạn có 16 MB
Ram hoặc ít hơn thì bạn phải tạo một partition swap ,ngay cả khi bạn có bộ nhớ lớn
thì bạn cũng nên tạo partition Swap .Kích thước tối thiểu của partition swap nên
bằng hoặc lớn hơn dung lượng Ram có trên máy tính của bạn .Kích thước lớn nhất có

thể sử dụng cho partition swap là 1GB cho nên nếu bạn tạo một partition swap lớn
hơn 1GB thì phần còn lại trở nên vô ích
Sau khi tạo các partition trên hard disk hoàn thành ,bạn sẽ thấy thông tin
partition trên màn hình giống như bảng liệt kê dưới đây :

Mount Point Device Requested Actual Type
/boot sda1 5 MB 5M Linux Native
/usr sda5 512MB 512MB Linux Native
/home sda6 1146MB 1146MB Linux Native

×