1.1.       设置端口转发

 

现在系统就安装完成了,但查看ip发现居然不是跟我本机的同一局域网。如果想本机访问当虚拟机,可以用很多种方式实现,我这里就是用virtualBox的端口转发功能。

 

1.点右键打开设置

 

2.必须是nat方式,点击下方的按钮

 

3.因为我这个是web服务器,只需要对外两个端口就行了,一个是80端口,一个是ssh连接的22端口,这个功能主要是通过virtualBox的转发功能,通过本机的某些端口(红方框),转发到虚拟主机内的指定端口(绿框是虚拟主机的ip地址)

 

4.保存后,在外面用ssh的连接工具看看能否连接上去,不过在连接之前需要关闭sshdns反解析,不然用ssh工具连接需要等很久才能连接上去。

 

vim /etc/ssh/sshd_config

修改

UseDNS no

重启ssh服务

service sshd restart

 

保存后,再使用ssh工具连接,例如Xshell

连接上去表示端口转发起作用了。下面就要配置iptable防火墙了。

 

 

1.2.       关闭selinux

 

selinux 好像是linux的一个安全软件,但是我不会用。

如果开启这个软件,启动jdktomcat的时候要配太多东西了,太麻烦了,而且我只是个linux菜鸟,我就把这个关闭了。

 

注意:如果是真正的服务器,请请教专门的运维工程师

 

# 打开selinux配置文件

vim /etc/selinux/config

 

# 关闭,将enforcing修改为disabled

SELINUX=disabled

 

# 保存文件并重启就可以关闭selinux了。

 

 

1.3.       设置iptables

 

因为是一个web服务器,所以对外端口只需要一个80端口就行了(不包括ssh连接端口),mysql也不用对外暴露,ftp服务器也没有,所以我这里是这样配置的。

 

1.3.1.           查看配置


以下命令可以查看防火墙的当前配置

iptables -L -n

 

 

1.3.2.           清除配置

 

我这里是刚安装的系统,需要重新配置规则,所以需要清除所有规则。以下命令就是清除所有的防火墙规则

iptables -F        #清除预设表filter中的所有规则链的规则

iptables -X        #清除预设表filter中使用者自定链中的规则

 

清除所有规则,就像没有开启iptables服务是一样的效果

 

1.3.3.           保存配置

 

以下命令可以保存对防火墙做的所有修改,这样就可以真正的修改防火墙规则。

/etc/rc.d/init.d/iptables save

 

1.3.4.           重启

 

重启完iptables服务后,配置防火墙规则正式开始

service iptables restart

 

1.3.5.           配置允许规则


配置防火墙规则,理论上是需要禁止所有,然后再配置允许通过的,但这时我们可能使用ssh工具连接的vps或虚拟机,如果禁止所有流入,可能ssh工具会立即断开,再也连接不上去了,所以我们先配置允许ssh的端口,在配置所有都禁止流入流出

 

1.3.5.1.      允许22端口

 

在规则后面追加对22端口的允许流入和允许流出

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

 

1.3.5.2.      允许80端口

 

在规则后面追加对80端口的允许流入和允许流出

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT

 

1.3.5.3.      允许loopback


在规则后面追加对loopback的允许流入和允许流出

 

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

  

1.3.5.4.      允许外部ping本机


在规则后面追加对外部能ping通本机

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT
 
1.3.5.4.      允许本机ping外部机器


在规则后面追加对本机能ping通外部的机器

 

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT


1.3.5.5.      允许dns解析


在规则后面追加对本机能解析dns

 

iptables -t filter -A INPUT -p udp -m udp -j ACCEPT

 

 

 

先保存一下,重启下,如果ssh工具不断则继续下一步操作

/etc/rc.d/init.d/iptables save

service iptables restart

 

1.3.6.           配置禁止规则

 

禁止所有流的通过,表示流入,流出,转发流都是默认不允许通过的规则

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

注意,如果在本机操作,以上三条命令可以放在第一步执行。如果是ssh连接工具操作,在打下第一行命令,就会断掉。

保存重启一下。

 

1.3.7.           完成

对以上的配置进行保存重启,规则就起效了。

如果只是以上的配置,效果是如下图的那样:

 

当然了,深入iptables是一本很厚的书,我这里粗略的配置只是做一个简单的规则配置。iptables是一个功能强大的防火墙,如果真的需要深入了解iptables,请阅读其他书籍。

 

iptables的规则配置就完成了。