1, 最小化安装:
在安装centos系统的时候选择定制安装,不安装图形化界面、根据自己的情况选择安装的服务或者一个都不安装,等安装完了以后自行安装、选择软件编译安装所需的工具和库等。
2, 安装系统补丁:
建议使用centos自带的yum工具来安装
[ root@localhost ~]# rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
[root@localhost ~]# yum update
3, 帐号和登录安全:
Root用户设置强密码;
新建一个非管理员帐号;
禁止root用户直接ssh登录、更改ssh默认端口;
[root@localhost ~]# vi /etc/ssh/sshd_config
第十四行处“ # Port 22”,去掉“#”,将22改成你要设置的ssh端口,比如22110;
再添加一行PermitRootLogin no,禁止root用户ssh登录。
4, 开启Linux防火墙,只开放应用端口。
开启centos防火墙,默认是开启的,禁用selinux;
最好自行设置防火墙策略,根据自己的应用开放相应的端口(下面的配置是状态检测防火墙)。
vi iptables_rule.sh
#!/bin/bash
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp –icmp-type any -j ACCEPT
iptables -A INPUT -p udp –dport 161 -j ACCEPT
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state –state NEW –dport 22110 -j ACCEPT
iptables -A INPUT -p tcp -m state –state NEW –dport 80 -j ACCEPT
保存推出后,设置iptables_rule.sh为可执行文件
[root@localhost ~]# ./iptable_rule.sh
[root@localhost ~]# servcie iptables save
5, 关闭一些不需要的服务,如:sendmail服务不需要的话可以关闭。
¥基本安全措施
1.禁用系统中不用的用户和组
passwd -l zhangsan (锁定账户)
passwd -u zhangsan (解锁账户)
或者直接修改shadow文件,在zhangsan用户的密码字符串前加“!”号。
2.确认程序或服务用户的登录Shell不可用
usermod -s /sbin/nologin rpm
或者直接修改passwd文件。
3.限制用户的密码有效期
chage -M 30 zhangsan
或者直接修改login.defs文件。
4.指定用户在下次登录时必须修改密码
chage -M 0 zhangsan
5.限制用户密码的最小长度
#vi /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=12
6.限制记录命令历史的条数
#vi /etc/profile
HISTSIZE=100
7.设置当前用户在注销登录后自动清空命令历史记录
#echo "history -c" >> ~/.bash_logout
8.设置闲置超时自动注销终端
#vi /etc/profile
export TMOUT=600
¥使用su切换用户身份
*.允许zhangsan用户可以通过su命令切换为root身份,
*.禁止其他用户使用su命令切换用户身份
#gpasswd -a zhangsan wheel
#vi /etc/pam.d/su
auth required pam_wheel.so use_uid
¥使用sudu提升执行权限
1.授权root用户Jerry可以以root用户的权限执行ifconfig命令
#visudu
Jerry localhost=/sbin/ifconfig
2.设置用户、主机、命令三部分的自定义别名
User_Alias OPERATORS=jerry,tom,tsengyia
Host_Alias MAILSERVERS=smtp,pop
Cmnd_Alias SOFTWARE=/bin/rpm,/usr/bin/yum
3.通过别名定义一组命令,并授权tom可以使用改组命令
#visudu
Cmnd_Alias SYSVCTRL=/sbin/service,/bin/kill,/bin/killall
tom localhost=SYSVCTRL
4.授权wheel组的用户不需验证密码即可执行所有命令
#visudu
%wheel ALL=(ALL) NOPASSWD:ALL
5.授权用户mike可以通过sudu调用/sbin和/usr/bin目录下的所有命令,但是禁止调用/sbin/ifconfig命令修改eth0参数,禁止调用/usr/bin/vim命令防止修改配置文件
#visudu
mike localhost=/sbin/*,/usr/bin/*,!/sbin/ifconfig eth0,!/usr/bin/vim
6.为sudu启用日志
#visudu
Defaults logfile = "/var/log/sudo"
#vi /etc/syslog.conf
local2.debug /var/log/sudo
#service syslog restart
*.因系统管理工作繁重,需要将用户账号管理工作交给专门的管理组成员负责
*。设立组账号"managers",授权组内的各成员用户可以添加、删除、更改用户账号
#groupadd managers
#gpasswd -M zhangsan,lisi managers
#visudu
Cmnd_Alias USERADM = /usr/sbin/useradd,/usr/sbin/userdel,/usr/sbin/usermod
%managers localhost=USERADM
¥文件系统层次的安全优化
1.锁定不希望更改的文件
#chattr +i /etc/service /etc/passwd /boot/grub.conf
2.解锁锁定的文件
#chattr -i /etc/passwd
¥系统引导和系统安全优化
1.调整BIOS引导设置
2.防止用户通过CTRL+ALT+DEL热键重启系统
#vi /etc/inittab
#ca::/ctrlaltdel:/sbin/shutdown -t3 -r now
#init q
3.GRUB引导菜单加密
#vi /boot/grub/grub.conf
password 123456
4.在grub.conf文件中设置md5加密的密码字串
#grub-md5-crypt
5.即时禁止普通用户登录
#touch /etc/nologin
6.控制服务器开放的tty终端
#vi /etc/inittab
7.控制允许root用户登录的tty终端
#vi /etc/securetty
#tty2
#tty3
8.更改系统登录提示,隐藏内核版本信息
#vi /etc/issue
welcome to server.
#cp -f /etc/issue /etc/issue.net
9.使用pam_access认证控制用户登录地点
禁止除了root以外的用户从tty1终端上登录系统
#vi /etc/pam.d/login
account required pam_access.so
#vi /etc/security/access.conf
- : ALL EXCEPT root : tty1
禁止root用户从192.168.1.0/24、172.16.0.0/8网络中远程登录
#vi /etc/pam.d/sshd
account required pam_access.so
#vi /etc/security/access.conf
- : root : 192.168.1.0/24 172.16.0.0/8