Linux使用iptables创建白名单指定IP访问

313次阅读次阅读
一条评论

场景

做实验时有个安全需求,就是该服务器端口默认全部拒绝请求,仅允许指定的某个IP请求。
Centos7中本人一般都是开机直接关掉防火墙,firewalld真心有点用不惯,不过实在有需求需要防火墙的时候怎么办呢。。。关掉firewalld安装iptables(就是这么暴力)

安装

systemctl stop firewalld    # 关闭firewalld
systemctl disable firewalld    # 禁止firewalld开机自启

yum install iptables-services    # 安装iptables服务
systemctl enable iptables    # 打开iptables开机自启

使用

两种方法(命令行操作 && 改配置文件)任选其一。xxx.xxx.xxx.xxx 表示允许请求的IP

命令行操作

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -P INPUT DROP

改配置文件

[root@aikx ~]# cat /etc/sysconfig/iptables
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]

#定义白名单变量名
-N whitelist
#设置白名单ip段
-A whitelist -s xxx.xxx.xxx.xxx -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

#开放http/https端口外界访问
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

#端口1-65535 规定白名单ip才可访问(注意 -j 后跟的是白名单变量名)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1:65535 -j whitelist
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@aikx ~]# systemctl restart iptables  # 修改配置文件需重启iptables生效

 

3
admin
版权声明:本站原创文章,由admin2020-11-27发表,共计1812字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
载入中...
小婊弟 评论达人 LV.1
2020-12-01 15:38:42 回复

很棒 :wink: :wink: :wink: