免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: king_819

Linux/unix安全优化的讨论与案例分享(获奖名单已公布) [复制链接]

论坛徽章:
0
发表于 2012-03-09 16:29 |显示全部楼层
回复 52# dahai01


    很好的分享,如果再分享一些实际的设置将更有帮助

论坛徽章:
0
发表于 2012-03-09 16:37 |显示全部楼层
回复 51# kns1024wh


我来分享一个当前生产环境中的内核参数优化,接上之前发布的内核编译优化,系统是freebsd 7.3

二、内核参数优化

      内核编译完后,就要对内核的参数做一些调整,以提高服务器的运行速度


/etc/sysctl.conf

----------------------------------------------------------

#通过源路由,攻击者可以尝试到达内部IP地址 --包括RFC1918中的地址,所以
不接受源路由信息包可以防止你的内部网络被探测
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0

#安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用,可以阻止某些OS探测
net.inet.tcp.drop_synfin=1

#最大的待发送TCP数据缓冲区空间
net.inet.tcp.sendspace=65536

#最大的接受TCP缓冲区空间
net.inet.tcp.recvspace=65536

#最大的接受UDP缓冲区大小
net.inet.udp.recvspace=49152

#最大的发送UDP数据缓冲区大小
net.inet.udp.maxdgram=24576

#本地套接字连接的数据发送空间
net.local.stream.sendspace=65535

#加快网络性能的协议
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1

#最大的套接字缓冲区
kern.ipc.maxsockbuf=2097152

#系统中允许的最多文件数量
kern.maxfiles=65536

#每个进程能够同时打开的最大文件数量
kern.maxfilesperproc=32768

#该选项设置是否延迟ACK应答数据包
net.inet.tcp.delayed_ack=1

#屏蔽ICMP重定向功能
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0

#防止ICMP广播风暴
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0

#限制系统发送ICMP速率
net.inet.icmp.icmplim=100

net.inet.icmp.icmplim_output=1

#设置为1会帮助系统清除没有正常断开的TCP连接
net.inet.tcp.always_keepalive=1

#若看到net.inet.ip.intr_queue_drops这个在增加,就要调大net.inet.ip.intr_queue_maxlen,为0最好
net.inet.ip.intr_queue_maxlen=1000
net.inet.ip.intr_queue_drops=0

#防止DOS攻击,默认为30000
net.inet.tcp.msl=2500

#接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包
net.inet.tcp.blackhole=2

#接收到一个已经关闭的端口发来的所有UDP包直接drop
net.inet.udp.blackhole=1

#为网络数据连接时提供缓冲
net.inet.tcp.inflight.enable=1

#限制 TCP 带宽延迟积和 NetBSD 的 TCP/Vegas 类似。  
#它可以通过将 sysctl 变量 net.inet.tcp.inflight.enable 设置成 1 来启用。  
#系统将尝试计算每一个连接的带宽延迟积,并将排队的数据量限制在恰好能保持最优吞吐量的水平上。
#这一特性在您的服务器同时向使用普通调制解调器,千兆以太网,乃至更高速度的光与网络连接 (或其他带宽延迟积很

#大的连接) 的时候尤为重要,
#特别是当您同时使用滑动窗缩放,或使用了大的发送窗口的时候。  
#如果启用了这个选项,您还应该把 net.inet.tcp.inflight.debug 设置为 0 (禁用调试),
#对于生产环境而言, 将 net.inet.tcp.inflight.min 设置成至少 6144 会很有好处。  
#然而, 需要注意的是,这个值设置过大事实上相当于禁用了连接带宽延迟积限制功能。
#这个限制特性减少了在路由和交换包队列的堵塞数据数量,也减少了在本地主机接口队列阻塞的数据的数量。
#在少数的等候队列中、交互式连接,尤其是通过慢速的调制解调器,也能用低的 往返时间操作。
#但是,注意这只影响到数据发送 (上载/服务端)。对数据接收(下载)没有效果。
#调整 net.inet.tcp.inflight.stab 是 不 推荐的。
#这个参数的默认值是 20,表示把 2 个最大包加入到带宽延迟积窗口的计算中。  
#额外的窗口似的算法更为稳定,并改善对于多变网络环境的相应能力,  
#但也会导致慢速连接下的 ping 时间增长 (尽管还是会比没有使用 inflight 算法低许多)。  
#对于这些情形, 您可能会希望把这个参数减少到 15, 10, 或 5;  
#并可能因此而不得不减少 net.inet.tcp.inflight.min (比如说, 3500) 来得到希望的效果。
#减少这些参数的值, 只应作为最后不得已时的手段来使用。
net.inet.tcp.inflight.debug=0
net.inet.tcp.inflight.rttthresh=10
net.inet.tcp.inflight.min=6144
net.inet.tcp.inflight.max=1073725440
net.inet.tcp.inflight.stab=20

#如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间,但会需#

要大量的内核内存空间来保存路由表
net.inet.ip.fastforwarding=1

#默认情况下,ip包的id号是连续的,如果设置成1,则这个id号是随机的
net.inet.ip.random_id=1

#并发连接数,默认为128,推荐在1024-4096之间,数字越大占用内存也越大
kern.ipc.somaxconn=8192

#不允许用户看到其他用户的进程
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0

#设置kernel安全级别
kern.securelevel=0

#记录下任何TCP连接
net.inet.tcp.log_in_vain=0

#记录下任何UDP连接
net.inet.udp.log_in_vain=0

#防止不正确的udp包的攻击
net.inet.udp.checksum=1

#防止DOS攻击
net.inet.tcp.syncookies=1

#仅为线程提供物理内存支持,需要256兆以上内存
kern.ipc.shm_use_phys=1

# 线程可使用的最大共享内存
kern.ipc.shmmax=67108864

# 最大线程数量
kern.ipc.shmall=32768

# 程序崩溃时不记录
kern.coredump=0

#lo本地数据流接收和发送空间
net.local.stream.recvspace=65536
net.local.dgram.maxdgram=16384
net.local.dgram.recvspace=65536

# 本地数据最大数量
net.inet.raw.maxdgram=65536

# 本地数据流接收空间
net.inet.raw.recvspace=65536

#ipfw防火墙动态规则数量,默认为4096,增大该值可以防止某些病毒发送大量TCP连接,导致不能建立正常连接
net.inet.ip.fw.dyn_max=65535

#所有MPSAFE的网络ISR对包做立即响应,提高网卡性能
net.isr.direct=1

#清理apache产生的CLOSE_WAIT状态
net.inet.ip.rtexpire=3600
net.inet.ip.rtminexpire=2

#TCP的套接字的空闲时间
net.inet.tcp.keepidle=600000

#控制TCP及UDP所使用的port范围
net.inet.ip.portrange.first=8888
net.inet.ip.portrange.hifirst=8888

#加载linux内核版本
compat.linux.osrelease=2.6.16


/boot/loader.conf

----------------------------------------------------

kern.maxdsiz="536870912"
kern.ipc.maxsockets="16424"
kern.ipc.nmbclusters="32768"
kern.ipc.nmbufs="65535"
kern.ipc.nsfbufs="2496"
net.inet.tcp.tcbhashsize="2048"
kern.maxusers="256"

   

论坛徽章:
0
发表于 2012-03-09 16:43 |显示全部楼层
本帖最后由 king_819 于 2012-03-09 16:46 编辑

分享一个Linux生产环境下的内核参数优化,系统为CentOS 5.6
  1. cat >> /etc/sysctl.conf << EOF
  2. net.ipv4.ip_forward = 0
  3. net.ipv4.conf.default.rp_filter = 1
  4. net.ipv4.conf.default.accept_source_route = 0
  5. kernel.sysrq = 0
  6. kernel.core_uses_pid = 1
  7. net.ipv4.tcp_syncookies = 1
  8. kernel.msgmnb = 65536
  9. kernel.msgmax = 65536
  10. kernel.shmmax = 68719476736
  11. kernel.shmall = 4294967296
  12. net.ipv4.tcp_max_tw_buckets = 6000
  13. net.ipv4.tcp_sack = 1
  14. net.ipv4.tcp_window_scaling = 1
  15. net.ipv4.tcp_rmem = 4096 87380 4194304
  16. net.ipv4.tcp_wmem = 4096 16384 4194304
  17. net.core.wmem_default = 8388608
  18. net.core.rmem_default = 8388608
  19. net.core.rmem_max = 16777216
  20. net.core.wmem_max = 16777216
  21. net.core.netdev_max_backlog = 262144
  22. net.core.somaxconn = 262144
  23. net.ipv4.tcp_max_orphans = 3276800
  24. net.ipv4.tcp_max_syn_backlog = 262144
  25. net.ipv4.tcp_timestamps = 0
  26. net.ipv4.tcp_synack_retries = 1
  27. net.ipv4.tcp_syn_retries = 1
  28. net.ipv4.tcp_tw_recycle = 1
  29. net.ipv4.tcp_tw_reuse = 1
  30. net.ipv4.tcp_mem = 94500000 915000000 927000000
  31. net.ipv4.tcp_fin_timeout = 1
  32. net.ipv4.tcp_keepalive_time = 1200
  33. net.ipv4.ip_local_port_range = 1024 65535
  34. EOF
复制代码
cacti监控截图:
QQ截图20120309164547.png

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2012-03-09 17:05 |显示全部楼层
king_819,上面那个tcp的cacti模版是你做的还是在cacti网站下载的

论坛徽章:
0
发表于 2012-03-09 17:58 |显示全部楼层
回复 57# chenyx


这是以前的同事发给我的


   

论坛徽章:
0
发表于 2012-03-09 22:42 |显示全部楼层
回复 57# chenyx


   cacti 简单的方式 来使用 http://cactiez.cactiusers.org

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2012-03-10 19:12 |显示全部楼层
回复 1# king_819
好活动,强烈支持。


   

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
发表于 2012-03-11 18:29 |显示全部楼层
笔记
  1. #访问部分网站不使用squid
  2. iptables -t nat -A PREROUTING -i eth1 -s 172.16.11.250 -j ACCEPT
  3. iptables -t nat -A PREROUTING -i eth1 -d 123.123.123.123 -j ACCEPT
  4. iptables -t nat -A PREROUTING -i eth1 -s 172.16.11.0/24 -j REDIRECT --to 3128

  5. #防止被探测ssh密码
  6. iptables -A INPUT -p tcp --dport 22 \
  7. -m state --state NEW -m recent --set \
  8. --name SSH --rsource -m recent --name SSH \
  9. --update --seconds 10 --hitcount 4 \
  10. --rsource -j DROP

  11. #实现IP/MAC绑定
  12. iptables -N MAC_CHECK
  13. iptables -A FORWARD -i eth1 -o eth0 -j MAC_CHECK
  14. iptables -A MAC_CHECK -s 172.16.11.101 -m mac --mac-source XX:XX:XX:XX:XX:XX -j RETURN
  15. iptables -A MAC_CHECK -s 172.16.11.102 -m mac --mac-source YY:YY:YY:YY:YY:YY -j RETURN
  16. iptables -A MAC_CHECK -s 172.16.11.103 -m mac --mac-source ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -j RETURN
  17. iptables -A MAC_CHECK -j DROP

  18. #防止小路由(及破解)
  19. iptables -N TTL_CHECK
  20. iptables -A FORWARD -i eth1 -o eth0 -j TTL_CHECK
  21. iptables -A TTL_CHECK -m ttl --ttl-eq 128 -j RETURN
  22. iptables -A TTL_CHECK -m ttl --ttl-eq 64 -j RETURN
  23. iptables -A TTL_CHECK -m ttl --ttl-eq 255 -j RETURN
  24. iptables -A TTL_CHECK -j DROP

  25. #防止被tracert
  26. iptables -A INPUT -m ttl --ttl-eq 1 -j DROP
  27. iptables -A INPUT -m ttl --ttl-lt 4 -j DROP
  28. iptables -A FORWARD -m ttl --ttl-lt 6 -j DROP

  29. #实现服务器负载分担
  30. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m statistic --mode nth --every 3 -j DNAT --to 172.16.11.101
  31. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -m statistic --mode nth --every 2 -j DNAT --to 172.16.11.102
  32. iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.16.11.103

  33. #得知内网用户流量
  34. iptables -A FORWARD -j ACCOUNT --addr 172.16.11.0/24 --tname LOCALNET

  35. iptaccount -a
  36. iptaccount -l LOCALNET
  37. iptaccount -l LOCALNET -f

  38. #对DNS域名进行过滤
  39. iptables -A FORWARD -m string --algo bm --hex-string "|03|www|09|chinaunix|03|com" -j DROP
复制代码

论坛徽章:
0
发表于 2012-03-11 20:02 |显示全部楼层
回复 59# kns1024wh


cactiz、EMOS都是不错的产品,但真实的生产环境中,还是更倾向于自己搭建,排错、扩展会更加好掌控

   

论坛徽章:
0
发表于 2012-03-11 20:04 |显示全部楼层
Shell_HAT 发表于 2012-03-11 18:29
笔记



iptables确实强大,很不错的分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP