本文发布于Cylon的收藏册,转载请著名原文链接~


生产中,一般第一次添加规则命令行或者脚本加入然后一次性保存成文件,然后可以改配置文件管理:

$  cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Nov 23 09:18:12 2016
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [115:13341]
-A INPUT -p tcp -m tcp --dport 52113 -j ACCEPT 
COMMIT
# Completed on Wed Nov 23 09:18:12 2016

生产维护:

⑴ 确定规则

vim /etc/sysconfig/iptables
# 加入想要的规则:例如:
-A INPUT -p tcp -m tcp --dport 873 -j ACCEPT
/etc/init.d/iptables reload
# 或者修改配置的同时命令行再执行,也是永久生效

⑵ 命令行试错,没问题了,然后放配置文件。这时不需要重启了。

封IP,第一行封。10.0.0.115 这个机器攻击我们服务器或者在BBS里发垃圾帖子。

手工封IP:

iptables -I INPUT -s 10.0.0.115 -j DROP # 范围大,外部攻击者。
iptables -I INPUT -p tcp -s 10.0.0.106 --dport 80 -j DROP # 细,范围小 内部

自动封IP:分析web或应用日志或者网络连接状态封掉垃圾IP

详见:shell笔记

#!/bin/sh

IPT=/sbin/iptables
# remove any existing rules
$IPT -F
$IPT -X
$IPT -Z
#setting default firewall policy
$IP

#setting forloopback interface
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT

# source address spoofing and other bad addresses
$IPT -A INPUT -i eth0 -s 192.168.2.0/24 -j DROP
$IPT -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP

#prevent all stealth scans and tcp state flags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
#All of the bits are cleared
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
$IPT -A INPUT -p tcp --tcp-flags ALL,FIN,URG,PSH -j DROP

#SYN and RST are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
#SYN and FIN are both set
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

# FIN is the only bit set ,whitout the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
# PSH is the only bit set ,whitout the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
# URG is the only bit set ,whitout the expected accompanying ACK
$IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP

#setting access rules
#one,ip access rules,allow, all the ips of
$IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 5666 -j ACCEPT
$IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 5666 -j ACCEPT
#db
$IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 3306 -j ACCEPT
$IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 3307 -j ACCEPT
#ssh difference from other servers here
$IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 52113 -j ACCEPT
$IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT
#http
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
#snmp
$IPT -A INPUT -s 10.0.0.0/24 -p UDP --dport 161 -j ACCEPT
#rsync
$IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 873 -j ACCEPT
$IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 873 -j ACCEPT
#icmp
$IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
#others RELATED
$IPT -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#setting default firewall rules
$IPT -P OUTPUT ACCEPT
$IPT --policy FORWARD DROP
$IPT --policy INPUT DROP

技巧:具备外网IP的服务器上不对外的服务最好要做源地址限制。

    对外提供服务,不能做源地址限制,例如:80端口。

问题:企业硬件防火墙和IPTABLES防火墙是否要同时用。

解决:可以同时用。

举例:

    企业硬件防火墙一般放在网关位置,相当于大厦的保安。

    但是,楼道里的每个屋子还是需要有人或者锁门的(iptables)

问题:IDC机房部署了硬件防火墙,我们的服务器可以不开防火墙吗?

​ 解答:绝对不可以!大厦有保安,你的办公室就不锁门么?

本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2016/10/ch4-iptables-p/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。