标签:linux安全应用2详解
[root@localhost 桌面]# service NetworkManager stop
[root@localhost 桌面]# chkconfig NetworkManager off
[root@localhost 桌面]# setup
[root@localhost 桌面]# vim /etc/udev/rules.d/70-persistent-net.rules
[root@localhost 桌面]# modprobe -rv e1000
[root@localhost 桌面]# modprobe -v e1000
[root@localhost 桌面]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
[root@localhost 桌面]#service network restart
[root@localhost 桌面]# setenforce 0
[root@localhost ssh]# vim /etc/selinux/config
SELINUX=disabled
:wq
ssh -X 192.168.1.1 //加X可以在远程的服务器上打开system-network-date图形界面,在本地显示出来
ssh 192.168.10.1 ‘useradd bob‘ //在ip地址后面加命令,直接执行命令,不用登陆远程服务器
ping6 ::1 //拼ipv6本地环回
ping 127.0.0.1 //拼ipv4本地环回
netstat -tunlp | nore //查看监听tcp的端口号有哪些
:::111 //:冒号后面111代表端口号,前面那两冒号代表ipv6任意地址
/etc/ssh 配置文件
ssh_config 客户端配置文件
sshd_config 服务器端软件
vim /etc/ssh/sshd_config
Port 3389 //端口号
Protocol2 2 //版本
ListenAddress 192.168.168.174 //端听的IP地址,0.0.0.0代表所有的IP地址
PermitRootLogin no //不允许root用户登陆
PermitEmptyPasswords no //不允许空密码
UseDNS no //不查找DNS,不查找IP对的名字是多少
LoginGraceTime 2m //登陆页面两分钟不动,自动断开
StrictModes yes
MaxAuthTries 6 //最大身份认证尝试6次
:wq
man ssh //查ssh命令帮助
man 5 sshd_config //查配置文件配帮助,不要加路径
ssh -p 3389 192.168.10.3 //通过端口号3389连接ssh
sshl黑白名单设置
配置文件 /etc/ssh/sshd_config
从上往下
1. DenyUsers USER1 USER2 ...
2. AllowUsers USER1@HOST USER2...
3. DenyGroups GROUP1 GROUP2...
4. AllowGroups GROUP1 GROUP2...
例:
vim /etc/ssh/sshd_config
AllowUsers tom root@192.168.10.5 //允许tom用户登陆,允许root用户在192.168.10.5的主机上登陆,其他不设允许的主机,默认不允许登陆
:wq
rsync httpd-2.2.25.tar.gz root@192.168.1.2:/home/demo
scp httpd..tar.gz root@192.168.1.2:/home/demo
加密技术
一.加密方式
1.对称加密:加解密使用相同的密钥。算法:DES/3DES/AES。优点,加密效率高,缺点,
密钥的传输和保管不方便。
2.非对称加密:公钥加密、私钥解密。算法:RSA。优点,密钥传输保管方便。缺点,
加密效率低
3.单向加密:加密只能向一个方向进行,不能回推。哈希算法。MD5、SHA
[root@localhost ssh]# md5sum /etc/passwd
[root@localhost ssh]# sha -> 敲tab健
sha1sum sha224sum sha256sum sha384sum sha512sum sharesec
[root@localhost ssh]# sha512sum /etc/passwd //数字越大密钥越长
bob:$6$xA/CY //6代表sha512加密
bob:$1$xA/CY //1代表MD5加密
实现不用密码即可连接ssh
一.生成密钥对
# ssh-keygen ->后续全部回车->第一次回车修改密钥名字,第二次和第三次回车修改密钥密码
/root/.ssh/id_rsa //密钥对存放位置
二.上传公钥到服务器root用户下
# ssh-copy-id -i root@服务器IP地址
# ssh-copy-id -i root@192.168.1.2
/root/.ssh/id_rsa 私钥
/root/.ssh/id_pub 公钥
/root/ known_hosts 保存的密码信息
cd /etc/ssh
rm -rf ssh_host*
service sshd restart
ssh 192.168.1.2 //登陆不了
这时把known_hosts 删了就可登陆
rm -rf known_hosts
ssh 192.168.1.2 //登陆成功
[root@localhost .ssh]# ls
id_rsa id_rsa.pub known_hosts
[root@localhost .ssh]# rm -f id*
[root@localhost .ssh]# ssh-keygen //重新生成密钥
[root@localhost .ssh]# ssh-add //执行此步可以不用输入密钥就可以进行远程连接
Could not open a connection to your authentication agent.
[root@localhost .ssh]#eval `ssh-agent` //如果ssh-add失败就执行此步
Agent pid 5267
[root@localhost .ssh]# ssh-add ~/.ssh/rsa //如果ssh-add失败就执行此步
/root/.ssh/rsa: No such file or directory
[root@localhost .ssh]# ssh-add
Enter passphrase for /root/.ssh/id_rsa:
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
[root@localhost .ssh]# ssh-keygen
yum list | grep wire //查抓包工具
yum -y install wireshark wireshark-gnome //安装抓包工具
应用程序-Internet-wireshark //打开抓包工具
二.SSH加密、认证的验证
1.当客户端第一次SSH到服务器时,服务器会发送他的密钥信息。客户端不能确定该密
钥就是真正的服务器发过来的,所以屏幕上会提示是否信任该密钥。用户输入YES后,
可以继续。
2.在服务器端
# rm -f /etc/ssh/ssh_host_*
# service sshd restart
3.客户端再次连接服务器,因为服务的密钥重新生成了,客户端本地存储的服务器密钥与
本次会话服务器发过来的密钥信息不一致,所以客户端拒接连接
4.客户端重新信任密钥
# rm ~/ssh/known_hosts
# ssh 服务器
三.生成ssh密钥,使用密码保护私钥
1.客户端生成密钥对。
# ssh-keygen ->提示输入passphrase的时候,输入密码,该密码是保护私钥的密码
2.上传至公钥服务器
# ssh-copy-id -i 服务器ip
3.连接测试
# ssh 服务器IP ->提示输入密码,这个密码是保护私钥的密码,而不是服务器的密码
4.把私钥密码托管给agent
# ssh-add
5.再次SSH服务器,就不需要输入任何密码。
四.证书 ->算法的载体
1.CA证书颁发机构
五.TCP WRAPPERS
1.统一的保护策略
多种TCP服务共用,提高效率
2.检查服务是否支持被TCP WRAPPERS保护
[root@localhost 桌面]# ldd `which sshd vsftpd` | grep wrap
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f274758c000)
libwrap.so.0 => /lib64/libwrap.so.0 (0x00007fb676477000)
3.防护规则存放在
/etc/hosts.allow
/etc/hosts.deny
策略应用规律
先检查hosts.allow,有匹配则允许
否则再检查hosts.deny,有配匹则拒绝
若两文件中均无匹配,默认为允许
4.规则的格式
服务列表:客户机列表
关于客户机地址
可使用通配符 ? 和 *
网段地址,如 192.168.4
或者 192.168.4.0/255.255.255.0
区域地址, 如 .wsyht.com
5.例:
仅允许以下客户机访问 VSFTPD
网段192.168.4.0/24
IP范围:192.168.7.1-192.168.7.20
# rpm -ql telnet-server //查看他的服务名字
# vim /etc/hosts.allow
vsftpd : 192.168.4.*,192.168.7.?,192.168.7.1?,192.168.7.20
sshd : 192.168.1.3
in.telnetd : 192.168.1.3
# vim /etc/hosts.deny
# vsftpd:ALL
五.AAA
Authentication:身份认证 -> 你是谁
Authorization:授权 -> 你能干什么
Audit:审计 -> 你干了什么
六.PAM可插拔身份认证模块
1.配置文件:/etc/pam.d/
2.配置文件的内容(栽选一行如下):
account required pam_nologin.so
第一列是认证类型,可用的选项有:
accout: 执行基于用户管理的非认证行为操作,典型的,它可以限制用户的登陆时间、可用的系统资源
auth:这个模块提供了驵证用户的两个方面。首先它认证用户是他声称的那个人(比如用密码验证),其次,
它赋矛用户组成员身份或其他权限。
password:当用户修改时,需要这个模块
session:当赋矛用户某些服务之前或之后,要执行哪些操作。例如用户在访问数据时执行写日志操作。
第二列是控制方式,可用的选项有
required:检查结果失败,最终一定会失败,但是仍然检查后续。
sufficient: 该项检查成功,立即通过,不再检查后续项。如果项检查失败,也不意味着最终会失败。
optional: 可选
include:包含另一个文件的内容
第三列是调用的模块,这些模块位于/lib64/security下
/var/log/secure 安全日志文件
3.例一:只有whell组的成员才可以切换成root用户
# vim /etc/pam.d/su -> 打开auth required 这行的注释
以tom身份登陆,执行su - 操作,即使输入正确的密码,也不能登陆
# usermod -aG wheel tom -> 把tom加入到wheel组 a,追加,G附加
再次执行su - 操作,tom可以切换成root用户
4.例二:禁止tom从tty2登陆
# vim /etc/pam.d/login 加入下面一行
account required pam_access.so
# vim /etc/security/access.conf 尾部增加,不能追加在最后一行
- : tom : tty2 //-号代表取消的意思
5.例三:只允许tom用户打开两个文件
查看/etc/pam.d/system-auth中包含
session required pam_limits.so 尾部添加
# vim /etc/security/limits.conf 尾部增加
tom hard nofile 2
不管是切换成为tom,还是以tom身份登陆,都被禁止
6.例四.创建文件/etc/vsftpd/ftpgrps,该文件中的组不能访问ftp
# groupadd denyftp
# usermod -aG denyftp tom
# echo ‘denyftp‘ > /etc/vsftpd/ftpgrps
# vim /etc/pam.d/vsftpd 尾部增加
auth required pam_listfile.so item=group sense=deny
file=/etc/vsftpd/ftpgrps onerr=succeed
验证,tom登陆ftp,登陆不成功,检查/var/log/secure 日志
7.例五,设置用户密码最短长度为9位
# vim /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=9
dcredit=0 ucredit=0 lcredit=0 ocredit=0
本文出自 “wsyht的博客” 博客,请务必保留此出处http://wsyht2015.blog.51cto.com/9014030/1790277
标签:linux安全应用2详解
原文地址:http://wsyht2015.blog.51cto.com/9014030/1790277