Làm thế nào để thiết lập các tùy chọn bảo mật nâng cao của giao thức TCP/IP và bộ nhớ ảo để cải thiện an ninh và tăng hiệu suất của hệ thống của tôi? Làm thế nào để cấu hình hạt nhân Linux để ngăn chặn một số loại tấn công bằng cách sử dụng /etc/sysctl.conf? Làm thế nào để thiết lập các thông số hạt nhân Linux? Để giải quyết những vấn đề đó ta hãy xem hướng dẫn sau đây. sysctl là một giao diện cho phép bạn thực hiện thay đổi cho một hạt nhân Linux đang chạy. Với /etc/sysctl.conf bạn có thể cấu hình các thiết lập mạng và hệ thống Linux như: Giới hạn cấu hình truyền dữ liệu mạng cho IPv4 Giới hạn cấu hình truyền dữ liệu mạng cho Ipv6 Bật bảo vệ execshield Ngăn chặn chống lại tấn công syn flood Bật tính năng xác minh địa chỉ IP Ngăn chặn một cracker sử dụng một cuộc tấn công giả mạo đối với các địa chỉ IP của máy chủ. Ghi log về một số dạng của gói tin đáng ngờ, chẳng hạn như các gói giả mạo, các gói mã nguồn định tuyến và chuyển hướng. Lệnh sysctl Lệnh sysctl được sử dụng để thay đổi các tham số hạt nhân tại thời gian chạy. /etc/sysctl.conf là một tập tin văn bản có chứa các giá trị sysctl để được đọc và được thiết lập bởi sysct vào lúc khởi động. Để xem giá trị hiện tại, hãy nhập: Mã: sysctl -a sysctl -A sysctl mib sysctl net.ipv4.conf.all.rp_filter Để reload các thiết lập, hãy nhập: Mã: sysctl -p Một ví dụ mẫu /etc/sysctl.conf Chỉnh sửa /etc/sysctl.conf và cập nhật nó như sau. Tập tin được ghi chép lại với nhiều ý kiến. Tuy nhiên, tôi khuyên bạn nên sử dụng tập tin cấu hình chính thức sysctl Linux kernel (xem dưới đây): Mã: # The following is suitable for dedicated web server, mail, ftp server etc. # --------------------------------------- # BOOLEAN Values: # a) 0 (zero) - disabled / no / false # b) Non zero - enabled / yes / true # -------------------------------------- # Controls IP packet forwarding net.ipv4.ip_forward = 0 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 # Do not accept source routing net.ipv4.conf.default.accept_source_route = 0 # Controls the System Request debugging functionality of the kernel kernel.sysrq = 0 # Controls whether core dumps will append the PID to the core filename # Useful for debugging multi-threaded applications kernel.core_uses_pid = 1 # Controls the use of TCP syncookies #net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_synack_retries = 2 ########## IPv4 networking start ############## # Send redirects, if router, but this is just server net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.default.send_redirects = 0 # Accept packets with SRR option? No net.ipv4.conf.all.accept_source_route = 0 # Accept Redirects? No, this is not router net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.secure_redirects = 0 # Log packets with impossible addresses to kernel log? yes net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 # Ignore all ICMP ECHO and TIMESTAMP requests sent to it via broadcast/multicast net.ipv4.icmp_echo_ignore_broadcasts = 1 # Prevent against the common 'syn flood attack' net.ipv4.tcp_syncookies = 1 # Enable source validation by reversed path, as specified in RFC1812 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 ########## IPv6 networking start ############## # Number of Router Solicitations to send until assuming no routers are present. # This is host and not router net.ipv6.conf.default.router_solicitations = 0 # Accept Router Preference in RA? net.ipv6.conf.default.accept_ra_rtr_pref = 0 # Learn Prefix Information in Router Advertisement net.ipv6.conf.default.accept_ra_pinfo = 0 # Setting controls whether the system will accept Hop Limit settings from a router advertisement net.ipv6.conf.default.accept_ra_defrtr = 0 #router advertisements can cause the system to assign a global unicast address to an interface net.ipv6.conf.default.autoconf = 0 #how many neighbor solicitations to send out per address? net.ipv6.conf.default.dad_transmits = 0 # How many global unicast IPv6 addresses can be assigned to each interface? net.ipv6.conf.default.max_addresses = 1 ########## IPv6 networking ends ############## #Enable ExecShield protection kernel.exec-shield = 1 kernel.randomize_va_space = 1 # TCP and memory optimization # increase TCP max buffer size setable using setsockopt() #net.ipv4.tcp_rmem = 4096 87380 8388608 #net.ipv4.tcp_wmem = 4096 87380 8388608 # increase Linux auto tuning TCP buffer limits #net.core.rmem_max = 8388608 #net.core.wmem_max = 8388608 #net.core.netdev_max_backlog = 5000 #net.ipv4.tcp_window_scaling = 1 # increase system file descriptor limit fs.file-max = 65535 #Allow for more PIDs kernel.pid_max = 65536 #Increase system IP port limits net.ipv4.ip_local_port_range = 2000 65000 Bạn nhớ reload lại để áp dụng các thay đổi.