您的位置 首页 linux防火墙

iptables 实战 (iptables 命令参数)

面试点:
1.四表五链
2.禁止访问本机某个端口
3.禁止某个来源IP

需要练习:
1.禁IP
2.禁端口
3.对某些IP地址段进行端口限制
4.ICMP 禁ping
5.共享上网
6.端口映射

 

环境: 

安装: 

[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #防火墙的配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #防火墙服务配置文件(命令)

 

#防火墙相关模块 加载到内核中
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

#永久
cat >>/etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
EOF

[root@m01 ~]# systemctl stop firewalld
[root@m01 ~]# systemctl disable firewalld
[root@m01 ~]# systemctl start iptables.service
[root@m01 ~]# systemctl enable iptables.service

[root@m01 ~]# iptables -nL

iptables 命令参数

3.6 配置filter表规则

  • 正式配置之前 先备份, 清空规则

[root@m01 ~]# iptables -F
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z

[root@m01 ~]# iptables -nL

3.6.1 禁止访问22端口

运行后,xshell 挂了,需要用虚拟机进入 删除该规则
iptables -D INPUT 1
 

3.6.2 封ip 屏蔽某个ip

3.6.3 禁止网段连入(禁止10.0.0.0/24网段访问 8888端口)

3.6.4 只允许指定网段连入(允许10.0.0.0网段)

实现阿里云白名单功能 :默认是拒绝 开放端口 网段

allow 10.0.0.0/24;

deny all;

#方法1: 利用 ! 进行排除
#只准许 10.0.0.0/24 访问 言外之意 除了 10.0.0.0/24 都拒绝
iptables -I INPUT ! -s 10.0.0.0/24 -j DROP

#方法2: 修改链默认规则 修改为拒绝 添加准许
先配置好规则 准许规则
修改默认规则

iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT

修改为 DROP

#测试完成后 修改回去

iptables -P INPUT ACCEPT

3.6.4 指定多个端口

方法1:

 iptables -I INPUT -p tcp --dport 8888 -j DROP
 iptables -I INPUT -p tcp --dport 9999 -j DROP

方法2:

#
[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443 -j DROP
#如果是 连续的端口 可以不加上-m multiport 1:1024
[root@m01 ~]# iptables -I INPUT -p tcp --dport 1024:65535 -j DROP

iptables 禁ping

3.6.6 匹配网络状态(TCP/IP连接状态)

-m state --state

NEW:已经或将启动新的连接

ESTABLISHED:已建立的连接

RELATED:正在启动的新连接

INVALID:非法或无法识别的

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

3.6.7 限制并发及速率

-m limit 限制模块

-m limit --limit 10/minute #每分钟只能有10个数据包 每6秒生成
-m limit --limit n/{second/minute/hour}:

解释:指定时间内的请求速率”n”为速率,后面为时间分别为:秒 分 时

-m limit --limit 10/minute --limit-burst 5 每6秒释放工牌 给别人使用

#10个数据包
前5个 1个1个工牌 从第6个开始 每6秒 才能释放1个工牌
--limit-burst [n]

解释:在同一时间内允许通过的请求”n”为数字,不指定默认为5

测试 演示
#ping icmp 协议 进行测试
iptables -F
iptables -I INPUT -p icmp -m limit --limit 10/minute --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP

3.6.8 防火墙规则的保存与恢复

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章