> 教程分享 > Iptables安装、基本操作与安全配置等

Iptables安装、基本操作与安全配置等

Iptables防火墙是设置不好,网站可能打不开,远程无法登陆等等问题。特别是一些技术大神,根本就不会像我们小白一样使用什么安全软件等,其实Iptables规则设置很好,对于安全性可以提升不少的哦!嘿嘿!一般我们购买的vps主机安装的系统自带Iptables防火墙,并且部分主机商已经设置了一些安全设置,但是也有一些是什么也没有的,需要自己动手去完成哦!下面是Iptables的安装、常用操作以及简单的安全设置!

1、安装iptables防火墙

如果没有安装iptables需要先安装

CentOS执行:

yum install iptables

Debian/Ubuntu执行:

apt-get install iptables

2. Iptables基本操作

启动iptables:service iptables start

关闭iptables:service iptables stop

重启iptables:service iptables restart

查看iptables状态:service iptables status

保存iptables配置:service iptables save

Iptables服务配置文件:/etc/sysconfig/iptables-config

Iptables规则保存文件:/etc/sysconfig/iptables

打开iptables转发:echo "1"> /proc/sys/net/ipv4/ip_forward

3、Iptables常见命令


a)  删除iptables现有规则

 iptables -F
 iptables -X
 iptables -Z 

b)  查看iptables规则

iptables –L(iptables –L –v -n) 

c)  增加一条规则到最后

iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 

d) 添加一条规则到指定位置

iptables -I INPUT 2 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 

e)  删除一条规则

iptabels -D INPUT 2 

f) 修改一条规则

iptables -R INPUT 3 -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 

g) 设置默认策略

iptables -P INPUT DROP 

h) 允许远程主机进行SSH连接

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

i) 允许本地主机进行SSH连接

iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A INTPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT 

j) 允许HTTP请求

iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT 
iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 

k) 限制ping 192.168.xxx.x主机的数据包数,平均2/s个,最多不能超过3个

iptables -A INPUT -i eth0 -d 192.168.xxx.x -p icmp --icmp-type 8 -m limit --limit 2/second --limit-burst 3 -j ACCEPT 

l) 限制SSH连接速率(默认策略是DROP)

iptables -I INPUT 1 -p tcp --dport 22 -d 192.168.xxx.x -m state --state ESTABLISHED -j ACCEPT  
iptables -I INPUT 2 -p tcp --dport 22 -d 192.168.xxx.x -m limit --limit 2/minute --limit-burst 2 -m state --state NEW -j ACCEPT 

4、使用iptables抵抗常见攻击


防止syn攻击

思路一:限制syn的请求速度(这个方式需要调节一个合理的速度值,不然会影响正常用户的请求)

iptables -N syn-flood 

iptables -A INPUT -p tcp --syn -j syn-flood 

iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN 

iptables -A syn-flood -j DROP 

思路二:限制单个ip的最大syn连接数

iptables –A INPUT –i eth0 –p tcp --syn -m connlimit --connlimit-above 15 -j DROP 

 防止DOS攻击

利用recent模块抵御DOS攻击

iptables -I INPUT -p tcp -dport 22 -m connlimit --connlimit-above 3 -j DROP 

单个IP最多连接3个会话

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH  

只要是新的连接请求,就把它加入到SSH列表中

Iptables -I INPUT -p tcp --dport 22 -m state NEW -m recent --update --seconds 300 --hitcount 3 --name SSH -j DROP  

5分钟内你的尝试次数达到3次,就拒绝提供SSH列表中的这个IP服务。被限制5分钟后即可恢复访问。

防止单个ip访问量过大

iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 30 -j DROP 

木马反弹

iptables –A OUTPUT –m state --state NEW –j DROP 

防止ping攻击

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/m -j ACCEPT