Linux系统安全加固基础

时间:2024-04-11 07:41:09

注:建议在修改相关配置文件时,首先对需要修改文件进行备份。
1、ssh远程连接
vi /etc/sshd/sshd_config
Port 65531
#修改ssh端口,默认22
ListenAddress 192.168.1.X
#允许ssh登录的IP地址
PermitRootLogin no
#禁止root通过ssh连接)
AllowUsers [email protected]*
#允许用户test从IP为192.168.1.*客户端登陆访问)
修改完成后重启ssh服务
service sshd restart

2、用户认证
在/etc/pam.d/system-auth文件中加入下面两行:
用户尝试登录5次失败,锁住这个用户(faillog -u <用户名> -r解锁)
auth required /lib/security/pam_tally.so onerr=fail no_magic_root
account required /lib/security/pam_tally.so deny=5 no_magic_root reset

3、增强内核及TCP/IP安全
在/etc/sysctl.conf文件中添加如下内容:
调整如下内核参数,以提高系统防止IP欺骗及DOS攻击的能力:
net.ipv4.ip_forward = 0
#对于LVS,网关或v*n服务器,要设置为1
net.ipv4.conf.all.accept_source_route = 0
#丢弃源路由包
net.ipv4.conf.all.accept_redirects = 0
#禁止接受重定向
net.ipv4.conf.all.rp_filter = 1
对于LVS 后端服务器,要设置为0
net.ipv4.icmp_echo_ignore_broadcasts = 1
#禁止相应广播icmp echo 请求
net.ipv4.icmp_echo_ignore_all = 1
#系统关闭ping
net.ipv4.tcp_syncookies = 1
#对TCP SYN Cookie的保护,防止SYN FLood攻击
设置完成后使用执行:sysctl -p

4、口令安全
更改文件:/etc/login.defs配置默认口令属性:
PASS_MAX_DAYS 90
#设置密码过期日期90天
PASS_MIN_DAYS 30
#设置密码最少更改日期
PASS_MIN_LEN 10
#设置密码最小长度
PASS_WARN_AGE 7
#设置过期提前警告天数

5、系统参数、属性设置
修改/etc/profile文件,加入如下内容:
export TMOUT=600
#无交互操作10分钟后退出
HISTFILESIZE=5
#定义.bash_history中保存的命令数
HISTSIZE=5
#定义history保存命令数

6、对su权限的设置
只允许特定用户组使用su命令成为root
编辑/etc/pam.d/su文件,在此允许test用户组,在文件头部加上
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=test
设置用户属组
usermod -G test test1 来将用户加入test组

7、删除不必要的系统用户和组
(先备份文件/etc/passwd、/etc/shadow)
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel news
userdel pcap
userdel mail
userdel vcsa
userdel uucp
userdel operator
userdel games # 如果不使用X window,则删除
userdel gopher
userdel ftp #如果不使用ftp服务则删除
删除无用组(先备份/etc/group、/etc/gshadow)
groupdel gamer
groupdel pcap
groupdel rpcuser
groupdel vcsa
groupdel smmsp
groupdel mailnull
groupdel lp
groupdel wheel
groupdel mail
groupdel news

8、设置允许登录的机器
在/etc/hosts.allow文件中添加
sshd:192.168.1.10:allow
#允许192.168.1.10地址登录
sshd:192.168.1.*:allow
#允许192.168.1.*网段地址登录
sshd:all:deny
#禁止

9、禁止除root外帐户使用at/cron
添加root到cron.allow和at.allow,并删除cron.deny和at.deny
rm -f cron.deny at.deny
echo root > cron.allow
echo root > at.allow
chown root:sys cron.allow at.allow
chmod 400 cron.allow at.allow

10、设置远程日志服务器
/etc/syslog.conf
修改配置:
vi /etc/syslog.conf
. @192.168.1.10
可以将*.替换为实际需要的日志信息,如:kern. mail.*等
重启syslog服务:
service syslog restart

11、修改文件权限
修改shadow、group、passwd、gshadow文件不可改变位
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
修改脚本文件在"/etc/rc.d/init.d"目录下的权限,只允许root使用Read、Write、Execute
chmod -R 700 /etc/rc.d/init.d/*
Linux系统安全加固基础