Linux - iptable firewall 限制 IP 访问端口

iptable 设置iptables

访问限制格式:

# 禁止指定IP访问
iptables -A INPUT -p tcp -s IP -j DROP
# 禁止指定IP访问端口
iptables -A INPUT -p tcp -s IP --dport port -j DROP
# 允许在IP访问指定端口
iptables -A INPUT -s IP -p tcp --dport port -j ACCEPT   

限制某个IP访问:

iptables -I INPUT -s 172.15.2.11 -j DROP
或者:
-A INPUT -s 172.15.2.11 -j DROP

指定特定IP 访问:

-A INPUT -s 172.16.2.20 -p tcp -j ACCEPT
-A INPUT -s 172.16.2.0/24 -p tcp -j ACCEPT

设置特定端口访问特定端口:

-A INPUT -s 172.17.1.0/16 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
-A INPUT -s 172.16.2.0/24 -p tcp -m state --state NEW -m tcp --dport 27017 -j ACCEPT

Centos7 防火墙 默认是 firewall 

想和 Centos 6 一样配置 iptables;

直接更新 # yum update iptables
直接安装 # yum install iptables iptables-services
或者 直接 yum install iptables iptables-* -y
Systemctl stop firewalld Systemctl disable firewalld systemctl restart iptables.service systemctl status iptables.service systemctl enable iptables.service

Centos 7 没有 ifconfig

可以 直接安装;
yum install net-tools

Centos 7 

firewall 默认配置:

# 默认配置路径
/etc/firewalld/
# 默认区域:
zones/public.xml

常见指令

#查看版本
firewall-cmd --version

#显示状态 firewall
-cmd --state

#查看区域信息
firewall-cmd --get-active-zones

#查看指定接口所属区域
firewall-cmd --get-zone-of-interface=eth0

#拒绝所有包
firewall-cmd --panic-on

#取消拒绝状态
firewall-cmd --panic-off

#查看是否拒绝
firewall-cmd --query-panic

 端口示例

# 开放一个端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
1、firewall-cmd:指令
2、--zone: 指定区域public
3、--permanent:永久生效
4、--add-port:端口

# 添加一组
firewall-cmd --zone=public --add-port=500-1000/tcp --permanent

# 删除一个端口:
firewall-cmd --zone=public --remove-port=80/tcp --permanent

# 更新防火墙规则
firewall-cmd --reload

# 查看所有打开的端口
firewall-cmd --zone=public --list-ports

 限制端口

# 允许指定IP访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.20.21" port protocol="tcp" port="80" accept"

 

# 禁止指定IP访问

firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="172.19.20.21" drop'

或:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.20.21" port protocol="tcp" port="80" reject

 

# 限制指定段访问

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.0.0/24" port protocol="tcp" port="80" reject"

--add-rich-rule:添加规则

--remove-rich-rule:删除规则

drop:丢弃fin包超时

reject:拒绝包

IP 添加规则

 

#限制IP地址访问端口,reject 表示拒绝,设置为 drop 表示直接丢弃
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.20.21" port protocol="tcp" port="80" reject"
#解除限制(允许)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.20.21" port protocol="tcp" port="80" accept"
 
#限制IP段访问端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" reject"
#解除限制(允许)
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.0.0.0/24" port protocol="tcp" port="80" accept"
 
#允许某个IP的所有连接
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="<ip>" accept"
#允许某个IP访问ssh服务
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.20.21" service name="ssh" accept"
#允许某个IP访问icmp协议
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.19.20.21" protocol value="icmp" accept"

 

服务配置规则

firewall-cmd --get-services #查看所有预设的服务
firewall-cmd --list-services #查看已放行的服务
firewall-cmd --info-service=ssh #查看某个服务包含的端口,如ssh
firewall-cmd --permanent --add-service=<service name> #放行服务
firewall-cmd --permanent --add-service=ssh #如放行 ssh
firewall-cmd --permanent --remove-service=<service name> #移除服务

协议配置规则

firewall-cmd --permanent --add-protocol=<protocol> # 允许协议
firewall-cmd --permanent --add-protocol=icmp # 例:icmp,即允许ping
firewall-cmd --permanent --remove-protocol=<protocol> # 取消协议
firewall-cmd --list-protocols # 查看允许的协议

 

 

查看已设置规则

# 重新加载规则
firewall-cmd --reload

# 查看规则列表
firewall-cmd --zone=public --list-rich-rules

# 配置文件
/etc/firewalld/zones/public.xml

 

posted @ 2018-06-20 13:48  01234567  阅读(1424)  评论(0编辑  收藏  举报