본문 바로가기
재밌는 IT 개발/서버는 어려워~ 걍 기본만!

리눅스 SSH, Mysql(MariaDB) 포트 변경

by 만수킴 2020. 8. 17.

보안을 위해서는 포트를 변경하는 것이 최고이다!
만약 ssh의 기본 port를 열어놓는다면 매일 엄청난 중국발 공격을 볼 수 있게 될 것이다.
포트만 변경해도 현저하게 줄어든 공격 횟수를 경험할 수 있을 것이다.

먼저 몇가지 확인이 필요한데...
보안 관련 프로그램이 실행되고 있는지 확인하고,
포트를 변경하기 전 해당 포트를 여는 작업을 해야 한다.
적을게 너무 많아 간단히 적는다.
아래 내용으로 확인이 안된다면 꼭 구글링하여 사전 확인하라.
변경 후 접속 안되면 낭패!!!

// ########### SELinux가 설치되어 있는 경우
// SELinux가 실행중이 아니라면 그대로 진행.
[root@Mansu.Kim ~]# sestatus
SELinux status:                 disabled

// SELinux가 실행중이라면 종료시키거나 포트를 추가 시킬 것.
[root@Mansu.Kim ~]# sestatus
SELinux status: enabled 
SELinuxfs mount: /sys/fs/selinux 
SELinux root directory: /etc/selinux 
Loaded policy name: targeted 
Current mode: enforcing 
Mode from config file: enforcing 
Policy MLS status: enabled 
Policy deny_unknown status: allowed 
Max kernel policy version: 31


// ########### firewall-cmd가 설치되어 있는 경우
// 포트 추가
[root@Mansu.Kim ~]# firewall-cmd --permanent --zone=public --add-port=12345/tcp
success
[root@conoha-jp ~]# firewall-cmd --reload
success
[root@Mansu.Kim ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources:
  services: cockpit custom--paragent custom--sphinxql dhcpv6-client http https ssh
  ports: 12345/tcp 23456/tcp    ### 포트 추가된 것 확인
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
  
[root@Mansu.Kim ~]# 

 

먼저 SSH의 포트를 변경하자!

[root@Mansu.Kim ~]# netstat -anp | grep LISTEN | grep sshd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      927/sshd
tcp6       0      0 :::22                   :::*                    LISTEN      927/sshd
[root@Mansu.Kim ~]#
[root@Mansu.Kim ~]# cat /etc/ssh/sshd_config | egrep ^\#?Port
#Port 22
[root@Mansu.Kim ~]#
[root@Mansu.Kim ~]# vi /etc/ssh/sshd_config
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
#Port 22
Port 12345              ### 변경하고자 하는 포트로 변경
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
[root@Mansu.Kim ~]#
[root@Mansu.Kim ~]# systemctl restart sshd
[root@Mansu.Kim ~]#
[root@Mansu.Kim ~]# netstat -anp | grep LISTEN | grep sshd
tcp        0      0 0.0.0.0:12345            0.0.0.0:*               LISTEN      2624/sshd
tcp6       0      0 :::12345                 :::*                    LISTEN      2624/sshd
[root@Mansu.Kim ~]#

 

다음, Mysql(또는 MariaDB)의 포트를 변경하자!

[root@Mansu.Kim ~]# netstat -anp | grep LISTEN | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      984/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     30138    984/mysqld           /var/lib/mysql/mysql.sock

[root@Mansu.Kim ~] 

[root@Mansu.Kim ~] vi /etc/my.cnf
# this is only for the mysqld standalone daemon
[mysqld]
port=12345    ### 변경하고자 하는 포트를 적는다.

// my.cnf에 설정 내용이 없고, 다른 디렉토리를 include하는 경우도 있다.
[root@Mansu.Kim ~] vi /etc/my.cnf
#
# This group is read both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include *.cnf from the config directory
#
!includedir /etc/my.cnf.d      ### 실제 설정 내용이 들어 있는 디렉토리
[root@Mansu.Kim ~] vi /etc/my.cnf.d/server.cnf
[root@Mansu.Kim ~]# ls -al /etc/my.cnf.d
합계 28
drwxr-xr-x.   2 root root   99  8월 17 22:04 .
drwxr-xr-x. 124 root root 8192  8월 17 22:07 ..
-rw-r--r--.   1 root root  295  8월  7 00:28 client.cnf
-rw-r--r--.   1 root root  763  8월  7 00:28 enable_encryption.preset
-rw-r--r--.   1 root root  232  8월  7 00:28 mysql-clients.cnf
-rw-r--r--    1 root root 1090  8월 17 22:04 server.cnf   ### 이 파일을 열어서 포트 변경  
[root@Mansu.Kim ~] vi /etc/my.cnf.d/server.cnf
# this is only for the mysqld standalone daemon
[mysqld]
port=12345        ### 변경하고자 하는 포트를 적는다.

[root@Mansu.Kim ~]# systemctl restart mariadb

// 변경된 포트 확인 
[root@q381-1286 ~]# netstat -anp | grep LISTEN | grep mysqld
tcp6       0      0 :::12345                 :::*                    LISTEN      4918/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     53434    4918/mysqld          /var/lib/mysql/mysql.sock

// 변경된 포트로 접속되는지 확인한다.
[root@Mansu.Kim ~]# mysql -P12345  -uroot -p    ### -P 옵션으로 포트를 적어주어야 한다.
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.4.14-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

 

댓글