鸟哥的Linux私房菜读书笔记--系统基本设定

1、网络设定(手动设定与DHCCP自动取得)

此文的网络指一部单机的linux系统而非服务器。常见网络参数取得方式

(1)手动设定固定 IP
常见于学术网络的服务器设定、公司行号内的特定座位等。这种方式你必须要取得底下的几个参
数才能够让你的 Linux 上网的:
§ IP
§ 子网掩码(netmask)
§ 通讯闸(gateway)
§ DNS 主机的 IP 
(2) 网络参数可自动取得 (dhcp 协议自动取得)
常见于 IP 分享器后端的主机,或者是利用电视线路的缆在线网 (cable modem),或者是学校宿舍的网络环境等。 这种网络参数取得方式就被称为 dhcp ,你啥事都不需要知道,只要知道设定上网方式为 dhcp 即可。

目前的主流网卡为使用以太网络协议开发出来的以太网卡(Ethernet),因此Linux就称呼这种网路接口为ethN(N为数字),以0开始编号。新的centos7开始对网卡的编号有一套新的规则

常见网卡分类:

· eno1 :代表由主板 BIOS 内建的网卡
· ens1 :代表由主板 BIOS 内建的 PCI-E 界面的网卡
· enp2s0 :代表 PCI-E 界面的独立网卡,可能有多个插孔,因此会有 s0, s1... 的编号~
· eth0 :如果上述的名称都不适用,就回到原本的预设网卡编号

下达命令:$  ifconfig -a就会将所有网卡列出,直接是用哪个nmcli指令设定网络参数

<1>手动设定ip网络参数

假设你已经向你的ISP取得你的网络参数,基本上的网络参数需要以下数据:

· method: manual (手动设定)
· IP: 172.16.1.1
· netmask: 255.255.0.0
· gateway: 172.16.200.254
· DNS: 172.16.200.254
· hostname: study.centos.vbird
上面的数据除了 hostname 是可以暂时不理会的之外,如果你要上网,就得要有上面的这些数据才行,然后透过 nmcli 来处理! nmcli 是透过一个名为『联机代号』的名称来设定是否要上网,而每个『联机代号』会有个『网卡代号』, 这两个东西通常设定成相同就是了。先查查看目前系统上默认有什么联机代号

[[email protected] ~]# nmcli connection show [网卡代号]
[[email protected] ~]# nmcli connection show
NAME UUID TYPE DEVICE
eth0 505a7445-2aac-45c8-92df-dc10317cec22 802-3-ethernet eth0
# NAME 就是联机代号,通常与后面的网卡 DEVICE 会一样!
# UUID 这个是特殊的装置识别,保留就好不要理他!
# TYPE 就是网卡的类型,通常就是以太网卡!
# DEVICE 当然就是网卡名称啰!
# 从上面我们会知道有个 eth0 的联机代号,那么来查察这个联机代号的设定为何?
[[email protected] ~]# nmcli connection show eth0
connection.id: eth0
connection.uuid: 505a7445-2aac-45c8-92df-dc10317cec22
connection.interface-name: eth0
connection.type: 802-3-ethernet
connection.autoconnect: yes
.....(中间省略).....
ipv4.method: manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses: 192.168.1.100/24
ipv4.gateway: --
.....(中间省略).....
IP4.ADDRESS[1]: 192.168.1.100/24
IP4.GATEWAY:
IP6.ADDRESS[1]: fe80::5054:ff:fedf:e174/64
IP6.GATEWAY:

如上表的输出,最底下的大写的 IP4, IP6 指的是目前的实际使用的网络参数,最上面的 connection 开头的部份则指的是联机的状态! 比较重要的参数如下:
· connection.autoconnect [yes|no] :是否于开机时启动这个联机,预设通常是 yes 才对!
· ipv4.method [auto|manual] :自动还是手动设定网络参数的意思
· ipv4.dns [dns_server_ip] :就是填写 DNS 的 IP 地址~
· ipv4.addresses [IP/Netmask] :就是 IP 与 netmask 的集合,中间用斜线 / 来隔开~
· ipv4.gateway [gw_ip] :就是 gateway 的 IP 地址!
所以,根据上面的设定项目,设定网络参数

[[email protected] ~]# nmcli connection modify eth0 \
> connection.autoconnect yes \
> ipv4.method manual \
> ipv4.addresses 172.16.1.1/16 \
> ipv4.gateway 172.16.200.254 \
> ipv4.dns 172.16.200.254
# 上面只是『修改了配置文件』而已,要实际生效还得要启动 (up) 这个 eth0 联机界面才行喔!
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# nmcli connection show eth0
.....(前面省略).....
IP4.ADDRESS[1]: 172.16.1.1/16
IP4.GATEWAY: 172.16.200.254
IP4.DNS[1]: 172.16.200.254
IP6.ADDRESS[1]: fe80::5054:ff:fedf:e174/64
IP6.GATEWAY:
最终执行『 nmcli connection show eth0 』然后看最下方,是否为正确的设定值呢?如果是的话,那
就万事 OK 啦!
§ 自动取得 IP 参数
如果你的网络是由自动取得的 DHCP 协议所分配的,那就太棒了!上述的所有功能你通通不需要
背~只需要知道 ipv4.method 那个项目填成 auto 即可! 所以来查察,如果变成自动取得,网络设
定要如何处理呢?
[[email protected] ~]# nmcli connection modify eth0 \
> connection.autoconnect yes \
> ipv4.method auto
[[email protected] ~]# nmcli connection up eth0
[[email protected] ~]# nmcli connection show eth0
IP4.ADDRESS[1]: 172.16.2.76/16
IP4.ADDRESS[2]: 172.16.1.1/16
IP4.GATEWAY: 172.16.200.254
IP4.DNS[1]: 172.16.200.254

<2>修改主机名
主机名的修改就得要透过 hostnamectl 这个指令来处理了!

[[email protected] ~]# hostnamectl [set-hostname 你的主机名]
# 1. 显示目前的主机名与相关信息
[[email protected] ~]# hostnamectl
 Static hostname: study.centos.vbird # 这就是主机名
 Icon name: computer
 Chassis: n/a
 Machine ID: 309eb890d09f440681f596543d95ec7a
 Boot ID: b2de392ff1f74e568829c716a7166ecd
 Virtualization: kvm
 Operating System: CentOS Linux 7 (Core) # 操作系统名称!
 CPE OS Name: cpe:/o:centos:centos:7
 Kernel: Linux 3.10.0-229.el7.x86_64 # 核心版本也提供!
 Architecture: x86_64 # 硬件等级也提供!
# 2. 尝试修改主机名为 www.centos.vbird 之后再改回来~
[[email protected] ~]# hostnamectl set-hostname www.centos.vbird
[[email protected] ~]# cat /etc/hostname
www.centos.vbird
[[email protected] ~]# hostnamectl set-hostname study.centos.vbird

2、日期与时间设定(网络校时)

<1>时区的显示与设定

[email protected] ~]# timedatectl [commamd]
选项与参数:
list-timezones :列出系统上所有支持的时区名称
set-timezone :设定时区位置
set-time :设定时间
set-ntp :设定网络校时系统
# 1. 显示目前的时区与时间等信息
[[email protected] ~]# timedatectl
 Local time: Tue 2015-09-01 19:50:09 CST # 本地时间
 Universal time: Tue 2015-09-01 11:50:09 UTC # UTC 时间,可称为格林威治标准时间
 RTC time: Tue 2015-09-01 11:50:12
 Timezone: Asia/Taipei (CST, +0800) # 就是时区啰!
 NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
 DST active: n/a
# 2. 显示出是否有 New_York 时区?若有,则请将目前的时区更新一下
[[email protected] ~]# timedatectl list-timezones | grep -i new
America/New_York
America/North_Dakota/New_Salem
[[email protected] ~]# timedatectl set-timezone "America/New_York"
[[email protected] ~]# timedatectl
 Local time: Tue 2015-09-01 07:53:24 EDT
 Universal time: Tue 2015-09-01 11:53:24 UTC
 RTC time: Tue 2015-09-01 11:53:28
 Timezone: America/New_York (EDT, -0400)
[[email protected] ~]# timedatectl set-timezone "Asia/Taipei"

<3>时间的调整

命令:$  timedatectl set-time “2018-10-24 17:19”    #时间格式为yyyy-mm-dd HH:MM

过去使用date修改完时间后,还要使用hwclock去订正BIOS记录的时间,现在使用timedateclt可以一次性搞定

<4>用ntpdate手动网络校时

命令:$ ntpdate  tock.stdtime.gov.ch    #ch表示中国时间,因为我不知道中国时间服务器,所以请查阅的人自行查看中国的时间                                                                  服务器

命令:$  hwclock -w    #将正确时间写入到BIOS时间记录内,如果可以执行,可以使用crontab来更新系统时间

3、防火墙的简易设定

防火墙是一种网路数据的过滤方式,可以依据你服务器启动的服务来设定是否放行,也能够针对你信任的用户放行,要启动防火墙的图形管理界面,首先登入x windows,应用程序--杂项--防火墙

鸟哥的Linux私房菜读书笔记--系统基本设定

<1>配置:运行时与永久的区别

刚刚启动防火墙时,两种规则会一模一样,在后来你自己加的规则如果没有写入到永久记录区,在下次重载防火墙的时候,自己加的规则就会消失。注意:增加规则最后一定要写入到永久记录区

<2>区域:依据不同的环境所设计的网络区域

新的 firewalld 服务就预先设计这些可能会被用到的网络环境,里面的规则除了 public (公开网域) 这个区域 (zone) 之外,其它的区域则暂时为没有启动的状况。 在预设的情况下,只要考虑 public 那个项目即可。

<3>相关设定项目
防火墙规则通常需要设定的地方有:
· 服务:一般来说,如果你的 Linux server 是作为 Internet 的服务器,提供的是比较一般的服务,那么只要处理『服务』项目即可。预设你的服务器已经提供了 ssh 与 dhcpv6-client 的服务埠口喔!
· 端口:如果你提供的服务所启用的埠口并不是正规的埠口,举例来说,为了玩 systemd 与 SELinux 我们曾经将 ssh 的埠口调整到 222 ,同时也曾经将 ftp 的埠口调整到 555 对吧!那如果你想要让人家连进来,就不能只开放上面的『服务』项目,连这个『端口』的地方也需要调整才行!另外, 如果有某些比较特别的服务是 CentOS 预设没有提供的,所以『服务』当然也就没有存在!这时你也可以直接透过端口来搞定
· 丰富规则(rich rule):如果你有『整个网域』需要放行或者是拒绝的时候,那么前两个项目就没有办法适用,这时就得要这个项目来处理了。不过鸟哥测试了 7.1 这一版的设定,似乎怪怪的~因此,底下我们会以firewall-cmd 来增加这一个项目的设定。
· 界面:就是这个界域主要是针对哪一个网络卡来做规范的意思,我们只有一张网卡,所以当然就是 eth0
假设我们的 Linux server 是要作为底下的几个重要的服务与相关的网域功能,该如何设定防火墙
· 要作为 ssh, www, ftp, https 等等正规埠口的服务;   #在服务中找到并选中即可
· 需要放行 port 222 与 port 555     #在端口中添加,输入端口号即可
· 局域网络 192.168.1.0/24 这一段我们目前想要直接放行这段网域对我们服务器的联机

[email protected] ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
> source address="192.168.1.0/24" accept'
success
[[email protected] ~]# firewall-cmd --reload     #将如上的规则设定为永久