LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1156|回复: 15

改端口…… 成功和问题……

[复制链接]
发表于 2003-7-13 19:30:33 | 显示全部楼层 |阅读模式
小弟听前辈们的话,为了服务器的安全,开始改全部的端口,计划如下:

SSH 4455
FTP 4456
MYSQL 4457

嘿嘿…… 扫的人一定猜不到。

小弟目前的实验成功如下:

改SSH,改 /etc/ssh/sshd_config 里的port 从22到 4456
(但是不知道怎么生效果,重起了一下机子才生效了,有没有不重起机子的方法?)

改MYSQL ,改 /etc/my.cnf 里的mysqld 中的 port 从3306 到 4457
然后用以下方式重起MYSQL,让更改的生效……

/usr/local/msql/share/mysql/mysql.server stop
/usr/local/msql/share/mysql/mysql.server start

改FTP,改 /usr/local/proftpd/etc/proftpd.conf 中的 port 从21 到 4455
然后用
killall -UHP proftp
让更改生效。

现在出现如下问题:

FTP改了端口后不能LIST。可以正常连接上………
SSH运行正常。(最怕不正常,如果不正常,连接不上服务器了)
MYSQL显示端口为4457,但是使用的程序不需要改任何PORT设置都可以正常运行,郁闷……


-------------------------------------------------
FTP改了端口后不能LIST。可以正常连接上………

这个问题,现在已经解决,方法是把FTP里的被动模式打开。但是不明白的是,为什么在改端口之前不需要把FTP里的被动模式打开就可以正常连接上FTP,而改了端口之后就不可以正常连接,一定要把FTP里的被动模式打开呢???

郁闷…… 请高手指点……

现在就只有二个问题,不太放心了。需要前辈来指点一下,让小弟可以确信自己改后没有后遗症…… 谢谢……
发表于 2003-7-13 19:44:47 | 显示全部楼层
FTP的默认端口为
FTP control 20
FTP datta 21
所以默认状态下可以list. 如果要提高FTP服务器的安全性,我觉得改变端口开始治标不治本。建议使用FTPS(FTP over SSL),应用SSL方式将传送的密码和数据加密,相对安全。此方式的默认端口是989,990.

关于MySQL, 我想如果都是在本机上运行的程序的话应该跟端口没有太大关系。只有在跟外界通讯时才重要。 但只是猜测,仅作参考之用。
 楼主| 发表于 2003-7-13 19:51:27 | 显示全部楼层
看前辈指教, FTP和SSH和MYSQL主要是怕别人攻击和连接。所以小弟FTP限了地区IP连接,SSH也限了。MYSQL一直搞不好。所以,想改一个MYSQL的端口,以提高MYSQL的安全性。同时在MYSQL里的MYSQL表中。默认有4个账号。小弟删除了二个没有密码的。但是,现在还有二个,一个是localhost的root,一个是主机名的root,小弟知道,localhost的这个是在本地连接用的。那个主机名的是外部连接来用的。所以,小弟操作MYSQL都是在服务器上用ROOT进入后直接操作的,所以如果这样的话,是不是可以把那个主机名的root从MYSQL数据表中删除,以提高安全性?谢谢……
发表于 2003-7-13 19:59:29 | 显示全部楼层
不必谦虚,我玩得也不精深

如果你是通过SSH远程登录主机后才对MySQL进行操作的话,我想应该属于localhost的root。另一个root应该是从外界联接使用的,如果没有从外界使用root联接数据库的必要,建议删除。 我们可以回想一下ProFTP的设置,初始状态不是也不允许root登录吗。可能是同一个道理。 但是至于会不会出现后遗症。。。这个我拿不准。要看你都有哪些程序需要调用MySQL.但是一般好像都不需要root的权限吧。
 楼主| 发表于 2003-7-13 20:02:39 | 显示全部楼层
我也是这样想的,一般情况下,localhost的root是只用到开MYSQL用户和数据库用的。其它的程序用的都是新开出来的用户和数据库。所以理论上不会发生什么后遗症,但是小弟一个不明白。为什么改了MYSQL的端口之后,PHP+MYSQL的程序都照常一样可以正常运行呢??、理论上应该要改一些程序的CONFIG.PHP 中的port 啊……
发表于 2003-7-13 20:15:53 | 显示全部楼层
我也不太确定,我认为port的概念是建立在网络之间的,严格的说是建立的不同的NIC之间的通信通道。若PHP+MYSQL的PHP程序需要调用本地的数据库,恐怕不需要通过Port吧。如果要通过不同NIC传送信息才需要通过PORT. 我个人的理解是这样的。。。
 楼主| 发表于 2003-7-13 20:16:57 | 显示全部楼层
利害!!!!!!! 还有二个问题有什么看法啊?:)
发表于 2003-7-13 20:21:38 | 显示全部楼层
另外两个问题是....?
 楼主| 发表于 2003-7-13 20:24:56 | 显示全部楼层
SSH运行正常。(最怕不正常,如果不正常,连接不上服务器了)
我在改完sshd_config的文件后用 killall -HUP sshd (SSHD就掉线了。) 然后重新连接就要用新的端口了。我是想问,这样的操作方法对不对。会不会有什么后遗症??还有 ssh_config 和sshd_config有什么不同?我知道一个是 服务端的,一个是客户端的。客户端的那个ssh_config是给谁用的?
发表于 2003-7-13 20:46:48 | 显示全部楼层
改变SSH的连接端口直接在/etc/ssh/sshd_config中修改,然后重新启动sshd 就可以了。我一般喜欢用 /etc/init.d/sshd restart 。 我就是通过SSH长期远程管理几个服务器,没有出现过后遗症。如果有了问题我可惨了。要坐车几个小时去机房维护。:confused:

ssh_config和sshd_config话说起来可就长了。正如你说的个是服务端的,一个是用户的。ssh_config当然不是给一般user可以随便编辑的,是root对各个user的单独设置文件。
也可以通过 $HOME/.ssh/ssh_config来编辑。用这种控制方法的时候会优先后者。

/etc/ssh/ssh_config在初始设置中全部的项目都被 comment out了,所以不起作用。我介绍几个最常用的设置参数:

StrictHostKeyChecking : 自动在 $HOME/.ssh/known_hosts中追加host key 与否。如果制定为NO, 需要用户自己追加

IdentityFile 用户所使用的秘密key的路径
Port SSH 联接用Port
Protocol 连结用的协议版本。现在有两个版本,2和1。他们并不兼容。如果在这里指定 2,1的话就会优先2

设置例:
StrictHostKeyChecking no ←自动获取host key
IdentityFile ~/.ssh/identity ←用户的秘密key版本1用
IdentityFile ~/.ssh/id_dsa ←用户的秘密key版本2用
Port 22
Protocol 1 使用协议版本1联接
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表