기본 구성에서 mysql 서버는 로컬이 아닌 요청을 허용하지만 postgresql 서버는 허용하지 않는 이유는 무엇입니까?
$ nmap -p0-65535 192.168.1.97
Starting Nmap 7.60 ( https://nmap.org ) at 2019-03-20 14:34 EDT
Nmap scan report for ocean.fios-router.home (192.168.1.97)
Host is up (0.00036s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE
22/tcp open ssh
3306/tcp open mysql
33060/tcp open mysqlx
Nmap done: 1 IP address (1 host up) scanned in 4.50 seconds
netstat
이유를 말해주실 수 있나요 ?
$ sudo netstat -ap | grep postg
tcp 0 0 localhost:postgresql 0.0.0.0:* LISTEN 1567/postgres
udp 0 0 localhost:57504 localhost:57504 ESTABLISHED 1567/postgres
unix 2 [ ACC ] STREAM LISTENING 27116 1567/postgres /var/run/postgresql/.s.PGSQL.5432
$ sudo netstat -ap | grep mysql
tcp6 0 0 [::]:mysql [::]:* LISTEN 23683/mysqld
tcp6 0 0 [::]:33060 [::]:* LISTEN 23683/mysqld
unix 2 [ ACC ] STREAM LISTENING 1169294 23683/mysqld /var/run/mysqld/mysqld.sock
unix 2 [ ACC ] STREAM LISTENING 1169513 23683/mysqld /var/run/mysqld/mysqlx.sock
unix 2 [ ] DGRAM 1169211 23683/mysqld
mysql이 postgresql처럼 작동하여 실행되지만 로컬이 아닌 요청을 허용하지 않도록 구성하려면 어떻게 해야 합니까?
감사해요.
답변1
이 유형의 작업에는 방화벽이 필요하지 않습니다. 방화벽이 쓸모없다고 말하는 것이 아니라 단순히 0.0.0.0
모든 주소에 대해 listening( )을 비활성화할 수 있다는 점에 유의하십시오.최소 권한소프트웨어가 연결을 기다릴 수 있는 주소는 무엇입니까?
PostgreSQL과 MySQL은 서로 다른 소프트웨어이므로 네트워크, 사용자 액세스, 설치 경로, 데이터베이스 파일 경로, 지원되는 파일 시스템 등에 대해 서로 다른 기본 동작을 가질 수 있습니다. 단지 데이터베이스라는 이유만으로 연관시킬 수는 없습니다. 기본 구성에 영향을 미칠 수 있는 다른 사항은 배포판에서 이 패키지를 담당하는 사람이 소프트웨어에서 사용해야 하는 기본 구성을 결정한다는 것입니다.
0.0.0.0
위에서 설명한 대로 배포가 다르게 구성되지 않는 한 MySQL은 기본적으로 모든 네트워크 주소( )를 수신합니다 .
질문으로 돌아가서 MySQL이 localhost에만 응답하도록 하려면 해당 구성 파일( /etc/my.cnf
또는 대부분의 경우 /etc/mysql/my.cnf
)에 액세스하고 다음 줄을 추가하거나 편집하십시오.
bind-address = 127.0.0.1
그런 다음 mysql 서비스를 다시 시작합니다(배포판에 따라 일반적으로 systemctl restart mysql
또는 systemctl restart mysqld
).
다음 명령을 사용하여 다시 확인하십시오 ss
.
ss -lntu | grep mysql