이런일도있었어

centos 8 에서 mysql port 3306 열기 본문

참고라이브러리

centos 8 에서 mysql port 3306 열기

먼짝 2020. 1. 29. 10:52

cent0S 7 이상 부터는 firewall 을 사용해서 포트를 열어줘야한다.

 

현재 firewalld 상태 확인

systemctl status firewalld

 

TCP 또는 UDP 추가

firewall-cmd --permanent --add-port=22/TCP # 22 SSH 포트 오픈

firewall-cmd --perfirewall-cmd --permanent --add-port=53/UDP #53 포트오픈

 

포트 삭제

firewall-cmd --permanent --remove-port=444/tcp

 

서비스 추가

firewall-cmd --permanent --add-serivce=ssh

firewall-cmd --permanent --add-service=http

 

서비스 삭제

firewall-cmd --permanent --remove-service=mysql

 

IP 화이트리스트

firewall-cmd --permanent --add-source=192.168.1.100

 

IP 화이트리스 방역

firewall-cmd --permanent --add-source=192.168.1.0/24

 

화이트리스트 삭제

firewall-cmd --permanent --remove-source=192.168.1.100

 

아이피 블럭하기

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' reject"

 

아이피 방역 블럭하기

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' reject"

 

특정 아이피만 특정 포트에 열기

MySQL 에 특정 아이피만 접속 허가 할때 

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'

 

*** 첨부 . mysql 포트를 열어준후 Mysql을 외부에서 리모트 접속 할 수 있도록 하려면 몇가지 추가적으로 해야한다.

1. my.cnf 에서 bind-address 또는 bind_address = 0.0.0.0 으로 변경

2. 유저만들기 

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

* 특정 DB만 GRANT type_of_permission ON database_name.table_name TO ‘username’@'localhost’;

 

FLUSH PRIVILEGES;

 

 

특정포트접속허가한 아이피 삭제

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'

 

원하는 rule을 모두 만들었을경우 firewall rule을 저장해야한다.

firewall-cmd --reload

 

저장한 firewall 확인

firewall-cmd --list-all