自动化运维跟安全配置

安全相关工具
rpm -qf /usr/bin/ssh
openssh

semanage port -a -t ssh_port_t -p tcp #PORTNUMBER/端口9527
修改ssh的默认端口,ssh默认只能用22端口
多台主机互联免口令
1 ssh-keygen
三台主机各自生成私钥公钥
2 ssh-copy-id IP7
三台主机各自复制公钥到同一台主机
3 scp authorized_keys IP:/root/.ssh/
集合三台公钥的主机把公钥文件分别复制到各台主机

scp
-C:压缩数据流
-r:递归复制
-p:保持原文件属性信息
-q:静默模式
-p PORT: 指明remote host的监听的端口
不适合文件的部分更新

rsync
比scp更快,只复制不同/发生变化的文件
可以结合别的命令实现多台主机之间自动同步各自的文件
rsync -av /etc/sysconfig/ IP:/app
复制文件到对应IP
—————————————————————————————————
sftp
交互式文件传输工具
用法和传统的ftp工具相似
利用ssh服务实现安全的文件上传下载
使用ls cd mkdir rmdir pwd get put等命令,可用?或者help获取帮助信息
sftp [user@]host
sftp> help
!pwd 加!可执行本机命令,不加是执行tftp命令

前提实现基于key验证(ssh-genkey)(ssh-copy-id)
pssh (适用于小企业中批量管理)
pssh是一个python编写可以在多台服务器上执行命令的工具,也可实现文件复制
pssh -H 172.18.101.19 -i getenforce 查看远程主机的selinux
setenforce 0 禁用selinux
pssh -h IP -i date
pssh -h IP -o /app/ip.log -i cat /var/log/secure
查看多台主机的日志存放在-o指定的目录下
pssh -h IP -i \rm -rf /app/*
pscp.pssh -h IP /etc/selinux/config /etc/selinux/config
复制文件
pslurp -h IP -L /app/ /var/log/secure remote_secure
抓取别的主机文件到本机
————————————————————————————————
ssh端口转发
本地转发

三个主机
在1主机 telnet服务
1主机利用ssh封装telnet连接2主机,然后连接3主机,3认为是2连接

1 3主机安装telnet服务
2 iptables -A INPUT -s 172.18.101.216 -j REJECT
3主机制定策略禁止1主机连接
iptables -vnL 查看策略
iptables -F 清除策略
3 ssh -L 9527:172.18.101.152:23 172.18.101.19 -Nf
1主机上执行ssh命令建立连接3主机的隧道,f是放到后台
4 telnet 127.0.0.1 9527
1主机通过telnet连接3主机,3主机可以看到是2主机连接
2主机充当的是ssh的服务器同时也是telnet的客户端 telnet会打开23端口
5 killall ssh
任务完成后可以杀掉建立隧道的9527端口服务 ps aux
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
远程转发
在2主机
1主机通过2主机连接3主机
/etc/postfx/mail.cf 邮件服务的配置文件
1 3主机/etc/postfx/mail.cf
init_interfaces=localhost / 修改为all
systemctl restart postfix.service 端口25
2 [root@station1 /]#telnet 127.0.0.1 9527
正文邮件
Trying 127.0.0.1…
Connected to station1.example.com (127.0.0.1).
Escape character is ‘^]’.
220 CentOS7.liu.com ESMTP Postfix
helo
501 Syntax: HELO hostname
mail from:mayun@alibaba.com
250 2.1.0 Ok
rcpt to:root
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject:hello
welcome to alibaba!
.
250 2.0.0 Ok: queued as F25862221E7
quit
221 2.0.0 Bye
Connection closed by foreign host.

2主机充当ssh的客户端1主机充当ssh的服务器
过程:数据传输到1主机sshsrv:9527服务器,在1主机打开sshsrv:22端口发送到2主机,对于sshsrv服务器
2主机是一个客户端打开的是随机端口,再次在2的主机上开一个随机端口作为telnet的客户端把数
据传输到3主机telnetsrv:23
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
动态端口转发

1 /var/www/html/index.html 可提供外部网站
在7中设置网站内容
iptables -A INPUT -s IP6 -j REJECT
设置策略拒绝6的访问
2 ssh -D 1080 IP5 -N
在6中设置5做为跳板机去连接7,实现翻墙
3 在6浏览器中设置preferences-network-connection设代理-SOCKS HOST 127.0.0.1 1080端口
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
/etc/ssh/sshd_config
semanage port -a -t ssh_port_t -p tcp #PORTNUMBER/端口9527
修改ssh的默认端口,ssh默认只能用22端口

listenAddress IP
可禁止公网IP连接,只允许私网
systemctl reload sshd
重启服务reload不断网

PermitRootLogin yes 禁止root连接
ClientAliveInterval 30 企业中通常是启用的进过多长时间自动断开连接
UseDNS yes改为no可提高连接速度
GSSAPIAuthentication yes改为no可提高连接速度

banner ssh连接提示语
/etc/ssh/banner.txt
welcome to mage
在banner一行写入文件路径

Allowusers user ssh允许指定用户连接
Denyusers user ssh禁止指定用户连接
tail /var/log/secure -f 查看安全日志

grep -f file1 file2 比较两个文件的相同之处
diff file1 file2 比较两个文件的不同之处

测试当前安全日志中记录失败连接数大于5个,加入策略禁止连接
#!/bin/bash

> /app/ip.txt

while true;do
awk ‘/Failed password/{ ip[$(NF-3)]++ }END{ for( i in ip){if(ip[i]>5){print i}}}’ /var/log/secure > /app/secu
re.log
while read line ;do
grep -q $line /app/ip.txt || { iptables -A INPUT -s $line -j REJECT ; echo $line >> /app/ip.txt; }
done < /app/secure.log
sleep 1m
done
完!
__________________________________________________________
Dropbear SSH

—————————————————————————————
AIDE
高级的入侵检测工具

—————————————————————————————
sudo
更改身份
su :su -l username -c ‘command’
sudo
/etc/sudoers
通过sudo授权
不建议修改文件,有专门配置文件
/etc/sudoers.d
wang ALL=(root) /usr/bin/mount,…
sudo mount /dev/sr0 /mnt/cdrom

%(表示组)
sudo -u wang vim /etc/…
代表王执行命令
visudo -f wang
wang ALL/IP=(root) sudoedit
授权wang做任何事
wang ALL=(root) /usr/bin/cat /var/log/secure*
sudo cat /var/log/secure /etc/shadow
安全漏洞(*)
解决:wang ALL=(root) /usr/bin/cat /var/log/secure*,!/bin/cat /var//log/secure* *
sudo -V 查看详细信息

man hosts_access 查看帮助说明
/etc/hosts.allow ssh服务允许远程连接
sshd:IP
/etc/hosts.deny ssh服务禁止连接
sshd,telnetd@IP:ALL
sshd:IP. EXCEPT(除了) IP
IP:allow 允许
sshd:172.18.101. :spawn echo `date +”%%F %%T”` client\:%c login on server\:%s > /app/tcpwrapper.log
in.relnetd,sshd:192.168.27. :twist(替换)/bin/echo “deny access Server sshd 403”

/app/hosts.deny
sshd:IP
tcpdmatch -d sshd IP
测试连接IP成功失败
cp /app/hosts.deny /etc/hosts.deny

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91481

(2)
上一篇 2018-02-06 18:42
下一篇 2018-02-07 11:53

相关推荐

  • UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现

    类与类图 1) 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 2) 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。 3) 类的属性…

    Linux干货 2015-04-07
  • grep基本正则表达式以及扩展正则表达式

    基本正则表达式: grep:Globel serach REgular expression and print out the line 作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行 模式:由正则表达式的元字符及文本字符所编写出的过滤条件 grep选项:       &nbs…

    Linux干货 2016-08-08
  • for,while,until简介

    Shell(以Bash为例)中的循环语句一般有for、while、until这几种,偶尔还有写错语法的时候,这里结合实例来自己总结一下。也为今后使用提供一个快捷的资料获取渠道。 一、for循环语句 实例1.1 最基本的for循环: (传统的形式,for var in …) 代码如下: #!/bin/bashfor x in one two three fou…

    Linux干货 2016-08-22
  • lvm简要及基本操作

        LVM( Logical Volume Manage,逻辑 逻辑卷管理)LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。  &nbs…

    Linux干货 2016-05-23
  • 如何学好C语言

    有人在酷壳的留言版上询问下面的问题 keep_walker : 今天晚上我看到这篇文章。 http://programmers.stackexchange.com/questions/62502/small-c-projects 我也遇到了和提问的老外一样的问题。。能给像遇到这样烦恼的程序员一点建议嘛?谢谢! 我相信,这可能是很多朋友的问题,我以前…

    Linux干货 2016-08-15
  • shell脚本编程

    一、编程基础: shell脚本是包含一些命令或声明,并符合一定格式的文本文件 shell脚本的用途有: 自动化常用命令 执行系统管理和故障排除 创建简单的应用程序 处理文本或文件 1)     第一步:使用文本编辑器来创建文本文件 script.sh 并编写内容 格式要求:首行shebang &nb…

    Linux干货 2016-08-15