初入linux安全

  1. 云栖社区>
  2. 博客>
  3. 正文

初入linux安全

余二五 2017-11-07 19:35:00 浏览640
展开阅读全文
linux 是开源的操作系统,这样带来的好处是可以免费获取和使用。也可以定制自己的linux系统。由于开源也导致了系统安全的问题,
linux也会收到一些系统底层的攻击。
    一般的攻击手段:
        1.密码暴力破解。用来破解用户密码。(主要针对系统口令,一般可以修改密码难度加入防范多次错误连接机制)
        2.拒绝服务攻击。Dos  (DDos)原理是:利用合理的服务请求来占用过多的服务器资源。向目标服务器发起大量请求,由于服务器短时间内无法接受太多请求,造成系统资源耗尽,服务挂起,严重造成服务器瘫痪。
        3.应用程序漏洞攻击。常见的SQL注入漏洞攻击,网页权限漏洞。已知系统程序的漏洞。
    防范攻击策略
        1.网络传输安全。
            网络传输由网络安全设备构成。一般由硬件防火墙,网络入侵监测(IDC Intrusion Detection System),路由器,交换机。通过给这些设备合理的配置,防范危险。
        2.操作系统安全
            经常进行的系统安全设置:系统内核定期升级,系统自带软件更新,配置防火墙IPtables防范策略。
            SYN攻击属于DDoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施
            Linux syn攻击是一种黑客攻击,如何处理和减少这种攻击是系统管理员比较重要的工作.
            SYN攻击是利用TCP/IP协议3次握手的原理,发送大量的建立连接的网络包,但不实际建立连接,最终导致被攻击服务器的网络队列被占满,无法被正常用户访问。
            Linux内核提供了若干SYN相关的配置,用命令: sysctl -a | grep syn 看到:
            net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0
            net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
            tcp_max_syn_backlog是SYN队列的长度,tcp_syncookies是一个开关,是否打开SYN Cookie 功能,该功能可以防止部分SYN攻击。tcp_synack_retries和tcp_syn_retries定义SYN 的重试次数。加大SYN队列长度可以容纳更多等待连接的网络连接数,打开SYN Cookie功能可以阻止部分 SYN攻击,降低重试次数也有一定效果。
            调整上述设置的方法是: 
            增加SYN队列长度到2048: 
            sysctl -w net.ipv4.tcp_max_syn_backlog=2048
            打开SYN COOKIE功能: 
            sysctl -w net.ipv4.tcp_syncookies=1
            降低重试次数: 
            sysctl -w net.ipv4.tcp_synack_retries=3 sysctl -w net.ipv4.tcp_syn_retries=3 
            为了系统重启动时保持上述配置,可将上述命令加入到/etc/rc.d/rc.local文件中。
            防止同步包洪水(Sync Flood) 
            # iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
            也有人写作 
            #iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT 
            --limit 1/s 限制syn并发数每秒1次,可以根据自己的需要修改
            防止各种端口扫描 
            # iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
            Ping洪水攻击(Ping of Death) 
            # iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT 
            这些是处理linux sync攻击的思路。
        3.应用软件安全
            服务器上运行的软件程序本身进行安全策略配置和优化。常见www服务的apache安全设置。ftp服务访问授权控制等。
 Linux操作系统安全策略
        1.软件的升级 
            系统软件一般用yum update (yum工具自动升级。要有网络)
        2.端口和服务。
           端口。其实一个有效的连接的建立,就是客户端的端口和服务器的端口建立连接的过程。端口在系统中有自己的一套划分规律。
           linux 可以通过查看  more  /etc/services
           linux 下,共有655536个可用端口,这些端口以 1024为分割点,分别是;
           ‘只有root用户才能启动的端口’和‘客户端的端口’
           1. 只有root才能开启的端口
                0-1023  端口,主要用于系统一些常见的通信服务中。常见的:ftp  21; telnet 23;mail 25; wwww 80;
           2. 客户端的端口
              1024及以上的端口主要给客户端软件使用,这些端口由软件随机分配。比如 msyql  3306;tomcat 8080 8009;
              oneproxy 4041(管理); php-fpm 9000;当然这些是默认的都可以在配置文件修改的。
              一般查看这些的命令组合: netstat -anltup
            3.服务和端口是一个一一对应的关系。相互依赖,相互衬托的。服务开启,端口也就启动了。
                真正影响安全的是服务,而非端口。
            4.关闭不必要的服务。一般系统需要的服务有syslog(记录日志功能),sshd(远程连接服务器系统)network(激活网络接口的脚本,
                使用网络必须的)xinetd(支持多种网络服务的核心守护进程。包括telnet .vsftpd) iptables(内置的防火墙软件)
                atd(特定时间的指定事物服务)crond(自动安排进程提供运行服务)
                这些是必须开启支撑linux工作。此外,还有些和业务相关的可以开启外,其它的建议关闭。
    密码登录安全:
        密码设置安全:一般8位以上的。数字,字母和特殊字符。定期更换密码等。可以加入防止密码探测机制(一个帐号几次失败后。拒绝访问)
            此外,还可以设置密钥认证登录(限于secureCRT等远程登录程序)可以不通过密码登录。
            在 secureCRT上  工具=创建密钥
            上传密钥到linux,导入密钥
            # ssh-keygen -i -f Identity.pub >>/root/.ssh/authorized_keys
            然后修改登录方式为公钥登录找到生成密钥的路径选中。
            进入linux:修改 ssh2的配置文件:
            Port 22  #这个是ssh连接的默认端口可以改变
            Protocol 2   #使用ssh2
            PubkeyAuthentication yes  #启动 pubkey 认证
            AuthorizedKeysFile     .ssh/authorized_keys    #publickey 文件路径
            PasswordAuthentication no    #不使用密码认证
            # service  sshd  restart    #重启服务使新配置的ssh生效。
    其它设置:
        1.禁止外部ping 测试:
          #  echo "1"> /proc/sys/net/ipv4/icmp_echo_ignore_all 
          将忽略ping响应策略开启。
        2.删除系统默认的不必要的服务和账户
            /etc/passwd    /etc/group
            这2个目录存放账户和组的信息:
            可以删除的有  adm  lp sync shutdown halt new  uucp operator ames gopher 等。
            此外  默认shell为 /sbin/nologin 的为不可登录账户
        3.限制 shell记录历史条数
            编辑  /etc/profile 修改  HISTSIZE 参数。
            这里还有个小技巧  : 在命令行下输入  HISTCONTROL=ignorespace   然后在输入命令的时候前面多个空格则history不记录。
        4.关闭 selinux    
            临时关闭 :  setenforce 0
            永久关闭: vi /etc/selinux/conf  (centos 6 下)
                SELINUX=disabled   重启启动系统。









本文转自 swallow_zys  51CTO博客,原文链接:http://blog.51cto.com/12042068/1897484,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注