最新消息:

Openbsd Tips

技术相关 admin 2220浏览

转载:http://www.safeexpert.net/wordp/index.php/archives/6
1、网关配制
直接将IP写入/etc/mygate
2、机器名
直接写入/etc/myname
3、网卡配制
直接将参数写入/etc/hostname.ifname
比如,网卡名为fxp0则将配制内容:inet 192.168.0.1写入/etc/hostname.fxp0
4、关闭sendmail
将/etc/rc.conf中的sendmail_flags=”xxxx”改为sendmail_falgs=NO
关闭rc.conf中的其它服务方法类似。
5、重新设置时区:

cd /etc

ln -s /usr/share/timezone/US/Eastern localtime

6、如何在OpenBSD下一块网卡绑定多个IP地址!
编辑/etc/hostname.dc0 (注意,不同的网卡是不同的名称,我这边是dc0)
cat /etc/hostname.dc0
inet 192.168.0.2 255.255.255.0 media 100baseTX
inet alias 192.168.0.3 255.255.255.255
inet alias 192.168.0.4 255.255.255.255
现在你知道如何做了吗?
或者通过ifconfig来进行
ifconfig dc0 inet alias 192.168.0.3 netmask 255.255.255.255
查看IP地址的情况!
$ ifconfig -A
dc0: flags=8863
media: Ethernet manual
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
inet 192.168.0.3 netmask 0xffffffff broadcast 192.168.0.3
这个地方一定要使用参数-A
你可以man ifconfig可以看到
If -A is used, it causes full interface alias information for each inter-
face to be displayed.
这个参数是用来显示全部接口的alias信息的!
7、如何使你的OpenBSD支持tab键补齐!
ftp://ftp.openbsd.org/下载一个tcsh-6.12.00-static的package
然后使用pkg_add tcsh-6.12.00-static.tgz
修改/etc/shells
加入
/usr/local/bin/tcsh
执行命令vipw或者chsh修改root的shell为/usr/local/bin/tcsh
注销,重新登陆,你就可以发现你现在的shell可以使用tab键补齐了!
补充:你同样可以使用bash,设置方法同上!
8、完全关闭sendmail不仅需要
将/etc/rc.conf中的sendmail_flags=”xxxx”改为sendmail_falgs=NO
由于系统定时任务还会启动它,所以还需作如下修改
修改/etc/daily
找到下面代码
sh /etc/security 2>&1 > $OUT
if [ -s $OUT ]; then
mail -s “$host daily insecurity output” root < $OUT
fi
修改如下
sh /etc/security 2>&1 > $OUT.TMP
if [ -s $OUT.TMP ]; then
echo “$host daily insecurity output” > $OUT
cat $OUT.TMP >> $OUT
rm $OUT.TMP
/usr/libexec/mail.local root > $OUT
fi
修改crontab

crontab –u root –e


30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | mail – s “/bin/hostname daily output” root
30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | mail -s “/bin/hostname weekly output” root
30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | mail -s “/bin/hostname monthly output” root
修改为
30 1 * * * /bin/sh /etc/daily 2>&1 | tee /var/log/daily.out | /usr/libexec/mail.local root
30 3 * * 6 /bin/sh /etc/weekly 2>&1 | tee /var/log/weekly.out | /usr/libexec/mail.local root
30 5 1 * * /bin/sh /etc/monthly 2>&1 | tee /var/log/monthly.out | /usr/libexec/mail.local root
并注释掉启动Sendmail行

*/30 * * * * /usr/sbin/sendmail –L sm-msp-queue –Ac -q

9、如何让OpenBSD同步网络时间
使用命令:
rdate -n time.cn99.com
-n Use SNTP (RFC 1361) instead of the RFC 868 time protocol.
By default, rdate uses the RFC 868 TCP protocol
而在FreeBSD则是用ntpdate来进行时间的同步!
10、加速终端按键速度
在 /etc/rc.conf 中加入以下
keyrate=”fast”
cursor=”blink” 或 “destructive”
11、查看网络流量
可以看到所有数据包的大小:
$ watch -d -n 1 ifconfig eth0
可以看到发送和接收了多少个package:
$ watch netstat -s -u
12、openbsd下web服务器
在rc.conf里把httpd服务打开,chmod 1777 /var/www/htdocs
/etc/rc.conf
改:
httpd_flags=NO
为:
httpd_flags=””
13、网络自动配置 (DHCP)
/etc/rc.conf 并加入下面的设置:
ifconfig_fxp0=”DHCP”
14、取消OpenBSD终端响铃
set nobeep
15、如何在OpenBSD下面快速安装package
前提:
网络环境,可以连接到Internet,或者你内部有OpenBSD的package的mirror也可以!
设置:
在/root/.cshrc中加入
setenv PKG_PATH ftp://ftp.jaist.ac.jp/pub/OpenBSD/snapshots/packages/i386
就可以直接用 pkg_add xxxxx.tgz 安装packages 了
16、修改/etc/resolv.conf
lookup file bind
nameserver ‘yournameserver’
mount -t cd 9660 -r /dev/acd0 /cdrom
mount /dev/cd0a /mnt/
/dev/cd0a on /mnt type cd9660 (local, read-only)
mkdir /mnt/iso
vnconfig /dev/iso /home/user/op3.9.iso
mount -t cd9660 /dev/iso /mnt/iso (mount_cd9660 /dev/iso /mnt/iso)
umount /mnt
vnconfig -u /mnt/iso
17、OpenBSD – Lost Root Password
OpenBSD Root password recovery
Boot into single user mode. For i386 arch type boot -s at the boot prompt.
mount the drives.

fsck -p / && mount -u /

If /usr is not the same partition that / is (and it shouldn’t be) then you will need to mount it, also

fsck -p /usr && mount /usr

run passwd(1)
boot into multiuser mode.. and remember your password!
18、自己制作OpenBSD光盘
$mdir -p OpenBSD/3.9/i386; cd OpenBSD/3.9/i386
$ftp -a ftp://ftp.openbsd.org/pub/OpenBSD/3.9/i386
ftp>bin
ftp>prompt
ftp>mget *
ftp>bye
$cd ../.. (back to OpenBSD directory)
$mkisofs -r -v -l -L -V “OpenBSD 3.9″ -A “OpenBSD 3.9 Release”
-b cdrom32.fs
-c boot.catalog
-o OpenBSD-i386-3.9.iso
3.9/i386
19、 使用 pw 来管理你的帐号
在 BSD 下使用 adduser 来新增帐号,有些时会满烦的,可用以下方式:
pw useradd -n -g -m -s /bin/csh
=> -m 代表建立使用者目录
●同时设密码
echo | pw useradd -n -g -m -s /bin/csh -h 0
● 删除帐号
pw userdel -n -r
=> -r 代表同时删除其 home 目录等相关资料
● 修改帐号
pw usermod -g -s /bin/csh
PS:无法修改帐号名称
● lock 及 unlock 使用者帐号
pw lock
pw unlock
20、 激活你的 screensaver
由于BSD 大多当为主机使用,都是常期不关机的,因此可将屏幕关掉,或使用 ScreenSaver 功能..
使用 ScreenSaver 请在 /etc/rc.conf 这个档加入以下两行:
blanktime=”900″
=> 以秒数为单位,如以上为 15 分钟
saver=”logo”
=> logo 是 FreeBSD 的吉祥物(图型接口),另也可使用 “daemon”,这是文字型式
21、 检查你的某一个 ports 版本及更新
如果要更新所有的 port 只需在 /etc/ports/ 下执行以下指令:

make update

有时我们可能要检查某一个 ports 的版本,在每个 ports 中的 Makefile 都有这一行
PORTVERSION= x.x.x
如此就可看到这个 ports 的版本了,另外也可使用以下方式(用 grep),比如我们想看 mod_php4 的版本

grep PORTVERSION= /usr/ports/www/mod_php4/Makefile

PORTVERSION=   1.4.1 -> 版本讯息
如果版本太旧了,则可利用以下方法来更新单一 ports
a. 使用 portupgrade 或 portinstall,请用 man 查看用法
b. 到 FreeBSD 网站查询最新的 ports 信息,并抓 ports 回来更新
网址:http://www.freebsd.org/cgi/cvsweb.cgi/ports/
抓回来后在相关目录更新,例如我们抓回的是 mod_php4.tar.gz,存在 /usr/tmp/ 目录下,则解压缩的方式如下:

cd /usr/ports/www/mod_php4

tar xzvf /usr/tmp/mod_php4.tar.gz

如此就 ok 了..
22、 一些 console 下使用的快速键..
相信大多使用 unix-like 的使用者,还是在 console 下执行你的日常维护工作吧,那有那些按键组合可帮我们提高效率呢..
以下按键皆适用于 tcsh 及 bash..

  1. 快速移动光标
    ctrl+a -> 到最前面
    ctrl+e -> 到最后面
  2. 编辑方面
    ctrl+d -> 删除光标所在字符
    ctrl+w -> 删除光标所在字前面的字符
    ctrl+u -> bash:将光标前所有的字及字符删掉,tcsh:删除所有字
    ctrl+k -> 将光标后所有字符删掉
    ctrl+b -> 下个字符
    ctrl+f -> 前一个字符
    ctrl+m -> 和按下 enter 的结果一样
    ctrl+h -> 和按下 del 或 backspace 键一样
    del 或 backspace -> 删除前一个字符
    如果对按键有研究兴趣者,不彷参考 /usr/share/syscons/keymaps/ 这个目录,其中 us.iso.kbd 是一般我们使用的按键..
    23、使用对时主机

ntpdate clock.stdtime.gov.tw

时区的设定

  1. 使用 tzsetup
  2. 在 /etc/ 下有个档案 localtime,这个就是本机的时区设定档案,因此我们可用个取巧方式(不经由 tzsetup),如以下:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

这样是不是比较快呢..
24、从ports中查找软件
%cd /usr/ports
%make search name=xxx | grep ^Path
另一种是通过关键字,也就是在软件名和说明中只要包括这个单词的都会查找出来:
%cd /usr/ports
%make search key=xxx | grep ^Path
25、OpenBSD简单中文汉化
修改/etc/X11/xorg.conf

cp WindowsXP下的simsun.ttc tahoma.ttf? verdana.ttf “/usr/X11R6/lib/X11/fonts/TrueType/”

这里要把simsun.ttc更名为 simsun.ttf并加入 Load “xtt”

fc-cache

修改~/.cshrc 加入一下环境变量
setenv LANG zh_CN.GB2312
setenv LC_ALL zh_CN.GB2312
setenv LC_CTYPE zh_CN.GB2312
set SGML_CATALOG_FILES=/usr/local/share/sgml/catalog
set XML_CATALOG_FILES=/usr/local/share/xml/catalog
26、解决无权限及sudo的问题

  1. sudo不能root时要编辑 /etc/group 文件

vi /etc/group

wheel::0:root,xxx,xxx,xxx,…
在wheel:
:0:root后加逗号和用户名即可。

  1. sudo后有没权限执行的命令,这时要修改 /etc/sudoers 文件
    root ALL=(ALL) ALL (下一行新建)
    xxxx ALL=(ALL) ALL
    这样这个用户就会有root的所有权限。
    27、OpenBSD能装fcitx输入法吗?

vi fcitx/src/main.c & fcitx-3.1.1/src/main.c

< #ifdef CODESET
< #define CODESET 14
< #endif
< bIsUtf8 = (strstr (setlocale (LC_CTYPE, NULL), “utf8”) != NULL);
> bIsUtf8 = (strcmp (nl_langinfo (CODESET), “UTF-8″) == 0);
只要做一下简单的修改,fcitx就可以编译成功了。
同时还需要重现编译一下OpenBSD的locale,到/usr/src/share/locale/ctype/ 修改一下Makefile将
LOCALES += zh_CN.eucCN
LOCALESRC_zh_CN.eucCN = zh_CN.eucCN
前面的#去掉,到/usr/src/share/locale/ 执行make;make install
设置/root/.cshrc加入
setenv LC_CTYPE zh_CN.eucCN
setenv LC_ALL zh_CN.eucCN
setenv LANG zh_CN.eucCN
setenv XMODIFIERS “@im=fcitx”
修改/root/.xinitrc加入
exec fcitx &
注销帐号重新登陆就可以输入中文了
28、OpenBSD能装scim输入法吗?

tar zxvf scim-1.4.2.tar.gz

#cd scim-1.4.2
#cd src
#vi scim_utility.cpp
< #define CODESET 14
#./configure
# make install
#scim -f socket -d
SCIM has been successfully launched.
29、OpenBSD自动登陆系统启动X-windows
自己个人使用的电脑每次都要登陆后才进X, 现在简单写一下就可以自动开机进入x-windows系统了!
修改/etc/rc文件, 在文件的最后exit 0 前加入一行:
exec /bin/csh
然后修改根目录下的 /.cshrc 在最后加入
startx
另外再把你的/root 目录下的.xinitrc文件copy到 根目录 /下就行了!
30、用tar实现分卷压缩
分开:
# tar czvf – dir | split -d -b 18m
合并:
# cat x* > dir.tgz
31、可以象freebsd的”portupgrade -rRf”那样升级ports吗?
可以”make update FORCE_UPDATE=yes”
32、限制SSH验证重试次数

vi /etc/ssh/sshd_config

MaxAuthTries 6
33、可以把系统的核心的运行层次设置为最安全的层次:

sysctl -w kern.securelevel=2

33、禁用由inetd启动的程序:

vi /etc/sysctl.conf

inetd=NO
34、如何禁止一般用户查看系统日志:

chmod g-w,o-r /var/log/*

35、如果忘记ROOT的密码
boot> boot –s
boot> fsck -p / && mount -uw /
boot> fsck -p /usr && mount /usr
boot> passwd root
36、手工作控制apache启动
/usr/sbin/apachectl start
/uar/sbin/apachectl stop
37、如何让OpenBSD同步网络时间
A: 使用命令:
rdate -n time.cn99.com
-n Use SNTP (RFC 1361) instead of the RFC 868 time protocol.
By default, rdate uses the RFC 868 TCP protocol
而在FreeBSD则是用ntpdate来进行时间的同步!
38、如何让OpenBSD关闭并自动关闭电源
shutdown -ph now
39、如何使你的OpenBSD支持tab键补齐!
ftp://ftp.openbsd.org/下载一个tcsh-6.12.00-static的package
然后使用pkg_add tcsh-6.12.00-static.tgz
修改/etc/shells
加入
/usr/local/bin/tcsh
执行命令vipw或者chsh修改root的shell为/usr/local/bin/tcsh
注销,重新登陆,你就可以发现你现在的shell可以使用tab键补齐了!
补充:你同样可以使用bash,设置方法同上!
40、重新设置时区:

cd /etc

ln -s /usr/share/zoneinfo/Asia/Shanghai

41、OpenBSD能装scim输入法吗?

tar zxvf scim-1.4.2.tar.gz

cd scim-1.4.2

cd src

vi scim_utility.cpp

< #define CODESET 14

./configure

make install

scim -f socket -d

SCIM has been successfully launched
42、限制SSH验证重试次数:

vi /etc/ssh/sshd_config

MaxAuthTries 6
43、可以把系统的核心的运行层次设置为最安全的层次:
sysctl -w kern.securelevel=2
44、如何禁止一般用户查看系统日志:
chmod g-w,o-r /var/log/*
45、如何启动服务
添加到/etc/rc.local
参数和变量仍然在rc.conf中声明
例如

vi /etc/rc.conf 增加

mysqld=YES

vi /etc/rc.local 增加

if [ X”${mysqld}” == X”YES” -a -x /usr/local/bin/mysqld_safe ]; then
echo Starting mysqld
/usr/local/bin/mysqld_safe &
fi
这样系统启动到rc.local流程的时候,就可以判断出是否运行这个服务,如果你不想用rc.local,可以自己定义一个rc.service

vi /etc/rc 增加

[ -f /etc/rc.service] && . /etc/rc.service
rc.service就是标准的shell程序了
重新激活网络卡,执行 /etc/netstart
DNS应该写在/etc/resolv.conf
ports是属于网络上自动下载源码,编译,安装的方式
而packages一般都是与编译好的包,通过pkg_add等方式便可以轻松安装

转载请注明:Kermit的网站 » Openbsd Tips