Linux 丛裸机进行安全加固[原创]

date:2017-10-06

author:杨然儿

创建用户

useradd abs
password abs

一、ssh加固

vi /etc/ssh/sshd_config
        ####################
        Port 35791
        Protocol 2
        MaxAuthTries 3
        MaxSessions 3
        RSAAuthentication yes
        PubkeyAuthentication yes
        UsePAM yes
        X11Forwarding yes
        Banner none
        UseDNS no
        PermitRootLogin no
        PasswordAuthentication yes
        #####################
service sshd reload

二、环境变量加固profile

vi /etc/profile
        #######################################
        ##记录历史命令时间
        export HISTTIMEFORMAT="`whoami`  %F   %T  "
        ##修改帐户TMOUT值,600秒无操作自动退出
        export PS1='$LOGNAME@'`hostname`:'$PWD''$ '
        umask 022
        TMOUT=600
        #######################################
source /etc/profile

三、屏蔽banner信息

备份方法:

#cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
#cp -p /etc/motd /etc/motd_bak

加固方法:

#vi /etc/ssh/sshd_config
banner NONE

#vi /etc/motd
删除全部内容或更新成自己想要添加的内容

四、禁用x_windows服务

vi /etc/inittab
        ################################################################
        id:5:initdefault:                   --5改成3
        #######################################################################

五、打开审计

chkconfig auditd on
service auditd restart

六、清理不必要的信任主机

--删除其中不必要的主机

#vi /etc/hosts.equiv
#vi /$HOME/.rhosts

七、安装基础包

1、安装rz sz和 screen

1).安装

yum install -y lrzsz
yum install -y screen

2).查看

rz      ##会弹出一个框

2、安装iftop

1).安装

yum -y install flex byacc  libpcap ncurses ncurses-devel libpcap-devel
wget http://www.ex-parrot.com/pdw/iftop/download/iftop-1.0pre2.tar.gz
tar zxvf iftop-1.0pre2.tar.gz
cd iftop-1.0pre2
./configure
make && make install

2).查看带宽

iftop -B -n  -N -p

3、安装jdk (1.6.0 1.7.0 1.8.0)这三个版本的jdk包 默认为1.8.0版本

1).下载安装包到某个路径

mkdir /opt/jdk/
 jdk-8u65-linux-x64.gz
 jdk-7u80-linux-x64.gz

2).解压

tar xf jdk-7u80-linux-x64.gz
tar xf jdk-8u65-linux-x64.gz

3).修改环境变量

vim /etc/profile
        ##################################################################################################
                export JAVA_HOME=/opt/jdk/jdk1.8.0_65
                export JRE_HOME=/opt/jdk/jdk1.8.0_65/jre
                export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
                export PATH=$PATH:$JAVA_HOME/bin/
        ###################################################################################################
source /etc/profile

4).查看java版本

java -version
        ----------------------------------------------------------------------
         java version "1.8.0_65"
         Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
         Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

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

5).安装jdk1.6.0版本

cd /opt/jdk/
chmod 755 jdk-6u45-linux-x64.bin
./jdk-6u45-linux-x64.bin (注意,这个步骤一定要在jdk-6u45-linux-x64.bin所在目录下)
会生成一个jdk1.6.0_45目录

6).查看1.6.0或1.7.0的版本

./jdk1.6.0_45/bin/java -version
        -----------------------------------------------------------------------------
        java version "1.6.0_45"
        Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
        Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

        ------------------------------------------------------------------------------
        或
        ./jdk1.7.0_80/bin/java -version
        -------------------------------------------------------------------------------
        java version "1.7.0_80"
        Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
        Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)

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

4、安装Python

1).安装 sqlite-devel(因为 Flask 应用程序可能使用能 Sqlite 数据库,所以这个得装上(之前因为没装这个,导致 Python 无法导入 sqlite3 库))

yum install sqlite-devel -y

2).安装Python2.7

wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
tar xf Python-2.7.8.tgz
cd Python-2.7.8
./configure --prefix=/usr/local
make && make install

安装成功之后,你可以在 /usr/local/bin/python2.7 找到 Python 2.7。

5、安装aide

1. 安装mhash

yum -y install mhash-devel.x86_64 mhash.x86_64

2.安装aide

yum -y install aide.x86_64

3. 配置(默认即可)

vim /etc/aide.conf
        --可以不改,按默认就可以了

4.生成初始化数据库

# aide --init
# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

5. 开始检测

# aide --check

6、Lynis安全检查工具

1).介绍

https://cisofy.com/

Lynis是一个为系统管理员提供的 Linux和Unix的审计工具 。 Lynis扫描系统的配置,并创建概述系统信息与安全问题所使用的专业审计。

当用户启动该软件后,Lynis会会逐次扫描系统的内核、用户目录、软件信息等,并最后生成一个全面的报告。

需要说明的是,该工具只能生成一个扫描检测后的报告,对用户起到提醒作用,本身并不能提高系统的安全性。

但是该工具却可以成为其他安全软件、系统测评软件的模块。

2).安装

yum -y install lynis
        或
        wget https://cisofy.com/files/lynis-2.1.1.tar.gz

3).全面检查

lynis --check-all -Q

4).自动检查

lynis -c --auditor "automated" --cronjob > /var/log/lynis/report.txt

5).检查某项目

lynis --tests FILE-6354 --quick

6).查看警告

grep Warning /var/log/lynis.log

7).查看建议

grep Suggestion /var/log/lynis.log

八、建立主机间的信任

1、生成密钥(默认的是rsa)

ssh-keygen -t rsa

2、将生成的密钥(公钥)拷贝给另一台主机

ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 35791 [email protected]"
        指定端口时记得使用双引号,以免报错

3、测试

ssh -p 35791 [email protected]
        这样直接连接到192.168.1.4这一台主机上,不用输入密码就是添加信任成功

九、修改主机名

1.临时修改主机名

查看当前主机名:
spark@localhost:~$ hostname
localhost

修改主机名并查看当前主机名:
spark@localhost:~$ sudo hostname hadoop
spark@localhost:~$ hostname
hadoop
PS:以上的修改只是临时修改,重启后就恢复原样了。

2.永久修改主机名

步骤1:

修改/etc/sysconfig/network中的hostname

vi /etc/sysconfig/network
HOSTNAME=localhost.localdomain  #修改localhost.localdomain为orcl1
修改network的HOSTNAME项。点前面是主机名,点后面是域名。没有点就是主机名。

这个是永久修改,重启后生效。目前不知道怎么立即生效。

想立即生效,可以同时采用第一种方法。

步骤2:
修改/etc/hosts文件

vi /etc/hosts
127.0.0.1    localhost.localdomain  #修改localhost.localdomain为orcl1
shutdown -r now    #最后,重启服务器即可。

十、配置防火墙

1、进入配置文件

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        vim /etc/sysconfig/iptables
                ########################################################
                *filter
                ################ NULL Accept Hosts ######################
                ###允许保垒机
                -A INPUT -s 221.41.47.213/32 -p tcp   --dport 35791 -j ACCEPT
                -A INPUT -s 10.168.189.37/32 -p tcp   --dport 35791 -j ACCEPT
                ###允许本机
                -A INPUT -s 221.43.178.5/32 -p tcp    --dport 35791 -j ACCEPT
                -A INPUT -s 10.0.0.10/32 -p tcp       --dport 35791 -j ACCEPT
                ###允许内网
                -A INPUT -s 10.0.0.0/8 -p tcp         --dport 35791 -j ACCEPT
                ###允许腾讯众创空间
                -A INPUT -s 221.69.10.134/32 -p tcp   --dport 35791 -j ACCEPT


                #### MMSS 249
                -A INPUT -s 100.41.85.249/32 -p tcp  -j ACCEPT
                -A INPUT -d 100.41.85.249/32 -p tcp  -j ACCEPT


                ###限制连接数
                -A INPUT -p tcp --dport 8080 -m connlimit --connlimit-above 3000 -j DROP
                -A INPUT -p tcp --dport 8888 -m connlimit --connlimit-above 3000 -j DROP
                -A INPUT -p tcp --dport 28080 -m connlimit --connlimit-above 3000 -j DROP


                ###允许除35791之外所有端口
                -A INPUT -p tcp --dport 35791 -j DROP
                -A INPUT -p tcp ! --dport 35791 -j ACCEPT


                ################ Black List  ############################
                #-A INPUT -s 106.187.53.56/32 -p tcp --dport 35791 -j DROP


                ########### DNS Resolved ##############################
                -A INPUT -p udp -m udp --sport 53 -j ACCEPT
                -A INPUT -p udp -m udp --dport 53 -j ACCEPT


                ################# ALLOW Local  ########################
                -A INPUT -i lo -j ACCEPT


                ################# Forbidden Ping #######################
                -A INPUT -i eth0 -p icmp -s 0/0 -d 0/0 -j DROP


                ################# NFS Backup Server ####################
                -A INPUT -s 10.168.189.37/32 -p all -j ACCEPT
                -A INPUT -s 121.41.47.213/32 -p all -j ACCEPT


                ################# Forbidden ALL ########################
                -P INPUT DROP

                ################# OUTPUT Settings ####################
                -P OUTPUT ACCEPT
                COMMIT
                #####################################################
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

十一、阿里云服务器安装安骑士

1、安装64位的执行命令

wget 'http://update.aegis.aliyun.com/download/AliAqsInstall_64.sh' && sh AliAqsInstall_64.sh i24iJ7

2、安装32位的执行命令

wget 'http://update.aegis.aliyun.com/download/AliAqsInstall_32.sh' && sh AliAqsInstall_32.sh i24iJ7

* 以上操作经过验证可以直接拿去。

* auther `breakEval13`

* https://github.com/breakEval13