Skip to content

Eternal Center

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

Category: System Firewall (系统防火墙)

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 July 21, 2019April 25, 2022

[步骤] Linux 防火墙的设置 (通过设置 iptables 的配置文件实现)

步骤一:修改 iptables 的配置文件

# vim /etc/sysconfig/iptables

添加以下内容:

......
-A INPUT -s 154.223.167.236 -j ACCEPT
......

(补充:需要添加的规则可以这样一行行地添加进去)

(注意:建议配置 iptables 之前先关闭 firewalld 防火墙)

步骤二:重启 iptables

# service iptables restart

步骤三:显示生效的 iptables 策略

# service iptables -nL
Posted on May 8, 2019April 25, 2022

[步骤] 远程登录的实现 (通过设置 sshd 的配置文件和 SuSEfirewall2 防火墙实现) (openSUSE & SLE 版)

步骤目录:

步骤一:检查 ssh 是否安装

步骤二:确保 ssh 能够被登录
2.1 修改配置文件
2.2 启动 ssh 服务
2.3 将 ssh 服务设置为开机自启

步骤三:让防火墙开放 22 端口
3.1 编辑防火墙的配置文件,命令如下
3.2 重新启动防火墙(或重新启动系统)

具体的操作步骤:

步骤一:检查 ssh 是否安装

# rpm -qa | grep ssh

步骤二:确保 ssh 能够被登录
2.1 修改配置文件

# vim /etc/ssh/sshd_config 

将部分内容修改如下:

......
PasswordAuthentication yes
......
PermitRootLogin yes
......

2.2 启动 ssh 服务

# service sshd restart

2.3 将 ssh 服务设置为开机自启

# systemctl enable sshd

步骤三:让防火墙开放 22 端口
3.1 编辑防火墙的配置文件

# vim /etc/sysconfig/SuSEfirewall2

将部分内容修改如下:

......
FW_SERVICES_EXT_TCP = "ssh" 
......

(补充:这里可以写入多个服务名称,只需以空格隔开就行)

或者:

......
FW_SERVICES_EXT_TCP = "22" 
......

(补充:这里可以写入多个服务端口,只需以空格隔开就行)

3.2 重新启动防火墙

# rcSuSEfirewall2 restart

Posts navigation

Previous page Page 1 Page 2 Page 3

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