当前位置: 首页 > news >正文

打造LINUX系统安全

1、LILO安全设置

 

vi /etc/lilo.conf.anaconda      //修改LILO文件===============================================

……

restricted                  //加入这行

password=111111             //加入这行并设置密码为111111

……

================================================

chmod 600 /etc/lilo.conf.anaconda   //设置为ROOT权限读取

/sbin/lilo -v                       //更新系统,使上述操作生效

chattr +i /etc/lilo.conf.anaconda   //设置LILO文件是不可写

 

2、设置默认口令和帐号长度与有效期

vi /etc/login.defs              //修改login.defs文件================================================

……

PASS_MAX_DAYS 99999

PASS_MIN_DAYS 0

PASS_MIN_LEN   8                   //修改系统默认密码长度为8位

PASS_WARN_AGE 7                   //口令有效期为7天

 

3、清除不设口令的帐号

 

vi /etc/passwd                      //修改passwd文件=================================================

……

elain::500:501:elain:/home/elain:/bin/bash

……

//帐号elain 没有设置口令。因为第二项为空,说明此帐号无密码,这是非常危险的,应该将此类帐号删除或给它设置口令。

 

4、特别的帐号处理

 

删除无用的用户和组用户

命令如下:

删除用户 :userdel username

删除组用户:groupdel groupname

删除下列的用户:

adm

lp

sync

shutdown

halt

mail

————–

news

uucp

operator

games                          //若没有MAIL服务器可删除

————–

gopher                          //若没有X Windows服务器可删除

ftp                             //若不允许匿名访问FTP删除此帐号

 

5、权限与文件系统

 

lsattr                          //列出文件的属性

chattr                          //改变文件的属性

a                        //只可添加属性

i                        //不可改变属性

修改系统中关键文件如下:

passwd

passwd._

shadow

shadown._

xinetd.conf

services

lilo.conf等

例:chmod 600 /etc/xinetd.conf     //修改文件属主为root

chattr +(-)i /etc/xinetd.conf      //设置为不能(取消)修改

 

6、限制系统使用资源

 

vi /etc/security/limits.conf

=================================================

……

加入或修改下面这几行:

*hard core 0                 //禁止创建core文件

*hard rss   5000              //除root外,其它用户内存使用为5M

*hard nproc 20                //限制最多进程为20

 

vi /etc/pam.d/login

=================================================

……

session required /lib/security/pam_limits.so

//在文件末尾加入上面这一行

 

7、设置自动注销帐号的登录

 

vi /etc/profile

===================================================

……

HOSTNAME=’/bin/hostname’

HISTSIZE=1000       //这是历史记录数,越小越好

tmout=300           //添加此行,表示系统在五分钟内没有任何操作,将自动这个帐号注销

 

8、/etc/securetty文件安全设置

 

vi /etc/securetty

====================================================

tty1

#tty2

……

#tty11              //在默认的内容中注释掉除tty1外的所有tty,表示root只能在tty1终端登录

9、禁止外来PING请求,防止补攻击

 

vi /etc/rc.d/rc.local

====================================================

echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all

//添加上面一行,可阻止系统响应任何外来的PING请求

 

10、限制显示出系统版本信息

 

当用户进入LINUX系统时系统将告诉用户LINUX版本号,内核版本号和服务器主机名。

vi /etc/rc.d/rc.local

=====================================================

在里面添加如下:

……

#This will overwrite /etc/issue at every boot.So,make any changesyou

#want to make to /etc/issue here oryou will lose them when you reboot.

#echo”"> /etc/issue

#echo”$R”>> /etc/issue

#echo”Kernel $(uname -r)on$a $(uname -m)”>>/etc/issue

#

#cp -f /etc/issue /etc/issue.net

#echo >>/etc/issue

……

然后,执行下面几行命令

#rm -f /etc/issue

#rm -f /etc/issue.net

#touch /etc/issue

#touch /etc/issue.net

也可以单独编辑一个命令(telnet),如修改/etc/inetd.conf

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

这样,用户TELNET服务器时,就不会显示出系统版本信息等了,只显示“login:”。

 

11、设置文件/etc/host.conf,防止IP欺骗

 

vi /etc/host.conf

===================================================

……

#Lookup names via DNS first then fall back to /etc/hosts.

order bind,hosts

#We don’t have machines with multipe IP addresses on the same card

(likevirtual server,IP Aliasing).

multi off

#Chesk for IP address spoofing.

nospoof on

IP Spoofing:IP-Spoofing is a security exploit that works by trichking

computers in a trust relationship that you are someone that you really aren.

//添加上面几行来防止IP欺骗攻击

 

12、禁止su作为root

 

vi /etc/pam.d/su

======================================================

……

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=elain

在文件内添加如上两行,这表示只有用户组elain里的成员可以用su作为root

若希望用记admin能su作为root,可运行以下命令:

#usermod -G10 admin

 

13、禁止使用CTRL+ALT+DEL重启服务器

 

vi /etc/inittab

……

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now        //用“#”注释掉此行即可

然后运行:

#/sbin/init -q

 

14、注销时删除命令记录

 

vi /etc/skel/.bash_logout

============================================================

rm -f $HOME/.bash_history

 

15、确保开启的服务安全

 

常用服务方面的命令:

grep -v “#” /etc/services                        //显示没有被注释掉的服务

ps -eaf|wc -l                                    //统计当前系统打开服务的总数

netstat -na (远程后面可加ip)                     //查看当前运行的服务

netstat -an |grep LISTEN                         //查看是否有可疑端口打开

当然,也可以执行如下命令:

shattr +i /etc/services                          //设置为不可理性属性

Linux启动时先检测脚本文件,在REDHAT下,在/etc/rc.d/rc3.d(rc5.d)下(图形化),脚本名字为启动顺序。

K 表示杀死进程

S 表示启动的服务

如在启动时禁止一个服务,只需把该服务的脚本文件的大写“S”更改为小写“s”

注意,以下3个服务漏洞很多,强烈建议关闭

yppasswdd(NIS服务器)

ypserv(NIS服务器)

nfs(NFS服务器)

 

16、LINUX防火墙安全配置

 

system-config-securitylevel

 

17、LINUX系统安全工具

 

Sxid:检查系统中的suid,sgid以及没有主人的文件

Skey:一次性口令工具

Logrotate:日志循环工具

Logcheck:日志管理工具

Swatch:日志管理工具,比logcheck实时

Ssh(openssh):提供安全的连接认证

Portsentry:反扫描工具,监视自己的udp和tcp端口

Tripwire:提供系统完整性检查

Gnupg:对单个文件进行加密以及创建数字签名

Hostsentry:基于主机的入侵检测,将连接记入日志

ipchains Linux:发行版自带的包过滤形防火墙

Anti-sniff:反嗅探工具,检查网络中是否有嗅探器

Freeswan:在LINUX中实现VPN的工具

Syslog-ng:替代syslog的日志文件系统

Scandns:进行DNS检查追踪工具

Whisker:CGI扫描器

Snoopy:通过跟踪execve系统调用记录文件的命令

Krnsniff:一个基于内核的监听模块

Iptable:用来替代ipchains包过滤防火墙

Imsafe:通过跟踪系统调用来检测缓冲溢出等问题

Iplog:对来往的包进行日志记录

Solaris designer:内核补丁,防止缓冲溢出等

Stackguard:作为补丁修补GCC,防止缓冲溢出

DTK:Honey port欺骗式防御

Antiroute:阻止和记录基于路由的跟踪

===========================================================

注:以上资料均收集于网络,版权归原作者所有,本人只是在学习时总结规纳了一下,希望对LINUX安全爱好者有所帮助!

 

本文出自 “elain的技术博客” 博客

相关文章:

  • Kivlad--Android上的二进制文件的反编译工具
  • IT 缩略语
  • CDN获取真实IP
  • Dede CMS All Versions SQL
  • SQLMAP使用方法
  • 解决Fckeditor删除所有上传页面如何上传
  • shell突破web防火墙访问
  • serv-u最新通杀所有版本0day
  • Nginx简单防御CC攻击
  • Linux系统防火墙防止DOS和DDOS攻击
  • 思科路由器安全加固方案(南方电网预实施方案)
  • 安全服务反思:把渗透测试做成服务
  • JavaScript连接数据库
  • 史上最全的各个脚本的一句话木马
  • 入侵前的信息刺探
  • [数据结构]链表的实现在PHP中
  • Git的一些常用操作
  • JAVA_NIO系列——Channel和Buffer详解
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • js数组之filter
  • mysql_config not found
  • MySQL-事务管理(基础)
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • uva 10370 Above Average
  • 从setTimeout-setInterval看JS线程
  • 给第三方使用接口的 URL 签名实现
  • 你不可错过的前端面试题(一)
  • 前端代码风格自动化系列(二)之Commitlint
  • 使用parted解决大于2T的磁盘分区
  • 我建了一个叫Hello World的项目
  • 用简单代码看卷积组块发展
  • Java数据解析之JSON
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • postgresql行列转换函数
  • #Java第九次作业--输入输出流和文件操作
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (LeetCode 49)Anagrams
  • (搬运以学习)flask 上下文的实现
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (万字长文)Spring的核心知识尽揽其中
  • .NET Core跨平台微服务学习资源
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net6 Api Swagger配置
  • .net6 webapi log4net完整配置使用流程
  • .NET和.COM和.CN域名区别
  • .net中应用SQL缓存(实例使用)
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • @Controller和@RestController的区别?
  • @private @protected @public
  • [ C++ ] STL_list 使用及其模拟实现