完整版Linux防火墙安装与配置长期更新

1、CentOS-7默认防火墙不是iptables而是firewalle,通过命令检查是否安装iptables。

[root@localhost ~]# service iptables status
Redirecting to /bin/systemctl status itables.service
Unit itables.service could not be found.
[root@localhost ~]#
#停用firewalld服务
systemctl stop firewalld
#禁用firewalld
systemctl mask firewalld
#安装iptables
yum	install -y iptables
#安装iptables-services
yum install iptables-services
#检查安装是否完成
systemctl status iptables

2、iptables常用规则

#查看iptables现有规则
iptables -L -n
#允许所有开放
iptables -P INPUT ACCEPT
#清空所有默认规则
iptables -F
#清空所有自定义规则
iptables -X
#所有计数器归0
iptables -Z
#允许来自与lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT
#开放**端口
iptables -A INPUT -p tcp --dport ** -j ACCEPT
#允许ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#允许接受本机请求之后的返回数据RELATED,是为了FTP设置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#其他入站一律丢弃
iptables -P INPUT DROP
#所有出站一律绿灯
iptables -P OUTPUT ACCEPT
#所有转发一律丢弃
iptables -P FORWARD DROP
#如果要添加内网ip信任(接受其他所有TCP请求)
iptables -A INPUT -p tcp -s 0.0.0.0 -j ACCEPT
#要停封一个IP
iptables -I INPUT -s 0.0.0.0 -j DROP
#要解封一个IP
iptables -D INPUT -s 0.0.0.0 -j DROP

3、实际生产中,对iptables命令进行配置

#允许某些调用localhost的应用访问
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 127.0.0.1 -d 127.0.01 -j ACCEPT
#允许从其他地方ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#允许从其他主机、网络设备发送MTU调整报文,在某些情况下,
#如:通过ipsec vpn时,MTU需要动态减少
iptables -A INPUT -p icmp icmp-type fragmentation-needed -j ACCEPT
#允许访问80、443端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#仅允许某来源的IP通过TCP访问某端口,如内网IP10.0.1.17访问22端口
iptables -A INPUT -p tcp -s 10.0.1.17 --dport 22 -j ACCEPT
#仅允许某来源的IP通过UDP访问某端口,如内网IP10.0.1.17访问161端口
iptables -A INPUT -p udp -s 10.0.1.17 --dport 161 -j ACCEPT
#禁止非开放白名单流量进入
iptables -A INPUT -j DROP
#允许本机响应规则编号为01-08的数据包发出
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
#禁止本机主动发出外部链接,可以有效防范类似“反弹shell”的攻击
iptables -A OUTPUT -j DROP
#禁止本机转发数据包
iptables -A FORWARD -j DROP

4、命令常见参数说明
在这里插入图片描述
5、当命令完成后,需要通过service iptables save指令让命令保存在iptables服务中,

service iptables save

配置完成后需要重启iptables服务,

#注册iptables服务
systemctl enable iptables.service
#开启服务
systemctl start iptables.service
#查看状态
systemctl status iptables.service
#重启防火墙
systemctl restart iptables.service

6、实际工作中,iptables还经常用于网络地址转换(NAT),通过网络地址转换有效减少直接部署公网IP地址的服务器数量,增强网络环境的安全性。
在这里插入图片描述
源地址转换如下:
1)service-B上指定其网络的默认网关是service是service-A的内网地址
2)在service-A上启用路由器功能

sysctl -w net.ipv4.ip_forward=1

3)在service-A上设置iptables规则

iptables -t filter -A FORWARD -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j SNAT -to 220.217.143.73

通过上述三个操作,service-B将通过service-A访问互联网,此时在互联网上看到的源地址是service-A的外网IP

目标地址转换,目标地址转换用于外部用户直接访问无外网IP的服务器,例如:外部用户希望访问service-B上的MySQL数据库,端口3306,那么在service-A上可以进行如下配置。

iptables -t nat -A PREROUTING -d 220.217.143.73 -p tcp -m tcp --dport 3306 -j SNAT --to-destination 10.128.70.111:3306
iptables -t nat -A POSTROUTING -d 10.128.70.11 -p tcp -m tcp -dport 3306 -j SNAT -to-source 10.128.70.112

注:TCPWrappers常用的的两个动作allow为允许访问,deny为禁止访问。
7、利用DenyHosts防暴力破解
DenyHosts是Python语言写的一个程序,它会分析sshd的日志文件(/var/log/secure),当发现重复的攻击时就会记录IP到/etc/hosts. deny文件,从而达到自动屏IP的功能。
DenyHosts下载地址:
wget ‘https://sourceforge. net/projects/denyhosts/files/denyhosts/2.6/DenyHosts -2. 6. tar. gz/download’ -0 DenyHosts- 2. 6. tar. gz
–解压归档:

tar zxvf DenyHosts-2.6.tar.gz

通过python对服务进行安装

python setup.py install

Daemon-control-dist与denyhosts. cfg -dist是系统提供的配置文件模板,需要先将这两个文件复制为配置文件

cp Daemon-control -dist daemon-control
cp denyhosts.cfg-dist denyhosts.cfg

创建连接并启动

并创建连接到启动初始化文件
ln daemon-control /etc/init.d
#启动
/etc/init.d/daemon-control start

SECURE LOG:指定系统安全日志位置,在CentOS和Redhat 系统中设为/var/ log/secure

HOSTS_ DENY:检测到暴力破解后,指定在哪个文件中添加相应的恶意IP禁止,在Cnet0S和Redhat系统中设为/et/mnsts. deny

BLOCK SERVICE: 检测到暴力破解后, 指定封停来源IP访问哪些服务, 可以指定sshd或者ALL(封停来源IP访问libwrap配置的服务)

RSHOL INWALID:对于rtpasswd不存在的用户名的暴力尝试,指定发现多少次以后封
停。默认为5,常用为5

DENY_ THRESHOLD_VALID: 对于在/etc/ passwd存在的用户名(root除外)的暴力尝试,指定发现多少次以后封停-建议为20。

DENY_ THRESHOLD_ROOT:对于root账户的暴力尝试,指定发现多少次以后封停;建议为10。

HOSTNAME_LO0KUP: 指定是否启用来源IP到完整域名的解析,建议设置为NO,以节省服务器尝试反向解析的开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值