分类: 电脑技术
作者: admin

精简优化Debian

1,安装OpenSSH

由于我的Debian是网络最小安装,什么组件都没有,需要的话自己apt一下(Dropbear比OpenSSH内存消耗小很多,但不支持SFTP,只能放弃了。)

apt-get –y install ssh

2,用 pdksh 替代 bash,当你在使用 64MB VPS 的时候,为了多压榨一些可用的内存通常不得不去用一些轻量的程序替代那些笨重的程序,bash很多功能用不上,唯一的好处就是在shell界面下显示路径。。。不过一开始pdksh不显示路径时还真不习惯。。。但未了节省内存,柒月忍了。。。另外,平时对长字符目录喜欢用“*”,pdksh也不行。。。习惯下复制黏贴吧。。。

apt-get install pdksh
chsh -s /bin/pdksh
重新登陆一次SSH 即可生效
你可以在安装之前使用“ps -C bash v”,在安装时候使用“ps -C pdksh v” 来比对一下两者的消耗。你也可以到这里查看各个shell比较
3,对了,既然要优化,那就删除一下Debian自带的没用程序好了:
apt-get remove acpi acpi-support-base acpid eject man-db manpages nano vim laptop-detect bsdmainutils busybox dmidecode
4,修改自己的主机名:

echo "mgrei.com" > /etc/hostname   //红字部分修改为想要的主机名即可

hostname -F /etc/hostname

5,更新Debian:

apt-get update && apt-get upgrade

6,安装必要的一些组件:

apt-get install automake wget zip unzip make time

7,使用postfix 替代Sendmail:

sendmail功能强大。但消耗多漏洞多,很多人对sendmail不报好感,postfix相对消耗较小,而且用的人少了就会安全些。。。

apt-get install postfix

选择默认安装即可

8,用 syslog-ng 替代 rsyslog

Rsyslog 是 Debian 5 的默认日志工具,是一个专注于安全和稳定的增强型多线程日志工具,有着丰富的功能,强大的可定制能力,可以把日志写入数据库(支持 MySQL,PostgresSQL,Oracle 等),E-mail 警报,可定制的日志输出等等,不过对于一个运行在 64MB VPS 的博客/网站来说,Rsyslog 未免显得过于强大,功能强大就意味着占用更多的 CPU/内存 资源。但是也不能没有一个日志工具,没有系统日志记录功能的系统是非常危险的,尤其是受到外部或者内部的威胁的时候,监控排错都需要一个好的日志系统的支持。不用日志系统就像用 gcc 不用 gdb 一样,调试程序不用 debug 一样。

apt-get install sysklogd && dpkg --purge rsyslog

安装前使用“ps -C rsyslogd v”,安装后使用“ps -C syslogd v” 查看两者消耗对比。

9,安装LNMP

我使用的LNMP有两种,一种是牛人lowendbox制作的低内存Debian/Ubuntu版LNMP,在Debian 32bit下使用只有42.9M,但相对的,设置有点麻烦。。。还有一种是Vpser推出的傻瓜式LNMP一键安装包,内存消耗的多了点,不过设置方便了点。两者各有好坏,不做对比啦~

10,防火墙设置:

防火墙配置

要保证服务器安全,防火墙是少不了的,用 root 帐号执行:

iptables -F

iptables -N FIREWALL

iptables -F FIREWALL

iptables -A INPUT -j FIREWALL

iptables -A FORWARD -j FIREWALL

iptables -A FIREWALL -p tcp -m tcp –dport 993 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 995 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 110 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 143 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 80 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 443 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 465 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 22 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 25 –syn -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –dport 3306 –syn -j ACCEPT

iptables -A FIREWALL -i lo -j ACCEPT

iptables -A FIREWALL -p udp -m udp –sport 53 -j ACCEPT

iptables -A FIREWALL -p udp -m udp –dport 161 -j ACCEPT

iptables -A FIREWALL -p udp -m udp –sport 6277 -j ACCEPT

iptables -A FIREWALL -p udp -m udp –sport 24441 -j ACCEPT

iptables -A FIREWALL -p tcp -m tcp –syn -j REJECT

iptables -A FIREWALL -p udp -m udp -j REJECT

iptables-save > /etc/firewall-rules

iptables-restore < /etc/firewall-rules

我这里设置的相对宽松一些,22 端口对所有 IP 都开放了,为的是方便管理。161 端口是 snmp 端口,我开这个是为了远程监控,所以是可选项。 6277、24441 这几个端口是 Razor/Pyzor/DCC/SA 要访问的端口。

执行

iptables -L

可以看到你设定的规则,如果不对,可以用 iptables -F 清空,然后重设。

如果想要开机运行,那么编辑 /etc/network/interfaces,在 iface lo inet loopback 之后加入:

pre-up iptables-restore < /etc/firewall-rules

或者是放在启动脚本里: /etc/init.d/bootmisc.sh