Áp dụng IPTABLES vào web server và FPT server
ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Nguyễn Hồng Thái < nhthai2005@gmail.com > Dept of Telecommunication Hô Chi Minh City University of Technology, South Vietnam Cài đặt cấu hình Web Server 1.1 Cài đặt Web Server 1.1.1 Web nhu cầu thiếu Nó phương tiện để người giới trao đổi thơng tin Đứng phương diện Web xem tờ báo điện tử, chứa đựng thơng tin để người nắm bắt cách dễ dàng Nó có ưu điểm báo chí bình thường thơng tin chứa đựng nhiều hơn, hình ảnh đặc sắc hơn…Nó cịn cho phép người xem tương tác phản hồi…và đặc biệt tiện lợi nhiều việc tìm kiếm thơng tin Nó thật công cụ thiếu Nhưng để có trang Web? Ta cần phải có Web Server Web Server nơi chứa trang web Web Server nhiệm vụ quản lý, bảo vệ trang web Và để có Web Server bước làm phần trình bày 1.1.2 Để cài đặt Web Server cần phần mềm hỗ trợ làm điều Chúng ta chọn Apache Đây phần mềm có nhiều tính mạnh linh hoạt dùng để cài Web Server Nó hỗ trợ đầy đủ giao thức HTTP trước HTTP/1.1 Có thể cấu hình mở rộng với module công ty thứ ba Cung cấp source code đầy đủ với license không hạn chế Chạy nhiều hệ điều hành Windows NT/9x, Netware 5.x, OS/2 hầu hết hệ điều hành Unix 1.1.3 Đối với phiên Apache Windows, ta cần download gói (như apache_2.2.3-win32-x86-no-ssl.msi) cài đặt Như vậy, sử dụng muốn 1.1.4 Đối với phiên phiên Linux, thường cài đặt từ đầu lúc mà cài đặt hệ điều hành Cịn chưa cài đặt cài đặt sau Chúng ta cài đặt từ gói tạo sẵn với đuôi file thường deb rpm, deb gói Debian, dành cho distro như: Debian, SuSe, Ubuntu … Cịn rpm, gói cài đặt dành cho Red Had, viết tăt từ cụm từ RedHat Package Management Tuy có file cài đặt distro khác ngồi ví dụ gói deb cài đặt Red Hat gói rpm cài đặt Debian hay Ubuntu …, cần có trình quản lý Ví dụ với gói rpm ta có trình quản lý rpm cịn gói deb có apt-get quản lý Các gói xem tương tự Windows, gói cài đặt có msi hay exe Tuy nhiên, linux cho phép ta cài từ mã nguồn Điều này, có ích cho ta chẳng hạn sửa NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER lại mã nguồn muốn Lợi ích thứ quản lý phần mềm Vì Windows, gói có mã nguồn đóng khơng thể làm điều Với Linux, chọn gói mã nguồn httpd-2.2.3.tar.gz Đây gói miễn phí, hồn tồn download mạng Và để cài đặt gói này, làm sau: Giải nén mã nguồn dùng lệnh: tar xvzf httpd-2.2.3.tar.gz Di chuyển vào thư mục chứa mã nguồn: cd httpd-2.2.3 Sau đó, cài đặt nó: # /configure && make && make install Nếu cài đặt Debian hay Ubuntu gõ lệnh: apt-get install apache Cịn cài đặt từ gói rpm gõ lệnh: rpm -ivh httpd-2.2.3.rpm Bây giờ, chạy Web Server muốn Tuy nhiên, có gặp trường hợp khởi động như: lỗi có phần mềm chạy port mà Web Server ta chạy Điều khắc phục cách dễ dàng, cách tắt chương trình chạy port Và khởi động lại chạy Để khởi động hay tạm dừng hay tái khởi động apache ta script sau: # /etc/init.d/httpd start/stop/restart Hoặc dùng lệnh: #chkconfig httpd on #service httpd restart Tuy nhiên, để hiểu vận hành theo ý muốn ta cần phải hiểu phải tận tay cấu hình Và việc cấu hình đó, chúng tơi trình bày mục phần cấu hình Web Server 1.2 Cấu hình Web Server Các tập tin thư mục cấu Apache: /etc/httpd/conf: thư mục lưu giữ tập tin cấu httpd.conf /etc/httpd/modules: lưu giữ module Web Server /etc/httpd/logs: lưu tập tin log Apache /var/www/html: lưu trang web /var/www/cgi-bin: lưu script sử dụng cho trang web Tập tin cấu hình Apache tạo thành từ nhiều dẫn (directive) khác Mỗi dòng directive phục vụ cho cấu hình riêng biệt Có directive có ảnh hưởng với Những dòng bắt đầu dấu # dịng thích Sau directive quan trọng cấu hình Web Server ServerName: Cú pháp: ServerName :port Trong đó, hostname tên máy tính Server Nó dùng việc tạo URL chuyển tiếp (direction URL) Nếu không ra, server cố gắng suy luận từ địa IP Tuy nhiên, điều khơng tin cậy khơng trả tên máy tính Ví dụ: ServerName www.nguyenhongthai.hcmut.edu.vn NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER ServerAdmin: địa email người quản trị hệ thống Cú pháp: ServerAdmin Ví dụ: ServerAdmin webmaster@hcmut.edu.vn ServerType: quy định cách nạp chương trình Có cách: inetd: chạy từ init level standalone: chạy từ hệ thống Cú pháp: ServerType Ví dụ: ServerType standalone DocumentRoot: cấu hình thư mục gối lưu trữ nội dung Website Web Server lấy tập tin thư mục phục vụ cho yêu cầu client Cú pháp: DocumentRoot Ví dụ: DocumentRoot/usr/web ServerRoot: dẫn vị trí cài đặt chương trình Apache Cú pháp: ServerRoot Ví dụ: ServerRoot /user/local/apache ErrorLog: tập tin để server ghi vào lỗi mà gặp phải Cú pháp: ErrorLog Ví dụ: ErrorLog logs/error_log DirectoryIndex: tập tin mặc định truy vấn truy cập trang Web Cú pháp: DirectoryIndex Ví dụ: DirectoryIndex index.html MaxClients: quy định số yêu cầu tối đa từ client gởi đồng thời đến server Cú pháp: MaxClients Ví dụ: MaxClients 256 Listen: quy định địa IP cổng mà Apache nhận kết nối từ Client Cú pháp: Listen Ví dụ: Listen 80 BindAddress: quy định địa card mạng để chạy Apache Server Cú pháp: BindAddress Sử dụng dấu “*” để sử dụng tất địa máy Ví dụ: BindAddress 172.28.24.199 TimeOut: quy định thời gian sống kết nối (được tính giây) Cú pháp: TimeOut Ví dụ: TimeOut 300 KeepAlive: cho phép không cho phép client gửi nhiều yêu cầu dựa kết nối đến với Web Server Cú pháp: KeepAlive NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Ví dụ: KeepAlive On MaxKeepAliveRequests: số Request tối đa kết nối (nếu cho phép nhiều Request kết nối) Cú pháp: MaxKeepAliveRequests Ví dụ: MaxKeepAliveRequests 100 KeepAliveTimeout: quy định thời gian để chờ Request từ client kết nối (được tính giây) Cú pháp: KeepAliveTimeout Ví dụ: KeepAliveTimeout 15 Alias: ánh xạ đường dẫn cục (không nằm DocumentRoot) thành tên đường dẫn địa URL Cú pháp: Alias Ví dụ: Alias /doc /usr/share/doc Khi truy cập http://www.nguyenhongthai.hcmut.edu.vn/doc, vào /usr/share/doc Để giới hạn việc truy cập người dùng ta kết hợp với Directory directive Ví dụ: Alias /doc /usr/share/doc AuthType Basic # kiểu authentication sử dụng Basic AuthName intranet # đặt tên cho chứng thực intranet AuthUserFile /etc/httpd/passwd # vị trí tập tin password Require user hongthai minhtri #user cho phép truy cập tài nguyên Allow from internal.hcmut.edu.vn # cho phép truy cập từ đchỉ UserDir: cho phép người dùng tạo Home page user Web Server Cú pháp: #UserDir Disables ## để thực thi chế enable UserDir UserDir www ## Khai báo thư mục chứa Website user … Trong thư mục Home Directory người dùng tạo thư mục www Ví dụ /home/nhthai/www Khi đó, cú pháp truy cập từ Web Browser có dạng: http://www.nguyenhongthai.hcmut.edu.vn/~, tức trường hợp http://www.nguyenhongthai.hcmut.edu.vn/~nhthai Khi người dùng có gắng truy cập đến thư mục mình, gặp message lỗi “Forbidden” Điều quyền truy cập đến home directory người dùng bị giới hạn Như để khắc phục lỗi trên, cần giới hạn lại quyền truy cập home directory người dùng với câu lệnh sau: chown nhthai /home/nhthai /home/nhthai/www chmod 750 /home/nhthai /home/nhthai/www NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER VirtualHost: tính Apache, giúp ta trì nhiều web server máy tính Nhiều tên chia sẻ địa IP gọi named-based virtual hosting sử dụng địa IP khác cho domain gọi IP-based virtual hosting IP-based Virtual Host: Virtual Host dựa IP yêu cầu server phải có địa IP khác cho virtual host dựa IP Như vậy, máy tính phải có nhiều interface hay sử dụng chế virtual interface mà hệ điều hành sau hỗi trợ Nếu máy có địa IP, 172.28.24.199, cấu hình địa IP khác card mạng sau: ifconfig eth0:1 172.28.24.198 netmask 255.255.255.0 up Sau đó, mơ tả thơng tin cấu hình file httpd.conf ; VirtualHost default DocumentRoot/tmp ServerName www.domain … ;VirtualHost cho site … DocumentRoot/home/www/site1 ServerName www1.domain ;VirtualHost cho site … DocumentRoot/home/www/site2 ServerName www2.domain … Name-based Virtual Host: IP-based Virtual Hosts dựa vào địa IP để định Virtual Host để truy cập Vì thế, cần phải có địa khác cho Virtual Host Với Named-based Virtual Host, server dựa vào HTTP header client để biết hostname Sử dụng kỹ thuật này, địa IP có nhiều tên máy tính khác Named-based Virtual Host đơn giản, cần cấu hình DNS cho phân giải tên máy với địa IP sau cấu hình Apache để tổ chức web server cho miền khác Cài đặt cấu hình FTP Server 2.1.Cài đặt FTP Server Cũng Web, FTP công cụ thiếu lĩnh vực mạng FTP chữ viết tắt File Transfer Protocol Giao thức xây dựng dựa chuẩn TCP FTP cung cấp chế truyền tin dạng file thông qua mạng TCP/IP FTP dịch vụ đặc biệt dùng đến cổng: cổng 20 dùng để truyền liệu (data port) NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER cổng 21 dùng để truyền lệnh (command port) FTP hoạt động chế: chế chủ động (active) chế bị động (passive) Khi FTP Server hoạt động chế chủ động, client không chủ động tạo kết nối thật vào cổng liệu FTP Server, mà đơn giản thông báo cho server biết lắng nghe cổng server phải kết nối ngược client vào cổng Trên quan điểm firewall máy client điều giống hệ thống bên khởi tạo kết nối vào hệ thống bên điều thường bị ngăn chặn hầu hết hệ thống firewall Để giải vấn đề server phải tạo kết nối đến client, phương thức kết nối FTP khác phát triển Phương thức gọi FTP thụ động PASV (là lệnh mà client gởi cho server để báo cho biết chế độ passive) Trong FTP chế độ thụ động giải vấn đề phía client gây nhiều vấn đề khác phía server Thứ cho phép máy xa kết nối vào cổng lớn 1024 server Điều nguy hiểm trừ FTP cho phép mô tả dãy cổng lớn 1024 mà FTP dùng Vấn đề thứ hai là, số FTP client lại không hỗ trợ chế độ thụ động Ví dụ tiện ích FTP mà Solaris cung cấp không hỗ trợ FTP thụ động Khi đó, cần phải dùng thêm trình FTP client Một lưu ý khác hầu hết trình duyệt Web hỗ trợ FTP thụ động truy cập FTP server theo đường URL ftp:// Chương trình FTP Server: FTP Server máy chủ lưu giữ tài nguyên hỗ trợ giao thức FTP để giao tiếp với máy tính khác Nó cho phép truyền liệu Internet Một số chương trình FTP Server sử dụng Linux như: vsftpd, Wuftpd, PureFTPd, ProFTPD Trên Windows, ta sử dụng phiên hỗ trợ MicroSoft sử dụng phiên Golden như: Golden-FTP-server-PROsetup.exe (bản địi hỏi license) dùng miễn phí GoldenFTPserversetup.exe Về phần cài đặt, cài Windows sử dụng phiên hỗ trợ MicroSoft, ta vào Control Panel Add/Remove Program Add/Remove Windows Components Chọn IIS Chọn install Còn dùng phiên Golden ta cài gói cài đặt Bây giờ, chúng tơi trình bày phần cài đặt từ source cho linux Chọn gói cài đặt vsftpd-2.0.5.tar.gz Các bước tiến hành sau: # tar xvzf vsftpd-2.0.5.tar.gz ## Giải nén mã nguồn # cd vsftpd-2.0.5 ## Di chuyển đến thư mục chứa mã nguồn # make ## Tạo binary file # make /var/ftp ## Tạo thư mục chứa file để truy cập FTP # useradd -d /var/ftp ftp ## Tạo tài khoản người dùng vào thư mục định # chown root.root /var/ftp ## Chuyển quyền sở hữu sang root # chmod go-w /var/ftp ## Không cho phép ghi người dùng khác # make install ## Cài đặt FTP Server Nếu khơng thực lênh ‘make install’ ta làm sau: # cp vsftpd /usr/local/sbin/vsftpd # cp vsftpd.conf.5 /usr/local/man/man5 # cp vsftpd.8 /usr/local/man/man8 NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Tiếp theo, chép file cấu hình vào thư mục /etc: # cp vsftpd.conf /etc Cuối cùng, ta cần chỉnh sửa chút phép làm việc theo kiểu Nếu cho chạy theo kiểu standalone thêm dòng listen=YES vào cuối file /etc/vsftpd.conf Còn muốn cho chạy vơi inetd thêm dịng ftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd vào file /etc/inetd.conf Nếu không quen với việc cài đặt từ mã nguồn, ta chọn cài cài đặt làm sẵn gói có deb rpm Và việc cài đặt gói tương tự cài đặt Web Server Vsfpd package Nó phát triển xoay quanh tính nhanh, ổn định an tồn Vsftpd có khả quản lý số lượng kết nối lớn cách hiệu an toàn Để khởi động dừng vsftpd: # service vsftpd start/stop/restart Hoặc sử dụng lệnh: # /etc/init.d/vsftpd start/stop/restart 2.2.Cấu hình FTP Server Những tập tin thư mục thường qua tâm cấu hình vsftpd server: /etc/pam.d/vsftpd: tập tin cấu mục PAM cho vsftpd Tập tin định nghĩa yêu cầu mà người dùng phải cung cấp đăng nhập vào ftp server PAM chữ viết tắt từ Pluggable Authentication Modules, tạm dịch mơ-đun kiểm tra cắm PAM phát triển cho hệ thống Solaris từ Sun MicroSystems Dự án Linux-PAM làm cho PAM có sẵn hệ điều hành Linux PAM thư viện dùng chung để cấp phát đặc quyền cho ứng dụng liên quan đến PAM /etc/vsftpd/vsftpd.conf: tập tin cấu hình vsftpd server /etc/vsftpd.ftpusers: liệt kê người dùng không login vào vsftpd Mặc định, danh sách người dùng gồm root, bin, deamon người dùng khác /etc/vsftpd.user_list: tập tin cấu hình để cấm hay cho phép dùng liệt kê truy cập ftp server Điều phụ thuộc vào tùy chọn userlist_deny xét YES hay NO tập tin vsftpd.conf Nếu người dùng liệt kê tập tin khơng xuất vsftpd.ftpusers /var/ftp: thư mục chứa tập tin đáp ứng cho vsftpd Nó chứa thư mục pub cho người dùng anonymous (có thể hiểu người dùng ẩn danh) Thư mục đọc, có root có khả ghi Cấu hình để LAN truy cập mạng bên ngồi Việc cấu hình để máy từ LAN truy cập bên ngồi internet Đây mơ hình cho phép nhiều máy chia IP public Để làm điều hệ điều hành Linux, ta chọn lựa tool chạy ổn định, iptables để cấu hình Ngồi mục đích trên, iptables cịn dùng để lọc gói tin hiệu Chúng ta cho phép gói tin hay chặn gói tin mà ta muốn Để thực cách cụ thể, đưa mơ hình cụ thể tự chúng tơi thiết lập cho chạy thực tế Sử NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER dụng mạng máy tính cụ thể, mạng máy tính phịng máy tính khoa điện - điện tử Với mơ hình thiết lập hình Việc cấu hình giải thích sau Để gói tin từ mạng LAN bên mạng bên ngồi ta cần phải thay đổi địa nguồn gói tin để khỏi mạng LAN mà muốn định tuyến mạng đòi hỏi phải subnet đồng thời đòi hỏi địa nguồn phải đổi trước thực định tuyến ngồi Do đó, ta thực Source NAT Và ngồi mạng internet Và việc cấu hình Source ta chọn iptables Chúng tơi trình bày việc cấu hình SNAT máy dùng làm gateway mạng 192.168.1.0/24 Trình tự bước làm sau: # modprobe ipt_MASQUERADE ## Load mô-đun ip_MASQUERADE # iptables -F ## Xóa luật bảng filter # iptables -t nat -F ## Xóa luật bảng nat # iptables -t mangle -F ## Xóa luật bảng mangle ## Nếu gói tin từ 192.168.1.0/24 mạng ngồi thực đổi ##### nguồn thành 172.28.24.199 # iptables -t nat -A POSTROUTING -o eth0 -j SNAT to 172.28.24.199 ## Cho phép interface forward với # echo > /proc/sys/net/ipv4/ip_forward ## Cho phép gói tin từ kết nối thiết lập có mối liên ### kết nối Lệnh có ý nghĩa trường hợp kết nối FTP # iptables -A INPUT -m state state ESTABLISHED,RELATED -j ACCEPT ## Cho phép gói tin đến từ interface eth0 # iptables -A INPUT -m state state NEW -i ! eth0 -j ACCEPT ## Mặc định DROP (cấm) # iptables -P INPUT DROP ## Nếu gói tin forward từ eth0 đến eth0 ngăn lại trả thông ### cho người gởi biết # iptables -A FORWARD -i eth0 -o eth0 -j REJECT Trong trường hợp đường nối mạng ngồi khơng phải card ethernet mà dial đổi eth0 thành ppp0 địa hệ với báo up ta Với việc cấu hình iptables trường hợp mơ hình mạng hình 7.1.Giả máy 192.168.1.2 muốn gởi Request đến máy 172.28.2.2 Suy ra, gói tin có địa nguồn 192.168.1.2 địa đích 172.28.2.2 Nó định tuyến đến gateway địa đích không subnet địa nguồn, iptables thiết lập lại gói tin, tức đổi địa nguồn thành 172.28.24.199 cịn địa đích giữ ngun Tiếp theo, thực định tuyến Và việc định tuyến giống trên, xem lại gói tin rõ ràng địa đích khơng subnet địa nguồn, định tuyến đến gateway thực đổi địa nguồn Việc định tuyến tiếp tục Đến thấy gói tin có địa đích có subnet với địa nguồn xác định máy cần đến nằm mạng Và thế, khơng cần đến gateway mà cần đến switch chuyển gói tin thẳng đến đích Q trình trình gởi Reponse từ máy 172.28.2.2 máy 192.168.1.2, xem header mà định tuyến đích NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Mạng internet 172.28.24.1 eth0 172.28.24.199 ` ` 172.28.247.197 ` 172.28.24.198 172.28.24.194 ` 172.28.24.195 eth1 192.168.1.1 ` 192.168.1.2 ` 192.168.1.3 Hình 1: Mơ hình mạng LAN tự thiết lập Cấu hình để mạng bên ngồi truy cập Server Việc cấu hình để mạng bên ngồi truy cập Server từ LAN nội Đây mơ hình phổ biến Nó làm cơng việc cân tải vừa tạo tính an tồn cho mạng nội Phưong pháp thực điều lý giải ngắn gọn sau: người dùng internet muốn truy cập đến trang web URL họ gõ địa Server ảo (hay gọi VIP, viết tắt từ cụm từ Virtual IP) Và Server gateway, ta thiết lập tường lửa Tại đây, xem xét địa port, sau forward đến server cần thiết Mơ hình cấu hình server chúng tơi tự thiết lập minh họa hình Và trình tự cấu hình sau: # echo > /proc/sys/net/ipv4/ip_forward ## Cho phép IP forwarding ## Load modules # modprobe ip_conntrack_ftp NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER # modprobe ip_nat_ftp ##Thiết lập sách mặc định giải phóng bảng iptables # iptables -t nat -F # iptables -P INPUT ACCEPT # iptables -F INPUT # iptables -P OUTPUT ACCEPT # iptables -F OUTPUT # iptables -P FORWARD ACCEPT # iptables -F FORWARD ## Cấu hình Web Server máy 192.168.1.2 ## Đổi địa đích gói tin gói tin có địa đích 172.28.24.199 ## port 80, vào eth0, dùng giao thức tcp thành 192.168.1.2 port 8080 # iptables -t nat -A PREROUTING -d 172.28.24.199 -i eth0 -p tcp \ dport 80 -j DNAT to-destination 192.168.1.2:8080 # Cho phép gói tin forward # iptables -A FORWARD -p tcp -i eth0 -d 192.168.1.2 dport 8080 \ -j ACCEPT ## Tương tự, ta cấu hình Web Server máy 192.168.1.3 # iptables -t nat -A PREROUTING -d 172.28.24.199 -i eth0 -p tcp \ dport 8888 -j DNAT to-destination 192.168.1.3:80 ## Cấu hình FTP Server máy 192.168.1.3 # iptables -A FORWARD -p tcp -i eth0 -d 192.168.1.3 dport 80 \ -j ACCEPT # iptables -t nat -A PREROUTING -i eth0 -p tcp dport 20:21 \ -j DNAT to-destination 192.168.1.2:21 # iptables -A FORWARD -p tcp -i eth0 -d 192.168.1.2 dport 21 \ -j ACCEPT ## Tương tự, ta cấu hình cho máy 192.168.1.3 # iptables -t nat -A PREROUTING -i eth0 -p tcp dport 2020:2121 \ -j DNAT to-destination 192.168.1.3:21 # iptables -A FORWARD -p tcp -i eth0 -d 192.168.1.3 dport 21 \ -j ACCEPT NGUYỄN HỒNG THÁI 16/12/2006 10 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Hình 2: Mơ hình mạng LAN với server Kết việc cấu hình Kết việc cấu hình iptables lưu file /etc/sysconfig/iptables sau: # Generated by iptables-save v1.2.8 on Thu Nov 15:47:54 2006 *nat :PREROUTING ACCEPT [4169:438355] :POSTROUTING ACCEPT [106:6312] :OUTPUT ACCEPT [22:1332] -A PREROUTING -d 172.28.24.199 -i eth0 -p tcp -m tcp dport 80 -j DNAT to-destination 192.168.1.2:8080 -A PREROUTING -d 172.28.24.199 -i eth0 -p tcp -m tcp dport 8888 -j DNAT to-destination 192.168.1.3:80 -A PREROUTING -i eth0 -p tcp -m tcp dport 20:21 -j DNAT to-destination 192.168.1.2:21 -A PREROUTING -i eth0 -p tcp -m tcp dport 2020:2121 -j DNAT to-destination 192.168.1.3:21 -A POSTROUTING -o eth0 -j SNAT to-source 172.28.24.199 COMMIT # Completed on Thu Nov 15:47:54 2006 # Generated by iptables-save v1.2.8 on Thu Nov 15:47:54 2006 *filter :INPUT DROP [4011:414080] NGUYỄN HỒNG THÁI 16/12/2006 11 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER :FORWARD ACCEPT [552:57100] :OUTPUT ACCEPT [393:43195] -A INPUT -m state state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i ! eth0 -m state state NEW -j ACCEPT -A FORWARD -d 192.168.1.3 -i eth0 -p tcp -m tcp dport 80 -j ACCEPT COMMIT # Completed on Thu Nov 15:47:54 2006 # Generated by iptables-save v1.2.8 on Thu Nov 15:47:54 2006 *mangle :PREROUTING ACCEPT [5114:853418] :INPUT ACCEPT [4416:773589] :FORWARD ACCEPT [552:57100] :OUTPUT ACCEPT [393:43195] :POSTROUTING ACCEPT [945:100295] COMMIT # Completed on Thu Nov 15:47:54 2006 Kết thực traceroute từ máy 192.168.1.2 đến máy khác sau: sysadmin@debian:~$ traceroute 172.28.24.195 traceroute to 172.28.24.195 (172.28.24.195), 30 hops max, 38 byte packets 192.168.1.1 (192.168.1.1) 2.541 ms 3.409 ms 0.142 ms 172.28.24.195 (172.28.24.195) 0.298 ms 3.125 ms 0.256 ms sysadmin@debian:~$ traceroute 172.28.2.2 traceroute to 172.28.2.2 (172.28.2.2), 30 hops max, 38 byte packets 192.168.1.1 (192.168.1.1) 0.259 ms 4.546 ms 0.185 ms 172.28.24.1 (172.28.24.1) 1.182 ms 2.777 ms 0.820 ms hcmut-server.hcmut.edu.vn (172.28.2.2) 0.988 ms 4.159 ms 5.069 ms sysadmin@debian:~$ Kết thực mtr từ máy 192.168.1.2 đến máy khác sau: My traceroute [v0.67] debian (0.0.0.0)(tos=0x0 psize=64 bitpattern=0x00) Wed Nov 15 11:11:31 2006 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 192.168.1.1 0.0% 70 0.3 1.4 0.2 59.0 7.2 172.28.24.195 0.0% 70 0.4 6.8 0.3 292.3 35.7 My traceroute [v0.67] debian (0.0.0.0)(tos=0x0 psize=64 bitpattern=0x00) Wed Nov 15 11:13:13 2006 Keys: Help Display mode Restart statistics Order of fields quit Packets Pings Host Loss% Snt Last Avg Best Wrst StDev 192.168.1.1 0.0% 12 0.2 0.3 0.2 1.2 0.3 172.28.24.1 0.0% 12 0.9 1.5 0.8 6.0 1.6 hcmut-server.hcmut.edu.vn 0.0% 12 0.4 0.9 0.4 4.7 1.3 NGUYỄN HỒNG THÁI 16/12/2006 12 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Kết từ máy 192.168.1.2, dùng Konqueror để truy cập Web server Nếu URL gõ http://localhost:8080/ máy tính hiểu truy cập Web Server máy máy 192.168.1.2 port 8080 Điều dễ dàng nhận dùng lệnh ifconfig thấy địa 192.168.1.2 địa interface eth0 máy 192.168.1.2 Còn URL gõ http://172.28.24.199 hiểu địa khơng phải địa mạng Do đó, gởi đến gateway gateway định tuyến gói theo quy luật mà iptables cài (ở phần cài đặt để LAN truy cập mạng bên ngồi) Nó ánh xạ địa 172.28.24.199 port 80 → 192.168.1.2 port 8080 Vì vậy, mà gõ hai địa URL khác kết trả từ web server giống Đồng thời, máy 192.168.1.2 ta đăng nhập từ xa đến máy khác mạng thử dùng Internet Explorer để truy cập http://172.28.24.199 ta nhận kết từ web server hoàn toàn giống với kết Còn máy dùng làm gateway ta dùng Mozilla Firefox để truy cập http://localhost/ hiểu truy cập Web Server máy máy có địa 172.28.24.199 Ta rõ ràng thấy khác biệt điều này, địa 172.28.24.199 port 80 vị trí truy cập khác cho kết khác Tương tự trên, máy 192.168.1.2 ta truy cập ftp://localhost đăng nhập từ xa đến máy mạng khác dùng Internet Explorer để truy cập ftp://172.28.24.199 Cả điều có nghĩa truy cập đến FTP Server máy 192.168.1.2 port 21 Do đó, ta nhận hai kết giống Hình 3: Kết truy cập Web Server máy khác NGUYỄN HỒNG THÁI 16/12/2006 13 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Hình 4:Kết truy cập Web Server máy dùng làm gateway Hình 5: Kết truy cập ftp đồng thời máy NGUYỄN HỒNG THÁI 16/12/2006 14 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Kết máy dùng làm gateway, chúng tơi dùng chương trình tcpdump giám giám việc định tuyến qua gateway Kết thu sau: 11:01:09.614831 172.28.24.199.1065 > 172.28.24.195.3389: ack 309 win 53576 (DF) 11:01:09.908869 172.28.24.199.1026 > www.hcmut.edu.vn.domain: 59879+ PTR? 164.24.28.172.in-addr.arpa (44) (DF) 11:01:09.909556 www.hcmut.edu.vn.domain > 172.28.24.199.1026: 59879 NXDomain* 0/1/0 (112) (DF) 11:01:09.925041 172.28.24.195.3389 > 172.28.24.199.1065: P 309:326(17) ack win 64376 (DF) 11:01:09.925202 172.28.24.199.1065 > 172.28.24.195.3389: ack 326 win 53576 (DF) 11:01:10.455809 172.28.24.195.3389 > 172.28.24.199.1065: P 326:342(16) ack win 64376 (DF) 11:01:10.455995 172.28.24.199.1065 > 172.28.24.195.3389: ack 342 win 53576 (DF) 11:01:10.555978 172.28.24.195.3389 > 172.28.24.199.1065: P 342:371(29) ack win 64376 (DF) 11:01:10.556143 172.28.24.199.1065 > 172.28.24.195.3389: ack 371 win 53576 (DF) 11:01:10.986546 172.28.24.195.3389 > 172.28.24.199.1065: P 371:388(17) ack win 64376 (DF) 11:01:10.986722 172.28.24.199.1065 > 172.28.24.195.3389: ack 388 win 53576 (DF) 11:01:11.517327 172.28.24.195.3389 > 172.28.24.199.1065: P 388:404(16) ack win 64376 (DF) 11:01:11.517490 172.28.24.199.1065 > 172.28.24.195.3389: ack 404 win 53576 (DF),nop,timestamp 23626 589230> (DF) 11:01:09.614831 172.28.24.199.1065 > 172.28.24.195.3389: ack 309 win 53576 (DF) 11:01:09.908869 172.28.24.199.1026 > www.hcmut.edu.vn.domain: 59879+ PTR? 164.24.28.172.in-addr.arpa (44) (DF) 11:01:09.909556 www.hcmut.edu.vn.domain > 172.28.24.199.1026: 59879 NXDomain* 0/1/0 (112) (DF) 11:01:09.925041 172.28.24.195.3389 > 172.28.24.199.1065: P 309:326(17) ack win 64376 (DF) 11:01:09.925202 172.28.24.199.1065 > 172.28.24.195.3389: ack 326 win 53576 (DF) 11:01:10.455809 172.28.24.195.3389 > 172.28.24.199.1065: P 326:342(16) ack win 64376 (DF) 11:01:10.455995 172.28.24.199.1065 > 172.28.24.195.3389: ack 342 win 53576 (DF) 11:01:10.555978 172.28.24.195.3389 > 172.28.24.199.1065: P 342:371(29) ack win 64376 (DF) 11:01:10.556143 172.28.24.199.1065 > 172.28.24.195.3389: ack 371 win 53576 (DF) NGUYỄN HỒNG THÁI 16/12/2006 15 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER 11:01:10.986546 172.28.24.195.3389 > 172.28.24.199.1065: (DF) 11:01:10.986722 172.28.24.199.1065 > 172.28.24.195.3389: (DF) 11:01:11.517327 172.28.24.195.3389 > 172.28.24.199.1065: (DF) 11:01:11.517490 172.28.24.199.1065 > 172.28.24.195.3389: (DF) P 371:388(17) ack win 64376 ack 388 win 53576 P 388:404(16) ack win 64376 ack 404 win 53576 Kết cho thấy ta hồn tồn khơng thấy máy mạng 192.168.1.0/24 Tóm lại, dùng iptables để cấu hình việc NAT từ phép từ máy mạng LAN truy cập đến Server bên Và việc NAT từ vào phép máy ngồi mạng truy cập đến Server bên mạng LAN Kết cho thấy, ta thực cân tải server, tức địa IP khác port, ta truy cập đến server khác Thứ hai, với cách truy cập khác vị trí khác máy tính hiểu khác Và thức ba là, từ kết chương trình tcpdump cho thấy với iptables ta ngồi việc thực lọc gói tin, cịn thực NAT đồng thời đảm bảo tính bảo mật cho mạng bên Tuy nhiên, việc cấu hình cân tải server bảo mật cho mạng người ta không làm phần mềm mà làm trực tiếp phần cứng TÀI LIỆU THAM KHẢO [1] Nguyễn Thị Điệp Tiêu Đơng Nhơn, Giáo trình Dịch vụ mạng Linux, Đại học Quốc Gia Thành phố Hồ Chí Minh 12/2005 [2] How i forward ftp from my firewall to an internal server by Mark E Donaldson [3] PORT FORWARDING - with IPTABLES while using BASTILLE firewall by kishan at hackorama dot com [4] Masquerading Made Simple HOWTO by John Tapsell, Thomas Spellman and Matthias Grimm NGUYỄN HỒNG THÁI 16/12/2006 16 ... 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER # modprobe ip_nat_ftp ##Thiết lập sách mặc định giải phóng bảng iptables # iptables -t nat -F # iptables -P INPUT ACCEPT # iptables -F INPUT # iptables. .. tính Ví dụ: ServerName www.nguyenhongthai.hcmut.edu.vn NGUYỄN HỒNG THÁI 16/12/2006 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER ServerAdmin: địa email người quản trị hệ thống Cú pháp: ServerAdmin... 16/12/2006 10 ÁP DỤNG IPTABLES VÀO WEB SERVER VÀ FTP SERVER Hình 2: Mơ hình mạng LAN với server Kết việc cấu hình Kết việc cấu hình iptables lưu file /etc/sysconfig /iptables sau: # Generated by iptables- save