FreeBSD配置防火墙开启SSH服务的方法

1、配置FreeBSD 防火墙
ee /etc/rc.conf   #编辑,在最后添加
firewall_enable="yes"  #开启防火墙
net.inet.ip.fw.verbose=1   #启用防火墙日志功能
net.inet.ip.fw.verbose_limit=5  #启用防火墙日志功能
natd_enable="YES"  # 开启防火墙NAT功能
natd_interface="rl0"     
natd_flags="-dynamic -m"
firewall_script="/etc/ipfw.rules"      #自定义防火墙规则路径
按esc,回车,再按a保存配置
2、添加防火墙规则

ee /etc/ipfw.rules    #编辑防火墙规则,添加以下代码

#!/bin/sh
################ Start of IPFW rules file ######################
# Flush out the list before we begin.
ipfw -q -f flush

# Set rules command prefix
cmd="ipfw -q add"
skip="skipto 800"
pif="rl0"     # public interface name of NIC
              # facing the public Internet

#################################################################
# No restrictions on Inside LAN Interface for private network
# Change xl0 to your LAN NIC interface name
#################################################################
$cmd 005 allow all from any to any via xl0

#################################################################
# No restrictions on Loopback Interface
#################################################################
$cmd 010 allow all from any to any via lo0

#################################################################
# check if packet is inbound and nat address if it is
#################################################################
$cmd 014 divert natd ip from any to any in via $pif

#################################################################
# Allow the packet through if it has previous been added to the
# the "dynamic" rules table by a allow keep-state statement.
#################################################################
$cmd 015 check-state

#################################################################
# Interface facing Public Internet (Outbound Section)
# Check session start requests originating from behind the
# firewall on the private network or from this gateway server
# destined for the public Internet.
#################################################################

# Allow out access to my ISP's Domain name server.
# x.x.x.x must be the IP address of your ISP's DNS
# Dup these lines if your ISP has more than one DNS server
# Get the IP addresses from /etc/resolv.conf file
$cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep-state
# Allow out access to my ISP's DHCP server for cable/DSL configurations.
$cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep-state

# Allow out non-secure standard www function
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep-state

# Allow out secure www function https over TLS SSL
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep-state

# Allow out send & get email function
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep-state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep-state

# Allow out FreeBSD (make install & CVSUP) functions
# Basically give user root "GOD" privileges.
$cmd 070 $skip tcp from me to any out via $pif setup keep-state uid root

# Allow out ping
$cmd 080 $skip icmp from any to any out via $pif keep-state

# Allow out Time
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep-state

# Allow out nntp news (i.e. news groups)
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep-state

# Allow out secure FTP, Telnet, and SCP
# This function is using SSH (secure shell)
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep-state

# Allow out whois
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep-state

# Allow ntp time server
$cmd 130 $skip udp from any to any 123 out via $pif keep-state

#################################################################
# Interface facing Public Internet (Inbound Section)
# Check packets originating from the public Internet
# destined for this gateway server or the private network.
#################################################################

# Deny all inbound traffic from non-routable reserved address spaces
#$cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
$cmd 301 deny all from 172.16.0.0/12   to any in via $pif  #RFC 1918 private IP
$cmd 302 deny all from 10.0.0.0/8      to any in via $pif  #RFC 1918 private IP
$cmd 303 deny all from 127.0.0.0/8     to any in via $pif  #loopback
$cmd 304 deny all from 0.0.0.0/8       to any in via $pif  #loopback
$cmd 305 deny all from 169.254.0.0/16  to any in via $pif  #DHCP auto-config
$cmd 306 deny all from 192.0.2.0/24    to any in via $pif  #reserved for docs
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif  #Sun cluster
$cmd 308 deny all from 224.0.0.0/3     to any in via $pif  #Class D & E multicast

# Deny ident
$cmd 315 deny tcp from any to any 113 in via $pif

# Deny all Netbios service. 137=name, 138=datagram, 139=session
# Netbios is MS/Windows sharing services.
# Block MS/Windows hosts2 name server requests 81
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81  in via $pif

# Deny any late arriving packets
$cmd 330 deny all from any to any frag in via $pif

# Deny ACK packets that did not match the dynamic rule table
$cmd 332 deny tcp from any to any established in via $pif

# Allow traffic in from ISP's DHCP server. This rule must contain
# the IP address of your ISP's DHCP server as it's the only
# authorized source to send this packet type.
# Only necessary for cable or DSL configurations.
# This rule is not needed for 'user ppp' type connection to
# the public Internet. This is the same IP address you captured
# and used in the outbound section.
$cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep-state

# Allow in standard www function because I have Apache server
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src-addr 2

# Allow in secure FTP, Telnet, and SCP from public Internet
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2

# Allow in non-secure Telnet session from public Internet
# labeled non-secure because ID & PW are passed over public
# Internet as clear text.
# Delete this sample group if you do not have telnet server enabled.
$cmd 390 allow tcp from any to me 23 in via $pif setup limit src-addr 2

# Reject & Log all unauthorized incoming connections from the public Internet
$cmd 400 deny log all from any to any in via $pif

# Reject & Log all unauthorized out going connections to the public Internet
$cmd 450 deny log all from any to any out via $pif

# This is skipto location for outbound stateful rules
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any

# Everything else is denied by default
# deny and log all packets that fell through to see what they are
$cmd 999 deny log all from any to any
################ End of IPFW rules file ###############################

  

备注:参数说明:
#$cmd 300 deny all from 192.168.0.0/16  to any in via $pif  #RFC 1918 private IP
我的IP地址是192.168.21.173,是属于192.168.0.0/16 IP段,所以这里要注释掉这一行,允许连接外网,否则主机无法联网。
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src-addr 2
是开启SSH默认端口22
3、重启网络服务,使防火墙规则生效

/etc/netstart  #重启网络
/etc/rc.d/ipfw start     #开启防火墙
ipfw disable firewall    #关闭防火墙
ipfw enable firewall   #开启防火墙
/etc/rc.d/ipfw  restart   #重启防火墙
sh /etc/ipfw.rules     #使防火墙规则生效
4、开启SSH服务
(1)ee  /etc/inetd.conf  #编辑,去掉sshd前面的#
ssh     stream  tcp     nowait  root    /usr/sbin/sshd          sshd -i -4
(2)ee  /etc/rc.conf   #编辑,在最后添加
sshd_enable="yes"  
(3)ee  /etc/ssh/sshd_config  #编辑配置文件
PermitRootLogin yes   #允许root登录
PasswordAuthentication yes    #使用密码验证
PermitEmptyPasswords no   #不允许空密码登录
/etc/rc.d/sshd start  #启动ssh服务
/etc/rc.d/sshd restart    #重启ssh
配置完成,现在已经可以使用Putty等远程连接工具连接服务器了。
#####################################################
扩展阅读:

有两种加载自定义 ipfw 防火墙规则的方法。
其一是将变量 firewall_type 设为包含不带 ipfw(8) 命令行选项的 防火墙规则 文件的完整路径。
例如:
add allow in
add allow out
firewall_type="open"参数说明
open ── 允许所有流量通过。
client ── 只保护本机。
simple ── 保护整个网络。
closed ── 完全禁止除回环设备之外的全部 IP 流量。
UNKNOWN ── 禁止加载防火墙规则。
filename ── 到防火墙规则文件的绝对路径。
IPFW防火墙规则集样例在这两个文件中
/etc/rc.firewall
/etc/rc.firewall6
除此之外, 也可以将 firewall_script 变量设为包含 ipfw 命令的可执行脚本, 这样这个脚本会在启动时自动执行。
#####################################################

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索cmd
, 防火墙
, to
, from
, out
any
freebsd防火墙配置、freebsd开启ssh、思科防火墙ssh配置、华为防火墙ssh配置、防火墙ssh配置,以便于您获取更多的相关知识。

时间: 2024-11-03 21:53:33

FreeBSD配置防火墙开启SSH服务的方法的相关文章

FreeBSD系统中开启SSH服务方法

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎所有U NIX平台-包括HP-UX.Linux.AIX.Solaris.Digital UNIX.Irix,以及其他平台-都可运行SSH 当安装完freebsd系统后,默认是没开启SSHD服务的,需要手工开启. 首先vi编辑/etc

ubuntu-虚拟机下安装了Ubuntu,开启ssh服务无法连接的问题

问题描述 虚拟机下安装了Ubuntu,开启ssh服务无法连接的问题 我在Ubuntu下开启了ssh服务(确认一定开启了),端口号也没有换默认是22,然后我在我的主机上xshell下连接,总是提示连接失败,而且我在cmd中也ping不同,求各位帮我看看是什么问题,在线等!!! 解决方案 首先你要注意下虚拟机的网络配置,主要分三种,方式不一样,这里介绍下NAT方式你试试. 1.在windows的"网络连接"中右击"本地连接",选择"属性",然后共享到

如何在ubuntu开启ssh服务-使 SecureCRT远程登录

不少人在第一次使用ubuntu系统的时候,用了很多种方法均没有办法开启SSH服务,ubuntu和其它的linux系统有所区别,因为在ubuntu下,service  sshd  restart  之类的开启服务的命令将无法使用,那么该怎么办呢?       SecureCRT远程登录利用的是SSH原理.什么是SSH?       SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安

Linux 下开启ssh服务(转)

 二.SSH     SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH是替代Telnet和其他远程控制台管理应用程序的行业标准.SSH命令是加密的并以几种方式进行保密.SSH有很多功能,它既可以代替 telnet,又可以为ftp.pop

SUSE Linux Enterprise Server 设置防火墙开启ssh远程端口的方法

1.vi /etc/sysconfig/SuSEfirewall2 #编辑防火墙设置 FW_SERVICES_EXT_TCP="22" #开启22端口 rcSuSEfirewall2 restart #重启防火墙 2.安装ssh zypper serach ssh #查找软件包 zypper install openssh #安装,或者使用yast2 -i openssh 命令chkconfig sshd on #设置开机启动##############################

Win7纯净版系统下安装并开启Telnet服务的方法

  1.首先依次打开"开始--控制面板--程序--在程序和功能",然后点击左侧的"打开或关闭Windows功能"项; 2.弹出Windows功能设置对话框之后,找到并勾选"Telnet客户端"和"Telnet服务器",最后点击确定按钮等待系统安装即可; 3.安装完成后,Telnet服务默认情况下是禁用的,还需要我们进行手动开启,首先在运行对话框中输入servcies.msc打开服务管理器; 4.然后在服务管理器中找到并双击Te

windows下关闭系统开启IPv6服务的方法

  IPv6是下一代的因特网协议,因为现在使用的IPv4协议越来越不够用了,所以一些人就开发了IPv6,保证IP地址足够使用.但是IPv6还没有普及,但是系统里确是默认开启了这个服务.所以我们可以关闭它. 1.首先我们进入电脑的控制面板,可以在"charm bar"上点击"设置">"控制面板". 2.在"控制面板"窗口找到并点击进入"网络和共享中心". 3.这里看到我的电脑有两种网络连接方式,wifi

win7系统开启telnet服务的方法

  首先打开控制面板,点击程序. 点击程序和功能当中的打开或关闭windows功能. 在windows功能窗口中找到并勾选Telnet客户端,点击确定即可.

Win8开启telnet服务的方法

  一.右键开始键,单击"程序与功能" 二.在弹出的"程序和功能"窗口单击"启用和关闭windows功能" 三.把"telnet服务器"和"telnet客户端"前的勾打上. 四.等待更改完成. 五.打开命令提示符,键入"telnet -help",如果出现下面的提示,就可以使用了.