LINUX 安全优化

1,不用root, 添加普通用户,通过sudo授权管理。

2,更改默认的远程连接SSH服务端口以及禁用root用户远程连接。

3,定时自动更新服务器时间

4,配置国内Yum源代码,从国内下载安装rpm包

5,关闭SELinux,iptables(iptables工作场景如果有使用,一般要打开端口)

6,调整文件描述的数量,进程文件打开都会消耗文件描述符。

7,定时自动清理/var/spool/elientmpqune/目录垃圾文件,防止inodes节点被占   满,如果没有sendmail,忽略即可。

8,精简开机自启动(crond, sshd, network, rsyslog (Centos5) syslog)

9,优化内核参数 /etc/sysctl.conf 执行 sysctl -p 生效

10,  更改字符集,支持中文,但是还是建议使用英文字符集,防止乱码问题。

11, 锁定关键的系统文件, charttr +i  /etc/passwd  /etc/shadow /etc/group /etc/gshadow /etc/inittab

12, 清空 /etc/issue 去除系统内核版本在登录前的显示

1,sudo用户

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

# visodu == vi /etc/sudoers

# visudo 会自动检测命令

# oldboy  ALL=(ALL)  /user/sbin/useradd

# oldboy  ALL=(ALL)  NOPASSWD:ALL #使用时候不用输入密码

# sudo useradd  test  # 测试sudo

# sudo  su -  #切换到root

# sudo -l   #查看自己的权限

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

2,更改默认的远程连接SSH服务端口以及禁用root用户远程连接。

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

# 切记 确保已经创建其他用户,否则root不能登录以后,就在也连接不上了。

# cd /etc/ssh/

# cp sshd_config sshd_config.bak  #一定要备份

# vi  sshd_config

# 在配置文件的顶层加上以下代码

Port 52113               #→ssh连接默认的端口,谁都知道,必须要改。

PermitRootLogin no       #→root用户黑客都知道的,禁止它远程登陆。

PermitEmptyPasswords no  #→禁止空密码登陆

UseDNS no                #→不使用DNS

GSSAPIAuthentication no  # 认证方式

# 重启sshd

# /etc/init.d/sshd restart

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

3.时间自动同步

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

# /usr/sbin/ntpdate time.nist.gov   #自动和时间服务器同步

# echo ‘*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1‘ >>/var/spool/cron/root     #添加时间自动同步

# crontab -l

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

4,配置国内Yum源代码,从国内下载安装rpm包

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

# 操作要备份

# cd /etc/yum.repos.d/

# /bin/mv CentOS-Base.repo CentOS-Base.repo.ori  # 备份

# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

# /bin/mv CentOS6-Base-163.repo CentOS-Base.repo

# yum upgrade 或 yum update

# yum install tree telnet dos2unix sys stat lrzsz -y

# rpm -qa | grep tree #查询安装是否成功

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

5,关闭SELinux,iptables(iptables工作场景如果有使用,一般要打开端口)

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

1)

直接编辑 vi /etc/selinux/config

直接替换 sed -i s#SELINUX=disable#SELINUX=disabled#g

检查  cat /etc/selinux/config

检查  grep SELINUX=disable /etc/selinux/config    SELINUX=disabled

2)

setenforce 0 #设置selinux

getenforce   #查看SELinux

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

6,调整文件描述的数量,进程文件打开都会消耗文件描述符。

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

# ulimit -HSn 65535  #设置文件描述符最大数

# ulimit -n   #查看是否生效

# 修改配置文件,Centos6.5用命令设置不生效,重启失效

# echo ‘*  - nofile  65535 ‘ >>/etc/security/limits.conf

# tail -1 /etc/security/limits.con

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

7,定时自动清理/var/spool/elientmpqune/目录垃圾文件,防止inodes节点被占   满,如果没有sendmail,忽略即可。

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

find /var/spool/clientmqueue -type f -print -exec rm -f {} \;

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

8,精简开机自启动(crond, sshd, network, rsyslog (Centos5) syslog)

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

sshd   OpenSSH服务器应考虑开启。

syslog       是操作系统提供一种机制,守护程序通常使用这些机制将各种信息写到各个系统日志文件 (必须)

rsyslog      CENTOS6.2系统日志rsyslog替换默认的日志服务syslog

network    激活/关闭启动时的各个网络接口 (必须)应考虑开启。

crond 周期地运行用户调度的任务。比起传统的unix版本添加了不少属性,而且更安全,配置更简单, 为Linux下自动安排的进程提供运行服务.

#  /sbin/chkconfig --list | grep 3:on  #查看在3级别下,启动的命令

# LANG=en

1)方法一

# for oldboy in `chkconfig --list|grep 3:on|awk ‘{print $1}‘`;do chkconfig --level 3 $oldboy off;done

# for oldboy in crond network rsyslog sshd ;do chkconfig --level 3 $oldboy on;done

2)方法二 一条命令

# for oldboy in `chkconfig --list|grep "3:on"|awk ‘{print $1}‘|grep -vE "crond|network|sshd|rsyslog"`;do chkconfig $oldboy off;done

# chkconfig --list|grep "3:on”  #检查命令

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

9.优化内核参数 /etc/sysctl.conf 执行 sysctl -p 生效

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

net.ipv4.tcp_fin_timeout = 2

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_keepalive_time = 600

net.ipv4.ip_local_port_range = 4000    65000

net.ipv4.tcp_max_syn_backlog = 16384

net.ipv4.tcp_max_tw_buckets = 36000

net.ipv4.route.gc_timeout = 100

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.core.somaxconn = 16384

net.core.netdev_max_backlog = 16384

net.ipv4.tcp_max_orphans = 16384

sysctl –p  #生效

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

10.更改字符集,支持中文,但是还是建议使用英文字符集,防止乱码问题。

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

# cat /etc/sysconfig/i18n

# sed -i ‘s#LANG="en_US.UTF-8"#LANG="zh_cn.gb2312"#g /etc/sysconfig/i18n  #替换字符集

# source /etc/sysconfig/i18n  # 让字符集生效

# echo $LANG

#  LANG=zh_CN.UTF-8

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

11. 锁定关键的系统文件, charttr +i  /etc/passwd  /etc/shadow /etc/group /etc/gshadow /etc/inittab

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

#chattr   +i   /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab   #加锁

#chattr   -i  /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab     #解锁

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

12.清空 /etc/issue 去除系统内核版本在登录前的显示

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

echo ‘‘ >  /etc/issue

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

13 修改运行级别

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

vi /etc/inittab  #启动命令行模式

sed s/id:5:initdefault:/id:3:initdefault:/ /etc/inittab

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

14 修改防火墙

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

/etc/init.d/iptables stop

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

15、查看安装工具包

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

yum grouplist:

Installed Groups:

Base

Compatibility libraries

Debugging Tools

Development tools

Dial-up Networking Support

Hardware monitoring utilities

Performance Tools

如果忘记选包,安装后可以按如下方式选包:

yum groupinstall "Compatibility libraries" "Base" "Development tools"

yum groupinstall "Performance Tools" "debugging Tools" "Dial-up Networking Support"

yum groupinstall "Base" "Development tools”

可以通过yum groupinfo 包组查看具体安装的组件。

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


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。