安装ISP-fw(防火墙)在Linux上

在Linux上安装ISP-fw(防火墙)

ISP-fW是一个防火墙脚本,提供端口转发,包过滤,状态包检测,端口重定向,伪装,SNAT / DNAT,TOS,从不最后它生成带宽管理的htb规则。 使用ISP-fw,您可以将PC转换成具有整形能力的网关。

让我们开始:

我会假设你已经在你的盒子上安装了Linux。 我使用Debian机器,所以本教程将用于Debian Linux,但与其他发行版不同。

要求:

- GNU / Linux发行版
- GCC 3.4.6编译器
- Iproute2(推荐最新版本( http://linux-net.osdl.org/index.php/Iproute2 );
- Linux内核2.4.32或2.6.16( www.kernel.org );
- 对话框( http://invisible-island.net/dialog/的最新版本);
- flex版本2.5.4a; (不在上面)
- iptables v1.2.11或以上;
- DHCP(最新版本,从ftp://ftp.isc.org/isc/dhcp/ );
- Apache和php(webISP需要);
- ZendOptimizer 3.x(webISP所需);
- mySQL 4.x(webISP需要);
- MRTG(webISP要求);
- IPFM(webISP所需)。

为了整形,您必须为您的内核启用QoS; 这个2.4.x和2.6.x的列表:

Linux内核2.4.32( http://www.kernel.org
----------------------------------------------

如果从源代码编译内核,则需要选择以下选项:

#
# QoS and/or fair queuing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_POLICE=y

Linux内核2.6.16( http://www.kernel.org
------------------------------------------------

如果从源代码编译内核,则需要选择以下选项:

#
# QoS and/or fair queuing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_JIFFIES=y
# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
# CONFIG_NET_SCH_CLK_CPU is not set


#排队/排程

CONFIG_NET_SCH_CBQ = m
CONFIG_NET_SCH_HTB = m
CONFIG_NET_SCH_HFSC = m
CONFIG_NET_SCH_PRIO = m
CONFIG_NET_SCH_RED = m
CONFIG_NET_SCH_SFQ = m
CONFIG_NET_SCH_TEQL = m
CONFIG_NET_SCH_TBF = m
CONFIG_NET_SCH_GRED = m
CONFIG_NET_SCH_DSMARK = m
CONFIG_NET_SCH_NETEM = m
CONFIG_NET_SCH_INGRESS = m

#分类

CONFIG_NET_CLS = y
CONFIG_NET_CLS_BASIC = m
CONFIG_NET_CLS_TCINDEX = m
CONFIG_NET_CLS_ROUTE4 = y
CONFIG_NET_CLS_ROUTE = y
CONFIG_NET_CLS_FW = m
CONFIG_NET_CLS_U32 = m
CONFIG_CLS_U32_PERF = y
CONFIG_CLS_U32_MARK = y
CONFIG_NET_CLS_RSVP = m
CONFIG_NET_CLS_RSVP6 = m
CONFIG_NET_EMATCH = y
CONFIG_NET_EMATCH_STACK = 32
CONFIG_NET_EMATCH_CMP = m
CONFIG_NET_EMATCH_NBYTE = m
CONFIG_NET_EMATCH_U32 = m
CONFIG_NET_EMATCH_META = m
CONFIG_NET_EMATCH_TEXT = m
CONFIG_NET_CLS_ACT = y
CONFIG_NET_ACT_POLICE = m
CONFIG_NET_ACT_GACT = y
CONFIG_GACT_PROB = y
CONFIG_NET_ACT_MIRRED = m
CONFIG_NET_ACT_IPT = m
CONFIG_NET_ACT_PEDIT = m
CONFIG_NET_ACT_SIMP = m
CONFIG_NET_CLS_IND = y
CONFIG_NET_ESTIMATOR = y

!!! 注意 !!!
要成功使用mark_in_u32,你至少要使用内核2.6.16。

2.从http://isp-fw.sourceforge.net下载并安装isp-fw

root@htb:~# wget http://kent.dl.sourceforge.net/sourceforge/isp-fw/ispfw-9.5-rc1.deb
root@htb:~# mysql -u user -p password
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database ispfw;
Query OK, 1 row affected (0.00 sec)

mysql> quit
Bye
root@htb:~# dpkg -i ispfw-9.5-rc1.deb
SQL host [localhost]:
SQL user [root]: ispfw
SQL pass [changeme]: ****
SQL db [ispfw]: ispfw
Admin user for webpage [admin]: admin
Admin password for webpage [changeme]: ****
Installation successful.
Edit /var/www/webisp/include/config.php.
Change in php.ini session.auto_start to 1
Note that you need to install zendOptimizer http://www.zend.com/free_download/optimizer

你完成了安装ISP-fW。 我们去配置。

配置ISP-fW

根据需要编辑/etc/isp-fw/firewall.conf (您可以从控制台使用isped fireconfig来触发文件)。 更多解释的示例可以在文档或http://isp-fw.wiki.sourceforge.net/Config-Examples中找到

#generated by setup, see docs/cfg/
network_name = Example
domain = example.com
default_editor = vi
default_ipt_policy = ACCEPT
net_interface = eth0
lan_interface = eth1
net_ip = 45.93.203.4
clone_mac = no
gateway = 45.93.203.1
subnet = 255.255.255.0
fake_mac = 00:0D:A1:D9:D2:DA
download = start
upload = start
bandwith = 2048 kbps
burst = 0
qdisc = sfq
bgp_file = none
htb_mode = none
ssh_all = no 
#I set ssh_all to no, if so you have to enter a list of ips in /etc/isp-fw/ssh.allow
ssh_port = 22
use_squid = no
squid_port = 3128
load_custom = no
masquerade = yes
update_hosts = yes
optimize = yes
opt_conntrack = auto
mac_filter = no
auto_redirect = no
my_web = 1234
block_traceroute = no
flood = no
no_port_scan = no
ping_protection = yes
max_conn_per_port =
use_dhcp = yes

#DHCP section
class = 10.10.10.0/255.255.255.0
router = 10.10.10.1
range = 10.10.10.1 10.10.10.254
broadcast = 10.10.10.255
dns = 10.10.10.1, 10.10.10.2
wins = 10.10.10.2

/etc/isp-fw/spam.conf - 这里输入黑名单IP
/etc/isp-fw/badports.conf - 这里您输入黑名单的端口
/etc/isp-fw/port.allow - 在此输入您要接受的端口
/etc/isp-fw/ssh.allow - 这里输入要允许ssh的ip(s)

4.将客户端添加到ISP-fW

您可以使用命令isped clienti添加文件:

root@htb:~# isped clienti

现在,如果您的网络上有NAT,请确保选择masquerade = yes ,这是文件的外观:

#CAUTION dont leave blank fields! See docs/cfg/clienti.* for more info
#MAC              IP-LAN      IP-NET  MINE/MAXE/MINM/MAXM NAME
00:0E:2E:1F:E7:FA 10.10.10.2 0.0.0.0 16/128/1024/1024      Tom
00:0E:2E:1F:E1:AA 10.10.10.3 0.0.0.0 16/512/1024/1024      Britney
#00:01:1A:1A:AA:AA 10.10.10.4 0.0.0.0 16/512/1024/1024     Alice
#END

如果您有自己的类别的来自arin或任何其他注册人的IP,请务必设置伪装=否

因为这个例子会假设我们已经分配了类9.10.11.0/24。

#CAUTION dont leave blank fields! See docs/cfg/clienti.* for more info
00:0E:2E:1F:E7:FA 0.0.0.0 9.10.11.2 16/32/128/1024 Tom
00:02:AA:11:B2:AC 0.0.0.0 9.10.11.3 16/32/256/2048 Britney
#00:01:AA:03:04:05 0.0.0.0 9.10.11.4 16/32/256/2048 Alice
#END

提示

“16/32/128/1024”意味着汤姆拥有外部带宽最低16 kbps和最大32 kbps; 适用于城域网最小128kbps,最大1024 kbps。

“#”号表示客户端已禁用,因此无法上网。

“#>”表示客户端被重定向到您定制的已暂停网页

现在开始程序只是键入

ispfw start
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏