版本:大小:355.31M
类别: 操作系统 系统:其他
立即下载OpenBsd是一款多平台,基于4.4BSD的类UNIX的操作系统,其是BSD衍生出的三种免费操作系统之一,被称为世界上最安全的操作系统。OpenBsds包含一些在其他操作系统缺少或是选择性的安全功能,它极度重视程式码的品质,任何对核心的修改都需要经过严格的程式码审阅,它完全集成了密码安全软件可保证数据安全。OpenBsds可以再17种不同的硬件环境下运行(包含DEC Alpha、Intel i386、Hewlett-Packard PA-RISC和AMD64等),像FreeBSD和NetBSD一样,OpenBSD也有很多应用软件支持,它包含了许多免费软件包的定制版本,它的软件库没有FreeBSD中的那么大,但是包含了大多数你想给Unix服务器或者工作站安装的工具。新版OpenBsds是目前做出最大改动的版本,其中加入了大量改进,包括硬件支持、通用网络堆栈、安装器、路由后台、用户层网络和安全性,此外还有各种核心组件和包,涵盖了Apache Web服务器、OpenSMTPD、OpenSSH、LibreSSL以及Syslogd。
一、打开OpenBsd安装包,并进入安装第一步,此时会出现三个选项,输入I进入安装过程,输入U进入升级过程,输入S则进入一个shell环境,进入shell环境后可以输入install重新进入安装程序
二、输入I进行安装
1.进入Choose your keyboard layout(选择键盘布局)选项,一般都为us,也可以输入L列出键盘布局备选选项查看,然后选择自己的键盘布局
2.进入Choose your keyboard layout(设置主机名)选项,这里设置为VM1
3.进入网络配置部分,系统列出了当前全部的网卡,这里有两个vic0和vlan0,其中vic0是我们虚拟机配置里那个采用桥接方式的那个网卡,选择配置那一块网卡,默认为vic0,回车
4.进入配置ipv4地址选项,默认是dhcp,我们采用静态ip,输入ipv4的地址:192.168.1.123回车,进入设置掩码选项,默认为255.255.255.0,如不对,自己在后面填写正确的掩码,回车,不配置ipv6地址,默认none,回车
5.再一次进入选择网卡进行配置的选项,如果有多个网卡,这里可以配置下一个,这里选择done完成网卡配置,回车进入配置网关地址选项,填入19.168.1.1回车
6.进入设置dns域名的选项,如果公司有域名这里可以填写如( openbsd.org或者baidu.com等)这里我填写openbsd.org。那么我的机器将来的唯一标识则是主机名加上域名,即为:VM1.openbsd.org。填写好回车,进入DNS解析服务器的ip地址,多个dns解析服务器的ip用逗号隔开,填写:202.106.195.68。以上操作步骤如下图:
三、回车,系统询问还要进行其他的网络配置吗,默认NO回车,进入设置用户密码的选项,不回显
1.连续输入两次。回车,系统询问是否默认启动sshd服务,默认为yes,建议选择yes开启ssh登陆
2.系统询问是否默认启动ntpd服务,这是个时间同步服务,可以开启也可以不开启,如果系统需要准确的时间,建议开启以便和网络上的时间服务器进行时间同步,默认为no,这里选择不开启
3.回车系统询问是否期望运行X window系统,默认为yes,这里可以选择yes也可以选择no,我这里选择yes
4.回车系统询问是否默认运行x window ,默认值为no,这里选择默认值,即不启动x window,回车系统询问change the console to com0默认no即可
5.下一步系统让新建用户,这里不新建用户选择no即可
6.下一步,选择时区,可以输入L查看备选选项,这里选择Asia/Shanghai选项
7.下一步系统列出了当前可用的磁盘,如果有多快磁盘,选择指定的磁盘回车,系统提示是否在/etc/fstab里面使用DUIDS替代默认的设备名称,默认为yes即可
8.下一步系统提示是使用整个磁盘还是编辑MBR以使用部分磁盘,这里选择Whole全部即可
四、下一步,系统会默认有一个分区方案,如果同意的话输入A采用自动分区方案,或者输入E编辑自动分区的方案或者输入c采用自定义分区方案,这里我采用自定义分区方案,输入c如图
五、下一步进入自定义分区,输入?可以查看分区命令,分区编号可以是a到p的任何字母,但要注意,分区的时候,两个分区号代表特殊意义,即 b代表交换分区,c代表整个磁盘,所以添加第一个分区 a a即可,添加交换分区 a b ,不能使用a c,添加第三个分区 a
六、offset是分区开始的地方,size是分区的大小,fs type默认即可,mount point填入挂载点。这里我给/分区分了10G的空间,交换分区分了1G空间,剩下29G分给了/opt分区
七、完成后,系统进入选择安装介质的选项,默认cd回车即可,选择cd0,第一个光驱,回车,选择路径,默认即可。系统列出了都有哪些包可以安装
八、取消选择的包可以使用-包名的方式,如-game51.tgz,选择一个包输入报名回车即可,选择好所要安装的包后回车开始安装openbsd系统
九、安装完成后进入shell,为了使系统生效,我们需要重新启动系统,输入reboot
十、重新启动过程中,系统会生成rsa密钥对等等,启动完成后,如输入root密码进入系统
1、Alpha:基于 Digital Alpha的系统
2、amd64:基于 AMD64 的系统
3、Cat:Strongarm 110 评估板 (Evaluation Board)
4、hp300:Hewlett-Packard HP 9000 系列的 300 和 400 工作站
5、HP/PA:Hewlett-Packard Precision Architecture (PA-RISC) 系统
6、i386:基于 Intel® i386 体系结构和兼容处理器的标准计算机
7、luna88k:Omron LUNA-88K 和 LUNA-88K2 工作站
8、mac68k:基于 Motorola 680x0 的带 MMU 的 Apple Macintosh
9、macppc:从 iMac 开始,基于 Apple PowerPC 的计算机
10、mvme68k:基于 Motorola 680x0 的 VME 系统
11、mvme88k:基于 Motorola 881x0 的 VME 系统
12、SGI:基于 SGI MIPS 的工作站
13、SPARC:Sun sun4-、sun4c- 和 sun4m 级的 SPARC 系统
14、SPARC64:Sun UltraSPARC 系统
15、VAX:基于 Digital VAX 的系统
16、Zaurus:Sharp Zaurus C3x00 PDA
一、为了更加安全,为了更加容易更新升级系统和包,可以使用 M:Tier的openup
$ ftp https://stable.mtier.org/openup
$ chmod +x openup
$ sudo openup
===> Checking for openup update
===> Installing/updating binpatch(es)
===> Updating package(s)
二、保护裸机
OpenBSD缺省设置非常安全,没有服务监听端口,除了SSH,SSH监听的是缺省22端口,可以设定服务器只接受来自你的计算机的公共地址,其他IP地址全部屏蔽
$ sudo vi /etc/pf.conf
block in quick from ! x.x.x.x # 这里是你的公共IP地址
pass out quick
改变完成后,通过下面命令激活:
$ sudo pfctl -f /etc/pf.conf
下面是创建SSH key,失效root登录,使得SSH监听另外其他端口。首先是创建key,在Linux/BSD下客户端下可以如下使用-t ed25519,如果是Windows客户端,可以使用-t rsa
$ ssh-keygen -t ed25519
客户端产生Key以后,拷贝这个公共key到~/.ssh/authorized_keys:
$ cp ~/.ssh/id_ed25519.pub ~/.ssh/authorized_keys
复制你的私有key到远程服务器上,注意赋予600权限,设置正常后,可以通过下面命令连接正常:
ssh -i your_private_key your_server_ip
第二步是修改端口,端口号越高越避免扫描。
$ sudo vi /etc/ssh/sshd_config
# 修改缺省监听端口
Port 21598
# Authentication
PasswordAuthentication yes # temporary
PermitRootLogin no
AllowUsers YOUR_USER
AuthorizedKeysFile .ssh/authorized_keys
AllowTcpForwarding no
UsePrivilegeSeparation sandbox # Default for new installations.
Subsystem sftp /usr/libexec/sftp-server
重新启动sshd:
$ sudo /etc/rc.d/sshd restart
再从客户端连接服务器:"ssh -i your_private_key your_server_ip",如果一切正常,我们失效密码登录,修改/etc/ssh/sshd_config行:
PasswordAuthentication no
再重新启动sshd,测试是否成功。下面我们配置ssh key以十进制hex格式连接,ASCII图形方式:
$ sudo vi /etc/ssh/ssh_config
# Display fingerprint in hex and ASCII graphic when connecting
VisualHostKey yes
至此,我们已经设置SSH监听在非标端口,root无法直接登录,授权password失效,基于SSH key进行授权
三、系统和网络
如果你的服务器是基于SSD固态硬盘,那么在fstab文件中加入mount选项softdep和noatime可以提高磁盘性能,同时可以阻止文件属性 "last access time" 的写入
$ sudo vi /etc/fstab
YourDiskDUID.b none swap sw
YourDiskDUID.a / ffs rw,noatime,softdep 1 1
YourDiskDUID.k /home ffs rw,nodev,nosuid,noatime,softdep 1 2
YourDiskDUID.d /tmp ffs rw,nodev,nosuid,noatime,softdep 1 2
YourDiskDUID.f /usr ffs rw,nodev,noatime,softdep 1 2
YourDiskDUID.g /usr/X11R6 ffs rw,nodev,noatime,softdep 1 2
YourDiskDUID.h /usr/local ffs rw,nodev,noatime,softdep 1 2
YourDiskDUID.j /usr/obj ffs rw,nodev,nosuid,noatime,softdep 1 2
YourDiskDUID.i /usr/src ffs rw,nodev,nosuid,noatime,softdep 1 2
YourDiskDUID.e /var ffs rw,nodev,nosuid,noatime,softdep 1 2
如果你的服务器缺省基于DHCP,我们可以修改为手工DNS,这样减少被控制可能,类似windows下网卡中IP的配置,:
$ sudo vi /etc/hostname.vio0
inet 你的服务器公共地址 网络netmask
加入网关地址
$ sudo vi /etc/mygate
服务器网关地址
激活流量分发forward
$ sudo sysctl net.inet.ip.forwarding=1
$ sudo vi /etc/sysctl.conf
net.inet.ip.forwarding=1
DNS
我们可以使用DNSCrypt让我们的DNS请求更加加密安全,不绑定到任何本地DNS缓存:
$ export PKG_PATH=http://ftp.fr.openbsd.org/pub/OpenBSD/5.6/packages/amd64/
$ sudo pkg_add dnscrypt-proxy
$ sudo vi /etc/rc.local
# DNSCrypt
/usr/local/sbin/dnscrypt-proxy -a 127.0.0.1:40 -u _dnscrypt-proxy -d -l /dev/null -R dnscrypt.eu-dk
你能以下面方式选择dnscrypt激活你的DNS服务器:
$ sudo /usr/local/sbin/dnscrypt-proxy -a 127.0.0.1:40 -u _dnscrypt-proxy -d -l /dev/null -R dnscrypt.eu-dk
现在我们配置和激活unbound,这已经包含在基本系统中,配置在/var/unbound目录:
$ sudo vi /var/unbound/etc/unbound.conf
server:
username: _unbound
directory: /var/unbound
chroot: /var/unbound
do-not-query-localhost: no
interface: 127.0.0.1
access-control: 0.0.0.0/0 refuse
access-control: 127.0.0.0/8 allow
access-control: 10.8.0.0/24 allow
hide-identity: yes
hide-version: yes
auto-trust-anchor-file: "/var/unbound/db/root.key"
forward-zone:
name: "." # use for ALL queries
forward-addr: 127.0.0.1@40 # dnscrypt-proxy
不要忘记修改/etc/resolv.conf:
$ sudo vi /etc/resolv.conf
nameserver 127.0.0.1 # unbound 是在监听53端口
运行Unbound,并且在系统启动时激活:
$ sudo /etc/rc.d/unbound start
$ sudo vi /etc/rc.conf.local
# Unbound
unbound_flags="-c /var/unbound/etc/unbound.conf"
测试你的DNS链是否正常工作:
$ host openbsd.org
openbsd.org has address 129.128.5.194
openbsd.org mail is handled by 6 shear.ucar.edu.
openbsd.org mail is handled by 10 cvs.openbsd.org.
Unbound监听在端口53,当连接上后分发到dnscrypt监听的端口40,再接触到外部dnscrypt激活的DNS服务器
一、OpenSSH
第一个值得关注的包是 OpenSSH,所有的 UNIX 和 Linux® 用户对它都很熟悉。然而,许多人可能并不知道它来自于 OpenBSD 开发人员。OpenSSH 最初用于 OpenBSD,后来成为标准的安全 Shell (SSH) 包,并移植到几乎所有版本的 UNIX、Linux 和 Microsoft® Windows® 操作系统。OpenSSH 包括用于安全登录的 ssh、用于安全复制的 scp 和 sftp,后者是 ftp 的安全替代方法。所有的源代码都符合开放源代码 BSD 许可,必须遵守 OpenBSD 的规程以杜绝在该分发版中出现任何专用代码和限制性许可计划(这是创建新版本的 SSH的原动力)。OpenBSD中所包含的每个软件部分都是完全免费的,并且在使用上没有任何限制
二、加密
因为OpenBSD项目是在加拿大进行的,所以其中应用的加密技术不受美国的出口限制,这使得该分发版可以充分利用各种现代的加密算法。几乎可以在该操作系统的任何地方找到加密处理,从文件传输到文件系统,乃至网络。OpenBSD 中还包含伪随机数生成器,它可以确保无法根据系统状态预测随机数。其他的特性还包括加密哈希函数、加密转换库和加密硬件支持
三、IP安全协议
OpenBSD中另一个主要的部分是IP安全协议 (IPSec),该操作系统中没有依赖先天不安全的TCP/IP Version 4 (IPV4),而使用了这个协议。(IPV4 选择信任所有的人和所有的事物。)IPSec 对数据包进行加密和验证以保护数据的保密性,并确保在传输过程中不会对数据包进行任何更改。随着TCP/IP Version 6 (IPV6) 的引入,IPSec 成为标准的 Internet协议中不可或缺的部分,这使得未来的 Internet 在缺省情况下更加安全
四、防火墙
1.因为OpenBSD很小并且很安全,所以OpenBSD实现的最常见目标之一是用作防火墙。防火墙从底层对大多数安全单元进行操作,并且 OpenBSD 的包过滤实现是非常优秀的。PacketFilter (PF),OpenBSD 开发社区设计的开放源代码解决方案,它是 OpenBSD 所选择的方法。与 OpenBSD 软件的其他许多部分一样,这种方法非常成功,以至于其他的 BSD 变种纷纷将其移植到自己的分发版中
2.OpenBSD配置为缺省安全,所以在设置坚如磐石的防火墙时,您无需关闭过多的服务。您需要启用第二个 Ethernet 接口,并根据需要配置 PF。有关介绍如何将 OpenBSD 服务器设置为防火墙的文章链接
四、加密和随机数
1.大多数操作系统很少在其关键组成部分中包含加密处理,这使得它们先天就缺乏安全性。导致这种缺陷的一个重要原因是,大多数的操作系统来自美国,不允许开发人员出口健壮的加密软件。OpenBSD中的加密哈希库包括 MD5、SHA1 和 RIPEMD160。OpenBSD中的加密转换库包括 Blowfish、数据加密标准 (DES)、3DES和Cast
2.大部分加密处理都在底层进行,这样一来,用户就不用为了保护系统安全而必须成为加密方面的专家。OpenBSD 开发团队很清楚,大多数管理员并不是安全方面的专家,并且不应该指望他们煞费周折地加强他们的环境。那些认为 OpenBSD 不是用户友好的操作系统的人,大部分是受到了误导。如果大多数管理员愿意花时间使用 OpenBSD 的缺省安全措施来替代任何其他的分发版,那么他们很可能会改变其思维方式
3.随机数是确保安全性的重要组成部分。OpenBSD 内核使用中断信息创建不断变化的熵池,它可以为加密函数提供种子数据,并为事务 ID 提供数值。例如,伪随机数可用于进程ID和包 ID,这使得那些想要进行攻击的人很难进行欺骗。OpenBSD 甚至在 bind(2) 系统调用中使用了随机端口分配。大多数源于 UNIX 的操作系统要么创建顺序的 ID,要么使用可预测其结果的简单算法
查看全部