vagrantで立てたVM(CentOS 7)のportを追加で開く


紹介する内容

  • semanageでportを開けるように設定可能です
  • 開けるportに対してncでlistenさせてずっと開けます

結論

  • どこで活用できるか悩ましいです
  • vagrantのCentOS 7はsemanageを使えばport開けます
  • vagrantの設定でportを開ける設定は見つかりませんでした

紹介始めます

Vagrantfile(port開く側)

# -*- mode: ruby -*-
# vi: set ft=ruby :

$script = <<-'SCRIPT'
yum -y update
yum -y install net-tools
yum -y install policycoreutils-python
yum -y install nc
SCRIPT

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.synced_folder '.', '/vagrant', disabled: true
  config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--nictype1", "virtio"]
    v.name = "centos7_a"
    v.memory = "1024"
    v.cpus = 2
  end

  config.vm.network :forwarded_port, host: 2258, guest: 22
  config.vm.network "private_network", ip: "192.168.33.17"

  # Run scripts for all VMs  
  config.vm.provision "shell", inline: $script
end

portスキャンする側とport開く側の説明

  • 続くイメージもportスキャンする側port開く側になります
  • port開く側のipが192.168.33.17になります
  • 試すportは55556にします

semanageでportを開ける設定する前

portスキャンする側

  • nmapでportをスキャンします。見当たりません。
    • nmap -p 55556 192.168.33.17

port開く側

  • netstatでlisten中のportを確認します。listenリストにもport55556は見当たりません
    • sudo netstat -ntlp

semanageでportを開けれるように設定

portスキャンする側

  • nmapでportをスキャンします。まだ見当たりません。
    • nmap -p 55556 192.168.33.17

port開く側

  • sudo semanage port -a -t http_port_t -p tcp 55556でportを開けれるようになります
    • sudo semanage port -l | grep http_port_t で確認できます
  • netstatでlisten中のportを確認します。listenリストで、port55556まだ見当たりません
    • sudo netstat -ntlp

ncで開放可能なportに対してlistenさせるとportがスキャンされる

portスキャンする側

  • nmapでportをスキャンで見えます(stateopenになりました)
    • nmap -p 55556 192.168.33.17

port開く側

  • sudo nc --listen --source-port 55556 -4で選んだport55556をIPv4でlisten状態にしたから、nmapのportスキャンに見られます