why 发表于 2018-5-20 11:02:13

Linux安全应用2

  # service NetworkManager stop
  # chkconfig NetworkManager off
  # setup
  # vim /etc/udev/rules.d/70-persistent-net.rules
  # modprobe -rv e1000
  # modprobe -v e1000
  # vim /etc/sysconfig/network-scripts/ifcfg-eth0
  #service network restart
  # setenforce 0
  # 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
  

  # md5sum /etc/passwd
  # sha   -> 敲tab健
  sha1sum    sha224sumsha256sumsha384sumsha512sumsharesec
  # 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//登陆成功
  

  # ls
  id_rsaid_rsa.pubknown_hosts
  # rm -f id*
  # ssh-keygen//重新生成密钥
  

  # ssh-add//执行此步可以不用输入密钥就可以进行远程连接
  Could not open a connection to your authentication agent.
  #eval `ssh-agent`   //如果ssh-add失败就执行此步
  Agent pid 5267
  # ssh-add ~/.ssh/rsa   //如果ssh-add失败就执行此步
  /root/.ssh/rsa: No such file or directory
  # ssh-add
  Enter passphrase for /root/.ssh/id_rsa:
  Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
  

  # 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保护
  # 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.配置文件的内容(栽选一行如下):
  accountrequiredpam_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   加入下面一行
  accountrequiredpam_access.so
  

  # vim /etc/security/access.conf   尾部增加,不能追加在最后一行
  - : tom : tty2   //-号代表取消的意思
  

  5.例三:只允许tom用户打开两个文件
  查看/etc/pam.d/system-auth中包含
  sessionrequiredpam_limits.so尾部添加
  # vim /etc/security/limits.conf   尾部增加
  tomhardnofile 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   requiredpam_listfile.soitem=groupsense=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
  
页: [1]
查看完整版本: Linux安全应用2