首页 > Linux > 利用Iptables防火墙让SSH代理使用不同的IP出口
2014
05-02

利用Iptables防火墙让SSH代理使用不同的IP出口

一、Iptables防火墙的安装

      首先确定你的系统已经安装Iptables。打开SSH终端,输入:

whereis iptables

      如果能看到如下类似信息,说明你已经安装了iptables。
iptables: /sbin/iptables /usr/share/iptables /usr/share/man/man8/iptables.8.gz
      如果不是这个提示,或者没有任何提示,那你的Debian上可能没有安装iptables,需要先安装。
如果是Debian/Ubuntu就执行:

apt-get install iptables

CentOS执行:

yum install iptables

二、建立用户

      请参考《VPS中创建SSH代理账户》

三、iptables的规则
      其实就是利用iptables让某用户使用指定IP出口,代码如下:

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后并不开机自启动,可以执行一下:

chkconfig --level 345 iptables on

      将其加入开机启动:

service iptables save

Debian/Ubuntu:

      另外更需要注意的是Debian/Ubuntu上iptables是不会保存规则的。需要按如下步骤让网卡关闭时保存iptables规则,启动时加载iptables规则:

网卡关闭时保存iptables规则,目的是让网卡关闭(关机)时将第三步时输入的规则保存到相应文件中:

vi /etc/network/if-post-down.d/iptables

      添加如下内容:

#!/bin/bash
iptables-save > /etc/iptables.rules

      添加执行权限:

chmod +x /etc/network/if-post-down.d/iptables

网卡启动时加载iptables规则,目的上在网卡启动(开机)时加载已保存到文件中的规则:

vi /etc/network/if-pre-up.d/iptables

      添加如下内容:

#!/bin/bash
iptables-restore < /etc/iptables.rules

      添加执行权限:

chmod +x /etc/network/if-pre-up.d/iptables

      以上步骤操作完重新启动下VPS即可通过相应的用户使用不同的IP做出口。更多的iptables的使用方法可以执行 iptables --help 或网上搜索一下iptables参数的说明。

最后编辑:
作者:耗子
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。

*

code