防火墙简单应用

iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --syn -m state --state NEW --dport 25 -j ACCEPT

Iptables -t filter -P FORWARD DROP

iptables -t nat -P POSTROUTING DROP


iptables -A INPUT -p tcp --syn -m state --state NEW --dport
iptables -A INPUT -p tcp -s 211.147.90.100/32 -m multiport --dports 13579,28005,28009 -j ACCEPT

 

结尾(不加上面规则起不到过滤作用)

iptables -A INPUT -p all -j DROP              //禁止除上面放行端口的所有端口请求,这条规则很重要,防止一些不用端口被恶意利用攻击

 

插入规则

iptables -I INPUT 4 -s 192.168.1.1 -j ACCEPT

 

multiport :不连续的多端口匹配

允许源192.168.1.123访问22端口的ip进来
iptables -A INPUT -s 192.168.1.123 -p tcp --dport 22 -j ACCEPT

-m :匹配
state 匹配包的状态
--state
NEW
ESTABLISHED
RELETED
INVAILD

-p
后面必须接协议

--syn = --tcp-flags syn,ack,fin syn
表示连接请求

syn 连接请求
ack 请求确认
fin 断开请求

限制apache每秒新建连接数为1,峰值为3

每秒新建连接数 一般都是由防火墙来做,apache本身好像无法设置每秒新建连接数,只能设置最大连接:

iptables -A INPUT -d 172.16.100.1 -p tcp --dport 80 -m limit --limit 1/second -j ACCEPT

172.16.100.1为apache地址(本机地址)

iptables实现端口映射和端口负载均衡
使用 DNAT 来实现,但 IP 不要写 127.0.0.1,而应该写用户可以访问到的 IP 地址
比如prerouting
iptables -t nat -A PREROUTING -d 12.1.1.1 -p tcp --dport 80 -j DNAT --to 12.1.1.1:8080 //将对IP为12.1.1.1,端口为80的请求转发到8080端口

 

实现外网访问内网服务

iptables -t nat -A PREROUTING -i eth0 -d 12.1.1.1 -p tcp --dport 8080 -j DNAT --to 12.1.1.2:80

iptables -t nat -A POSTROUTING -o eth1 -d 12.1.1.2 -p tcp --dport 80 -j SNAT --to 12.1.1.3   //修改output源IP

(对于PREROUTING链,只能用-i指定进来的网络接口;而对于POSTROUTING和 OUTPUT只能用-o指定出去的网络接口)

负载均衡

iptables -t nat -A PREROUTING -d 192.168.10.160 -p tcp --dport 3000 -j DNAT --to 192.168.10.160:3001-3003

 

posted @ 2017-12-01 15:41  叮伱格斐呃  阅读(160)  评论(0编辑  收藏  举报
Live2D