技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Ubuntu>正文
Ubuntu Server 20.04.x LTS基于iptables防火墙设置
2021年04月04日 Ubuntu 暂无评论 ⁄ 被围观 13,725次+

Ubuntu Server默认没有开启任何防火墙的,但是默认安装了ufw防火墙,我们这里推荐使用iptables防火墙。

ufw status #查看系统自带的ufw防火墙状态

Status: inactive #表示关闭

ufw disable #关闭ufw防火墙,参数enable是开启,我们这里关闭

apt-get remove ufw #卸载ufw

apt-get purge ufw #清除ufw依赖包

whereis iptables #查看系统是否安装防火墙

apt-get install iptables #请运行此命令安装防火墙

一、配置防火墙

mkdir /etc/sysconfig #创建防火墙配置文件存放目录

touch /etc/sysconfig/iptables #创建防火墙配置文件

nano /etc/sysconfig/iptables #编辑添加防火墙规则

# sample configuration for iptables service

# you can edit this manually or use system-config-firewall

# please do not ask us to add additional ports/services to this default configuration

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

ctrl+o #保存

ctrl+x #退出

/sbin/iptables-restore < /etc/sysconfig/iptables #使防火墙规则生效

特别注意:

1、修改完防火墙规则文件/etc/sysconfig/iptables后,需要再次执行

/sbin/iptables-restore < /etc/sysconfig/iptables命令,防火墙规则才能生效。

2、系统重启后,防火墙默认不会开机启动,需要再次执行/sbin/iptables-restore < /etc/sysconfig/iptables命令,防火墙规则才能生效。

3、如果要临时关闭防火墙,需要清空/etc/sysconfig/iptables配置文件,再次执行/sbin/iptables-restore < /etc/sysconfig/iptables命令。

4、如果要再次开启防火墙,需要恢复/etc/sysconfig/iptables配置文件,再次执行/sbin/iptables-restore < /etc/sysconfig/iptables命令。

二、添加防火墙管理脚本

nano /etc/init.d/iptables #编辑添加脚本

#脚本中的IPTABLES_CONFIG=/etc/sysconfig/iptables是防火墙配置规则文件的路径。

#!/bin/sh -e

### BEGIN INIT INFO

# Provides: iptables

# Required-Start: mountvirtfs ifupdown $local_fs

# Default-Start: S

# Default-Stop: 0 6

### END INIT INFO

# July 9, 2007

# James B. Crocker <ubuntu@james.crocker.name>

# Creative Commons Attribution - Share Alike 3.0 License (BY,SA)

# Script to load/unload/save iptables firewall settings.

PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

IPTABLES=/sbin/iptables

IPTABLES_SAVE=/sbin/iptables-save

IPTABLES_RESTORE=/sbin/iptables-restore

IPTABLES_CONFIG=/etc/sysconfig/iptables

[ -x $IPTABLES ] || exit 0

. /lib/lsb/init-functions

case "$1" in

start)

log_action_begin_msg "Starting firewall"

type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true

if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then

log_action_end_msg $?

else

log_action_end_msg $?

fi

type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true

;;

stop)

log_action_begin_msg "Saving current firewall configuration"

if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then

log_action_end_msg $?

else

log_action_end_msg $?

fi

log_action_begin_msg "Flushing ALL firewall rules from chains!"

if $IPTABLES -F ; then

log_action_end_msg $?

else

log_action_end_msg $?

fi

log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"

if $IPTABLES -X ; then

$IPTABLES -P INPUT ACCEPT

$IPTABLES -P FORWARD ACCEPT

$IPTABLES -P OUTPUT ACCEPT

log_action_end_msg $?

else

log_action_end_msg $?

fi

;;

save)

log_action_begin_msg "Saving current firewall configuration"

if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then

log_action_end_msg $?

else

log_action_end_msg $?

fi

;;

force-reload|restart)

log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"

$IPTABLES -F

$IPTABLES -X

if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then

log_action_end_msg $?

else

log_action_end_msg $?

fi

;;

*)

echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"

exit 1

;;

esac

exit 0

ctrl+o #保存

ctrl+x #退出

chmod +x /etc/init.d/iptables #添加执行权限

update-rc.d iptables defaults 99 #添加服务

systemctl daemon-reload

systemctl start iptables.service #启动

service iptables stop #停止

#现在就可以使用上面的命令管理防火墙了,启动、停止

#如果修改了防火墙配置规则,还是需要执行/sbin/iptables-restore < /etc/sysconfig/iptables命令使其生效,然后再使用防火墙管理脚本进行管理

三、设置防火墙开机启动

3.1使用系统启动脚本进行设置

cp /lib/systemd/system/rc-local.service /lib/systemd/system/rc-local.service-bak #备份

ln -s /lib/systemd/system/rc-local.service /etc/systemd/system/ #创建软连接文件

nano /lib/systemd/system/rc-local.service #添加[Install]段到最后

# SPDX-License-Identifier: LGPL-2.1+

#

# This file is part of systemd.

#

# systemd is free software; you can redistribute it and/or modify it

# under the terms of the GNU Lesser General Public License as published by

# the Free Software Foundation; either version 2.1 of the License, or

# (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by

# systemd-rc-local-generator if /etc/rc.local is executable.

[Unit]

Description=/etc/rc.local Compatibility

Documentation=man:systemd-rc-local-generator(8)

ConditionFileIsExecutable=/etc/rc.local

After=network.target

[Service]

Type=forking

ExecStart=/etc/rc.local start

TimeoutSec=0

RemainAfterExit=yes

GuessMainPID=no

[Install]

WantedBy=multi-user.target

Alias=rc-local.service

ctrl+o #保存

ctrl+x #退出

nano /etc/rc.local #创建文件,添加防火墙启动命令

#!/bin/bash

/sbin/iptables-restore < /etc/sysconfig/iptables

ctrl+o #保存

ctrl+x #退出

chmod +x /etc/rc.local #添加执行权限

#重新启动系统进行测试,现在防火墙已经开机自启动了

3.2使用sysv-rc-conf服务设置开机启动

Ubuntu Server 20.x系统中默认已经没有sysv-rc-conf包了,我们无法直接使用apt-get安装

现在我们修改apt-get源

cp /etc/apt/sources.list /etc/apt/sources.list #备份

nano /etc/apt/sources.list #编辑添加下面一行代码

deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

ctrl+o #保存

ctrl+x #退出

apt-get update #更新软件源索引

apt-get install sysv-rc-conf #安装

#我们使用Ubuntu Server 14.x 的apt-get源来安装sysv-rc-conf,trusty表示Ubuntu Server 14.x版本

cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig #拷贝

sysv-rc-conf iptables on #设置开机启动

chkconfig iptables on

sysv-rc-conf #查看启动服务

#重新启动系统进行测试,现在防火墙已经开机自启动了

至此,Ubuntu Server 20.04.x LTS基于iptables防火墙设置教程完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2024 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3