目录
1.文件系统及访问权限 2. Linux日志审计 3. 帐号安全管理 4. 基础物理安全 5. 系统编译环境安全 6. 系统病毒、后门、rootkit安全 7. 系统端口、服务安全 8. 系统内核安全
1.文件系统及访问权限
Linux为每个文件都分配了一个文件所有者,称为"文件属主",并赋予文件主惟一的注册名
1. 对文件的控制取决于文件主或超级用户root(linux系统中的root用户有无条件的最高权限) 2. 文件或目录的创建者(属主)对所创建的文件或目录拥有特别使用权 文件的所有关系是可以改变的,文件或目录的所有权可以转让给其它用户,但只有文件主或root用户才有权改变文件的所有关系
linux下文件/目录的权限基本原理如下
1. 文件权限转移 文件的所有权标志是用户ID(UID)。chown命今可以更改某个文件或目录的所有权。例如,超级用户把自己的一个文件拷贝给用户cg,为了让用户cg能够存取这个文件,超级用户(root)应该把这个文件的属主设为cg,否则,用户cg就无法存取这个文件 chown [cfhvR] 用户 或 组[文件1] [文件2].... 1) 用户可以是用户名或用户ID 2) 文件是以空格分开的、要改变权限的文件列表,可以用通配符表示文件名 如果改变了文件或目录的所有权,原文件主将不再拥有该文件或目录的权限。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下以后,让用户拥有使用该文件的权限 2. 文件的属主/属组 在Linux下,每个文件又同时属于一个用户组。当创建一个文件或目录时,系统就会赋予它一个用户组关系,用户组的所有成员都可以使用此文件或目录。 文件用户组关系的标志是GID。文件的GID只能由文件主或超级用户(root)来修改。chgrp命令可以改变文件或目录的拥有者或所属群组 chgrp [cfhRv] group文件名或目录 1) group是用户组ID 2) 文件名是以空格分开的,它支持通配符 Linux系统中的每个文件和目录都有访问许可权限(ACL),用它来确定谁可以通过何种方式对文件和目录进行访问及操作。访问权限规定三种不同类型的用户 1) 文件主(owner) 2) 同组用户(group) 3) 可以访问系统的其它用户(others) 访问权限规定三种访问文件或目录的方式,即 1) 读(r) 1.1) 文件 对于文件,读权限(r)表示只允许指定用户读其内容,而禁止对其做任何的更改操作,将所访问的文件内容作为输入的命令需要有读的权限,例如命令more、head、cat等 1.2) 目录 对于目录,读权限(r)可以列出存储在该目录下的文件,即读目录内容列表。这一权限允许shell使用文件扩展名字符列出相匹配的文件名(即ll xxdir | grep xxx) 2) 写(w) 2.1) 文件 写权限(w)表示允许指定用户打开并修改文件,例如命令cp、vi、mv等 2.2) 目录 写权限(w)表示允许从目录中删除或添加新的文件,通常只有目录主才有写权限 3) 可执行(x) 3.1) 文件 执行权限(x)允许指定用户将该文件作为一个程序执行。可以使用"ls -l"查看一个文件的详细属性。 3.2) 目录 执行权限(x)允许在目录中查找,并能用cd命令将工作目录改到该目录。使用"ls -ld"命令可以查看一个目录的详细属性
Relevant Link:
http://www.cnblogs.com/LittleHann/p/3862652.html http://www.2cto.com/Article/201205/129787.html
2. Linux日志审计
0x1: 系统级别的日志
Linux的日志文件用来记录整个操作系统使用状况,他们是黑客攻击的重点目标,linux系统中,大部分的日志都保存在/var/log(还有一些例外例如mysql、未读邮件等),所以作为一个Linux网络系统管理员要充分用好以下几个系统日志文件
1. /var/log/boot.log 系统的引导日志 2. /var/log/dmesg 核心(内核)启动日志 3. /var/log/messages: 系统报错日志 messages日志是核心系统日志文件。它包含了大量的运行时信息,例如 1) 系统启动时的引导消息 2) IO错误 3) 网络错误信息 4) 某个人的身份切换为root 5) 如果服务正在运行,比如DHCP服务器,您可以在messages文件中观察它的活动 通常,/var/log/messages是我们在做故障诊断时首先要查看的文件 4. /var/log/maillog 邮件系统日志 5. /var/log/xferlog FTP系统日志 6. /var/log/secure 记录系统自开通以来所有用户的登录时间和地点,可以给系统管理员提供更多的参考 7. /var/log/wtmp 记录当前和历史上登录到系统的用户的登录时间、地点和注销时间等信息。和/var/log/lastlog一样,这个文件是一个二进制文件,需要用last命令查看 last -f /var/log/wtmp 8. /var/log/spooler News日志 9. /var/log/rpmpkgs RPM软件包 10. /var/log/boot.log: 引导日志 记录开机启动讯息,就是Linux系统开机自检过程显示的信息 dmesg | more 11. /var/log/cron: cron(定制任务日志)日志 该日志文件记录crontab守护进程crond所派生的子进程的动作(包括用户、登录时间和PID,以及派生出的进程的动作) 1) CMD的一个动作是cron派生出一个调度进程的常见情况 2) REPLACE(替换)动作记录用户对它的cron文件的更新 3) RELOAD动作在REPLACE动作后不久发生,这意味着cron注意到一个用户的cron文件被更新而cron需要把它重新装入内存 该文件可能会查到一些反常的情况 12. /var/log/lastlog 记录最后进入系统的用户信息,包括登录的时间、登录是否成功等信息。这个文件是一个2进制文件,需要用lastlog命令进行读取 1) lastlog 查看一下/var/log/lastlog文件中记录的所用账号的最后登录时间,再与自己的用机记录对比一下就可以发现该账号是否被黑客盗用,如果发现在某个时间段有一个自己不认可的帐号的进行了登录,则说明发现了可疑行为 2) du -h /var/log/lastlog 查看其lastlog保存空间占用情况 3) echo "" > /var/log/lastlog 清空lastlog的日志保存
以上几个文件都是由klogd、和syslogd进行记录的
1. klogd 通常klogd用来记录系统内核所产生的日志信息,也就是工作在系统内核态的进程所产生的日子记录 2. syslogd守护进程进行记录的 syslogd用来记录工作在用户态的进程的日志信息,这些程序包括以下几种进程 1) 用户进程 2) 网络服务器进程 3) 多数的系统守护进程
因此,对于管理人员而言,通过及时检查syslogd记录的信息能够发现绝大多数的系统异常情况
syslogd负责发送、记录系统内核及工具所产生的信息。整个机制由以下几部分共同组成 1) 系统调用syslog() 2) 系统守护进程syslogd sys1ogd进程在系统启动时由/etc/rc.d/rc2.d/S12syslog启动。如果需要手工启动或停止syslogd,可以使用下面命令: 2.1) /etc/rc.d/init.d/syslog start | stop 3) 配置文件/etc/syslog.conf 通过配置syslog.conf,可以灵活地对信息的发送和保存进行控制
当系统内核及工具产生信息时,通过调用syslog(),把信息送往syslogd,它再根据/etc/syslog.conf中的配置要求,这些信息分别做如下处理
1) 记录到系统日志中 2) 输出到系统控制台上 3) 转发给指定的用户 4) 通过网络转发给其它主机上的syslogd
0x2: 用户级别的操作日志
1. 特权指令执行记录 除了系统登录记录和syslog记录之外,在linux系统里,使用自己的记录方式。系统每天都会自动检查系统的安全设置, 包括对SetUID、SetGID的执行文件的检查,其结果将输出到/var/log/setuid.today文件中,管理员可以与/var/log/security.yesterday文件对比,寻找系统安全设置的变化。 2. 硬件状态信息 在系统启动的时候,就将内核的检测信息输出到屏幕上,这些信息可以帮助用户分析系统中的硬件状态。一般使用dmesg命令来查看最后一次启动时输出的这个检测信息,这些信息被系统保存在/var/log/dmesg文件中 #cat /var/log/dmesg |more Linux version 2.6.32-431.23.3.el6.centos.plus.i686 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Tue Jul 29 23:27:50 UTC 2014 KERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD NSC Geode by NSC Cyrix CyrixInstead Centaur CentaurHauls Transmeta GenuineTMx86 Transmeta TransmetaCPU UMC UMC UMC UMC Disabled fast string operations BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f400 (usable) BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved) BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000007fef0000 (usable) BIOS-e820: 000000007fef0000 - 000000007feff000 (ACPI data) BIOS-e820: 000000007feff000 - 000000007ff00000 (ACPI NVS) BIOS-e820: 000000007ff00000 - 0000000080000000 (usable) BIOS-e820: 00000000f0000000 - 00000000f8000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved) ..... 3. Bash Shell执行记录 各种Bash(kshell、cshell)还会记录用户使用的命令历史,使用用户主目录下的文件来记录这些命令历史,通常这个文件的名字为 1) .bash-history 2) .history(csh) ..
Relevant Link:
http://blog.chinaunix.net/uid-25120309-id-3359929.html http://www.liufofu.com/201207524.html http://blog.chinaunix.net/uid-26569496-id-3199434.html
3. 帐号安全管理
0x1: 账户安全
1. 锁定系统中多余的自建帐号 检查方法: 执行命令 1) #cat /etc/passwd 2) #cat /etc/shadow 查看账户、口令文件,与系统管理员确认不必要的账号。对于一些保留的系统伪帐户:bin、sys、adm、uucp、lp、nuucp、hpdb、www、daemon等可根据需要锁定登陆 在进行操作之前,需要与管理员确认此项操作不会影响到业务系统的登录,如果对操作后的风险不确定,则可以采用备份的思路 备份方法: 1) #cp -p /etc/passwd /etc/passwd_bak 2) #cp -p /etc/shadow /etc/shadow_bak 加固方法: 1) 使用命令passwd -l <用户名>锁定不必要的账号 2) 使用命令passwd -u <用户名>解锁需要恢复的账号 2. 设置系统口令策略 检查方法: 执行命令 1) #cat /etc/login.defs | grep PASS查看密码策略设置 备份方法: 1) cp -p /etc/login.defs /etc/login.defs_bak 加固方法: 1) #vi /etc/login.defs修改配置文件 PASS_MAX_DAYS 90 #新建用户的密码最长使用天数 PASS_MIN_DAYS 0 #新建用户的密码最短使用天数 PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数 PASS_MIN_LEN 9 #最小密码长度9 3. 禁用root之外的超级用户 检查方法: 1) #cat /etc/passwd 查看口令文件,口令文件格式如下 备份方法: 1) #cp -p /etc/passwd /etc/passwd_bak 加固方法: 1) 使用命令passwd -l <用户名>锁定不必要的超级账户 2) 使用命令passwd -u <用户名>解锁需要恢复的超级账户 4. 限制能够su为root的用户 检查方法: 1) #cat /etc/pam.d/su 查看是否有auth required /lib/security/pam_wheel.so这样的配置条目 备份方法: 1) #cp -p /etc/pam.d /etc/pam.d_bak 加固方法: 1) #vi /etc/pam.d/su 在头部添加: auth required /lib/security/pam_wheel.so group=wheel 这样,只有wheel组的用户可以su到root #usermod -G10 test 将test用户加入到wheel组 5. 检查shadow中空口令帐号 检查方法: 1) #awk -F: ‘( == "") { print }‘ /etc/shadow 备份方法: 1) cp -p /etc/shadow /etc/shadow_bak 加固方法: 1) 对空口令账号进行锁定,或要求增加密码
0x2: 最小化服务
1. 停止或禁用与承载业务无关的服务 检查方法: 1) runlevel 查看当前init级别 2) chkconfig --list 查看所有服务的状态 备份方法:记录需要关闭服务的名称 加固方法: 1) #chkconfig --level <服务名> on|off|reset 设置服务在个init级别下开机是否启动
0x3: 数据访问控制
1. 设置合理的初始文件权限 检查方法: 1) cat /etc/profile 查看umask的值 备份方法: 1) #cp -p /etc/profile /etc/profile_bak 加固方法: 1) #vi /etc/profile umask=027 会修改新建文件的默认权限,如果该服务器是WEB应用,则此项谨慎修改
0x4: 网络访问控制
1. 使用SSH进行管理 检查方法: 1) ps –aef | grep sshd 查看有无此服务 备份方法: 加固方法: 1) 使用命令开启ssh服务 #service sshd start 2. 设置访问控制策略限制能够管理本机的IP地址 检查方法: 1) #cat /etc/ssh/sshd_config 查看有无AllowUsers的语句 备份方法: 1) #cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 加固方法: 1) #vi /etc/ssh/sshd_config 添加以下语句 AllowUsers *@10.138.*.* 此句意为: 仅允许10.138.0.0/16网段所有用户通过ssh访问 保存后重启ssh服务 2) #service sshd restart 值得注意的是,需要和管理员确认能够管理的IP段 3. 禁止root用户远程登陆 检查方法: 1) #cat /etc/ssh/sshd_config 查看PermitRootLogin是否为no 备份方法: 1) #cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 加固方法: 1) #vi /etc/ssh/sshd_config PermitRootLogin no 保存后重启ssh服务 2) service sshd restart "禁止root用户远程登陆"带来的直接后果就是root用户无法直接远程登录,需要用普通账号登陆后su 4. 限定信任主机 检查方法: 1) #cat /etc/hosts.allow 查看其中的主机 2) #cat /$HOME/.rhosts 查看其中的主机 备份方法: 1) #cp -p /etc/hosts.allow /etc/hosts.allow_bak #cp -p /$HOME/.rhosts /$HOME/.rhosts_bak 加固方法: 1) #vi /etc/hosts.allow 删除其中不必要的主机 2) #vi /$HOME/.rhosts 删除其中不必要的主机 5. 屏蔽登录banner信息 检查方法: 1) #cat /etc/ssh/sshd_config 查看文件中是否存在Banner字段,或banner字段为NONE 2) #cat /etc/motd 查看文件内容,该处内容将作为banner信息显示给登录用户。 备份方法: 1) #cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak 2) #cp -p /etc/motd /etc/motd_bak 加固方法: 1) #vi /etc/ssh/sshd_config banner NONE 2) #vi /etc/motd 删除全部内容或更新成自己想要添加的内容 6. 防止误使用Ctrl+Alt+Del重启系统 检查方法: 1) #cat /etc/inittab | grep ctrlaltdel 查看输入行是否被注释 备份方法: 1) #cp -p /etc/inittab /etc/inittab_bak 加固方法: 1) #vi /etc/inittab 在行开头添加注释符号"#" 2) #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
0x5: 用户鉴别
1. 设置帐户锁定登录失败锁定次数、锁定时间 检查方法: 1) #cat /etc/pam.d/system-auth 查看有无auth required pam_tally.so条目的设置 备份方法: 1) #cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth_bak 加固方法: 1) #vi /etc/pam.d/system-auth auth required pam_tally.so onerr=fail deny=6 unlock_time=300 设置为密码连续错误6次锁定,锁定时间300秒 2) 解锁用户 faillog -u <用户名> -r 当系统验证出现问题时,首先应当检查/var/log/messages或者/var/log/secure中的输出信息,根据这些信息判断用户账号的有效性 2. 修改帐户TMOUT值,设置自动注销时间 检查方法: 1) #cat /etc/profile 查看有无TMOUT的设置 备份方法: 1) #cp -p /etc/profile /etc/profile_bak 加固方法: 1) #vi /etc/profile 增加 TMOUT=600 无操作600秒后自动退出 3. Grub/Lilo密码 检查方法: 1) #cat /etc/grub.conf|grep password 查看grub是否设置密码 2) #cat /etc/lilo.conf|grep password 查看lilo是否设置密码 备份方法: 1) #cp -p /etc/grub.conf /etc/grub.conf_bak 2) #cp -p /etc/lilo.conf /etc/lilo.conf_bak 加固方法:为grub或lilo设置密码 4. 限制FTP登录 检查方法: 1) #cat /etc/ftpusers 确认是否包含用户名,这些用户名不允许登录FTP服务(只有你安装了ftp服务才会有这个文件) 备份方法: 1) #cp -p /etc/ftpusers /etc/ftpusers_bak 加固方法: 1) #vi /etc/ftpusers 添加行,每行包含一个用户名,添加的用户将被禁止登录FTP服务 5. 设置Bash保留历史命令的条数 检查方法: 1) #cat /etc/profile|grep HISTSIZE= 2) #cat /etc/profile|grep HISTFILESIZE= 查看保留历史命令的条数 备份方法: 1) #cp -p /etc/profile /etc/profile_bak 加固方法: 1) #vi /etc/profile 修改HISTSIZE=5和HISTFILESIZE=5即保留最新执行的5条命令
0x6: 审计策略
1. 配置系统日志策略配置文件 检查方法: 1) #ps –aef | grep syslog 确认syslog是否启用 2) #cat /etc/syslog.conf 查看syslogd的配置,并确认日志文件是否存在 2.1) 系统日志(默认)/var/log/messages 2.2) cron日志(默认)/var/log/cron 2.3) 安全日志(默认)/var/log/secure 备份方法: 1) #cp -p /etc/syslog.conf 2. 为审计产生的数据分配合理的存储空间和存储时间 检查方法: 1) #cat /etc/logrotate.conf 查看系统轮询配置,有无
4. 基础物理安全
0x1: BIOS
我们应该总是在系统启动的时候设置一个BIOS密码和禁用从CD-ROM和软盘引导。这将防止一些人未经允许访问你的系统和更改BIOS设置
5. 系统编译环境安全
0x1: 禁用代码编译
我们可以禁用代码编译并且只把编译的权限分配给一个用户组
方法:
//1. 添加编译用户组 /usr/sbin/groupadd compiler //2. 把常见的编译器所属组赋给编译用户组 cd /usr/bin chgrp compiler *cc* chgrp compiler *++* chgrp compiler ld chgrp compiler as
0x2: .history安全
这是一个避免删除.bash_history或重定向到/dev/null的好方法,目的是禁止清除或删除他最后执行的命令,黑客常常通过删除.history来隐藏自己的攻击痕迹,影响取证
方法:
chattr +a .bash_history chattr +i .bash_history
0x3: chmod危险文件
chmod 700 /bin/ping chmod 700 /usr/bin/finger chmod 700 /usr/bin/who chmod 700 /usr/bin/w chmod 700 /usr/bin/locate chmod 700 /usr/bin/whereis chmod 700 /sbin/ifconfig chmod 700 /usr/bin/pico chmod 700 /usr/bin/vi chmod 700 /usr/bin/which chmod 700 /usr/bin/gcc chmod 700 /usr/bin/make chmod 700 /bin/rpm
0x4: 指定允许root登陆的TTY设备
/etc/securetty文件允许你指定root可以从哪个TTY设备登录
方法:
vi /etc/securetty //一个好的建议是,只留2个可信的连接 tty1 tty2
Relevant Link:
http://yonghui702.blog.163.com/blog/static/817183420110131102257/
6. 系统病毒、后门、rootkit安全
0x1: 检测Rootkit
关于rootkit的基本原理和防御策略请参阅另外几篇文章
http://www.cnblogs.com/LittleHann/p/3870974.html http://www.cnblogs.com/LittleHann/p/3879118.html http://www.cnblogs.com/LittleHann/p/3879961.html
7. 系统端口、服务安全
0x1: 关闭不用的服务
我们应该把任何未使用的服务关闭,可以在/etc/xinetd.d文件夹里找到
方法:
cd /etc/xinetd.d grep disable * //这将显示所有服务开启或关闭的状态,然后根据需要来开启或关闭服务
0x2: 检测监听的端口
检测是否有必要开放端口是非常重要的
方法:
netstat -tulp lsof -i -n | egrep ‘COMMAND|LISTEN|UDP’ nmap! //这3种方法都可以
8. 系统内核安全
0x1: 内核加固
sysctl.conf用来加固内核,目的是避免DOS和欺骗攻击
方法:
//1. 了解下当前配置的大概情况 sysctl -a //2. 添加如下内容 vi /etc/sysctl.conf # Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 0 # Controls source route verification net.ipv4.conf.default.rp_filter = 1 # 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 #Prevent SYN attack net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 2048 net.ipv4.tcp_synack_retries = 2 # Disables packet forwarding net.ipv4.ip_forward=0 # Disables IP source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.eth0.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Enable IP spoofing protection, turn on source route verification net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 net.ipv4.conf.default.rp_filter = 1 # Disable ICMP Redirect Acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 1 net.ipv4.conf.lo.log_martians = 1 net.ipv4.conf.eth0.log_martians = 1 # Disables IP source routing net.ipv4.conf.all.accept_source_route = 0 net.ipv4.conf.lo.accept_source_route = 0 net.ipv4.conf.eth0.accept_source_route = 0 net.ipv4.conf.default.accept_source_route = 0 # Enable IP spoofing protection, turn on source route verification net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.lo.rp_filter = 1 net.ipv4.conf.eth0.rp_filter = 1 14 net.ipv4.conf.default.rp_filter = 1 # Disable ICMP Redirect Acceptance net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 # Disables the magic-sysrq key kernel.sysrq = 0 # Modify system limits for Ensim WEBppliance fs.file-max = 65000 # Decrease the time default value for tcp_fin_timeout connection net.ipv4.tcp_fin_timeout = 15 # Decrease the time default value for tcp_keepalive_time connection net.ipv4.tcp_keepalive_time = 1800 # Turn off the tcp_window_scaling net.ipv4.tcp_window_scaling = 0 # Turn off the tcp_sack net.ipv4.tcp_sack = 0 # Turn off the tcp_timestamps net.ipv4.tcp_timestamps = 0 # Enable TCP SYN Cookie Protection net.ipv4.tcp_syncookies = 1 # Enable ignoring broadcasts request net.ipv4.icmp_echo_ignore_broadcasts = 1 # Enable bad error message Protection net.ipv4.icmp_ignore_bogus_error_responses = 1 # Log Spoofed Packets, Source Routed Packets, Redirect Packets net.ipv4.conf.all.log_martians = 1 # Set maximum amount of memory allocated to shm to 256MB kernel.shmmax = 268435456 # Improve file system performance vm.bdflush = 100 1200 128 512 15 5000 500 1884 2 # Improve virtual memory performance vm.buffermem = 90 10 60 # Increases the size of the socket queue (effectively, q0). net.ipv4.tcp_max_syn_backlog = 1024 # Increase the maximum total TCP buffer-space allocatable net.ipv4.tcp_mem = 57344 57344 65536 # Increase the maximum TCP write-buffer-space allocatable net.ipv4.tcp_wmem = 32768 65536 524288 15 # Increase the maximum TCP read-buffer space allocatable net.ipv4.tcp_rmem = 98304 196608 1572864 # Increase the maximum and default receive socket buffer size net.core.rmem_max = 524280 net.core.rmem_default = 524280 # Increase the maximum and default send socket buffer size net.core.wmem_max = 524280 net.core.wmem_default = 524280 # Increase the tcp-time-wait buckets pool size net.ipv4.tcp_max_tw_buckets = 1440000 # Allowed local port range net.ipv4.ip_local_port_range = 16384 65536 # Increase the maximum memory used to reassemble IP fragments net.ipv4.ipfrag_high_thresh = 512000 net.ipv4.ipfrag_low_thresh = 446464 # Increase the maximum amount of option memory buffers net.core.optmem_max = 57344 # Increase the maximum number of skb-heads to be cached net.core.hot_list_length = 1024 ## DO NOT REMOVE THE FOLLOWING LINE! ## nsobuild:20051206 //3. 重启后生效 sbin/sysctl -p sysctl -w net.ipv4.route.flush=1
Copyright (c) 2014 LittleHann All rights reserved
Linux System Reinforcement