1.1. 设置端口转发
现在系统就安装完成了,但查看ip发现居然不是跟我本机的同一局域网。如果想本机访问当虚拟机,可以用很多种方式实现,我这里就是用virtualBox的端口转发功能。
1.点右键打开设置
2.必须是nat方式,点击下方的按钮
3.因为我这个是web服务器,只需要对外两个端口就行了,一个是80端口,一个是ssh连接的22端口,这个功能主要是通过virtualBox的转发功能,通过本机的某些端口(红方框),转发到虚拟主机内的指定端口(绿框是虚拟主机的ip地址)
4.保存后,在外面用ssh的连接工具看看能否连接上去,不过在连接之前需要关闭ssh的dns反解析,不然用ssh工具连接需要等很久才能连接上去。
vim /etc/ssh/sshd_config
修改
UseDNS no
重启ssh服务
service sshd restart
保存后,再使用ssh工具连接,例如Xshell。
连接上去表示端口转发起作用了。下面就要配置iptable防火墙了。
1.2. 关闭selinux
selinux 好像是linux的一个安全软件,但是我不会用。
如果开启这个软件,启动jdk、tomcat的时候要配太多东西了,太麻烦了,而且我只是个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 ACCEPTiptables -A OUTPUT -o lo -j ACCEPT
1.3.5.4. 允许外部ping本机
在规则后面追加对外部能ping通本机的
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPTiptables -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 ACCEPTiptables -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的规则配置就完成了。