Ricardo

Linux iptables 使用笔记

从个人笔记仓库整理迁移

#iptable #linux

本文主要介绍如下几点内容。

禁止Filewalld开机启动

为了防止与iptables冲突,您必须先禁止Filewalld开机启动。

1. 查看firewalld服务状态。

1
systemctl status firewalld

2. 当服务处于active状态,运行以下命令关闭Firewalld服务。

1
systemctl stop firewalld

3. 执行如下命令,禁止Filewalld开机启动。

1
systemctl disable firewalld

安装iptables

安装iptables。

1
yum install -y iptables-services

启动iptables并设置为开机启动

1. 启动iptables。

1
systemctl start iptables

2. 查看iptables是否成功启动。

1
systemctl status iptables

3. 设置iptables开机启动。

1
systemctl enable iptables.service

4. 设置完成后,重启实例验证配置。

1
systemctl reboot

查看并修改iptables默认规则

执行iptables -L命令,查看iptables默认规则,发现在默认规则下,INTPUT链允许来自任何主机的访问。可以参考如下步骤修改默认规则。

1. 如果之前已经设置过规则,建议执行如下命令,备份原有的iptables文件,避免之前设置的规则丢失。

1
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

2. 清空所有规则。

1
iptables -F

3. 根据业务需求添加规则,放行或者禁用端口。示例:依次执行如下命令,放行80端口和22端口。

1
2
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT  
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

示例:依次执行如下命令,添加规则,使INPUT链拒绝所有请求,即ECS实例会拒绝所有请求。如果是线上业务请勿直接操作,会直接中断业务。

1
iptables -P INPUT DROP

4. 确认新规则生效。

1
iptables -L

5. 保存添加的规则。

1
iptables-save > /etc/sysconfig/iptables

6. 将规则导入到iptables

1
iptables-restore < /etc/sysconfig/iptables

案例:实际操作命令

仅对相关ip开放22端口

1
2
3
4
5
6
7
sudo iptables -A INPUT -p tcp -s 10.20.105.62 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.56 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.57 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.54 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp -s 10.20.105.55 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
iptables-save >/etc/sysconfig/iptables
comments powered by Disqus
记录自己
Built with Hugo
主题 Stack 由 Jimmy 设计