Linux下vps的优化与安全设置教程LAMP / WAMP 环境搭配 lamp 性能优化

Linux下vps的优化与安全设置教程

Linux下vps的优化与安全设置教程

相信很多朋友使用linux操作系统作为server服务器都会选择centos 5.2这个版本,开源而且免费,有着成熟的社区来提供资源。Linux本身的安全性比windows好很多,很多人都不进行安全设置,但很多人在安装完系统后认为linux本身就是安全的所以就没有再从初始化或者安全方面进行设置了,这本身就是个错误的认识,任何系统如果不好好设置都是存在安全问题的。美国主机评论家收集一些centos5.2系统安装后优化及安全设置的教程。

1、建立一个普通权限的用户

A.因为root用户对系统具有全权的操作权限,为了避免一些失误的操作,建议在一般情况下,以一般用户登录系统,必要的时候需要root操作权限时,再通过“su -”命令来登录为root用户进行操作。

useradd pysche

passwd pysche

usermod -G wheel pysche

B. 修改pam配置,使非wheel组用户不能使用su命令登录为root:

vi /etc/pam.d/su

找到

#auth required /lib/security/$ISA/pam_wheel.so use_uid

将行首的 # 去掉。

C. vi /etc/login.defs

在文件末尾加上

SU_WHEEL_ONLY yes

D.禁止ROOT远程SSH登录:

vi /etc/ssh/sshd_config

把其中的

#PermitRootLogin yes

改为

PermitRootLogin no

重启sshd服务

service sshd restart

远程管理用普通用户登录,然后用 su root 切换到root用户就可以拿到最高权限

2、安装yum加速工具,并更新系统

yum install yum-fastestmirror -y

yum upgrade -y

3、安装mlocate工具

yum install mlocate -y

4、root邮件的修改

在系统出现错误或有重要通知发送邮件给root的时候,让系统自动转送到我们通常使用的邮箱中,这样方便查阅相关报告和日志。

vi /etc/aliases

在文件末尾加上

root: pysche@ipbfans.org

5、locate命令设置

vi /etc/updatedb.conf

在末尾增加

DAILY_UPDATE=yes

然后运行

updatedb

6、关闭不必要的服务

比如cups

/etc/init.d/cups stop

chkconfig cups off

除了以下服务以外,其他服务默认的都可以采用刚才的方法关闭:

atd

crond

irqbalance

lvm2-monitor

microcode_ctl

network

sendmail

sshd

syslog

7、停止ipv6

vi /etc/modprobe.conf

在文件末尾加上

alias net-pf-10 off

alias ipv6 off

8、关闭SELinux

vi /etc/selinux/config

将其中的

SELINUX=enforcing

改为

SELINUX=disabled

9、安装sudo工具

yum install sudo -y

安装好了以后,修改sudo的配置

vi /etc/sudousers



# %wheel ALL=(ALL) NOPASSWORD:ALL

去掉前面的 # , 然后保存文件。

这样修改了以后,只有所有属于wheel组的用户能执行sudo命令,并且执行sudo命令时只需要输入自己的密码即可。

10、修改SSH配置

vi /etc/ssh/sshd_config

增加ServerKey的强度

找到

#ServerKeyBits 768

改为

ServerKeyBits 1024

不允许root用户直接登录

#PermitRootLogin Yes

改为

PermitRootLogin no

禁止空密码登录

找到

#PermitEmptyPasswords no

去掉前面的 #

全部修改完了以后,重启服务器

init 6

2.删除掉不需要的用户和用户组

应该禁止所有默认的被操作系统本身启动的并且不必要的账号,当您第一次安装系统时就应该这么做,Linux提供了很多默认账号,而账号越多,系统就越容易受到攻击。

有其他用户进入root时 应采用:su - root

vi /etc/passwd

#userdel adm

#userdel lp

#userdel sync

#userdel shutdown

#userdel halt

#userdel news

#userdel uucp

#userdel operator

#userdel games

#userdel gopher

#userdel ftp

vi /etc/group

#groupdel adm

#groupdel lp

#groupdel news

#groupdel uucp

#groupdel games

#groupdel dip

#groupdel pppusers

3.口令文件

chattr命令给下面的文件加上不可更改属性,从而防止非授权用户获得权限。

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow

检查以上权限后期使用

lsattr /ec/passwd

4.禁止Ctrl Alt Delete重新启动机器命令

修改/etc/inittab文件,将”ca::ctrlaltdel:/sbin/shutdown -t3 -r now”一行注释掉。5.限制su命令

如果您不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd

这时,仅isd组的用户可以su作为root。此后,如果您希望用户admin能够su作为root,可以运行如下命令:

# usermod -G10 admin

6.删除finger程序,具体方法如下

#rpm –e finger

7.删减登录信息

默认情况下,登录提示信息包括Linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。

然后,进行如下操作:

# rm -f /etc/issue

# rm -f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net

8、更改SSH端口

最好改为10000以上,别人扫描到端口的机率也会下降

不允许使用低版本的SSH协议

vi /etc/ssh/ssd_config

将#protocol 2,1改为

protocol 2

将PORT改为1000以上端口

vi /etc/ssh/sshd_config

Port 10000

同时,创建一个普通登录用户,并取消直接root登录

useradd 'username'

passwd 'username'

vi /etc/ssh/sshd_config

PermitRootLogin no #取消root直接远程登录

9、关闭那些不需要的服务

记住少开一个服务,就少一个危险。

以下仅列出需要启动的服务,未列出的服务一律关闭:

#setup

acpid

anacron

cpuspeed

crond

irqbalance \仅当服务器CPU为S.M.P架构或支持双核心、HT技术时,才需开启,否则关闭。

microcode_ctl

network

random

sendmail

sshd

syslog

yum-updatesd

10、启用iptables 防火墙,对增加系统安全有许多好处。

设置好防火墙的规则。

vi /etc/sysconf/iptables

*filter

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT ACCEPT [0:0]

# allow local loopback connections

-A INPUT -i lo -j ACCEPT

# drop INVALID connections

-A INPUT -m state --state INVALID -j DROP

-A OUTPUT-m state --state INVALID -j DROP

-A FORWARD -m state --state INVALID -j DROP

# allow all established and related

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

# add anymore rules here

COMMIT

11.系统安全记录文件

操作系统内部的记录文件是检测是否有网络入侵的重要线索。如果您的系统是直接连到Internet,您发现有很多人对您的系统做Telnet/FTP登录尝试,可以运行”#more /var/log/secure | grep refused”来检查系统所受到的攻击,以便采取相应的对策,如使用SSH来替换Telnet/rlogin等。

12.创建所有重要的日志文件的硬拷贝

如果服务器比较重要,可以考虑把ssh,mail,引导信息等打印出来.在/etc/syslog.conf文件中加入一行.:

Authpriv.*;mail.*;local7.*;auth.*;daemon.info /dev/lp0

执行/etc/rc.d/init.d/syslog restart

或者把日志发送到其它服务器保存



authpriv.* /var/log/secure

要把它发送到192.168.0.2,就可以这样修改

authpriv.* @192.168.0.2/var/log/secure

13。改变/etc/rc.d/init.d目录下的脚本文件的访问许可

# chmod -R 700 /etc/rc.d/init.d/*

这样便仅有root可以读、写或执行上述所有脚本文件。

注意:慎重修改此安全设置

14.inetd.conf或xinetd.conf

如果是inetd.conf建议注释掉所有的r开头的程序,exec等

7,TCP_Wrappers

在/etc/hosts.allow中加入允许的服务,在/etc/hosts.deny里加入这么一行ALL:ALL

15./etc/aliases文件

Aliases文件如果管理错误或管理粗心就会造成安全隐患.把定义”decode”这个别名的行从aliases文件中删除.

编辑aliases,删除或注释下面这些行:

#games: root

#ingres: root

#system: root

#toor: root

#uucp: root

#manager: root

#dumper: root

#operator: root

#decode: root

运行/usr/bin/nesaliases重新加载.

16.防止sendmail被没有授权的用户滥用

编辑sendmail.cf

把PrivacyOptions=authwarnings

改为PrivacyOptions=authwarnings,noexpn,novrfy

17.不响应ping

#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

18.使TCP SYN Cookie保护生效

Echo 1 > /proc/sys/net/ipv4/tcp_syncookies

19.带S位的程序

可以清除s位的程序包括但不限于:

?从来不用的程序;

?不希望非root用户运行的程序;

?偶尔用用,但是不介意先用su命令变为root后再运行.

find / -type f ( -perm 04000 –o –perm -02000 )-print

chmod a-s 程序名

20.帐号安全设置

修改/etc/login.def文件

PASS_MAX_DAYS 120 ?设置密码过期日期

PASS_MIN_DAYS 0 ?设置密码最少更改日期

PASS_MIN_LEN10?设置密码最小长度

PASS_WARN_AGE 7?设置过期提前警告天数

确保/etc/shadow为root只读

确保/etc/passwd为root读写

定期用密码工具检测用户密码强度

21. /etc/exports

如果通过NFS把文件共享出来,那么一定要配置”/etc/exports”文件,使得访问限制尽可能的严格.这就是说,不要使用通配符,不允许对根目录有写权限,而且尽可能的只给读权限.在/etc/exports文件加入:

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

建议最好不要使用NFS.

22.登录终端设置

/etc/securetty文件指定了允许root登录的tty设备,由/bin/login程序读取,其格式是一个被允许的名字列表,您可以

编辑/etc/securetty且注释掉如下的行。

tty1

# tty2

# tty3

# tty4

# tty5

# tty6

这时,root仅可在tty1终端登录。

23.防止IP欺骗

编辑host.conf文件并增加如下几行来防止IP欺骗攻击。

order bind,hosts

multi off

nospoof on

24.Inetd设置

首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用”stat”命令进行检查。

# chmod 600 /etc/inetd.conf

然后,编辑/etc/inetd.conf禁止以下服务。

ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth

如果您安装了ssh/scp,也可以禁止掉Telnet/FTP。为了使改变生效,运行如下命令:

#killall -HUP inetd

默认情况下,多数Linux系统允许所有的请求,而用TCP_WRAPPERS增强系统安全性是举手之劳,您可以修

改/etc/hosts.deny和/etc/hosts.allow来增加访问限制。例如,将/etc/hosts.deny设为”ALL: ALL”可以默认拒绝所有访问

。然后在/etc/hosts.allow文件中添加允许的访问。例如,”sshd: 192.168.1.10/255.255.255.0 gate.openarch.com”表示

允许IP地址192.168.1.10和主机名gate.openarch.com允许通过SSH连接。

配置完成后,可以用tcpdchk检查:

# tcpdchk

tcpchk是TCP_Wrapper配置检查工具,它检查您的tcp wrapper配置并报告所有发现的潜在/存在的问题。

25.防止DoS攻击

对系统所有的用户设置资源限制可以防止DoS类型攻击。如最大进程数和内存使用数量等。例如,可以

在/etc/security/limits.conf中添加如下几行:

* hard core 0

* hard rss 5000

* hard nproc 20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required /lib/security/pam_limits.so

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5MB。

26.内核参数调整

#vi /etc/sysctl.conf

sysctl -w net.ipv4.conf.default.accept_source_route=0

sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1

#sysctl -w net.ipv4.icmp_echo_ignore_all=1

sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1

sysctl -w net.ipv4.ip_conntrack_max=65535

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_syn_retries=1

sysctl -w net.ipv4.tcp_fin_timeout=5

sysctl -w net.ipv4.tcp_synack_retries=1

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.route.gc_timeout=100

sysctl -w net.ipv4.tcp_keepalive_time=500

sysctl -w net.ipv4.tcp_max_syn_backlog=10000

27.查看系统隐藏文件

find / -name “.*” –print

28.查找系统中没有主人的文件

find / -nouser –o –nogroup

29.查找.rhosts文件
Linux下vps的优化与安全设置教程[LAMP / WAMP 环境搭配] lamp 性能优化

find /home -name “.rhosts”

如果有,请删除它.

30.收回系统编译器的权限或删除

如: chmod 700 /usr/bin/gcc

31.查找任何人都有写权限的文件和目录

find / -type f( -perm -2-o perm -20 ) ls

find / -type f( -perm -2 –o –perm -20 ) ls

32.关闭FTP匿名用户登陆

33.icmp包处理

1)用防火墙禁止(或丢弃) icmp 包

iptables -A INPUT -p icmp -j DROP

2)对所有用ICMP通讯的包不予响应

比如PING TRACERT

34.Bash Shell 命令

Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。

经过以上的设置,您的Linux服务器已经可以对绝大多数已知的安全问题和网络攻击具有免疫能力,但一名优秀的系统管理员仍然要时刻注意网络安全动态,随时对已经暴露出的和潜在安全漏洞进行修补。

centOS 5.4 IP,防火墙,SSH配置(详细版本)2010年01月21日 星期四 上午 00:57文件 /etc/sysconfig/network

这个/etc/sysconfig/network文件是定义hostname和是否利用网络的不接触网络设备的对系统全体定义的文件。

设定形式:设定值=值

/etc/sysconfig/network的设定项目如下:

NETWORKING 是否利用网络

GATEWAY 默认网关

IPGATEWAYDEV 默认网关的接口名

HOSTNAME 主机名

DOMAIN 域名

文件 /etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts在这个目录下面,存放的是网络接口(网卡)的制御脚本文件(控制文件),ifcfg- eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg- eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)

设定形式:设定值=值

设定项目项目如下:

DEVICE 接口名(设备,网卡)

BOOTPROTO IP的配置方法(static:固定IP, dhcpHCP, none:手动)

HWADDR MAC地址

ONBOOT 系统启动的时候网络接口是否有效(yes/no)

TYPE 网络类型(通常是Ethemet)

NETMASK 网络掩码

IPADDR IP地址

IPV6INIT IPV6是否有效(yes/no)

GATEWAY 默认网关IP地址

这里有一个例子:

CODE:

[root@linux ~]# cat -n /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0:0

BOOTPROTO=static

BROADCAST=192.168.0.255

IPADDR=192.168.0.101

NETMASK=255.255.255.0

NETWORK=192.168.0.0

ONBOOT=yes

=================================

DEVICE=eth0

BOOTPROTO=none

HWADDR=00:16:E6:4D:30:05

ONBOOT=yes

IPADDR=192.168.1.99

NETMASK=255.255.255.0

NETWORK=192.168.1.0

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

GATEWAY=192.168.1.1

文件 /etc/resolv.conf

这个文件是用来配置主机将用的DNS服务器信息。在这个文件中如果不设置DNS服务器的IP地址,那么在通信的时候,将无法指定像http://www.waptv.us这样的域名。(DNS是Domain Name

System的简称,中文名称域名解析服务器,主要是IP和域名转换功能)/etc/resolv.conf的设定项目:

domain ←定义本地域名

search ←定义域名和搜索列表

nameserver←定义被参照的DNS服务器的IP地址(最多可指定3个)

一般来说最重要的是第三个nameserver项目,没有这项定义,用域名将无法访问网站,并且yum等服务将无法利用

======================

search localdomain

nameserver 192.168.1.1

网络基本命令

[root@linux ~]#service network restart

start ←启动

stop ←停止

restart ←再启动

reload ←和再启动一样(..)

status ←状态表示

防火墙配置: /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 7777 -j ACCEPT

允许的端口,在修改SSH端口前,先在这里开启端口。

SSH端口修改

/etc/ssh/ssh_config

/etc/ssh/sshd_config

port 8888

port 22 #先留着此端口,上面的端口可以链接了,在关闭这个

service sshd restart #重启SSH

/etc/init.d/iptables restart #重启防火

  

爱华网本文地址 » http://www.aihuau.com/a/25101012/143157.html

更多阅读

喝茶的好处与坏处 每天喝茶的好处

饮茶不但是传统饮食文化,同时,由于茶中含有多种抗氧化物质与抗氧化营养素,对于消除自由基有一定的效果。因此喝茶也有助防老,具养生保健功能,每天喝三两杯茶可起到防老的作用。茶叶中含有多种维生素和氨基酸,喝茶对于清油解腻,增强神经兴奋

白果的功效与作用及食用方法 白果不能和什么一起吃

白果的功效与作用及食用方法,白果是银杏树的果子,具有非常好的功效与作用,医疗效果更是不同凡响,上文我们讲了鹿鞭的功效与作用及食用方法,本文小编为大家介绍下白果的功效与作用及食用方法,让您更多地了解这种古老中医材。 本文来自中医

声明:《Linux下vps的优化与安全设置教程LAMP / WAMP 环境搭配 lamp 性能优化》为网友冷魅悠悠分享!如侵犯到您的合法权益请联系我们删除