上古启示

清澈的小溪缓缓流过蜿蜒寂静的山谷
明亮的阳光让它的波纹如砖石般圣洁耀眼
愿将心灵托付于吮吸这些圣洁的树林
愿他们深邃的阅历能够给心灵带来清晰的指引

远古地球沉重的低语
生命挣扎存在的真相
自私、贪婪、恐惧、懦弱、残忍
这些恶毒的心魔是怎样被植入到族人的基因中的

大地四季的五彩缤纷
在年复一年的轮回
红色夕阳的梦幻瞬间
总是如期洗礼着那条起伏不断的地平线

在那个方向遥远的地方
孤独伫立的礁石
在不断承受着冰寒刺骨的惊涛骇浪
在浩瀚未知的大海面前守护着最终的初心和坚持

那些在最仇视异己的时代中孤注一掷的公正
是如何在遍体鳞伤地支撑起一个种族的未来
那些在仇恨和残忍面前勇敢坚持下来的宽恕
又换回过哪些充满魔法的奇迹

夕阳的红色让树林和天空合为一体
轻柔的微风让彩色的树叶唱起了上古的歌谣
这些经历过冰热世纪世代相传的旋律彼此呼应
让心灵在空洞的未知中独自坚强

壮丽的星辰努力驱散着暗夜的混沌
流星灿烂的尾翼提示着陨石撞击的时代
那颗庄严璀璨的星际之光消失在起伏不断的地平线
那是一条由树林们依靠自由、公正和博爱组成的文明底线

[内容] CentOS&RHEL yum 的使用 (设置代理)

内容一:设置所有 yum 源网络代理的方法

# vim /etc/yum.conf

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.conf

添加以下内容:

......
proxy=http:<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

内容二:单独设置某个 yum 源网络代理的方法

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<user>:<password>@<IP address>:<port>/
......


注意:
1) 如果没有用户和密码就写成 proxy=http://<IP address>:<port>/
2) 如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40

或者:

# vim /etc/yum.repos.d/<yum source file name prefix>.repo

添加以下内容:

......
proxy=http://<IP address>:<port>
proxy_username=<user>
proxy_password=<password>

(注意:如果没有用户和密码就不写后面两行)

[命令] Linux 命令 firewall-cmd (设置防火墙)

内容目录:

内容一:防火墙信息查询
1.1 防火墙运行状态查询
1.2 防火墙默认信息查询
1.2.1 查看防火墙的所有区域
1.2.2 查看防火墙支持的所有服务
1.2.3 查看防火墙支持的所有 icmp 协议
1.3 查看防火墙当前所在的区域
1.4 查看防火墙的策略
1.4.1 查看防火墙当前所在的区域的所有策略
1.4.2 查看所有区域的所有策略
1.4.3 查看某一个区域的策略
1.4.3.1 查看某一个区域的策略的格式
1.4.3.2 查看某一个区域的策略的案例

内容二: 区域的网卡管理
2.1 查看网卡所在的区域
2.1.1 查看哪些区域处于激活状态
2.1.2 查看某一个网卡所属的区域
2.1.2.1 查看某一个网卡所属的区域的格式
2.1.2.2 查看某一个网卡所属的区域的案例
2.2 将某一个网卡放入某一个区域
2.2.1 将某一个网卡放入某一个区域的格式
2.2.2 将某一个网卡放入某一个区域的案例
2.3 将某一个网卡从某一个区域删除
2.3.1 将某一个网卡从某一个区域删除的格式
2.3.2 将某一个网卡从某一个区域删除的案例

内容三:防火墙区域设置
3.1 查看防火墙目前所在的区域
3.2 指定防火墙的区域
3.2.1 指定防火墙的区域的格式
3.2.2 指定防火墙的区域的案例

内容四:防火墙暂时策略设置(防火墙重启后失效)
4.1 开放策略相关
4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某一个端口
4.1.1.1.1 暂时在防火墙当前所在区域里开放某一个端口的格式
4.1.1.1.2 暂时在防火墙当前所在区域里开放某一个端口的案例
4.1.1.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口
4.1.1.2.1 暂时在防火墙当前所在区域里开放某一个服务的所有端口的格式
4.1.1.2.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口的案例
4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某一个端口
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某一个端口的格式
4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某一个端口的案例
4.1.1.4 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口
4.1.1.4.1 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的格式
4.1.1.4.2 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的案例
4.1.1.5 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式
4.1.1.5.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的案例
4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式
4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某一个端口的案例
4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的格式
4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的案例
4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口的格式
4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口的案例
4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的格式
4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的案例
4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式
4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口的案例
4.2 拒绝策略相关
4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式
4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例
4.2.1.2 暂时在防火墙当前所在区域里对某一个 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式
4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例
4.2.1.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式
4.2.1.2.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例
4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式
4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口的案例
4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某一个 IP 地址拒绝多个端口
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式
4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的案例
4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式
4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例
4.3 转发策略相关
4.3.1 开启防火墙转发策略
4.3.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口
4.3.2.1 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的格式
4.3.2.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的案例
4.3.3 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的格式
4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的案例

内容五:防火墙暂时禁止 icmp 的设置
5.1 防火墙暂时禁止 icmp
5.2 防火墙暂时取消禁止 icmp

内容六:防火墙暂时禁止所有网络的设置
6.1 让防火墙暂时进入拒绝模式
6.2 取消防火墙的拒绝模式
6.3 查看防火墙目前的状态

内容七:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法
7.1 防火墙暂时策略的设置方法
7.2 防火墙永久策略的设置
7.3 防火墙限时策略的设置

内容八:防火墙策略的加载
8.1 使用防火墙命令加载策略
8.2 在系统层面上重启防火墙以加载策略

相关链接:与 firewall-cmd 相关的 shell 脚本

具体的内容:

内容一:防火墙信息查询
1.1 防火墙运行状态查询

# firewall-cmd –state

1.2 防火墙默认信息查询
1.2.1 查看防火墙的所有区域

# firewall-cmd --get-zones

1.2.2 查看防火墙支持的所有服务

# firewall-cmd --get-services

1.2.3 查看防火墙支持的所有 icmp 协议

# firewall-cmd --get-icmptypes

1.3 查看防火墙当前所在的区域

# firewall-cmd --get-default-zone

1.4 查看防火墙的策略
1.4.1 查看防火墙当前所在的区域的所有策略

# firewall-cmd --list-all

1.4.2 查看所有区域的所有策略

# firewall-cmd --list-all-zones

1.4.3 查看某一个区域的策略
1.4.3.1 查看某一个区域的策略的格式

# firewall-cmd --zone=<zone> --list-all

1.4.3.2 查看某一个区域的策略的案例

# firewall-cmd --zone=public --list-all

内容二: 区域的网卡管理
2.1 查看网卡所在的区域
2.1.1 查看哪些区域处于激活状态

# firewall-cmd --get-active-zones

(注意:只有放入了显卡的区域才会处于激活状态)

2.1.2 查看某一个网卡所属的区域
2.1.2.1 查看某一个网卡所属的区域的格式

# firewall-cmd –get-zone-of-interface=<network card>

2.1.2.2 查看某一个网卡所属的区域的案例

# firewall-cmd --get-zone-of-interface=eth0

(补充:这里以往区域里加入 eth0 网卡为例)

2.2 将某一个网卡放入某一个区域
2.2.1 将某一个网卡放入某一个区域的格式

# firewall-cmd --zone=<zone> --add-interface=<network card>

2.2.2 将某一个网卡放入某一个区域的案例

# firewall-cmd --zone=public --add-interface=eth0

(补充:这里以往 public 区域里加入 eth0 网卡为例)

2.3 将某一个网卡从某一个区域删除
2.3.1 将某一个网卡从某一个区域删除的格式

# firewall-cmd --zone=<zone> --remove-interface=<network card>

2.3.2 将某一个网卡从某一个区域删除的案例

# firewall-cmd --zone=public --remove-interface=eth0

(补充:这里以从 public 区域删除 eth0 网卡为例)

内容三:防火墙区域设置
3.1 查看防火墙目前所在的区域

# firewall-cmd --get-default

3.2 指定防火墙的区域
3.2.1 指定防火墙的区域的格式

# firewall-cmd --set-default=<zone>

3.2.2 指定防火墙的区域的案例

# firewall-cmd --set-default=public

(补充:这里以将默认区域设置为 public 为例)

内容四:防火墙暂时策略设置(防火墙重启后失效)

(注意:防火墙的规则没有现后之分,但是拒绝规则永远高于允许规则)

4.1 开放策略相关
4.1.1 暂时开放端口
4.1.1.1 暂时在防火墙当前所在区域里开放某一个端口
4.1.1.1.1 暂时在防火墙当前所在区域里开放某一个端口的格式

# firewall-cmd --add-port=<port>/tcp

4.1.1.1.2 暂时在防火墙当前所在区域里开放某一个端口的案例

# firewall-cmd --add-port=80/tcp

(补充:这里以暂时添加 80/TCP 端口为例)

4.1.1.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口
4.1.1.2.1 暂时在防火墙当前所在区域里开放某一个服务的所有端口的格式

# firewall-cmd --add-service=<service>

4.1.1.2.2 暂时在防火墙当前所在区域里开放某一个服务的所有端口号的案例

# firewall-cmd --add-service=http

(补充:这里以暂时添加 http 服务为例)

4.1.1.3 暂时在防火墙当前所在区域里对某个网段开放某一个端口
4.1.1.3.1 暂时在防火墙当前所在区域里对某个网段开放某一个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" accept"

4.1.1.3.2 暂时在防火墙当前所在区域里对某个网段开放某一个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以暂时对 192.168.1.0/24 开放 80/tcp 端口为例)

4.1.1.4 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口
4.1.1.4.1 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.1.4.2 暂时在防火墙当前所在区域里对某一个 IP 地址开放多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例)

4.1.1.5 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.1.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.1.5.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对非 192.168.1.1 开放 0/tcp 到 65535/tcp 端口为例)

4.1.2 暂时关闭已开放的端口
4.1.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口
4.1.2.1.1 暂时在防火墙当前所在区域里关闭已开放的某一个端口的格式

# firewall-cmd --remove-port=<port>/tcp

4.1.2.1.2 暂时在防火墙当前所在区域里关闭已开放的某一个端口的案例

# firewall-cmd --remove-port=80/tcp

(补充:这里以暂时关闭 80/TCP 端口为例)

4.1.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口
4.1.2.2.1 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口的格式

# firewall-cmd --remove-service=<service>

4.1.2.2.2 暂时在防火墙当前所在区域里关闭已开放的某一个服务的所有端口号的案例

# firewall-cmd --remove-service=http

(补充:这里以暂时关闭 http 服务为例)

4.1.2.3 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口
4.1.2.3.1 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放某一个端口的格式

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" accept"

4.1.2.3.2 暂时在防火墙当前所在区域里关闭已开放的对某个网段开放的某一个端口的案例

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="80" accept"

(补充:这里以暂时对 192.168.1.0/24 关闭 80/tcp 端口为例)

4.1.2.4 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口
4.1.2.4.1 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的格式

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.2.4.2 暂时在防火墙当前所在区域里关闭已开放的对某一个 IP 地址开放的多个端口的案例

# firewall-cmd --remove-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例)

4.1.2.5 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口
4.1.2.5.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址开放多个端口的格式

# firewall-cmd --remove-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

4.1.2.5.2 暂时在防火墙当前所在区域里关闭对除了某一个 IP 地址外的 IP 地址开放多个端口的案例

# firewall-cmd --remove-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

(补充:这里以暂时对非 192.168.1.1 关闭 0/tcp 到 65535/tcp 端口为例)

4.2 拒绝策略相关
4.2.1 暂时拒绝端口
4.2.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口
4.2.1.1.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.1.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"


补充:
1) 这里以在 public 区域拒绝 192.168.1.0/24 访问 80/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.1.2 暂时在防火墙当前所在区域里对某一个 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"


补充:
1) 这里以在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.1.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.1.2.1 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.1.2.2 暂时在防火墙当前所在区域里对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"


补充:
1) 这里以拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.2 暂时撤销已拒绝端口
4.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口
4.2.2.1.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<network segment>/<subnet mask>" port protocol="<port protocol>" port="<port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销撤销已设置的对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol=tcp port=80 reject"


补充:
1) 这里以取消在 public 区域拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.2.2 暂时在防火墙当前所在区域里撤销已设置的对某一个 IP 地址拒绝多个端口
4.2.2.2.1 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的格式

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="<network protocol>" source address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.1.2 暂时在防火墙当前所在区域里撤销已设置的对某个网段拒绝某一个端口的案例

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" drop"

或者:

# firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.1.1" port protocol=tcp port="0-65535" reject"


补充:
1) 这里以取消拒绝 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口
4.2.3.2.1 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的格式

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="<network protocol>" source NOT address="<IP address>" port protocol="<port protocol>" port="<starting port>-<end port>" reject"

(补充:这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应)

4.2.2.3.2 暂时在防火墙当前所在区域里撤销已设置的对除了某一个 IP 地址外的 IP 地址拒绝多个端口的案例

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"

或者:

# firewall-cmd --add-rich-rule="rule family="ipv4" source NOT address="192.168.1.1" port protocol="tcp" port="0-65535" accept"


补充:
1) 这里以取消拒绝非 192.168.1.1 访问 0/tcp 到 65536/tcp 端口为例
2) 这里 drop 和 reject 的区别是 drop 收到数据包后直接丢掉不给发送方任何回应,而 drop 收到数据包后会给发送方发送一个拒绝的回应

4.3 转发策略相关
4.3.1 开启防火墙转发策略

# firewall-cmd --add-masquerade --permanent

(注意:只有开启了防火墙转发策略之后防火墙才能转发端口)

4.3.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口
4.3.2.1 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的格式

# firewall-cmd --add-forward-port=port=<port>:proto=<port protocol>:toport=<port>:toaddr=<IP address>

4.3.2.2 暂时在防火墙当前所在区域里开启一个端口跳转到另一个 IP 地址的另一个端口的案例

# firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

(补充:这里以将本地的 80 端口转向 192.168.1.1 的 8080 端口为例)

4.3.3 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口
4.3.3.1 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的格式

# firewall-cmd --remove-forward-port=port=<port>:proto=<port protocol>:toport=<port>:toaddr=<IP address>

4.3.3.2 暂时在防火墙当前所在区域里关闭已开放的一个端口跳转到另一个 IP 地址的另一个端口的案例

# firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1

(补充:这里以取消将本地的 80 端口转向 192.168.1.1 的 8080 端口为例)

内容五:防火墙暂时禁止 icmp 的设置
5.1 防火墙暂时禁止 icmp

# firewall-cmd --add-rich-rule='rule protocol value=icmp drop'

5.2 防火墙暂时取消禁止 icmp

# firewall-cmd --remove-rich-rule='rule protocol value=icmp drop'

内容六:防火墙暂时禁止所有网络的设置
6.1 让防火墙暂时进入拒绝模式

# firewall-cmd –panic-on

6.2 取消防火墙的拒绝模式

# firewall-cmd –panic-off

6.3 查看防火墙目前的状态

# firewall-cmd –query-panic

内容七:将防火墙暂时策略的设置方法转换成永久策略和限时策略的设置方法
7.1 防火墙暂时策略的设置方法

和内容一、内容二、内容三、内容四里的大部分设置命令一样,例

# firewall-cmd --add-port=80/tcp

(补充:这里以临时添加 80/tcp 端口为例)

7.2 防火墙永久策略的设置

和内容一、内容二、内容三、内容四里的大部分设置命令一样,但是需要在后面添加 –permanent 参数,例

# firewall-cmd --add-port=80/tcp --permanent

(补充:这里以永久添加 80/tcp 端口为例)

(注意:永久策略设置后,防火墙要重新加载才会生效)

7.3 防火墙限时策略的设置

和内容一、内容二、内容三、内容四的大部分设置命令一样,但是需要在后面添加 –timeout=<秒> 参数,列

# firewall-cmd --add-port=80/tcp --timeout=3600

(补充:这里以在 3600 秒期间添加 80/tcp 端口为例)

(注意:此策略会在 3600 秒后失效)

内容八:防火墙策略的加载
8.1 使用防火墙命令加载策略

# firewall-cmd --reload

(注意:此时暂时策略会失效,永久策略会生效)

8.2 在系统层面上重启防火墙以加载策略

# systemctl retart firewalld

(注意:此时暂时策略会失效,永久策略会生效)

相关链接:与 firewall-cmd 相关的 shell 脚本

Shell 在 firewalld 防火墙上批量对多个 IP 地址开发多个端口号

Shell 在 firewalld 防火墙上开放所有正在处于监听状态的端口号

Shell 在 firewalld 防火墙上取消所有已设置的复杂端口号策略

Shell 在 firewalld 防火墙上取消所有已开放的端口号

[SQL] MariaDB&MySQL 索引的设置 (转载)

mysql 设置索引

1.添加PRIMARY KEY(主键索引)

 语法:ALTER TABLE `表名` ADD PRIMARY KEY ( `列名称` )

mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )


2.添加UNIQUE(唯一索引)

语法:ALTER TABLE `表名` ADD UNIQUE ( `列名称`)

mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column`)

3.添加INDEX(普通索引)

语法:ALTER TABLE `表名` ADD INDEX index_name ( `列名称` )

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )

4.添加FULLTEXT(全文索引)

语法:ALTER TABLE `表名` ADD FULLTEXT ( `列名称`)

mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)

5.添加多列索引

语法:ALTER TABLE `表名` ADD INDEX index_name ( `列名称`, `列名称`, `列名称` )

mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

 

想要查看表有几个字段设置了索引

语法;SHOW INDEX FROM `表名`

mysql>SHOW INDEX FROM `cccinfo`
————————————————
版权声明:本文为CSDN博主「z793397795」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/z793397795/article/details/91491546

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z

[SQL] MariaDB&MySQL 用户和权限的管理 (转载)

MySQL用户管理和权限管理

在项目中,一个数据库有很多人需要使用,不能所有的人都使用相同的权限,如果人比较多,一人一个用户也很难管理。一般来说,会分超级管理员权限,管理员权限,读写权限,只读权限等,这样方便管理。当然,具体怎么管理权限根据实际情况来确定。

无论如何,都需要创建多个用户来管理权限。

root 是数据库的超级管理员用户,对于普通开发人员来说,权限太大了,如果不小心做了一些不可逆的操作,后果是非常严重的,并且还不容易查出责任人。

所以 root 用户不会让开发人员使用,一般会由 DBA 或运维人员统一管理,如果没有 DBA,统一由超级管理员 root 来分配。

1. 查看所有用户

MySQL 中所有的用户及权限信息都存储在默认数据库 mysql 的 user 表中。

进入 mysql 数据库,通过 desc user; 可以查看 user 表的结构。

    use mysql;
    desc user;

可以看到 user 中有40多个字段,字段非常多,只要关注主要字段就行了。

其中的主要字段有:

host: 允许访问的主机地址,localhost 为本机,% 为任何主机。
user: 用户名。
authentication_string: 加密后的密码值。

使用 select * from user; 查看 user 表中当前有哪些用户。

select host,user,authentication_string from user;

在安装 MySQL 后,有三个默认的用户。

2. 创建用户

使用 create user '用户名'@'访问主机' identified by '密码'; 创建用户。

create user 'admin'@'localhost' identified by 'Mysql!123';

创建用户后,查看用户,多了刚才创建的 admin,创建成功。

3. 查看用户权限

使用 show grants for '用户名'@'访问主机'; 查看用户的权限。

show grants for 'admin'@'localhost';

在创建用户的时候,如果没有指定权限,默认会赋予 USAGE 权限,这个权限很小,几乎为0,只有连接数据库和查询information_schema 数据库的权限。虽然 *.* 表示所有数据库的所有表,但因为 USAGE 的限制,不能操作所有数据库。

退出 root 用户,登录到 admin 用户,只能看到 information_schema 数据库。

4. 给用户授权

创建 admin 用户,目的是创建一个管理员,所以要给 admin 授权。退出 admin ,重新登录 root 。

在授权时,常用的权限有 CREATE、ALTER、DROP、INSERT、UPDATE、DELETE、SELECT,ALL PRIVILEGES 表示所有权限。

通过 数据库.数据表 指定对哪个数据库的哪个表授权,*.* 表示所有数据库中的所有表。

通过 '用户名'@'访问主机' 来表示用户可以从哪些主机登录, ‘%’ 表示可以从任何主机登录。

使用 grant 权限 on 数据库.数据表 to '用户名'@'访问主机' identified by '密码'; 来给数据库用户授权。

grant all privileges on *.* to 'admin'@'localhost' identified by 'Mysql!123';

给 admin 用户授权后,权限从 USAGE 变成了 ALL PRIVILEGES ,表示 admin 拥有了所有权限。

如果授权没有生效,记得刷新一下权限,使权限生效。

flush privileges;

再重新登陆到 admin 用户上,可以操作所有数据库了。

给用户授权的时候,必须要指定 '用户名'@'访问主机' 来指定用户。如果 '访问主机' 不相同,不是给用户授权,而是创建一个同名同密码的用户,这个用户与原用户可以登陆的主机不相同,权限不同。

grant all privileges on *.* to 'admin'@'%' identified by 'Mysql!123';

执行上面的语句后,user 表中有两个 admin 用户,用户名和密码都一样,但可以登陆的主机不一样。第一次创建的 admin 访问主机是 localhost,执行上面的语句时指定的访问主机是 % ,访问主机不一样,MySQL 会创建两个用户。虽然用户名密码相同,但这是两个不同的用户,两个用户的权限不一样。给两个用户指定不同的权限,在两个用户都有权限的主机登录时,局部用户的权限会覆盖全局用户的权限,当在 localhost 登录时,'admin'@'localhost' 的权限会覆盖 'admin'@'%' 的权限。

对于可以从任何主机登录的用户,在查看用户权限时,可以使用 show grants for 用户名; 来查看权限,指定主机的用户在查看权限时,要跟上访问主机才能查看权限。

5. 创建用户并授权

使用 grant 权限 on 数据库.数据表 to '用户名'@'访问主机' identified by '密码'; 来创建一个用户并指定权限,与上面授权使用的语句相同。

grant create,select on *.* to 'creater'@'%' identified by 'Mysql!123';

创建了一个有读写权限的用户 creater,这个用户拥有所有数据库的 SELECT 和 CREATE 权限,可以从任何主机登录数据库。

6. 修改用户的权限

使用 grant 权限 on 数据库.数据表 to '用户名'@'访问主机' identified by '密码'; 修改用户的权限,其实前面的授权就是修改权限。

grant all privileges on *.* to 'creater'@'%' identified by 'Mysql!123';

修改用户的权限后,creater 的权限从 SELECT 和 CREATE 权限变成了 ALL PRIVILEGES。

7. 删除用户

使用 drop user '用户名'@'访问主机'; 来删除用户。

drop user 'admin'@'localhost';

执行删除操作后,user 表中不再有该用户。

8. 修改用户名和访问主机

使用 rename user '用户名'@'访问主机' to '新用户名'@'新访问主机'; 来修改用户名和用户的访问主机。

rename user 'creater'@'%' to 'create'@'localhost';

修改之后,creater 用户改名 create ,访问主机从 % 变成了 localhost 。

9. 修改用户密码  

使用 set password for '用户名'@'访问主机' = password('新密码'); 修改用户的密码。

set password for 'create'@'localhost'=password('Mysql@123');

上面创建的 admin 用户和 create 用户密码相同,现在给 create 修改密码,使密码不一样。

以上就是对数据库用户和权限管理的基本操作。这些操作都是对 mysql 数据库中的 user 表进行操作,所以上面的大部分操作都还有另外一种方法,就是通过对 mysql.user 表的增删改查语句来实现。
————————————————
版权声明:本文为CSDN博主「Python碎片」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43790276/article/details/102674936

注明:所有转载内容皆直接从被转载文章网页的标题和内容的文本中复制而来

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z