Skip to content

Eternal Center

  • System (系统)
  • Services (服务)
  • Databases (数据库)
  • Clusters (集群)
  • Big Data (大数据)
  • Cloud Computing (云计算)
  • Languages (语言)
  • Project (项目)
  • Writings (写作)
  • Eternity (永恒)
  • News (消息)
  • Chronicle (编年史)
  • Words (言)

Category: System Login Security (系统登录安全)

Posted on December 11, 2019April 25, 2022

[命令] Linux 命令 iptables (设置防火墙) (转载)

一、iptables命令

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

1.1 语法

iptables(选项)(参数)

    1

1.2 选项
选项 	描述
-t<表> 	指定要操纵的表;
-A 	向规则链中添加条目;
-D 	从规则链中删除条目;
-i 	向规则链中插入条目;
-R 	替换规则链中的条目;
-L 	显示规则链中已有的条目;
-F 	清楚规则链中已有的条目;
-Z 	清空规则链中的数据包计算器和字节计数器;
-N 	创建新的用户自定义规则链;
-P 	定义规则链中的默认目标;
-h 	显示帮助信息;
-p 	指定要匹配的数据包协议类型;
-s 	指定要匹配的数据包源ip地址;
-j<目标> 	指定要跳转的目标;
-i<网络接口> 	指定数据包进入本机的网络接口;
-o<网络接口> 	指定数据包要离开本机所使用的网络接口。

1.3 iptables命令选项输入顺序

    iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

1.3.1 表名包括:

    raw:高级功能,如:网址过滤。
    mangle:数据包修改(QOS),用于实现服务质量。
    net:地址转换,用于网关路由器。
    filter:包过滤,用于防火墙规则。

1.3.2 规则链名包括

    INPUT链:处理输入数据包。
    OUTPUT链:处理输出数据包。
    PORWARD链:处理转发数据包。
    PREROUTING链:用于目标地址转换(DNAT)。
    POSTOUTING链:用于源地址转换(SNAT

1.3.3 动作包括

    accept:接收数据包。
    DROP:丢弃数据包。
    REDIRECT:重定向、映射、透明代理。
    SNAT:源地址转换。
    DNAT:目标地址转换。
    MASQUERADE:IP伪装(NAT),用于ADSL。
    LOG:日志记录。

二、示列

# 清除已有iptables规则
iptables -F
iptables -X
iptables -Z

# 开放指定的端口
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问

# 屏蔽IP
iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

# 显示已添加的iptables规则
iptables -L -n -v
Chain INPUT (policy DROP 48106 packets, 2690K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
 191K   90M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
1499K  133M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4364K 6351M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
 6256  327K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5075  589K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0  

# 删除已添加的iptables规则
iptables -L -n --line-numbers # 将所有iptables以序号标记显示
iptables -D INPUT 8 #比如要删除INPUT里序号为8的规则
————————————————
版权声明:本文为CSDN博主「书香水墨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27870421/article/details/93166786

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

CC 4.0 BY-SA 版权协议网址:https://creativecommons.org/licenses/by-sa/4.0/deed.z
站主补充:
站主补充一:iptables 保证现有连接不会被禁止的防火墙规则
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

站主补充二:iptables 保证本地环路不会被禁止的防火墙规则
# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# iptables -A INPUT -i lo -j ACCEPT

站主补充三:iptables 清空某一张表的规则
3.1 iptables 清空 filter 表的规则
# iptables -t filter -F

3.2 iptables 清空 nat 表的规则
# iptables -t nat -F

站主补充四:iptables 设置某一个链的默认规则
4.1 将某一个默认规则设置成允许
4.1.1 iptables 将 OUTPUT 链的默认规则设置为允许
# iptables -P OUTPUT ACCEPT

(补充:这里以将 OUTPUT 链设置为允许为例)

4.1.2 iptables 将 INPUT 链的默认规则设置为允许
# iptables -P INPUT ACCEPT

(补充:这里以将 INPUT 链设置为允许为例)

4.1.3 iptables 将 FORWAED 链的默认规则设置为允许
# iptables -P FORWARD ACCEPT

(补充:这里以将 FORWARD 链设置为允许为例)

4.2 将某一个默认规则设置成丢掉
4.2.1 iptables 将 OUTPUT 链的默认规则设置为丢掉
# iptables -P OUTPUT DROP

(补充:这里以将 OUTPUT 链设置为丢掉为例)

4.2.2 iptables 将 INPUT 链的默认规则设置为丢掉
# iptables -P INPUT DROP

(补充:这里以将 INPUT 链设置为丢掉为例)

4.2.3 iptables 将 FORWAED 链的默认规则设置为丢掉
# iptables -P FORWARD DROP

(补充:这里以将 FORWAED 链设置为丢掉为例)

站主补充五:iptables 一次性添加多个不连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30,80,3306 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30、80、3306 端口为例)

站住补充六:iptables 一次性添加多个连续端口的策略
# iptables -I INPUT -p tcp -m multiport --dport 22:30 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30 端口为例)

站住补充七:iptables 一次性添加多个连续和不连续端口的策略
# iptables -I INPUT -p TCP -m multiport --dport 22:30,80,3301:3306 -j DROP

(补充:这里以将 INPUT 链里添加丢掉 22 到 30、80、3301 到 3306 端口为例)

站主补充八:iptables 一次性给多个 IP 地址添加多个端口的策略
# iptables -I INPUT -s 192.168.1.1,192.168.1.5,192.168.1.100-110 -p TCP -m multiport --dport 22:30,80,3306 -j ACCEPT

(补充:这里以将 INPUT 链里添加允许 192.168.1.1、192.168.1.5、192.168.1.100 到 192.168.1.110 的 22 到 30、80、3301 到 3306 端口为例)

站主补充九:iptables 删除一条规则
9.1 显示所有规则的编号
# iptables --list --line-numbers

9.2 删除某一条规则
# iptables -D INPUT 3

(补充:这里以删除编号为 3 个规则为例)

站主补充十:iptables icmp 也就是 ping 的管理
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 8 #允许 icmp 进去
# iptables -t filter -A INPUT -j ACCEPT -p icmp -m icmp --icmp-type 0 #允许 icmp 响应出去

站主补充十一:iptables 的规则保存
# iptables-save

或者:

# service iptables save

(注意:此方法只在 CentOS 7 & RHEL 7 有用)

站主补充十二:iptables 显示所有规则
12.1 iptables 显示所有规则
# iptables -nL

12.2 iptables 显示所有规则并显示编号
# iptables --list --line-numbers

12.3 iptables 显示某一张表里的所有规则
# iptables -L -v -t filter -n --line-numbers
Posted on November 4, 2019April 3, 2022

[命令] Linux 命令 screen (防终端断开)

内容目录:

内容一:创建 screen 窗口

内容二:挂起 screen 窗口
2.1 进入 screen 窗口后或者已经在 screen 窗口中时挂起
2.1.1 进入 screen 窗口或者确保已经在 screen 窗口中
2.1.2 挂起 screen 窗口
2.2 直接挂起某一个 screen 窗口

内容三:显示所有存在的 screen 窗口

内容四:进入已存在的 screen 窗口
4.1 进入处于挂起状态的 screen 窗口
4.2 进入处于工作状态的 screen 窗口
4.2.1 方法一:强制将这个 screen 窗口设置为挂起状态后再进入
4.2.1.1 先挂起 screen 窗口再进入 screen 窗口
4.2.1.1.1 挂起 screen 窗口
4.2.1.1.2 进入 screen 窗口
4.2.1.2 同时挂起 screen 窗口并进入 screen 窗口
4.2.2 方法二:共享这个 screen 窗口

内容五:删除 screen 窗口
5.1 进入 screen 窗口或者确保已经在 screen 窗口中
5.2 删除 screen 窗口

内容六:给某个 screen 再创建一个窗口
6.1 进入 screen 窗口或者确保已经在 screen 窗口中
6.2 给某个 screen 窗口再创建一个窗口

内容七:切换 screen 窗口
7.1 进入 screen 窗口或者确保已经在 screen 窗口中
7.2 切换 screen 窗口

内容八:在进入 screen 窗口的状态下显示窗口列表
8.1 进入 screen 窗口或者确保已经在 screen 窗口中
8.2 在进入 screen 窗口的状态下显示窗口列表

具体的内容:

内容一:创建 screen 窗口

# screen -S <screen window name>

(补充:这样会同时创建并且进入 screen 窗口中)

内容二:挂起 screen 窗口
2.1 进入 screen 窗口后或者已经在 screen 窗口中时挂起
2.1.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

2.1.2 挂起 screen 窗口

同时按下 “ctrl” 键和 “a” 键和 “d” 键

(补充:这里 d 代表的是 Detached 的意思)

2.2 直接挂起某一个 screen 窗口

# screen -d <screen window name>

内容三:显示所有存在的 screen 窗口

# screen -ls
        6474.1  (Attached)
        29438.2 (Detached)

(
补充:这里以显示
1) 激活状态(Attached)的 screen 窗口 1 为例
2) 挂起状态(Detached)的 screen 窗口 2 为例
)

内容四:进入已存在的 screen 窗口
4.1 进入处于挂起状态的 screen 窗口

# screen -r <screen window name>

4.2 进入处于工作状态的 screen 窗口
4.2.1 方法一:强制将这个 screen 窗口设置为挂起状态后再进入
4.2.1.1 先挂起 screen 窗口再进入 screen 窗口
4.2.1.1.1 挂起 screen 窗口

# screen -d <screen window name>

(注意:此时正在使用这个 screen 窗口的人会断开)

4.2.1.1.2 进入 screen 窗口

# screen -r <screen window name>

4.2.1.2 同时挂起 screen 窗口并进入 screen 窗口

# screen -d -r <screen window name>

(注意:此时正在使用这个 screen 窗口的人会断开)

4.2.2 方法二:共享这个 screen 窗口

# screen -x <screen window name>

内容五:删除 screen 窗口
5.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

5.2 删除 screen 窗口

# exit

内容六:给某个 screen 再创建一个窗口
6.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

6.2 给某个 screen 窗口再创建一个窗口

同时按下 “ctrl” 键和 “a” 键和 “c” 键

内容七:切换 screen 窗口
7.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

7.2 切换 screen 窗口

同时按下 “ctrl” 键和 “a” 键和 “<screen window name code>”

内容八:在进入 screen 窗口的状态下显示窗口列表
8.1 进入 screen 窗口或者确保已经在 screen 窗口中

(步骤略)

8.2 在进入 screen 窗口的状态下显示窗口列表

同时按下 “ctrl” 键和 “a” 键和 “w” 键

Posted on October 26, 2019March 3, 2022

[命令] Linux 命令 last (审计)

案例一:只显示最近的 10 条记录

# last -n 10

或者:

# last -10

案例二:指定 btmp 为查询文件

# last -10 -f /var/log/btmp

案例三:将 IP 地址转换为主机

# last -10 -d

案例四:显示 2019 年 10 月 10 日之前的 10 条记录

# last -10 -t 201910100000

案例五:显示最后一次重启的时间

# last | grep reboot | head -1

或者:

# last reboot | head -1

案例六:显示最后一次关机的时间

# last | grep -i shutdown | head -1

案例七:显示系统运行等级的变化

# last -x | grep runlevel

(补充:这里 -x 的作用是把系统运行等级的显示也显示出来,同时显示全系统 kernel 的变换)

案例八:显示系统 kernel (内核)的变化

# last -xF | egrep "reboot|shutdown|runlevel|system"

(
补充:
1) 这里 -x 的作用是把系统运行等级的显示也显示出来,同时显示全系统 kernel 的变换)
2) 这里 -F 的作用是加大显示结果
)

Posted on August 25, 2019December 26, 2021

[步骤] Linux 密码策略的设置 (设置默认密码有效期)

步骤一:备份用户密码安全策率的文档

# cp /etc/login.defs /etc/login.defs.old

步骤二:修改用户密码安全策略的文档

# vim /etc/login.defs

将部分内容修改如下:

......
PASS_MAX_DAYS 90
PASS_MIN_DAYS 0
PASS_MIN_LEN  15
PASS_WARN_AGE 7
......

(
补充:这里以
1) 密码有效期为 90 天
2) 密码最小修改间隔为 0 天
3) 密码最小长度为 15 个字符
4) 密码快过期时提前 7 天发出警告
为例
)

Posted on August 25, 2019March 3, 2022

[命令] Linux 命令 chage (管理用户)

内容目录:

内容一:提高 Linux 用户密码时效安全性的 3 个方向

内容二:chage 的使用案例
2.1 案例一:给用户设置有效日期的案例
2.1.1 给用户设置有效日期
2.1.2 给用户设置密码过期多久后用户会过期
2.1.3 显示用户的有效期
2.2 案例二:给用户密码设置有效期周期的案例
2.2.1 给用户密码设置两次修改密码的最小间隔天数
2.2.2 给用户密码设置有效周期
2.2.3 显示用户密码的有效期
2.3 案例三:设置密码快到期要提前多少天警告的案例
2.4 案例四:给用户设置强制修改密码的设置的案例
2.4.1 给用户设置立刻需要强制修改密码的设置
2.4.2 给用户设置过一段时间后需要强制修改密码的设置
2.5 案例五:一次性设置,密码过期后用户永不过期,随时可以修改密码,密码永不过期,用户永不过期

具体的内容:

内容一:提高 Linux 用户密码时效安全性的 3 个方向

1) 给用户设置有效期限
2) 给用户设置强制修改密码的日期
3) 给可疑的用户上锁

内容二:chage 的使用案例
2.1 案例一:给用户设置有效日期的案例
2.1.1 给用户设置有效日期

# chage -E 2019-12-31 zhumingyu

(
补充:
1) 设置 zhumingyu 用户的有效期为 2019-12-31
2) 如果为 0 代表立即过期,如果为 -1 则代表永远不过期
)

2.1.2 给用户设置密码过期多久后用户会过期

# chage -I 30 zhumingyu

(
补充:
1) 设置 zhumingyu 用户密码过期后 30 用户过期
2) 如果为 0 代表立即过期,如果为 -1 则代表永远不过期
)

2.1.3 显示用户的有效期

# chage -l zhumingyu

(补充:这里以显示 zhumingyu 用户为例)

2.2 案例二:给用户密码设置有效期周期的案例
2.2.1 给用户密码设置两次修改密码的最小间隔天数

# chage -m 0 zhumingyu

(补充:这里以设置 zhumingyu 用户每过 0 天就能修改密码)

2.2.2 给用户密码设置有效周期

# chage -M 50 zhumingyu

(补充:这里以设置 zhumingyu 用户 50 天密码有效期为例)

2.2.3 显示用户密码的有效期

# chage -l zhumingyu

(补充:这里以显示 zhumingyu 用户为例)

2.3 案例三:设置密码快到期要提前多少天警告的案例

# chage -W 7 zhumingyu

(补充:这里以设置 zhumingyu 用户密码过期前 7 天被警告为例)

2.4 案例四:给用户设置强制修改密码的设置的案例
2.4.1 给用户设置立刻需要强制修改密码的设置

# chage -d 0 zhumingyu

(补充:这里以让 zhumingyu 用户密码立刻过期为例)

2.4.2 给用户设置过一段时间后需要强制修改密码的设置

# chage -d 2021-01-01 zhumingyu

(补充:这里以让 zhumingyu 用户到了 2021 年 1 月 1 日后必须修改密码为例)

2.5 案例五:一次性设置,密码过期后用户永不过期,随时可以修改密码,密码永不过期,用户永不过期

# chage -I -1 -m 0 -M 99999 -E -1 zhumingyu

(补充:这里以让 zhumingyu 用户密码过期后用户永不过期,随时可以修改密码,密码永不过期,用户永不过期为例)

Posts navigation

Previous page Page 1 … Page 9 Page 10 Page 11 Next page

Aspiration (愿景):

Everyone can achieve self achievement and self happiness fairly

每个人都能公平地实现自我成就和自我幸福

Position (位置):

Running on Evolution Host and DigitalOcean

正在 Evolution Host 和 DigitalOcean 上运行

Logo (徽标):

Additional Information (其他信息):

About Manual Clone Contact Disclaimer Donation Friendly Links 关于 说明书 克隆 联系 免责申明 捐赠 友情链接

Standby IP Address (备用 IP 地址):

152.69.204.95  150.230.63.10  Please configure before use / 请先配置再使用

Search Outside Website (站外搜索):

Google Wikipedia Bing
Proudly powered by LNMP Proudly powered by WordPress