修复MBR
1. 装入系统安装光盘,在光盘引导界面选择“Troubleshooting"
2. 选择救援模式“Rescue a CentOS system”
3. 选择“Contunue”
4. 任意键继续, 切换根目录 chroot /mnt/sysimage
5. 安装grub2 : grub2-install /dev/sda
6. 写入更改: sync
7. exit 退出 chroot环境 ,reboot 重启
修复MBR
1. 装入系统安装光盘,在光盘引导界面选择“Troubleshooting"
2. 选择救援模式“Rescue a CentOS system”
3. 选择“Contunue”
4. 任意键继续, 切换根目录 chroot /mnt/sysimage
5. 安装grub2 : grub2-install /dev/sda
6. 写入更改: sync
7. exit 退出 chroot环境 ,reboot 重启
pxe远程批量部署 Linux
1.安装配置dhcp服务器
yum -y install dhcp
cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet ip地址 netmask 255.255.255.0 {
range ;
option routers xxx.xxx ;
option broadcast-address 5;
default-lease-time 600;
max-lease-time 7200;
next-server 服务器地址;
2.安装tftp-Server与syslinux,配置
yum -y install syslinux
yum -y install tftp-server
vim /etc/xinetd.d/tftp
“disable = yes”修改成disable=no
systemctl start xinetd
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 ./
cp /var/ftp/yum/isolinux/vmlinuz ./
cp /var/ftp/yum/isolinux/initrd.img ./
cp /var/ftp/yum/isolinux/vesamenu.c32./ cp /var/ftp/yum/isolinux/boot.msg ./
mkdir pxelinux.cfg
编辑启动菜单配置文件
cp /var/ftp/yum/isolinux/ioslinux.cfg ./pxelinux.cfg/default
vim pxelinux.cfg/default
“label linux”这一行前添加:
label centos //创建标签
menu label ^Install CentOS 7.1
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://yumip/yum inst.ks=ftp://yumip/ks.cfg quiet
找到“menu label Test this ^media & install CentOS 7”,后面的
“menu default”行删除
3.安装Kickstart,配置自动化安装
yum -y install system-config-kickstart
system-config-kickstart
Kickstart配置 时区的选择
安装方法 选择ftp 安装新的引导 分区选项
安装后脚本
system-config-kickstart
mkdir /etc/yum.repos.d/old
cp -rf /etc/yum.repos.d/*
/etc/yum/repos.d/old/
rm -f /etc/yum.repos.d/*
echo '[base]
name= CentOS 7.1 Setup
baseurl=ftp://yum ip/yum
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'>
/etc/yum.repos.d/CentOS7Setup.repo
保存 root/ks.cfg
vim anaconda-ks.cfg
复制
“%packages
@base
……
@x11
%end”段
vim ks.cfg
在“part / --fstype="xfs" --grow --size=1
%post --interpreter=/bin/bash”两行之间粘贴“%packages … … %end”段
cp ks.cfg /var/ftp/
firewall-cmd --permanent --add-service=dhcp success
firewall-cmd --permanent --add-service=ftp success
firewall-cmd --permanent --add-port=69/udp success
firewall-cmd --reload
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|
Detect languageAfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
AfrikaansAlbanianArabicArmenianAzerbaijaniBasqueBelarusianBengaliBosnianBulgarianCatalanCebuanoChichewaChinese (Simplified)Chinese (Traditional)CroatianCzechDanishDutchEnglishEsperantoEstonianFilipinoFinnishFrenchGalicianGeorgianGermanGreekGujaratiHaitian CreoleHausaHebrewHindiHmongHungarianIcelandicIgboIndonesianIrishItalianJapaneseJavaneseKannadaKazakhKhmerKoreanLaoLatinLatvianLithuanianMacedonianMalagasyMalayMalayalamMalteseMaoriMarathiMongolianMyanmar (Burmese)NepaliNorwegianPersianPolishPortuguesePunjabiRomanianRussianSerbianSesothoSinhalaSlovakSlovenianSomaliSpanishSundaneseSwahiliSwedishTajikTamilTeluguThaiTurkishUkrainianUrduUzbekVietnameseWelshYiddishYorubaZulu |
|
|
|
|
|
最新版 CentOS7 VNC-Server
无需
ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
只需要找到 User=<USER> 改动 <USER> 为你的用户名即可
最新版默认启用TLS安全通道以保护VNC通信安全,不需要使用SSH来增强其安全性
ssh安全最佳实践
sshd_config 删除#yes改为no仅限控制台访问、重启
配置TCP Wrappers
在工作站或笔记本卸载禁用ssh
区分公网IP和内网IP绑定侦听IP地址
始终保持ssh补丁版本最新、放到任务计划里面定期更新
适用场景:大规模安装linux服务器,需要安装过程统一且标准化
过程:1. 需要一个DHCP服务器
yum install dhcp
cd /usr/share/doc/dhcp-xx/
cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
---
#/etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.11.11.0 netmask 255.255.255.0{
range 10.11.11.26 10.11.11.30; // 要改成自己用的
option routers 10.11.11.254;
option broadcast-address 10.11.11.255;
default-lease-time 600;
max-lease-time 7200;
next-server 10.11.11.1; // 指定PXE引导服务器 就是当前服务器ip
filename "pxelinux.0"; // 指定引导文件
}
Q: 这个配置文件的每一行什么意思,配置什么的
---
systemctl start dhcp
systemctl status dhcpd.service
2. tftp和syslinux
tftp 用于远程linux的引导
syslinux提供引导块,引导模块的远程启动服务
yum install tftp-server syslinux
vim /etc/xinetd.d/tftp
把disable=yes改成no
顺便,server的目录是tftp共享的目录
systemctl restart xinetd
netstat -aupn |grep 69
cd /var/lib/tftpboot // tftp的根目录
cp /usr/share/syslinux/pxelinux.0 ./
// 以下是系统光盘的内容
cp /var/ftp/yum/isolinux/vmlinuz ./
inittrd.img
vesamenu.c32
boot.msg
// 然后编辑启动菜单配置文件
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/ftp/yum/isolinux/isolinux.cfg pxelinux.cfg/default
vim 这个default
在label linux行前添加
label centos
menu label ^Install CentOS7.1
menu default
kernel vmlinuz
// 目标是ftpxxx 自动化脚本配置文件是xxxks什么的
append initrd=initrd.img inst.stage2=ftp://10.11.11.1/yum inst.ks=ftp://10.11.11.1/ks.cfg.quiet
然后删了menu label Test this ^ media & install CentOS7前面的menu default行删了
3.安装kickstart
yum install system-config-kickstart
system-config-kickstart
kickstart不能配置软件包安装
ks.cfg加上@packages@end之后,保存到/var/ftp
firewall-cmd --permanent --add-port=69/udp
--add-service=dhcp
ftp
--reload
新建的主机自动就默认去用PXE了……猜测是整个网段都会自动走这个流程0 v 0
linux需要安装一些软件,黄狗更新系统yum
自动解决rpm包依赖关系
配置一个yum源
首先得有一个ip地址
/etc/sysconfig.network-scripts/ ifcfgxxx 本地网卡的配置文件
BOOTPROTO 不用dhcp用static
IPV6xxx no
IPADDR=10.11.11.1
NETMASK=255.255.255.0
GATEWAY=10.11.11.254
DNS1=114.114.114.114
Q:这个dns地址怎么回事,好像见过。。
/etc/hostname改成yum.xx.org
/etc/hosts 10.11.11.1 yum yum.xx.org
systemctl restart network.service
hostname 看主机名
卸载光盘 umount /dev/cdrom
mount /dev/cdrom /media/cdrom 换了个挂在的地方
rpm -Uvh vsftpd-3.0.2-xxxx.rpm
cp -rf /media/cdrom/* /var/ftp/yum
里面有个解决依赖关系的db
ftp配置被动模式 比较安全
在/etc/vsftpd/vsftpd.conf里
在connect_from_port_20=YES后面添加
pasv_enable=YES
pasv_min_porv=3001
pasv_max_port=3100
systemctl restart vsftpd.service
netstat -atpn | grep vsftpd
setsebool allow_ftpd_full_access 1
setsebool httpd_enable_ftp_server 1
>配置stp安全:
>建立stp帐号目录:
[root@serv -]# cd /var
[root@serv -]#mkdir sftp
[root@serv -]# mkdir /var/sftp/sftp01
[root@serv -]# mkdir -p / var/sftp/sftp02
[root@serv -]# mkdir -p / var/sftp/sftp03
> stp的账户直接使用linux操作系统账户:
[root@serv -]# group add sftp //创建指定组
[root@serv -]# user add -M -d /var/sftp/ -G stp stp admin
-M 不分配宿主目录
-d 制定基本目录
-G 追加到附加组
正在创建信箱文件:文件已存在
[root@serv -]# user add -M -d /var/sftp/sftp01/-gsftp sftp01
[root@serv -]# user add -M -d /var/sftp/sftp02/-g stp sftp02
[root@serv -]# user add -M -d /var/sftp/sftp03/ -G ftp. . E03e
d -M -d / var/sftp/sftp03/gsftp经Gte03
不要忘了给这些帐号配置密码!
>编辑/etc/ssh/sshd. config配置文件:
146 #subsystem sftp / usr/libexec/ openssh/sftp-server
147 subsystem sftp internal-sftp
148
149 Allowusers admin likud ftp. Admin sftp01 sftp02 sftp03
150 Denyusers ligui
151
152 Match user sftp_ admin
153 ChrootDirectory /var/sftp
154 Forcecommand internal-sftp
155 Match Group sftp
156 Chrootdirectory %h
157 Forcecommand internal-sftp
158
>目录权限设置:
>目录权限设置上要遵循2点:
> chrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root ;
>chrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755。
[root@serv -] cd /var/sftp/
[root@serv sftp]# chmod 755 -R . /
[root@serv sftp]# cd sftp01
[root@serv sftp01]#mkdir w
[root@serv sftp01]# chown sftp01. Sftp W sevlwz
由于文件夹的权限问题,SFTP帐号都不具有写权限;因此,在其宿主目录下创建一个具有写权限的文件夹,用于资源上传
>在客户端进行测试::
[ rootgbogon ~]# sftp sftp01@serv. Sevenwin. Org
sftp01@serv. Sevenwln. Org's password :
Connected to serv. Sevenwln. org.
sftp> ls
w
sftp pwd
Remote working directory /
sftp mkdir abc
Couldn't create directory permission denied
YUM 黄狗更新系统,解决RPM包安装的依赖关系
联网:
cd /etc/sysconfig/network-scripts
vim ifcfg-en。。。
把bootproto 改成静态static
ipv6 改成no
ipaddr=10.11.11.1
netmask=255.255.255.0
gateway=10.11.11.254
dns1=114.114.114.114
vim /etc/hostname 配置主机名
vim /etc/hosts 配置hosts
systemctl restart network.servics
ipconfig
注释掉系统不需要的用户和用户组
cp /etc/passwd /var/.bak/etc/
vim /etc/passwd
可以被注释掉的
adm,lp,sync,shutdown,halt,operator,games,ftp...
vim /etc/group
adm,lp,floppy,games, ftp...
7段
用户名 密码的占位符 uid号,gid号,说明信息,用户的目录,使用的shell
#注释
非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin user00
tail -2 /etc/passwd
程序帐号 apache这种
锁定帐号
usermod -L user00
tail -3 /etc/shadow
shadow是用来保存帐号密码的文件
有个感叹号,表示密码暂时不能用,即加锁了
chattr +i /etc/passwd
shadow group gshadow
账号文件组账号文件加锁,加锁后无法增删用户,防止普通用户提权
lsattr /etc/passwd /etc/shadow xxxxx
查看文件属性
chattr -i /etc/passwd
解锁
密码有效期 长短限制 要求下次登录时修改密码
vim /etc/login.defs
PASS_MAX_DAYS
这里改了只适用于新建账号
chage -M 30 user00
修改已存在帐号的密码有效期
chage -d 0 xx
强制下次登录改密码
减少记录的命令条数 注销时自动清空历史命令记录
vim /etc/profile
HISTSIZE=50
vim ~/.bash_logout
history -c
clear
终端闲置600秒后自动注销
vim ~/.bash_profile
export TMOUT=600
安装并配置DHCP服务器
yum安装
umount /dev/cdrom
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm
系统更新,漏洞的修补。
查看Linux版本:cat /etc/redhat-release
查询openvas安装情况:yum -y list | grep openvas
安装openvas:yum -y install openvas-*
安装epel源:
yum -y install http://mirrors.opencas.cn/epel/epel-release-latest-7.noarch.rpm
=====系统更新
==安装EPEL源
EPEL (Extra Packages for Enterprise Linux,企业版Linux的额外软件包) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。EPEL提供的软件包大多基于其对应的Fedora软件包,不会与企业版Linux发行版的软件包发生冲突。
[root@localhost ~]# cat /etc/redhat-release
//确认Linux发行版本
CentOS Linux release 7.1.1503 (Core)
[root@localhost ~]# yum -y install http://mirrors.opencas.cn/epel/epelrelease-latest-7.noarch.rpm
//安装EPEL源
⋯ ⋯
//测试一下,安装OpenVAS试试
[root@localhost ~]# yum -y list |grep openvas
//查询OpenVAS包信息
[root@localhost ~]# yum -y install openvas-*
//安装OpenVAS
//在后面的安装过程中,RPM包的依赖关系自行解决
==备份内核
[root@localhost ~]# mkdir -p /var/.bak /etc
/* 在“/var”下创建一个用于备份的隐藏文件夹 */
[root@localhost ~]# cp /etc/yum.conf /var/.bak/etc/
//欲修改,先备份
[root@localhost ~]# vim /etc/yum.conf
//在[main]段后追加一行
exclude=kernel*
//更新时,忽略kernel相关包
[root@localhost ~]# uname -a
//查看内核版本
Linux localhost 3.10.0-229.el7.x86_64 #1 SMP Fri Mar 6 11:36:42 UTC 2015x86_64 x86_64 x86_64 GNU/Linux
注意:由于系统与硬件的兼容性问题,有可能升级内核后导致服务器不能正常启动,这是非常可怕的,没有特别的需要,建议不要随意升级内核。
==关闭自动下载更新
有时出于对于生产环境中业务系统的稳定性方面考虑,在更新前,必须先对补丁包进行测试;在其不影响业务系统运行的情况下,再进行更新;那么就需要关闭自动更新了,改手动更新。
[root@localhost ~]# systemctl start crond
[root@localhost ~]# yum -y install cronie
[root@localhost ~]# yum -y install yum-cron
[root@localhost ~]# systemctl start yum-cron
[root@localhost ~]# vim /etc/yum/yum-cron.conf
//前下面两项改为“no”
update_messages = no
download_updates = no
账号的基本安全
注释掉用户+#
原则是最小权限+最少服务=最大的安全
adm/lp/syszc/halt/ftp/注释掉
将非登录账号shell设为sbin/nologin usermod -s
锁定一段时间不是用的账号usermod -L
账号加锁chattr +i/解锁chattr -i
账号口令安全设置编辑login.defs只适用新账号
修改已存在chage -M有效期/下次登陆强制修改密码chage -d
减少记录命令条数profile、注销时自动清空历史记录~/ .bash_logout添加history -c 和clear
自动注销添加export TMOUT=时间
注释用户:vim /etc/passwd
在不需要的用户前面加个#号注释掉。
非登录用户的shell设为/sbin/nologin
usermod -s /sbin/nologin/用户名
tail -2 /etc/passwd //查看一下
锁定一段时间内不使用的账号
usermod -L 用户
tail -3 /etc/shadow
给账号,组账号,账号口令文件加上不可更改属性,从而防止非授权用户获得权限
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
解锁:
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
密码有效期与最短长度:
vim /etc/login.defs
PASS_MAX_DAYS 90 密码最长90天
PASS_MIN_DAYS 0 最短0天
PASS_WARN_AGE 7 7天提醒修改口令
PASS_MIN_LEN 8 最短密码长度8位
修改已经存在的账号密码有效期:
chage -M 30 用户 最长天数
chage -d 0 用户 强制下次登录改密码
查看历史口令history
他人可以查看你输入的口令,因此要减少记录的命令条,注销时自动清空历史命令。
vim /etc/profile
HISTORY=1000 改为自己想要的数字 //默认1000条
注销时自动清除记录:
vim ~/.bash_logout
history -c
clear
终端自动注销:
vim ~/.bash_profile 亦或者在vim /etc/profile这里修改
例如profile添加:
在export PATH...下面添加
export TMOUT=600
闲置600S自动注销。
限制使用su命令的用户:
1、启用PAM_WHEEL认证模块
2、将允许使用su命令的用户加入wheel组
vim /etc/pam.d/su
将#去掉:author required pam_wheel.so use uid
gpasswd -a 用户 wheel 将用户加入wheel组
使用sudo机制提升权限
用途:其他用户身份执行授权的命令
用法:sudo授权命令
密码验证:初次执行sudo命令时,验证当前用户的密码;不验证目标用户的密码
sudu -u 用户 /bin/touch /tmp/test
ll /tmp
配置sudo授权
visudo或者vim /etc/sudoers
添加记录:用户 主机名列表=命令程序
在#user localhost=/sbin/shutdown - h now下面添加
用户 localhost=/sbin/ifconfig
带GUI的服务器++
硬件监控工具
Java平台
大系统性能
性能工具
兼容性程序库
开发工具
安全性工具
=====账号安全
==注释掉系统不需要的用户和用户组
不建议直接删除,当你需要某个用户时,自己重新添加会很麻烦。
[root@localhost ~]# cp /etc/passwd /var/.bak/etc/
//欲修改,先备份
[root@localhost ~]# vim /etc/passwd
//编辑帐号配置文件
//可以被注释掉的用户:adm,lp,sync,shutdown,halt,operator,games,ftp ⋯ ⋯
[root@localhost ~]# cp /etc/group /var/.bak/etc/
[root@localhost ~]# vim /etc/group
//备份并编辑组帐号配置文件
//可以被注释掉的组帐号:adm, lp, floppy, games, ftp ⋯ ⋯
//用户名前加‘#’号代表注释
==账号锁定
将非登录用户的Shell设为/sbin/nologin
锁定一段时间内不使用的帐号
[root@localhost ~]# usermod -s /sbin/nologin user00
[root@localhost ~]# tail -2 /etc/passwd
//查看一下
user00:x:1000:1000:user00:/home/user00:/sbin/nologin
likui:x:1001:1001::/home/likui:/bin/bash
[root@localhost ~]# usermod -L user00
[root@localhost ~]# tail -3 /etc/shadow
tcpdump:!!:16673::::::
user00:!$6$9kOvPaa/SJuqojOm$X95/U0BzzcQjmYsXemYrrp725zW.PPZ.NIsV7TiuL
4qLbTvPmrKqcrkWEs6aNNVknoeYD5vNSXs1aSpvgSGiv/:16673:0:99999:7:::
likui:$6$p1AeYs41$xLsJpo1ZJuRSxmbtzlezRw6U/WCW95oE1v.HTQmDGzGflEIbNT
XhY5QyTQI2nRdc9oH/O8Dpbnnx6Z4oW0E2k1:16730:0:99999:7:::
==账号不可更改
给帐号、组帐号、帐号口令文件加上不可更改属性(加
锁),从而防止非授权用户获得权限
[root@localhost ~]# chattr +i /etc/passwd
[root@localhost ~]# chattr +i /etc/shadow
//帐号口令文件
[root@localhost ~]# chattr +i /etc/group
[root@localhost ~]# chattr +i /etc/gshadow
//组帐号口令文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow /etc/group
/etc/gshadow
----i----------- /etc/passwd
//查看以上文件属性
----i----------- /etc/shadow
----i----------- /etc/group
----i----------- /etc/gshadow
/* 注意:执行以上权限修改之后,就无法添加删除用户了 */
[root@localhost ~]# chattr -i /etc/passwd
//通过这个命令解锁
//将相关文件解锁后,便可以添加删除用户或修改密码了;操作完成后再锁定
==帐号口令的安全设置
设置密码有效期与最短长度限制
要求用户下次登录时修改密码
[root@localhost ~]# vim /etc/login.defs
//只适用于新建帐号
//修改以下配置
PASS_MAX_DAYS 90 //密码使用最长天数改为90天
PASS_MIN_DAYS 0 //密码最短使用天数
PASS_MIN_LEN 8 //密码最短长度改为8,必要情况下改为14
PASS_WARN_AGE 7 //改换口令提醒天数
[root@localhost ~]# chage -M 30 likui //修改已存在帐号的密码有效期
[root@localhost ~]# chage -d 0 likui //强制在下次登录时更改密码
==命令历史限制
减少记录的命令条数
注销时自动清空历史命令记录
[root@localhost ~]# vim /etc/profile
//修改下面环境变量的值
HISTSIZE=50
[root@localhost ~]# vim ~/.bash_logout
//添加下面两行
history -c
clear
==ssh安全配置
Secure Shell (SSH) 的目的在于在通过网络远程访问另一个主机时提供最大的保护。属于应用层的隧道技术,它通过提供更好的身份验证工具和 Secure Copy(SCP)、Secure File Transfer Protocol (SFTP)、X 会话转发和端口转发等功能来加密网络交换,从而增加其他非安全协议的安全性。
==SSH的一般用途
通常使用 SSH 来允许用户登录到一个远程主机并执行命令。SSH 还支持隧道和 X11 连接。SSH也可以使用 SFTP 或 SCP 传输文件。
远程主机 shell 访问(取代 telnet 和 rlogin 等使用明文的不安全协议):
ssh 远程主机账号@地址 #地址主机中的账号登陆
yes #保存证书
输入密码
exit #登出
在远程主机(代替 rsh)执行单一命令:
ssh 远程主机账号@地址 reboot #以远程主机中的root身份执行reboot命令
通过 SCP 命令将文件在本地主机与远程服务器之间进行复制:
scp 远程账号@地址:文件路径 #从远端拷贝文件
scp 文件路径 远程账号@地址:文件路径 #从本地上传文件
结合 SFTP,作为 FTP 文件传输的一个安全替代品:
sftp 账号@主机地址:文件路径 #到远端主机的对应路径
结合 rsync 有效安全地备份、复制和镜像文件到一个本地或远程主机:
rsync -avz --delete 账号@主机地址:/文件夹 本地文件夹
端口转发:
从一个远程主机转发 X 会话:
使用 sshfs 将一个远程SSH服务器上的目录安全的挂载到本地计算机文件系统中使用:
针对所有账号在profile里面添加export TMOUT=时间
使用su -目标用户切换用户
启用pam.d/su认证模块将#号去除将用户添加到wheel :gpasswd -a 用户 wheel
sudo -u 机制提升权限以其他身份执行授权命令
配置sudo授权修改sudoers