环境:
uname -a(命令) :
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
more /etc/redhat-release(命令):
CentOS Linux release 7.5.1804 (Core)
配置iptables防火墙的进站ip白名单和端口
1.确定是否启动了firewall 和iptables
如下是firewall的部分命令
1、重启、关闭、开启firewalld.service服务
service firewalld restart 重启
service firewalld start 开启
service firewalld stop 关闭
2、查看firewall服务状态
systemctl status firewall
3、查看firewall的状态
firewall-cmd --state
如果firewall是启动的 需要关闭掉
2.修改iptables的规则(首先需要确定是不是有iptables服务)
如果没有规则 需要安装:
1.安装iptables防火墙
yum install iptables-services #安装
2.编辑iptables防火墙配置
vi /etc/sysconfig/iptables #编辑防火墙配置文件
这个时候需要修改进站和出站规则
我的修改后iptables配置文件:
[root@localhost log]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.21 on Mon Sep 3 13:04:46 2018
*filter
:INPUT ACCEPT [0:0] 允许所有ip端口访问
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:whitelist - [0:0] <-- 白名单的设置开始
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT <-- 这是22端口都可以访问
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11820 -j whitelist <--白名单的11820端口可以访问(加了whitelist)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6122 -j whitelist <--白名单的6122端口可以访问
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20880 -j whitelist <-- 白名单的20880端口可以访问
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20881 -j whitelist <-- 白名单的20881端口可以访问
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A whitelist -s 10.185.151.20 -j ACCEPT <--进来的白名单的设置的ip
-A whitelist -s 10.185.151.11 -j ACCEPT <--进来的白名单的设置的ip
-A whitelist -s 11.8.35.182 -j ACCEPT <--进来的白名单的设置的ip
-A OUTPUT -o lo -j ACCEPT <--所有的端口可以外出
COMMIT
# Completed on Mon Sep 3 13:04:46 2018
配置完成了后使用命令重启
iptables 部分命令如下:
查询防火墙状态 : service iptables status
查询防火墙设置的规则 iptables -L -n
停止防火墙 : service iptables stop
启动防火墙 : service iptables start
重启防火墙 : service iptables restart
永久关闭防火墙 : chkconfig iptables off
永久关闭后启用 : chkconfig iptables on
启动后就成功了。
可以看下这个配置文件,逻辑比较看得懂:
iptables配置文件的详细配置情况
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#这里开始增加白名单服务器ip(请删除当前服务器的ip地址)
-N whitelist
-A whitelist -s xxx.xxx.xxx.xxx -j ACCEPT-A whitelist -s xxx.xxx.xxx.xxx -j ACCEPT
-A whitelist -s xxx.xxx.xxx.xxx -j ACCEPT
-A whitelist -s xxx.xxx.xxx.xxx -j ACCEPT
#这里结束白名单服务器ip
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT //开放1000到8000之间的所有端口
//上面这些 ACCEPT 端口号,公网内网都可以访问//下面这些 whitelist 端口号,仅限服务器之间通过内网访问
#这里添加为白名单ip开放的端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 13009 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10080 -j whitelist
#这结束为白名单ip开放的端口
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited#如果是要关闭 某个端口:
-A INPUT -p tcp --dport port -j REJECT
以下是端口,先全部封再开某些的IP
iptables -I INPUT -p tcp --dport Port-j DROP
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport Port-j ACCEPT
如果用了NAT转发记得配合以下才能生效
iptables -I FORWARD -p tcp --dport Port-j DROP
iptables -I FORWARD -s 192.168.1.0/24 -p tcp --dport Port-j ACCEPT
COMMIT