zoukankan      html  css  js  c++  java
  • Linux基础介绍【第二篇】

    远程连接Linux的原理

    SHH远程连接介绍

        当前,在几乎所有的互联网企业环境中,最常用的Linux提供远程连接服务的工具就是SSH软件,SSH分为SSH客户端和SSH服务端两部分。其中,SSH服务端包含的软件主要有openssh和openssl,在Linux系统中可以查询SSH服务端工具的安装情况:

    1. [root@oldboy66 ~]# rpm -qa openssh openssl
    2. openssl-1.0.1e-30.el6.x86_64
    3. openssh-5.3p1-104.el6.x86_64

    提示:openssh是提供SSH服务的程序,openssl是为SSH提供连接加密的程序。

    SSH服务端介绍

        启动Linux系统是,默认情况下,SSH服务端程序就会随系统一起启动,SSH服务是一个守护进程(demon),它在系统后台永久运行并时刻响应来自所有SSH客户端的连接请求。SSH服务端的进程名为sshd,负责实时监听远程SSH客户端的连接请求并进行处理,这些请求一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。SSH服务是系统优化时需要保留开机自启动的服务之一。

    查看进程:ps –ef

    查看端口:netstat –lntup

    查看配置好的ip:ifconfig,ip add

    1. [root@oldboy66 ~]# netstat -lntup|grep ssh
    2. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1202/sshd
    3. tcp 0 0 :::22 :::* LISTEN 1202/sshd
    4.    
    5. [root@oldboy66 ~]# ps -ef|grep sshd
    6. root 1202 1 0 10:24 ? 00:00:00 /usr/sbin/sshd
    7. root 1426 1202 0 10:30 ? 00:00:00 sshd: root@pts/0
    8. root 1533 1433 0 11:02 pts/0 00:00:00 grep sshd

    SSH客户端介绍

        SSH客户端最常用的工具就是Windows平台的SecureCRT,该工具安装简单。除了SecureCRT软件之外,还有xshell、putty等常用软件以及Linux下的SSH客户端。

    SSH协议介绍

        SSH服务端和SSH客户端之间的交流都是通过SSH协议来实现的。SSH协议是Secure Shell Protocol的简写,由IETF网络工作小组(Network Working Group)制定。在进行数据传输之前,SSH先通过加密技术对联机数据包进行加密处理,然后再进行数据传输,这样就可确保传递的数据安全。

        SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用SSH协议可以有效地防止远程管理过程中的信息被披露,在当前的生产环境中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。

        SSH协议有两个不兼容的版本,分别是1.x和2.x。

        OpenSSH同时指出SSH 1.x和SSH 2.x。用SSH 2.x的客户端程序不能连接到SSH 1.x的服务程序上,SSH 2.x比SSH 1.x更安全,默认情况下服务通过SSH 2.x协议提供服务。

    SSH远程连接故障排查

    1、物理链路检查

    ping server_ip ICMP协议,默认64字节

    不通:

    检查服务器防火墙和SSH服务是否开启。

    可以先关闭防火墙:

    1. [root@oldboy66 ~]# /etc/init.d/iptables stop

    建议连续执行两遍。

    2、服务是否正常

    telnet ip port

    Linux默认没有安装telnet,使用yum install telnet –y进行安装。

    windows安装telnet:

    控制面板卸载程序打开或关闭windows功能Telnet客户端确定

    window与linux互传文件

    rz、sz命令的安装方法

    第一种方法:安装系统时选包包含rz sz命令的包组Dial-up Networking Support。

    第二种方法:安装系统后通过执行yum install lrzsz –y或yum groupinstall "Dial-up Networking Support" –y命令安装。

    上传命令rz

    上传内容时,执行命令rz,如果希望覆盖服务器上的同名内容上传,可以加-y参数,输入rz –y命令后直接回车,会打开一个上传文件的窗口,然后从这个窗口浏览找到需要传输的文件进行上传,在这个上传的窗口内选择的文件是客户端电脑本地要传的文件。

    下载命令sz

    下载内容时,执行命令sz filename,如果希望覆盖本地的同名内容下载,则可输入sz –y filename命令,sz –y命令后面的filename为命令行当前目录下的文件。

    使用rz、sz命令的主意事项

    只能上传下载文件而不能是目录,如果是目录需要打包成文件再传。

    上传的文件可以电脑里的任意文件,下载的文件会下载到CRT配置的对应下载路径目录中。

    其他工具

    除了rz、sz等传输文件命令外,还可以用ftp、sftp(SSH服务)等工具来传输文件。

    常需要安装的几个包:

    yum install tree telnet lrzsz nmap dos2unix –y

    rpm -qa telnet lrzsz dos2unix tree

    VM克隆后网卡问题

    首先修改/etc/sysconfig/network-scripts/ifcfg-eth0。

    1. [root@oldboy66 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

    删除里面两行数据:

    HWADDR=

    UUID=

    清空文件

    1. [root@oldboy66 ~]# >/etc/udev/rules.d/70-persistent-net.rules

    重启:reboot。

    基础命令

    查看系统版本:

    1. [root@oldboy66 ~]# cat /etc/redhat-release
    2. CentOS release 6.6 (Final)

    查看内核版本:

    1. [root@oldboy66 ~]# uname -r
    2. 2.6.32-504.el6.x86_64

    查看系统位数:

    1. [root@oldboy66 ~]# uname -m
    2. x86_64

    查看主机名:

    1. [root@oldboy66 ~]# hostname
    2. oldboy66

    uname:打印系统信息,-r显示内核,-m显示32或64位,-n显示主机名,-a显示所有信息。

    linux多任务、多进程、多CPU、多用户。

    平时管理电脑只用普通用户,禁止用root管理员。

    添加账号:

    1. [root@oldboy66 ~]# useradd oldboy

    设置密码:

    1. [root@oldboy66 ~]# passwd oldboy
    2. Changing password for user oldboy.
    3. New password:
    4. BAD PASSWORD: it is based on a dictionary word
    5. BAD PASSWORD: is too simple
    6. Retype new password:
    7. passwd: all authentication tokens updated successfully.

    [root@oldboy66 ~]# 超级管理员root对应的提示符

    [oldboy@oldboy66 ~]$ 普通用户oldboy对应的提示符

    提示符@前面的字符代表当前用户(whoami),后面的为主机名(hostname)。受环境变量控制($PS1)。

    查看当前用户:whoami

    1. [oldboy@oldboy66 root]$ whoami
    2. oldboy

    角色切换:su – 用户名,-参数切换用户环境变量。从普通用户到root,需要root密码;从root到普通用户无需密码。

    安装linux系统后调优及安全设置

    关闭SELinux功能

    关闭方式如下:

    1、修改配置文件,使关闭SELinux永久生效:

    查看配置文件

    1. #查看配置文件
    2. [root@oldboy66 ~]# cat /etc/selinux/config
    3.    
    4. # This file controls the state of SELinux on the system.
    5. # SELINUX= can take one of these three values:
    6. #开启状态
    7. # enforcing - SELinux security policy is enforced.
    8. #警告状态
    9. # permissive - SELinux prints warnings instead of enforcing.
    10. #关闭状态
    11. # disabled - No SELinux policy is loaded.
    12. #当前状态
    13. SELINUX=enforcing
    14. # SELINUXTYPE= can take one of these two values:
    15. # targeted - Targeted processes are protected,
    16. # mls - Multi Level Security protection.
    17. SELINUXTYPE=targeted

    vim修改配置文件:

    1. [root@oldboy66 ~]# vim /etc/selinux/config

    将SELINUX=enforcing改为SELINUX=disabled。

    2、sed替换修改

    首先备份修改的文件:

    1. [root@oldboy66 ~]# cp /etc/selinux/config /etc/selinux/config.oldboy.20161203

    sed替换

    1. [root@oldboy66 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

    检查:

    1. [root@oldboy66 ~]# grep =disabled /etc/selinux/config
    2. SELINUX=disabled

    查看是否生效:

    1. [root@oldboy66 ~]# getenforce
    2. #没有生效
    3. Enforcing

    执行生效:

    1. [root@oldboy66 ~]# setenforce
    2. #0表示警告不启用,1表示开启
    3. usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
    4. [root@oldboy66 ~]# setenforce 0
    5. [root@oldboy66 ~]# getenforce
    6. #当前状态警告不启用
    7. Permissive

    设置运行级别

    linux的运行级别:

    1. [root@oldboy66 ~]# tail /etc/inittab
    2. # Default runlevel. The runlevels used are:
    3. #停机状态
    4. # 0 - halt (Do NOT set initdefault to this)
    5. #单用户模式
    6. # 1 - Single user mode
    7. #多用户模式(无NFS)
    8. # 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
    9. #完整的多用户状态(有NFS)
    10. # 3 - Full multiuser mode
    11. #暂未使用
    12. # 4 - unused
    13. #图形界面
    14. # 5 - X11
    15. #重启
    16. # 6 - reboot (Do NOT set initdefault to this)
    17. #
    18. id:3:initdefault:

    命令:

    runlevel:查看当前系统运行级别

    1. [root@oldboy66 ~]# runlevel
    2. N 3

    init:切换运行级别,后面接对应级别的数字。

    精简开机系统启动

    企业环境新装Linux系统之后有必要保留的开启自启动服务有5个。

    • ssh

    远程连接Linux服务器时需要用到这个服务程序,所以必须开启,否则将无法远程连接Linux服务器。

    • rsyslog

    操作系统提供的一种机制,系统的守护程序通常会使用rsyslog将各种信息写到各个系统日志文件中,CentOS6以前此服务名为syslog。

    • network

    系统启动时,若想激活/关闭各个网络接口,则应考虑开启。

    • crond

    该服务用于周期性地执行系统及用户配置的任务计划。若要周期性执行的任务需要开启,此服务几乎是生成场景必须要用的一个软件。

    • sysstat

    sysstat是一个软件包,包含监测系统性能及效率的组工具,这些工具对于收集系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,这些数据的分析有利于判断系统运行是否正常,所以它是提高系统运行效率、安全运行服务的助手。

    sysstat软件包集成的主要工具:

    iostat工具提供CPU使用率及硬盘吞吐率的数据。

    mpstat工具提供与单个或多个处理器相关的数据。

    sar工具负责收集、报告并存储系统活跃的信息。

    设置开机自启动服务

    方法一:

    查看服务:

    chkconfig --list

    查看3级别下启动的服务:

    chkconfig --list|grep 3:on

    查看排除sshd、network、rsyslog、crond、sysstat的服务:

    chkconfig --list|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"

    关闭除了sshd、network、rsyslog、crond、sysstat的所有服务:

    1. for name in `chkconfig --list|grep 3:on |awk '{print $1}' |grep -Ev "sshd|network|rsyslog|crond|sysstat"`;do chkconfig $name off;done

    查看执行效果:

    chkconfig --list|grep 3:on

    方法二:

    先拼出执行关闭服务的命令:

    chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"|sed -r 's#(.*)#chkconfig 1 off#g'

    输出结果:

    chkconfig atd off

    chkconfig ntpd off

    然后交给bash进行执行:

    chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"|sed -r 's#(.*)#chkconfig 1 off#g'|bash

    查看结果:

    chkconfig --list|grep 3:on

    方法三:

    先拼出执行关闭服务的命令:

    1. chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"|awk '{print "chkconfig " $1 " off"}'

    输出结果:

    chkconfig atd off

    chkconfig ntpd off

    然后交给bash进行执行:

    1. chkconfig --list|grep 3:on|awk '{print $1}'|grep -Ev "sshd|network|rsyslog|crond|sysstat"|awk '{print "chkconfig " $1 " off"}'|bash

    查看结果:

    chkconfig --list|grep 3:on

    方法四:

    setup选择执行

    关闭iptables防火墙

    查看防火墙:

    1. [root@oldboy66 ~]# iptables -L -n

    关闭防火墙:

    1. [root@oldboy66 ~]# /etc/init.d/iptables stop

    查看防火墙状态:

    1. [root@oldboy66 ~]# /etc/init.d/iptables status
    2. #已经关闭
    3. iptables: Firewall is not running.

    设置开机不启动:

    1. [root@oldboy66 ~]# chkconfig iptables off

    chkconfig设置开机自启动服务。

    Linux系统安全的最小化原则

    • 安装Linux系统最小化,即选包最小化,yum安装软件包最小化,不用的包不装。
    • 开机自启动服务最小化,即无用的服务不开启。
    • 操作命令最下化。例如rm –f test.txt而不用rm –fr test.txt
    • 登录Linux用户最小化。
    • 普通用户授权权限最小化,即只给必须的管理系统的命令。
    • Linux系统文件及目录的权限设置最小化,禁止随意创建、更改、删除文件。
  • 相关阅读:
    Oracle基本概念
    md5密码生成工具
    tab页中不借用iframe的写法
    梅花雪树2.0和测试例子
    JS按比例缩放图片
    ASP.NET 文件下载
    删除VS2008最近打开文件或最近打开项目;重新另存项目的.sln文件
    去掉WINDOWS 2003 SERVER 开机和关机的麻烦
    分别设置母版页和内容页控件的值
    动态修改页面标题,关键字及描述等信息
  • 原文地址:https://www.cnblogs.com/yinshoucheng-golden/p/6128391.html
Copyright © 2011-2022 走看看