CentOS 7 环境配置

作者: onestravel | 来源:发表于2018-06-19 22:37 被阅读29次

    一、Centos7如何修改ssh默认端口22

    1. 修改 sshd_config 端口
    • 编辑sshd_config 配置文件
    $ vi /etc/ssh/sshd_config
    
    • 取消 #Port 22 的注释,在下一行添加你需要修改的新端口 Port
      10022。(这里不删除 22 端口是为了防止修改后新端口无法访问,造成无法用 ssh 连接服务器。)
    Port 22  
    Port 10022  
    
    添加新端口
    • 修改保存 sshd_config 文件
      按下esc 退出编辑模式,输入 :wq,保存修改并退出

    • 重启 sshd 服务

    $  systemctl restart sshd
    
    2. 配置防火墙 firewalld
    • 启用防火墙:
    $ systemctl enable firewalld
    $ systemctl start firewalld
    
    • 查看防火墙状态
    $ systemctl status firewalld
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
       Active: active (running) since 二 2016-12-20 02:12:59 CST; 1 day 13h ago
     Main PID: 10379 (firewalld)
       CGroup: /system.slice/firewalld.service
               └─10379 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
    $ firewall-cmd --state
    running  
    
    • 查看防火墙当前「默认」和「激活」zone(区域):
    $ firewall-cmd --get-default-zone
    public  
    $ firewall-cmd --get-active-zones
    public  
      interfaces: eth0 eth1
    

    若没有激活区域的话,要执行下面的命令。

    • 激活 public 区域,增加网卡接口:
    $ firewall-cmd --set-default-zone=public
    $ firewall-cmd --zone=public --add-interface=eth0
    success  
    $ firewall-cmd --zone=public --add-interface=eth1
    success  
    

    *新增防火墙规则,开放 10022/TCP 端口:

    # 以防新端口不生效,先把 22 端口暴露
    $ firewall-cmd --permanent --zone=public --add-port=22/tcp
    $ firewall-cmd --permanent --zone=public --add-port=10022/tcp
    success  
    # 重载防火墙
    $ firewall-cmd --reload
    # 查看暴露端口规则
    $ firewall-cmd --permanent --list-port
    
    443/tcp 80/tcp 22/tcp 10022/tcp  
    $ firewall-cmd --zone=public --list-all
    public (default, active)  
      interfaces: eth0 eth1
      sources:
      services: dhcpv6-client ssh
      ports: 443/tcp 80/tcp 22/tcp 10022/tcp
      masquerade: no
      forward-ports:
      icmp-blocks:
      rich rules:
    
    • 退出 ssh 会话后,再用新的端口连接:
    $ ssh -p 10022 root@example.cn
    
    
    3. 打开 SELinux 端口

    SELinux 全称 Security Enhanced Linux (安全强化 Linux),是 MAC (Mandatory Access Control,强制访问控制系统)的一个实现,目的在于明确的指明某个进程可以访问哪些资源(文件、网络端口等)。

    对于 ssh,SELinux 默认只允许 22 端口,我们可以用 SELinux 管理配置工具 semanage,来修改 ssh 可访问的端口。

    安装 semanage 工具

    $ yum provides semanage
    $ yum -y install policycoreutils-python
    

    ** 打开ssh 10022 端口**

    # 为 ssh 添加新的允许端口
    $ semanage port -a -t ssh_port_t -p tcp 10022
    # 查看当前 SELinux 允许的端口
    $ semanage port -l | grep ssh
    ssh_port_t                     tcp      10022, 22  
    
    image.png

    错误处理

    当 SELINUX 配置为禁用状态时,使用 semanage 会报错提示无法读取 policy 文件:

    semanage 报错

    修改 /etc/selinux/config 配置,启用 SELinux:

    $ vi /etc/selinux/config
    SELINUX=permissive  
    # 重启服务器
    $ init 6
    # 重启后查看 SELinux 状态
    $ sestatus
    # if it shows disable, you can run
    $ load_policy -qi
    

    检查SELINUX配置

    $ semanage port -a -t ssh_port_t -p tcp 10022
    $ semanage port -l | grep ssh
    ssh_port_t                     tcp      10022, 22  
    # 重启 ssh 服务
    systemctl restart sshd 
    
    *注:semange 不能禁用 ssh 的 22 端口:
    $ semanage port -d -t ssh_port_t -p tcp 22
    ValueError: 在策略中定义了端口 tcp/22,无法删除。
    
    semange 不能禁用 ssh 的 22 端口

    二、新建组和用户

    【组的操作】

    1. 新建组 example
    • 使用groupadd 命令添加组
      用法:groupadd [选项] 组
    选项:
      -f, --force       如果组已经存在则成功退出
                并且如果 GID 已经存在则取消 -g
      -g, --gid GID                 为新组使用 GID
      -h, --help                    显示此帮助信息并推出
      -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
      -o, --non-unique              允许创建有重复 GID 的组
      -p, --password PASSWORD       为新组使用此加密过的密码
      -r, --system                  创建一个系统账户
      -R, --root CHROOT_DIR         chroot 到的目录
    

    example:

    # groupadd -g [组的ID] [组名]
    $ groupadd -g 10005 example
    
    1. 删除组 example
    • 使用 groupdel 命令删除组
      用法:groupdel [选项] 组
    选项:
      -h, --help                    显示此帮助信息并推出
      -R, --root CHROOT_DIR         chroot 到的目录
    

    example:

    # groupdel [组名]
    $ groupdel example
    
    1. 删除组 example
    • 使用 groupdel 命令删除组
      用法:groupdel [选项] 组
    选项:
      -h, --help                    显示此帮助信息并推出
      -R, --root CHROOT_DIR         chroot 到的目录
    

    example:

    # groupdel [组名]
    $ groupdel example
    
    1. 修改组信息 example ,将组example 的id 更改为 10006 ,名称更改为 exampleGroup
    • 使用 groupmod 来修改组信息

    用法:groupmod [选项] 组

    选项:
      -g, --gid GID                 将组 ID 改为 GID
      -h, --help                    显示此帮助信息并推出
      -n, --new-name NEW_GROUP      改名为 NEW_GROUP
      -o, --non-unique              允许使用重复的 GID
      -p, --password PASSWORD   将密码更改为(加密过的) PASSWORD
      -R, --root CHROOT_DIR         chroot 到的目录
    

    example:

    # groupmod -g [组ID] [组名]
    $ groupmod -g 10006 example
    
    # groupmod -n [新组名] [组名]
    groupmod -n exampleGroup example
    

    【用户的操作】

    1. 新建用户 example
    • 使用adduser 命令来新建用户
      用法:adduser [选项] 登录
      adduser -D
      adduser -D [选项]
    选项:
      -b, --base-dir BASE_DIR   新账户的主目录的基目录
      -c, --comment COMMENT         新账户的 GECOS 字段
      -d, --home-dir HOME_DIR       新账户的主目录
      -D, --defaults        显示或更改默认的 useradd 配置
     -e, --expiredate EXPIRE_DATE  新账户的过期日期
      -f, --inactive INACTIVE       新账户的密码不活动期
      -g, --gid GROUP       新账户主组的名称或 ID
      -G, --groups GROUPS   新账户的附加组列表
      -h, --help                    显示此帮助信息并推出
      -k, --skel SKEL_DIR   使用此目录作为骨架目录
      -K, --key KEY=VALUE           不使用 /etc/login.defs 中的默认值
      -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
      -m, --create-home 创建用户的主目录
      -M, --no-create-home      不创建用户的主目录
      -N, --no-user-group   不创建同名的组
      -o, --non-unique      允许使用重复的 UID 创建用户
      -p, --password PASSWORD       加密后的新账户密码
      -r, --system                  创建一个系统账户
      -R, --root CHROOT_DIR         chroot 到的目录
      -s, --shell SHELL     新账户的登录 shell
      -u, --uid UID         新账户的用户 ID
      -U, --user-group      创建与用户同名的组
      -Z, --selinux-user SEUSER     为 SELinux 用户映射使用指定 SEUSER
    

    example: 新建用户 example ,指定用户id 为10010

    # adduser -u [用户ID] [用户名]
    $ adduser -u 10010 example
    
    # 查看新创建的用户
    $ id example
    uid=10010(example) gid=10010(example) 组=10010(example)
    
    
    1. 为新建的用户设置密码 passwd [新建用户名]
    • 使用passwd [新建用户名] 命令来设置新用户密码

    直接输入passwd,回车,修改的是当前用户的密码

    example:

    $ passwd example
    更改用户 example 的密码 。
    新的 密码:
    无效的密码: 密码包含用户名在某些地方
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    

    在设置密码的时候,会进行验证密码是否包含用户名,是否含有特殊字符,大小写字母和数字,会有相应的提示,但是继续输入,也是可以设置成功的。

    1. 删除用户 example
    • 使用 userdel 命令来删除用户
      用法:userdel [选项] 登录
    选项:
      -f, --force                   force some actions that would fail otherwise
                                    e.g. removal of user still logged in
                                    or files, even if not owned by the user
      -h, --help                    显示此帮助信息并推出
      -r, --remove                  删除主目录和邮件池
      -R, --root CHROOT_DIR         chroot 到的目录
      -Z, --selinux-user            为用户删除所有的 SELinux 用户映射
    
    

    example: 删除用户 example

    # userdel [用户名]
    $ userdel  example
    
    # 查看用户example
    $ id example
    id: example: no such user
    
    
    1. 修改用户 example 为 exampleUser
    • 使用 usermod 命令来修改用户信息
      用法:usermod [选项] 登录
    选项:
      -c, --comment 注释            GECOS 字段的新值
      -d, --home HOME_DIR           用户的新主目录
      -e, --expiredate EXPIRE_DATE  设定帐户过期的日期为 EXPIRE_DATE
      -f, --inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态
      -g, --gid GROUP               强制使用 GROUP 为新主组
      -G, --groups GROUPS           新的附加组列表 GROUPS
      -a, --append GROUP            将用户追加至上边 -G 中提到的附加组中,
                                    并不从其它组中删除此用户
      -h, --help                    显示此帮助信息并推出
      -l, --login LOGIN             新的登录名称
      -L, --lock                    锁定用户帐号
      -m, --move-home               将家目录内容移至新位置 (仅于 -d 一起使用)
      -o, --non-unique              允许使用重复的(非唯一的) UID
      -p, --password PASSWORD       将加密过的密码 (PASSWORD) 设为新密码
      -R, --root CHROOT_DIR         chroot 到的目录
      -s, --shell SHELL             该用户帐号的新登录 shell
      -u, --uid UID                 用户帐号的新 UID
      -U, --unlock                  解锁用户帐号
      -Z, --selinux-user  SEUSER       用户账户的新 SELinux 用户映射
    
    
    

    example: 修改用户 example 为 exampleUser ,更改组为 exampleGroup

    # usermod -u  [用户ID] [用户名]
    $ usermod -u 10006 example
    
    # 查看用户example
    $ id example
    uid=10006(example) gid=10010(example) 组=10010(example)
    
    # usermod -g  [组ID] [用户名]
    $ usermod -u 10006 example
    
    # 查看用户example
    $ id example
    uid=10006(example) gid=10006(exampleGroup) 组=10006(exampleGroup)
    
    # usermod -l  [新用户名] [用户名]
    $ usermod -l exampleUser example
    
    # 查看用户exampleUser
    $ id exampleUser
    uid=10006(exampleUser) gid=10006(exampleGroup) 组=10006(exampleGroup)
    
    

    相关文章

      网友评论

      本文标题:CentOS 7 环境配置

      本文链接:https://www.haomeiwen.com/subject/tyrzjftx.html