linux安全注意事项

1    避免系统管理弱口令

服务器、FTPCmsTop后台、数据库等所有密码,请设置强有力密码,简单有效降低整体风险的安全漏洞,以下是关于一些强密码的建议:

§  包括数字,符号,大小写字母组合

§  密码长度应在1214个字符,如果允许,可以更长。

§  任何避免重复的密码,避免基于个人资料信息密码,如生日,姓名等。

§  定时更换密码的习惯

尽管我们一再强调密码复杂度的重要性,还依然有许多弱密码的存在。

所以伟大的webmaster一定要在日常工作中给网站工作人员加强与灌输安全管理意识

2    服务器SSH安全配置

互联网上无时不刻都有一些人四处开着扫描器进行弱密码扫描试探,SSH22端口也不例外,在服务器上执行两条指令可查看所有登录成功与失败的日志:

# 查看成功登录的日志,空格翻页,q退出

shell> last | less

# 查看登录失败的日志

shell> lastb | less

看下图血淋淋的例子,所以在安装操作系统系统并设置好密码后,最好修改SSH默认端口

linux安全注意事项_第1张图片

(1)  修改SSH服务端口

修改SSH配置文件,将其监听端口更改为大于10000的值,发挥您的想象力:

shell> vi /etc/ssh/sshd_config

# 指定端口号

Port 22345

修改iptables软件防火墙把默认的22端口改为刚才指定的端口:

# 也可以使用 setup来进行配置iptables软件防火墙

shell> vi /etc/sysconfig/iptables

# 重启iptables,或者使用 service iptables restart

shell> /etc/init.d/iptables restart

注意:关于SSH, FTP这些端口的修改,一定要在修改后立即进行连接测试,以防由于误操作,断开了当前连接而无法再次连接主机。

(2)  禁止root账户远程登录

通过修改默认端口基本上可以阻挡99%恶意扫描信息(根据个人观察),紧接着要做的就是禁止root远程直接登录。因为通过分析扫描日志,你会发现root账户试探的次数一直是永居榜首:

shell> vi /etc/ssh/sshd_config

# 禁止root账户登录

PermitRootLogin no

      然后创建个普通账户,当我们需要远程连接的时候,先通过普通账户登录,再su -root。普通账户的用户名需要你费心思创造个奇葩的,想到admin这样的用户名请先去反思:

shell> useradd yaoniming3000

shell> passwd yaoniming3000

      使用普通账户登录服务器后执行su –切换

# 注意su后面有个减号,是同时切换环境变量的意思

shell> su –

      同样,修改完毕,还是立即进行连接测试,以防无法连接主机

(3)  限制服务器IPVPN登入

如果有条件,强烈建议配置服务器的远程登录权限只能通过特定IP段或VPN方可登入。



3    MySQL安全配置

(1)  数据目录和数据文件的安全性

设置MySQL数据目录为700,即只有启动数据库的用户可以读写数据库文件,保证了本地数据文件的安全。

shell> chmod 700 /www/mysql

设置MySQL日志目录为770,即只有数据库用户和组成员可以查看

shell> chmod 770 /var/log/mysql

(2)  本地日志文件安全性

有些用户在本地登陆或备份数据库的时候为了图方便,有时会在命令行参数里直接带了数据库的密码,如:

shell> mysql -uroot –ptest

shell> mysqldump -uroot -ptest test > test.sql

这些命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏。所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。

另外用户本地登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。如果数据库用户用SQL语句修改了数据库密码,也会因.mysql_history文件而泄漏。所以必要时我们可以这样做:

shell>rm ~/.bash_history ~/.mysql_history

shell>ln -s /dev/null ~/.bash_history

shell>ln -s /dev/null ~/.mysql_history

(3)  数据库账户的配置

请不要直接使用数据库root账户来进行CmsTop数据库的管理,并配置数据库root账户只允许本地连接数据库。

针对每个数据库设置不同的用户、密码、连接限制权限,如果您不熟悉SQL可借助phpMyAdmin图形化web界面来进行配置。

mysql> select user,host from mysql.user;

+--------------+------------------+

| user         |   host          |

+--------------+------------------+

| cmstop         | 192.168% |

| cmstop         | localhost |

| root            | localhost |

(4)  数据库的外网访问

数据库一般不需要通过外网访问,所以也不需要配置外网IP,开放外网端口,当数据库与应用分开时,应该通过内网IP来进行连接。

(5)  phpMyAdmin的访问控制

使用phpMyAdmin来进行数据库管理,不要为了图方便,将该目录放置到CmsTop的系统目录中运行。

可以单独配置一个域名来进行访问,并且不要进行公网DNS解析,让外网直接访问。


本文转自:有道云笔记

你可能感兴趣的:(Linux)