一、Iptables防火墙的安装
首先确定你的系统已经安装Iptables。打开SSH终端,输入:
1 |
whereis iptables |
如果能看到如下类似信息,说明你已经安装了iptables。
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
如果不是这个提示,或者没有任何提示,那你的Debian上可能没有安装iptables,需要先安装。
如果是Debian/Ubuntu就执行:
1 |
apt-get install iptables |
CentOS执行:
1 |
yum install iptables |
二、建立用户
三、iptables的规则
其实就是利用iptables让某用户使用指定IP出口,代码如下:
1 2 |
iptables -t mangle -A OUTPUT -m owner --uid-owner 501 -j MARK --set-mark 501 iptables -t nat -A POSTROUTING -m mark --mark 501 -j SNAT --to-source 10.20.30.40 |
其中,三个 “501” 是用户ID,通过 cat /etc/passwd 查看。“10.20.30.40”是指定用户使用IP,可根据你的实际情况自行替换。
四、iptables规则的保存和加载
CentOS:
如果系统是CentOS,可能会存在安装好iptables后并不开机自启动,可以执行一下:
1 chkconfig --level 345 iptables on将其加入开机启动:
1 service iptables save
Debian/Ubuntu:
另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。需要按如下步骤让网卡关闭时保存iptables规则,启动时加载iptables规则:
网卡关闭时保存iptables规则,目的是让网卡关闭(关机)时将第三步时输入的规则保存到相应文件中:
1 vi /etc/network/if-post-down.d/iptables添加如下内容:
12 #!/bin/bashiptables-save > /etc/iptables.rules添加执行权限:
1 chmod +x /etc/network/if-post-down.d/iptables网卡启动时加载iptables规则,目的上在网卡启动(开机)时加载已保存到文件中的规则:
1 vi /etc/network/if-pre-up.d/iptables添加如下内容:
12 #!/bin/bashiptables-restore < /etc/iptables.rules添加执行权限:
1 chmod +x /etc/network/if-pre-up.d/iptables
以上步骤操作完重新启动下VPS即可通过相应的用户使用不同的IP做出口。更多的iptables的使用方法可以执行 iptables –help 或网上搜索一下iptables参数的说明。