Skip to content
Eternal Center

Eternal Center

  • Single-Node (单节点)
    • System (系统)
    • Service (服务)
    • Database (数据库)
    • Container (容器)
    • Virtualization (虚拟化)
  • Multi-Node (多节点)
    • Cluster (集群)
    • Big Data (大数据)
    • Cloud Computing (云计算)
    • Batch Processing (批量处理)
  • Approach (方式方法)
    • Languages (语言)
    • Ideas (思路)
    • Programing (编程)
    • Project (项目)
  • Eternity (永恒)
    • News (消息)
    • Creations (创作)
    • Classics (经典)
    • Legends (传说)
    • Chronicle (编年史)
    • FNIOS (宇宙公民开源学院)

Category: iptables

Posted on July 28, 2020October 19, 2022

[命令] Linux 命令 iptables (设置防火墙日志)

内容一:iptables 防火墙开启日志的案例

1.1 案例一:让日志记录未匹配任何规则的 TCP 数据包,之后再将其丢弃的方法

在所有规则后面添加以下两条规则:

......
# iptables -A INPUT -i -p tcp -j LOG --log-prefix "IPTABLES TCP IN: " 
# iptables -A INPUT -i -p tcp -j DROP

(补充:这里以记录进来的数据并将 IPTABLES TCP IN: 作为前缀保存日志为例)

1.2 案例二:让日志记录未匹配任何规则的 UDP 数据包,之后再将其丢弃的方法

在所有规则后面添加以下两条规则:

...... 
# iptables -A INPUT -i -p tcp -j LOG --log-prefix "IPTABLES TCP OUT: " 
# iptables -A INPUT -i -p tcp -j DROP

(补充:这里以记录进来的数据并将 IPTABLES TCP OUT: 作为前缀保存日志为例)

1.3 案例三:让日志记录未匹配任何规则的 ICMP 数据包,之后再将其丢弃的方法

在所有规则后面添加以下两条规则:

...... 
# iptables -A INPUT -i -p tcp -j LOG --log-prefix "IPTABLES TCP ICMP: " 
# iptables -A INPUT -i -p tcp -j DROP

(补充:这里以记录进来的数据并将 IPTABLES TCP ICMP: 作为前缀保存日志为例)

内容二:显示 iptables 防火墙日志的方法

# cat /log/var/message
Posted on July 15, 2020October 19, 2022

[工具] Shell 只对某个 IP 地址开放 TCP 22 端口 (iptables 版)

介绍

基本信息

名称:只对某个 IP 地址开放 TCP 22 端口
作用:只对某个 IP 地址开放 TCP 22 端口

使用方法

1. 给此脚本添加执行权限
2. 执行此脚本

脚本分割线里的变量

ipaddress=192.168.1.1 #要开放 TCP 22 端口的 IP 地址

脚本

#!/bin/bash

####################### Separator ########################
ipaddress=192.168.1.1
####################### Separator ########################

systemctl stop firewalld
systemctl disable firewalld

yum -y install iptables-services
zypper -n install iptables

systemctl enable iptables
systemctl start iptables

sysctl -w net.ipv4.ip_forward=1
iptables -t filter -F
iptables -t nat -F

iptables -P OUTPUT ACCEPT
#iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

iptables -t filter -A INPUT -j ACCEPT -s $ipaddress -p tcp --destination-port 22
iptables -t filter -A INPUT -j DROP -p tcp --destination-port 22

service iptables save
systemctl restart iptables
Posted on December 11, 2019October 19, 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 -nvl

(补充:比起 iptables -nL 命令,iptables -nvl 命令可以显示协议里的更详细内容,比如对 iptables 对 lo 网卡进行的规则)

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

12.4 iptables 显示某一张表里的所有规则
# iptables -L -v -t filter -n --line-numbers
Posted on July 21, 2019October 19, 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

Posts pagination

Previous page Page 1 Page 2

Aspiration (愿景):

Everyone can achieve self-achievement and self-happiness fairly

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

Logo (徽标):

Additional Information (其他信息):

About     Manual     Clone     Contact
Disclaimer     Friendly Links     Donation

关于     手册     克隆     联系
免责声明     友情链接     捐赠

Search Inside Website (站内搜索)

Search Outside Website (站外搜索):

Google         Wikipedia         Bing

Eternal URL (永恒网址):

https://eternity.eternalcenter.com Will be last access method / 将是最后的访问方式

Proudly powered by LNMP Proudly powered by WordPress